考虑两个具有不同推理规则集的 GraphDB 存储库:
- 带有规则集“RDFS(优化)”的回购 A
- 带有规则集“RDFS-Plus(优化)”的回购 B
我在这两个存储库中执行了以下 SPARQL INSERT:
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX ex: <http://www.example.com#>
INSERT DATA {
ex:hasPet a owl:ObjectProperty;
rdfs:domain ex:Human;
rdfs:range ex:Pet.
ex:someHuman ex:hasPet ex:somePet.
}
在这两个存储库中,我希望通过rdfs:domain
and rdfs:range
,应该推断出以下类断言:
ex:someHuman rdf:type ex:Human
ex:somePet rdf:type ex:Pet
rdfs:domain
并且rdfs:range
是 RDFS 属性,因此应该为Repo A推断它们。而且因为 RDFS-Plus 是 RDFS 的扩展,我认为它们也会在Repo B中被推断出来。
然而,这些三元组只能通过规则集 RDFS ( Repo A ) 推断出来。如果我执行以下 SPARQL 查询,我只会在 Repo A 中得到结果,而在Repo B中没有结果。
PREFIX ex: <http://www.example.com#>
SELECT ?pet WHERE {
?pet a ex:Pet.
}
有人能告诉我为什么上面的两个三元组只能用 RDFS 规则集推断,而不能用 RDFS-Plus 规则集推断吗?