2

我是一名地理学家,也是本体论领域的新人,试图从这两者中理解。因此,我创建了一个简单的本体,如下:

Thing
    Feature
        Lane
        Segment(equivalent to Arc)
    Geometry
        Arc (equivalent to Segment)
        Node
            Dangling_Node
            Intersection_node

您可以在.owl file 此处找到使用非常简单的空间道路数据集(图 1)进行实例化的示例。在此处输入图像描述

本体在没有和有实例的情况下是一致的,但是当我运行推理器时,Dangling_node 实例(连接到一个链接或弧的节点)没有正确分配给相关的子类,而只分配给 Node 超类。正确分配了intersection_node(连接到多个链接的节点)实例。

我猜根据开放世界假设,推理者认为该节点可能是另一个 Arc 的“is_extent_of”,但此处未提及。

我是否需要,或者我怎么可能拥有实例的闭包公理?我的本体实现的哪一部分是错误的?

编辑:

Equivalent to:
    Node and (is_extent_of max 1 Arc)
Subclass of (Anonymous Ancester):
    (is_extent_of only Arc) and (is_extent_of min 1 Arc)

Dangling_node 的通用类公理如下:

Node and (is_extent_of max 1 Arc) SubClassOf Dangling_node
4

1 回答 1

2

Dangling_node 实例(连接到一个链接或弧的节点)未正确分配

你需要断言什么是真的,然后什么不是真的。例如,由于 Node_005 仅连接到 Arc_004,您需要这样说:

(1) connectedTo(Node_005,Arc_004)

(2) {Node_005} ⊑ ∀connectedTo.{Arc_004}

(1) 表示节点实际上连接到弧。(2) 表示该节点所连接的所有事物都是类 {Arc_004} 的一个元素,也就是说,它所连接的唯一事物就是该弧。然后,你会得到一个公理,如果某个东西最多连接到一个弧,那么它就是一个悬空节点:

(3) (≤ connectedTo.1) ⊑ DanglingNode

(3) 是一般类公理。您可以在 Protege 中输入这些内容,但 UI 并不明显。有关如何创建它们的更多信息,请参阅此答案。

这是 Protege 中的样子(除了一般类公理 (3) 不同,我只是让Dangling 等同connectedTo 正好 1):

Dangling 的类定义

Dangling 的类定义

关于节点的公理

节点的个别公理

Reasoner 的结果(节点悬空)

由推理器推断的悬空

于 2015-05-22T18:42:44.503 回答