我目前正在记录/测试 SPARQL 1.1 蕴涵制度,并且建议反复指出:
范围图与活动图在图上等效
但它没有指定活动图指的是什么:它是查询中使用的数据集吗?商店中所有图表的并集?
作为确定这一点的测试,我得到了这张图的 URIed<http://www.example.org/>
在具有 RDF 模式和直接类型推理存储的 Sesame Memory 存储中 (v2.7.14)
@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 子句中使用两个图(或与模式相关的图的子集)而不是默认图?
意味着推理应该是整个商店的全局还是取决于查询数据集?
或者也许该建议是否足够宽松,足以使其成为一个依赖于实现的问题?
谢谢你的灯,
Max.
EDIT这个问题被重定向到SPARQL 1.1 蕴含机制和使用 FROM 子句的查询(后续) https://stackoverflow.com/questions/28436622/sparql-1-1-entailment-regimes-and-query-with-from-clause-follow-up