0

我正在使用TopBraid Composer来学习如何使用语义 Web 技术制作本体。

我做了什么:

  • 我创建了飞机、城市、机场、州等的本体。
  • 现在本体变得有点复杂了,我遇到了一个问题

本体论

我当前的本体图可以在我的驱动器上找到

我想要的是:

由于我正在学习,我认为尝试为国家和机场拥有一个属性 hasCity 会很棒。这将导致将机场与城市以及城市与只有一处财产的国家联系起来。

我尝试过的(但未能理解)

  1. 将 hasCity 属性修改为域 Airport
  2. 我做的另一个修改是属性 hasCity 也是一个functionalInverseOf hasAirport

在 TopBraid 中,您可以运行推理以查看您的数据发生了什么。包括打印屏幕

看来,通过修改 hasCity 属性,我声明 Object rdfs:type 也是 Aiport。

有人可以指出我正确的方向吗?

这是我的 RDF 的全部 333 行,如果有帮助的话。

4

1 回答 1

0

您已声明hasCity同时拥有Airport和域Country。这意味着,对于每Airport一个有hasCity填充符的,Airport也被推断为Country. 这不太可能是您要表达的意思。

此外,这个断言也是可疑的——数据类型属性的范围应该是一个数据类型,而不是一个类。

<owl:DatatypeProperty rdf:ID="Destination">
    <rdfs:range rdf:resource="#City"/>
    <rdfs:domain rdf:resource="#Transportation"/>
    <rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Destination</rdfs:label>
</owl:DatatypeProperty>
于 2014-10-28T23:34:46.227 回答