【问题标题】:Punning Inference seems not working in graphdb双关语推理似乎在 graphdb 中不起作用
【发布时间】: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 模式下,请确保 &gt;&gt; 中的第二个 &gt; 没有加点。它在 RDFS 和 OWL-Max “规则集”下工作(我没有检查过其他人)。顺便说一句,由于 OWL 2 DL 双关语,您的数据在 OWL 规则集下只是非无效或不一致的。您需要的语句是由于rdfs2 RDFS 模式而推断出来的。
  • @StanislavKralin 此评论已足够完整,可以作为答案

标签: rdf owl semantics ontology graphdb


【解决方案1】:

你应该替换这个语句:

foo:isEndangered rdf:domain foo:Animal .

用这个:

foo:isEndangered rdfs:domain foo:Animal .

替换后应该可以推断出foo:Ape a foo:Animal

在 SPARQL 模式下,确保&gt;&gt; 图标中的第二个&gt; 没有虚线,否则单击该图标。

它适用于 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      |
+--------------------+----------------+

附:即使没有推断出你需要的语句,这也是not a bug

例如,虽然 RDF 词汇表可以断言 author 属性用于指示作为类实例的资源 Person,它并没有说明应用程序是否或如何在 处理该范围信息。不同的应用程序将使用 这些信息以不同的方式。例如,数据检查工具 可能会使用它来帮助发现某些数据集中的错误, 交互式编辑器可能会建议适当的值和推理 应用程序可能会使用它从实例中推断出附加信息 数据。

:-)

【讨论】:

  • 斯坦尼斯拉夫的好答案! :) 换句话说,当我们在 OWL2 中使用双关语时,资源在 ABox 和 TBox 中被严格划分,没有任何模糊性。无论使用双 IRI。 OWL 推理照常工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-13
  • 2019-11-01
  • 1970-01-01
  • 2018-10-03
  • 2020-04-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多