我在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 .
但它不会发生。我没有运气也尝试了不同的存储库设置。
有没有办法得到那种推论或我做错了什么?
答案 0 :(得分:3)
您应该只替换此声明:
foo:isEndangered rdf:domain foo:Animal .
用这个:
foo:isEndangered rdfs:domain foo:Animal .
更换后,应推断出foo:Ape a foo:Animal
:
在SPARQL模式下,请确保>
图标中的第二个>>
没有点缀,否则请点击图标。
在RDFS和OWL-Max规则集下它适用于我,我没有检查过其他规则。
正如@Ignazio所说,OWL 2 DL的惩罚不会给予推论,但是惩罚的目的恰恰相反。 OWL 2 DL惩罚允许实体同时成为类和个体而不考虑本体不一致(即,充满推论)或无效。
OWL双打仅占RDF总数的一小部分{S} freedom:
RDFS不会将Universe划分为不相交的类别 班级,财产和个人。宇宙中的任何东西都可以 在保持其地位的同时,用作一个类或一个属性,或两者兼而有之 作为个人,可能在班级和具有财产。从而, RDFS允许包含其他类,类的类 属性,类的属性等。
实际上,您需要的推断是由rdfs2
RDFS蕴涵模式授予的。
我希望下面的助记符表有用。它显示RDFS词汇表中提到的哪个术语是哪个前缀。
+--------------------+----------------+
| rdfs: | rdf: |
+--------------------+----------------+
| Classes |
+--------------------+----------------+
| rdfs:Resource | rdf:Property |
| rdfs:Class | rdf:langString |
| rdfs:Literal | rdf:HTML |
| rdfs:Datatype | rdf:XMLLiteral |
+--------------------+----------------+
| Properties |
+--------------------+----------------+
| rdfs:range | rdf:type |
| rdfs:domain | |
| rdfs:subClassOf | |
| rdfs:subPropertyOf | |
| rdfs:label | |
| rdfs:comment | |
+--------------------+----------------+
| Other Vocabulary |
+--------------------+----------------+
| rdfs:Container | rdf:Bag |
| rdfs:member | rdf:Seq |
| rdfs:seeAlso | rdf:Alt |
| rdfs:isdDefinedBy | rdf:List |
| | rdf:first |
| | rdf:rest |
| | rdf:nil |
| | rdf:_1 |
| | rdf:Statement |
| | rdf:subject |
| | rdf:predicate |
| | rdf:object |
| | rdf:value |
+--------------------+----------------+
P.S。即使没有推断出您需要的陈述,也是not a bug:
例如,虽然RDF词汇表可以断言
author
property用于指示作为类实例的资源Person
,它没有说明申请是否应该或如何应对 处理范围信息。将使用不同的应用程序 这些信息以不同的方式。例如,数据检查工具 可能会用它来帮助发现某些数据集中的错误 交互式编辑器可能会建议适当的值和推理 应用程序可能会使用它来从实例推断其他信息 数据
: - )