私はOWL API 3/Pellet/SPARQL-DLスタックを使用しており、特定のクラスのアサーションされたTBox公理をオントロジから読みたいと思っています。OWL APIを使ってTBoxの公理を取得する
OWL APIで公理に簡単にアクセスできます。しかし、OWLClassAxiomは、接続なしで署名にアクセスする機能を提供するだけです。私。 ObjectPropertyがどのClassに割り当てられているかを知りたい。私が取り出すことができるのは、署名なしのすべての要素のセットです。
OWL APIは、クラスレベルで与えられた公理での作業を実際にサポートしていないようです(追加しないで、読んでください)。どのようにそれを達成するための他のアイデア? (どんなツールでも)
具体例:ピザhasPaseはいくつかのPizzaToppingを持っています。ピザとhasBaseを指定して "PizzaTopping"という値を取得したいと思います。
あなたが簡単にできることは、興味のあるすべての公理シグネチャのプロパティでは、公理の型に応じて、これはあなたが望むものではないかもしれません。 'OWLAxiomVisitor'は行く方法かもしれません... – AKSW
私の論理、偉大な答えの欠陥を指摘してくれてありがとう。私はそれを働かせた。しかし、私はまだ公理部分のアクセスが気に入らない。そこにあるのは「getXInSignature」だけですが、これはセットを返します。あなたが構成(例えば2つの値の交差点から)を持っているなら、これは役に立たない - 私は手動で下位層を通過する必要がある。たぶん、私のユースケースは非常に具体的なものであるか、それでも完全には得られなかったでしょう。しかし、とにかく、それは今働く!@AKSWは、特定のクラスの公理のためだけにビジターを使用することは可能ですか、それともオントロジ全体を通過するのでしょうか? – nick
@nick AxiomからのOWLオブジェクトのいくつかの値に 'getProperty()'があります。 getXInSignatureメソッドを使用する必要はありません。それは公理訪問者を調べるAKSWの提案がおそらく多くの助けになるだろうと言った。 –