0

私は OWL の初心者で、OWL DL を使用してノードを次のように定義しました。

<Declaration>
    <Class IRI="#node"/>
</Declaration>
<Declaration>
    <ObjectProperty IRI="#leftChild"/>
</Declaration>
<Declaration>
    <ObjectProperty IRI="#parent"/>
</Declaration>
<Declaration>
    <ObjectProperty IRI="#rightChild"/>
</Declaration>
<InverseObjectProperties>
    <ObjectProperty IRI="#parent"/>
    <ObjectProperty IRI="#leftChild"/>
</InverseObjectProperties>
<InverseObjectProperties>
    <ObjectProperty IRI="#parent"/>
    <ObjectProperty IRI="#rightChild"/>
</InverseObjectProperties>
<FunctionalObjectProperty>
    <ObjectProperty IRI="#leftChild"/>
</FunctionalObjectProperty>
<FunctionalObjectProperty>
    <ObjectProperty IRI="#parent"/>
</FunctionalObjectProperty>
<FunctionalObjectProperty>
    <ObjectProperty IRI="#rightChild"/>
</FunctionalObjectProperty>
<ObjectPropertyDomain>
    <ObjectProperty IRI="#leftChild"/>
    <Class IRI="#node"/>
</ObjectPropertyDomain>
<ObjectPropertyDomain>
    <ObjectProperty IRI="#parent"/>
    <Class IRI="#node"/>
</ObjectPropertyDomain>
<ObjectPropertyDomain>
    <ObjectProperty IRI="#rightChild"/>
    <Class IRI="#node"/>
</ObjectPropertyDomain>
<ObjectPropertyRange>
    <ObjectProperty IRI="#leftChild"/>
    <Class IRI="#node"/>
</ObjectPropertyRange>
<ObjectPropertyRange>
    <ObjectProperty IRI="#parent"/>
    <Class IRI="#node"/>
</ObjectPropertyRange>
<ObjectPropertyRange>
    <ObjectProperty IRI="#rightChild"/>
    <Class IRI="#node"/>
</ObjectPropertyRange>

`

ノードをルート、枝、葉として推論および分離するために、概念をルート、ブランチ、葉として定義したいと思います。子がないか、親も子も持たない孤立したノードです。

4

1 に答える 1

0

この階層をオントロジーのサブクラス階層と一致させたい場合は、SubClassOf 公理を使用して祖先と子を接続できます。次に、あなたの根は、唯一の祖先が owl:Thing のものになり、葉は唯一の子孫が owl:Nothing のものになり、枝は残りのすべてのクラスになります。

于 2015-09-27T17:46:19.033 に答える