我目前正在记录/测试有关 SPARQL 1.1 蕴含机制的信息,并且该建议反复指出
范围图与活动图等效
但它没有指定活动图指的是什么:它是查询中使用的数据集吗?商店中所有图表的联合?
作为确定这一点的测试,我<http://www.example.org/>
在 Sesame Memory 存储中使用 RDF Schema 和直接类型推理存储(v2.7.14)将此图 URIed
@prefix ex:<http://www.example.org/> .
ex:book1 rdf:type ex:Publication .
ex:book2 rdf:type ex:Article .
ex:Article rdfs:subClassOf ex:Publication .
ex:publishes rdfs:range ex:Publication .
ex:MITPress ex:publishes ex:book3 .
我一直在尝试以下查询(这意味着使用默认图,因此使用推理引擎)
SELECT ?s WHERE { ?s a ex:Publication . }
正如预期的那样,它返回了所有三个实例
<http://www.example.org/book1>
<http://www.example.org/book2>
<http://www.example.org/book3>
而查询:
SELECT ?s FROM ex: WHERE { ?s a ex:Publication . }
只返回
<http://www.example.org/book1>
在上述情况下,两个结果不应该相同吗?
如果数据和模式在存储中的两个图之间拆分(如<urn:rdfs-schema>
and <urn:data>
,甚至分散在更多图上)并且查询使用两个图(或与模式相关的图的子集) FROM 子句而不是默认图?
这意味着推理应该在整个商店中是全局的还是取决于查询数据集?
或者,该建议是否足够松散以使其成为依赖于实现的问题?
谢谢你的灯,
最大限度。
编辑这个问题被重定向到SPARQL 1.1 蕴含机制并使用 FROM 子句进行查询(后续)