ORタイプステートメントを使用する必要があるSWRLルールを実装する方法を理解しようとしています。このシナリオは次のとおりです。オントロジには、 "hasProcess"というオブジェクトプロパティと多数のクラスのプロセスを持つ "MachineTool"クラスがあります。私たちは、 "EndMilling"または "Drilling"のhasProcess値を持つMachineToolの個人のリストを取得したいと考えています。ORステートメントを使用するSWRLルール
もし「または」ステートメントがSWRLルールは以下のようになりますせた。
MachineTool(?mt)^hasProcess(?mt, ?p)^(EndMilling OR Drilling)(?p) -> MyMachineTools(?mt)
しかし、そのルールが合法ではありません。誰かが私たちが探しているものを達成できるルール(または一連のルール)を知っていますか?私は(、門徒は、現時点では奇妙なことされているが、それをテストしていない)一つの代替は可能性が考えていた:
EndMilling(?p) -> MyProcesses(?p)
Drilling(?p) -> MyProcesses(?p)
MachineTool(?mt)^hasProcess(?mt, ?p)^MyProcesses(?p) -> MyMachineTools(?mt)
私はこの問題のすべての感想をお待ちしております。
使用しているProtegeのバージョンを指定します。 – Kaarel
私はその部分を明確にすべきだったと思います。最終的には、OWL APIを使用してルールをプログラムで作成して実行する必要があります。 Protege(3.xと4.1の両方)は、ルールがどのように見えるかを理解するまで、もっと複雑なルールで遊んでいます。 – Christian
私の答えを少し編集しました。おそらくもっと役立っているかもしれません。一般に、どのSWRLサーフェスシンタックスが「公式」であり、どのツールがどのシンタックスをサポートしているのかは不明である。私はあなたの例がうまくいくと思います。 ProtegeとOWL-API開発者にバグ報告をしてください。 – Kaarel