Первый запрос синтаксически неверен: <>
не является допустимой ссылкой IRI. Грамматика SPARQL допускает пустую строку, но в спецификации также отмечается, что любая ссылка IRI должна быть строкой, которая (после результатов обработки escape) в действительном IRI RFC3987. Поскольку для IRI требуется, как минимум, идентификатор схемы, пустая строка по определению не может быть действительным IRI.
Второй запрос работает, когда я пробую его на небольшом наборе тестовых данных. Однако это, вероятно, очень дорого обрабатывать.
РЕДАКТИРОВАТЬ запрос, который я на самом деле пытался:
PREFIX xy: <http://mainuri/>
select
*
where
{
rdfs:domain (xy:|!xy:)* ?x .
?x ?p ?o .
?o (xy:|!xy:)* rdf:Property.
}
В локальной базе данных в памяти с включенным базовым выводом RDFS, что дает следующий результат:
Evaluating SPARQL query...
+------------------------+------------------------+------------------------+
| x | p | o |
+------------------------+------------------------+------------------------+
| rdfs:domain | rdf:type | rdf:Property |
| rdfs:domain | rdfs:domain | rdf:Property |
+------------------------+------------------------+------------------------+
2 result(s) (28 ms)