【发布时间】:2017-12-27 13:37:04
【问题描述】:
我在 GraphDB 的存储库中加载了以下语句:
@prefix foo: <http://fopo.com#> .
@prefix bar: <http://dd.com#> .
foo:Car a owl:Class .
foo:Animal a owl:Class ;
owl:disjointWith foo:Car .
foo:isEndangered a owl:ObjectProperty ;
rdf:domain foo:Animal ;
rdf:range bar:SomeSpecies .
foo:Ape a owl:Class ;
foo:isEndangered bar:SomeSpecies .
如果我没记错的话,由于 OWL2 引入了punning(即,对个体使用同一个类的 IRI 进行元建模),因此应该推断出以下陈述:
foo:Ape a foo:Animal .
但这不会发生。我也尝试了不同的存储库设置,但没有运气。
有没有办法得到这种推论,还是我做错了什么?
【问题讨论】:
-
您的推断是正确的,但是“它没有发生”是什么意思?从前提逻辑推导出某事的事实并不意味着某事必须“发生”。你能解释一下你做了什么以及你期望什么?
-
rdfs:domain,而不是rdf:domain。 -
还有
rdfs:range:D -
将
rdf:domain替换为rdfs:domain后,它可以在可视图形模式和SPARQL 模式下工作。在 SPARQL 模式下,请确保>>中的第二个>没有加点。它在 RDFS 和 OWL-Max “规则集”下工作(我没有检查过其他人)。顺便说一句,由于 OWL 2 DL 双关语,您的数据在 OWL 规则集下只是非无效或不一致的。您需要的语句是由于rdfs2RDFS 模式而推断出来的。 -
@StanislavKralin 此评论已足够完整,可以作为答案
标签: rdf owl semantics ontology graphdb