2016-06-23 4 views
0

Я выполняю запрос SPARQL на виртуозном SPARQL-редакторе.Отображение результатов SPARQL в следующей строке

Результат запроса в формате HTML, что отображается в следующей строке для каждой соответствующей записи, как показано на рисунке ниже:

Пожалуйста, посоветуйте, как решить эту проблему отображения.

Вот запрос SPARQL:

prefix DOL: <http://www.MyOnt.com/something/v1#> 
prefix foaf: <http://xmlns.com/foaf/0.1/> 

select ?cName ?domain ?dValues ?method ?rType{ 
{ 
    ?class foaf:name "MyJavaClass" . 
} 
{ ?class foaf:name ?cName } 
union 
{ ?class DOL:belongsTo ?domain } 
union 
{ ?class2 DOL:domainName ?dValues } 
union 
{ ?class DOL:hasMethod ?method } 
union 
{ ?class2 DOL:returnType ?rType } 

} 

SPARQL output on virtuoso

+0

Не могли бы вы использовать хостинг изображений для переполнения стека для изображений, вместо того, чтобы использовать другие сайты, на которых не должно быть изображений ночью. –

+0

Запрашивается в списке рассылки и получил там ответ ... – AKSW

+0

[Тема] (https://sourceforge.net/p/virtuoso/mailman/message/35174598/) в списке рассылки [Virtuoso Users users] (https : //sourceforge.net/p/virtuoso/mailman/virtuoso-users/) ... – TallTed

ответ

0

UNION для matching alternatives, так что результаты запроса будут соответствовать любой из моделей, соединенных UNION. Если вы хотите, чтобы результаты, чтобы соответствовать всем тройным моделям в запросе, вы просто group them:

PREFIX DOL: <http://www.MyOnt.com/something/v1#> 
PREFIX foaf: <http://xmlns.com/foaf/0.1/> 

SELECT ?cName ?domain ?dValues ?method ?rType 
WHERE { 
    ?class foaf:name "MyJavaClass" ; 
    DOL:belongsTo ?domain ; 
    DOL:hasMethod ?method . 
    ?class2 DOL:domainName ?dValues ; 
    DOL:returnType ?rType . 
} 

Если вы хотите, чтобы результаты соответствуют лишь некоторые из трехместный шаблонов, вы можете использовать OPTIONAL обернуть модели, что результаты не должны совпадать, например:

PREFIX DOL: <http://www.MyOnt.com/something/v1#> 
PREFIX foaf: <http://xmlns.com/foaf/0.1/> 

SELECT ?cName ?domain ?dValues ?method ?rType 
WHERE { 
    ?class foaf:name "MyJavaClass" ; 
    DOL:belongsTo ?domain . 
    OPTIONAL { 
    ?class DOL:hasMethod ?method . 
    } 
    ?class2 DOL:domainName ?dValues ; 
    DOL:returnType ?rType . 
} 
+1

Весь запрос неверен, потому что он/она не понимает SPARQL и RDF. Например, '? Class2' абсолютно бесполезен, а' domainName', конечно, относится к '? Domain'. И 'returnType' ссылается на'? Method'. Я ответил на это уже в списке рассылки, там я также мог видеть данные. В самом деле, без него невозможно показать правильный запрос. – AKSW

+0

@jindrichm: Спасибо за подробное объяснение. Следующая проблема линии разрешается с помощью группировки. – Viki