Пустые узлы - это в основном местоимения.
Они используются, когда вы знаете, что сущность существует, и вы можете сказать о ней кое-что, но вы не знаете ее абсолютный идентификатор, его 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 }