Punning推理似乎在graphdb中不起作用

时间:2017-07-21 13:17:26

标签: rdf owl semantics ontology graphdb

我在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 .

但它不会发生。我没有运气也尝试了不同的存储库设置。

有没有办法得到那种推论或我做错了什么?

1 个答案:

答案 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,它没有说明申请是否应该或如何应对   处理范围信息。将使用不同的应用程序   这些信息以不同的方式。例如,数据检查工具   可能会用它来帮助发现某些数据集中的错误   交互式编辑器可能会建议适当的值和推理   应用程序可能会使用它来从实例推断其他信息   数据

: - )