Короткий ответ: нет никакой разницы.
Более длинный ответ: подумайте о запросах SPARQL как имеющих две части.
Часть запроса (WHERE), которая создает список переменных привязок (хотя некоторые переменные могут быть несвязаны).
Часть, которая объединяет результаты. SELECT
, ASK
, CONSTRUCT
, или DESCRIBE
.
SELECT *
- это то, что возвращает запрос. SELECT ?v1 ?v2
принимает результаты и производит другой результирующий набор с удаленными другими переменными. ASK
просто смотрит, есть ли какие-либо результаты.
CONSTRUCT
использует шаблон, чтобы сделать RDF из результатов. Для каждой строки результата она связывает переменные и добавляет операторы к модели результата. Если шаблонная тройка содержит несвязанную переменную, она пропускается.
DESCRIBE
является наиболее необычным, так как он принимает каждый узел результата, находит связанные с ним троек и добавляет их в модель результата. В отличие от других, он может содержать больше информации, чем соответствует запрос.
Таким образом, имея UNION
, OPTIONAL
, что угодно, в запросе разрешено для всех форм. Они могут привести к исчезновению троек из-за несвязанных переменных.
Ваш запрос не имеет большого смысла. Это ничем не отличается от
{?s ?p ?o}
. Что ты пытаешься сделать?
Хорошо, теперь имеет больше смысла.
Учитывая пояснения ниже это звучит, как вы хотите следующее:
construct { <http://seekda.com/providers/cdyne.com/PhoneNotify> ?p ?o }
from <http://localhost:8890/DAV/ranking>
where {
{ <http://seekda.com/providers/cdyne.com/PhoneNotify> so:hasEndpoint ?s.
?s ?p ?o }
union
{ <http://seekda.com/providers/cdyne.com/PhoneNotify> ?p ?o }
}
Эй, спасибо за ваш ответ. ОК, что я пытаюсь сделать: У меня есть rdf-граф с несколькими вводами. теперь я хочу получить все связанные тройки с данным идентификатором (в этом случае id). так как мне это нужно в rdf, я должен использовать конструкцию, и, поскольку есть некоторые транзитивные отношения, я должен упаковать их togheter с объединением (?). Надеюсь, это объяснит мою проблему. С наилучшими пожеланиями simon ps: произошла ошибка в моем запросе, я исправил ее, я думаю, теперь это имеет смысл :) –
simon
А, я вижу. Итак, вам нужна информация об этой вещи (PhoneNotify) и оконечной точке? – user205512
Вы упомянули «переходные отношения». Является ли идея, что отношения «конечной точки» относятся к «PhoneNotify»? – user205512