Вывод, работающий с xquery, но не sparql запрос
Я пытаюсь запустить пример вывода с использованием отношения subClassOf.
По какой-то причине я получаю результаты запроса select, когда использую xquery, а не когда использую sparql.
XQuery
let $sq :=
'PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT *
WHERE { ?s rdf:type <http://www.smartlogic.com/geography#Europe> .
} '
let $rs := sem:ruleset-store("rdfs.rules", sem:store())
return sem:sparql($sq, (), (), $rs)
SPARQL
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT *
WHERE { ?s rdf:type <http://www.smartlogic.com/geography#Europe> .
}
1 ответ
Решение
На данный момент (MarkLogic 8.0-3) интерфейс SPARQL не позволяет указать набор правил вывода для использования. Вы можете настроить набор правил по умолчанию для использования с базой данных, который будет использоваться со всеми запросами SPARQL.
Сделав это, вы можете использовать sem:ruleset-store() (XQuery) или sem.rulesetStore() (JavaScript), чтобы указать набор правил для использования.