0

Protégé を使用して生成された OWL ファイルを使用しています。Java コードで OWL API を使用しています。定義済みのクラスのセットがあります。たとえば、次のとおりです。

SpeciesA ⊑ Species ⊓ ∃hasPart.Fruit ⊓ =hasShape.round
SpeciesA はサブクラスの Species であり、いくつかの Fruit を持ち、Shape 値は Round です。

これはすべて Protégé で定義され、OWL にエクスポートされ、Java のオントロジーに読み込まれます。種の個体 x を作成し、プロパティがあった場合

  • hasPart(x,フルーツA)
  • hasShape(x,Round)

個人が属するすべてのクラスを取得します (この場合、これには SpeciesA が含まれている必要があります)。

SWRL Species(?x)^hasPart(?x,Fruit)^hasShape(?x,"$Round$") を使用できますか?それとも Reasoner を使用する必要がありますか?

Protégé「と同等」と個人の所有物で本当に混同しています..

4

1 に答える 1

1

一般に、個々の x が特定のクラスに属しているというアサーションがない場合は、それを推論するための推論が必要になります (それが他のデータから得られる場合)。これは、推論がOWLの公理またはSWRLの規則に基づいているかどうかに関係なく適用されます。(もちろん、SWRL ルールの場合は、Pellet や HermiT など、SWRL ルールをサポートする推論ツールが必要です)。

SpeciesA ⊑ Species ⊓ ∃hasPart.Fruit ⊓ =hasShape.round

これは、SpeciesA であるすべてのものは種であり、一部に果物があり、形が丸いことを意味します。ただし、種であり、一部に実があり、形が丸いものがすべて種 A であるとは言いません。これが一次論理でどのようになるかを調べると役立つ場合があります。

∀x[ SpeciesA(x) → ( Species(x) ∧ ∃y[ hasPart(x,y) ] ∧ hasShape(x,round) ) ]

条件は左から右にのみ進むことに注意してください。さらに、右側の条件を満たすものはすべて左側の概念のインスタンスであると言いたい場合は、おそらく等価性が必要です。

∀x[ SpeciesA(x) ↔ ( Species(x) ∧ ∃y[ hasPart(x,y) ] ∧ hasShape(x,round) ) ]

OWLでは、それは

SpeciesA ≡ Species ⊓ ∃hasPart.Fruit ⊓ =hasShape.round

つまり、SpeciesA は他のクラスと同等のクラスです。ただし、これらの条件を持つものが SpeciesA であると推測するには、推論が必要です。

于 2014-05-12T18:04:09.180 に答える