2

ORタイプのステートメントを使用する必要があるSWRLルールを実装する方法を見つけようとしています。シナリオは次のとおりです。オントロジーには、「hasProcess」のオブジェクトプロパティといくつかのプロセスクラスを持つクラス「MachineTool」があります。hasProcess値が「EndMilling」または「Drilling」のMachineToolの個人のリストを取得できるようにする必要があります。

'または'ステートメントが許可された場合、SWRLルールは次のようになります。

MachineTool(?mt) ^ hasProcess(?mt, ?p) ^ (EndMilling OR Drilling)(?p) -> MyMachineTools(?mt)

しかし、そのルールは合法ではありません。誰かが私たちが探していることを達成できるルール(またはルールのセット)を知っていますか?私は1つの代替案があり得ると思っていました(しかしそれをテストしていません、Protegeは現在奇妙です):

EndMilling(?p) -> MyProcesses(?p)
Drilling(?p) -> MyProcesses(?p)
MachineTool(?mt) ^ hasProcess(?mt, ?p) ^ MyProcesses(?p) -> MyMachineTools(?mt)

私はこの問題についてのすべての考えを歓迎します。

4

1 に答える 1

4

OR、OWL の を使用して表現される場合、SWRL ルールで有効ObjectUnionOfです。

問題は、コード サンプルで紹介されているような SWRL サーフェス構文のツール サポートにあると思います。Protege 3.x は、この OR 構造を構文的にサポートしていません (少なくとも私が最後にチェックしたときはサポートしていませんでした)。また、Protege 4.1 はレンダリングできますが、再解析に失敗します (rc5 でチェックしただけです)。しかし、最近の OWL-API (v3.2.x) を使用していて、XML や関数型の構文などの構文を使用している場合は、すべて機能するはずです。(Protege 3.x と 4.x は大きく異なる OWL API を使用することに注意してください。Protege 4.x と OWL-API 3.x のみで作業することをお勧めします。)

SWRL で OR が機能しない場合は、 と同等の名前付きクラスを使用できますObjectUnionOf

EquivalentClasses(my-processes, ObjectUnionOf(end-milling, drilling))

machine-tool(?mt) ^ has-process(?mt, ?p) ^ my-processes(?p)
                                                        -> my-machine-tool(?mt)

次のように述べているだけなので、回避策(2番目のコードサンプル)は意味的に同等のステートメントを提供しないことに注意してください。

SubClassOf(end-milling, my-processes)
SubClassOf(drilling, my-processes)

これは次のように述べることと同じです:

SubClassOf(ObjectUnionOf(end-milling, drilling), my-processes)

つまり、同等性を述べるには、他の含意も必要です。

SubClassOf(my-processes, ObjectUnionOf(end-milling, drilling))

ルールは OWL で簡単に表現できることにも注意してください。つまり、このルールには SWRL はまったく必要ありません。

SubClassOf(
   ObjectIntersectionOf(
      :machine-tool
      ObjectSomeValuesFrom(
         :has-process
         ObjectUnionOf(
            :end-milling
            :drilling
         )
      )
   )
   :my-machine-tool
)

すべてを OWL で述べると (可能であれば)、いくつかの利点があります。たとえば、ツールのサポートが向上し (SWRL 推論者よりも OWL 推論者の方が多い)、より強力な推論が得られます (SWRL 推論者は、既知の個人にのみルールを適用します)。

于 2011-07-06T18:21:54.173 に答える