SPARQL-набор данных с несколькими пустыми узлами - PullRequest
0 голосов
/ 21 октября 2018

В последнее время я изучаю sparql и путаюсь с пустыми узлами.Можно ли использовать пустые узлы для связывания данных из нескольких наборов данных?Или это просто используется для одного набора данных?тогда каково конкретное использование этих пустых узлов?

PREFIX dbo: <http://dbpedia.org/ontology/>    
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX foaf: <http://xmlns.com/foaf/0-1/>


SELECT DISTINCT ?class
WHERE {[] a ?class}

выполняет ли приведенный выше запрос уже с использованием другого набора данных или нескольких наборов данных?

1 Ответ

0 голосов
/ 22 октября 2018

Пустые узлы - это в основном местоимения.

Они используются, когда вы знаете, что сущность существует, и вы можете сказать о ней кое-что, но вы не знаете ее абсолютный идентификатор, его URI, его name , поэтому вы используете местоимение для ссылки на него.

В вашем примере запроса вы на самом деле не используете пустой узел, так как [] простозанимая место общей ?s или любой другой переменной.Лучший пример пустого узла был бы здесь -

:Fred :hasThing [ :hasColor :Blue ]

Мы ничего не знаем о «Вещи», поэтому мы ссылаемся на него косвенно.


Добавлено -

Также обратите внимание, что в вашем запросе объявления PREFIX не имеют смысла, так как объявленные префиксы нигде не встречаются в вашем запросе.Они не вызывают включение перечисленных наборов данных (поскольку в данном контексте они не являются списками наборов данных; они просто синтаксический сахар, чтобы упростить запись других URI в запросе в виде префиксных URI, таких как foaf:Person, а неполностью квалифицированные URI, такие как <http://xmlns.com/foaf/0.1/Person>), и исключение других.

(Тангенциально - ваш префикс foaf: неверен, так как имеет дефис "-", где он должен иметьточка, ".".)

Этот запрос идентичен вашему -

SELECT DISTINCT ?class
WHERE { ?s a ?class }
...