推論を使用して特定のデータ/オブジェクトプロパティのOWLドメイン/範囲を推論するにはどうすればよいですか?OWL推論を使用してドメイン/範囲を推測する
たとえば、私は2つのクラスRat
,Bird
およびデータプロパティhasName
を持っています。手動
Set<OWLClass> inferedDomains = hermitReasoner
.getDataPropertyDomains(hasNameProperty, false)
.getFlattened();
私がすることができます:私は、ドメインを推測する隠者の推論を使用する場合、私はRat
かBird
をowl:Thing
クラスを持って、そしてない
<Declaration><Class IRI="#Rat"/></Declaration>
<Declaration><Class IRI="#Bird"/></Declaration>
<Declaration><DataProperty IRI="#hasName"/></Declaration>
<DataPropertyDomain>
<DataProperty IRI="#hasName"/>
<ObjectUnionOf>
<Class IRI="#Rat"/>
<Class IRI="#Bird"/>
</ObjectUnionOf>
</DataPropertyDomain>
:私は、これらのクラスはhasName
のもっぱらのドメインになりたいですowl-apiを使用してドメインを抽出し、DataPropertyDomainAxioms
をhasName
とし、Rat
,Bird
のクラスを取得します。しかし、私は他の推測可能なクラスを得ることができません(例えば、Rat
には等価クラスMouse
があります)。
だから私のような、結果を推論する推論エンジンを使用したい:
- 推論:隠者、実際++、...
- SQWRLルールエンジン:Droolsの、...
このような結果を得るためのアプローチはありますか?
まず、オントロジでプロパティのプロパティの公理をすべて取得しました: 'OWLOntology :: getDataPropertyDomainAxioms'その後、公理ごとに公理のすべてのクラスを取得します:' OWLDataPropertyDomainAxiom :: getClassesInSignature'各クラスはクラスのすべてのサブクラスを取得します: 'OWLReasoner :: getSubClasses'? – MiP
いいえ、ドメインクラスのみ - これは匿名クラスであり、署名には表示されません。 OWLDataPropertyDomainAxiomには専用のメソッドがあります。 – Ignazio
なぜか分かりませんが、 'getClassesInSignature'を使用したときに、その匿名クラスのすべてのサブクラスがリストされました。どの方法で話しているのですか? – MiP