推理使用 xquery 但不使用 sparql 查询

inferencing working with xquery but not sparql query

我正在尝试 运行 使用 subClassOf 关系进行推理的示例。

出于某种原因,我在使用 xquery 时得到 select 查询结果,但在使用 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> . 
} 

截至目前(MarkLogic 8.0-3),SPARQL 接口不提供指定一组要使用的推理规则的方法。 You can configure a default ruleset to use with the database,将用于所有 SPARQL 查询。

如前所述,您可以使用 sem:ruleset-store() (XQuery) or sem.rulesetStore() (JavaScript) 指定要使用的规则集。