实例的闭包公理,以便推理器可以正确分类 ontology 中的实例

Closure axiom for instances so that reasoner can correctly classify instances in ontology

我是一名地理学家,也是 ontology 领域的新人,我试图弄清楚这两者。因此,我创建了一个简单的ontology,如下:

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

你可以找到 .owl file here 用一个非常简单的空间道路数据集(图 1)实例化。

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

我猜根据开放世界的假设,推理者认为节点可能是'is_extent_of'另一个Arc,只是这里没有提到。

我是否需要,或者我如何才能拥有实例的闭包公理? 我的 ontology 实现的哪一部分是错误的?

已编辑:

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)

Class Dangling_node 的一般公理如下:

Node and (is_extent_of max 1 Arc) SubClassOf Dangling_node

the Dangling_node instances (nodes that are connected to one link or arc) are not correctly assigned

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

(1) connectedTo(Node_005,Arc_004)

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

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

(3) (≤ connectedTo.1) ⊑悬挂节点

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

这在 Protege 中是这样的(除了一般的 class 公理 (3),我只是让 Dangling equivalentconnectedTo 恰好 1):

Class 悬挂的定义

关于节点的公理

Reasoner 的结果(节点悬空)