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

懵懂的女人 提交于 2019-12-11 02:39:38

问题


I am a geographer and a new comer in the field of ontology trying to make sense out of these two. Therefore, I have created a simple ontology, as follows:

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

you can find the .owl file here instantiated with a very simple spatial road dataset (fig1).

the ontology is consistent without and with instances, but when I run the reasoner, the Dangling_node instances (nodes that are connected to one link or arc) are not correctly assigned to the relevant subclass and only assigned to the Node superclass. The intersection_node (the node which is connected to more than one link) instances are correctly assigned.

I guess according to the open world assumption, the reasoner considers that the node might be 'is_extent_of' another Arc but just not mentioned here.

Do I need, or how could I have, a closure axiom for the instance? Which part of my ontology implementation is wrong?

Edited:

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)

the General Class Axiom for the Dangling_node is as follows:

Node and (is_extent_of max 1 Arc) SubClassOf Dangling_node

回答1:


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

You'd need to assert what's true, and then what's not true. For instance, since Node_005 is connected to just Arc_004, you'd need to say something like this:

(1)        connectedTo(Node_005,Arc_004)

and

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

(1) says that the node is actually connected to the arc. (2) says that everything that the node is connected to is an element of the class {Arc_004}, that is, that the only things it's connected to is that arc. Then, you'd an axiom that says that if something is connected to at most one arc, then it's a dangling node:

(3)        (≤ connectedTo.1) ⊑ DanglingNode

(3) is a general class axiom. You can enter those in Protege, but the UI doesn't make it obvious. See this answer for more about how to create those.

Here's what this looks like in Protege (except that instead of the general class axiom (3), I just made Dangling equivalent to connectedTo exactly 1):

Class definition for Dangling

Axioms about the Node

Result of Reasoner (Node is Dangling)



来源:https://stackoverflow.com/questions/30374169/closure-axiom-for-instances-so-that-reasoner-can-correctly-classify-instances-in

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!