OWLクラスの同等のクラスを.owlファイルと同じ順序で取得する必要があります。同等のクラスを順番に取得
私はこのコード
for(OWLClassExpression cls: clazz.getEquivalentClasses(ontology)) {
Set <OWLClass> classes_of_the_Expression =cls.getClassesInSignature();
}
を使用しますが、このコードは、ランダムにそれらを取得します。
私が扱う症例の例を以下に見てください。ここで、dog_ownerクラスは、同等クラスで、personクラスとdogクラスの両方の共通部分です。私のJavaコードを実行することによって、私は最初の犬のクラスを取得し、次に人のクラスを取得します。私は人のクラスと犬のクラスを意味する逆を取得する必要があります。私は同等のクラスのファーストクラスを正確に必要とするからです。
<owl:Class rdf:about="http://owl.man.ac.uk/2005/07/sssw/peopleeemodifiée#dog_owner">
<owl:equivalentClass>
<owl:Class>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="http://owl.man.ac.uk/2005/07/sssw/peopleeemodifiée#person"/>
<owl:Restriction>
<owl:onProperty>
<owl:ObjectProperty rdf:about="http://owl.man.ac.uk/2005/07/sssw/peopleeemodifiée#has_pet"/>
</owl:onProperty>
<owl:someValuesFrom rdf:resource="http://owl.man.ac.uk/2005/07/sssw/peopleeemodifiée#dog"/>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
</owl:equivalentClass>
<rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
>dog owner</rdfs:label>
<rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
></rdfs:comment>
使用しているOWLAPIのバージョンが3.5であると推測しています。 OWLClassオブジェクトは同等ですので、リストに追加してリストを確実にソートできますが、入力OWLファイルの順序を尊重するサポートはありません。 OWLは、同等クラスの必須命令を指定していません。 なぜ最初の要素を正確に参照する必要がありますか? – Ignazio
一般クラスをリンクするサブクラスの公理を追加する必要があるため、これが必要です(以下の例では、dog_ownerはpersonの交差点の最初のクラスとなります)。したがって、公理を自動的に(スクリプトを使用して)追加する必要があります: このファイルはありません: これは私の目的です –
Nina
私はリストに最初に追加します、私はこれを行うと思った、私は注文を維持するだろうが、残念ながら、関数clazz.getClassesInSignature();それらを無秩序で入手してください – Nina