1

名前付き個体「ウシ」を考えてみましょう。そのクラスも「Cow」であり、Cow は Mammal のサブクラスであり、Mammal は生物のサブクラスなどです。次のように OWLNamedIndividual にアクセスできる場合:-

for (OWLNamedIndividual i : localUni.getIndividualsInSignature())
    {
      Code that should give me ...
      i = Cow (NamedIndividual)
      Class = Cow
      One Level up class = Mammal
    }

私は次のことを試しましたが、役に立ちませんでした

System.out.println(i.getEntityType().getName()  );  
System.out.println(i.getEntityType().toString()  );  
System.out.println(i.getTypes(myontology) ); // this would give me error   NoSuchMethodError

ありがとう。

4

1 に答える 1

3

getEntityType()OWLCLASS/OWLOBJECTPROPERTY/OWLNAMEDIDIVIDUAL、つまりエンティティが何であるかに関するOWLAPI固有の値のみを返します。オントロジーにおけるその役割や階層内の位置に関するものではありません。

また、語呂合わせは可能ですが (つまり、anOWLNamedIndividualと anOWLClassは同じ IRI を持つことができます)、2 つのエンティティは異なるため、一方から他方に直接移動することはできません。

OWLNamedIndividual.getTypes(OWLOntology)バージョン 4 で削除されました。

EntitySearcher.getTypes(OWLIndividual, OWLOntology)

結果は、個々のアサートされたタイプのみであることに注意してください。推論された結果を取得するには、 を使用する必要がありますOWLReasoner

Reasoner は、OWLAPI 3 と同じ方法で構築されています: https://github.com/owlcs/owlapi/wiki/DL-Queries-with-a-real-reasoner

ただし、私の知る限り、OWLAPI 4 を使用した推論のリリースはありません。実験的なブランチがいくつかあります: JFact の version4 ブランチは SNAPSHOT 状態にあります: https://github.com/owlcs/jfact OWLAPI 4 で動作する HermiT フォークは、https: //github.com/ignazio1977/hermitから入手できます。 -reasoner どちらもローカル ビルドを使用する必要があります。

于 2014-10-01T18:34:05.343 に答える