私は、同じ値を持つ同じオブジェクト プロパティを持つ必要があるクラスに属する複数の名前付き個体を含む OWL 2 オントロジーを持っています。
このプロパティ アサーションを「クラス上で」作成したいと思います。これにより、それぞれの明示的なアサーションを必要とせずに、すべてのメンバーがそのプロパティを持っていることを推論者が推測できるようになります。(クラスベースのオブジェクト指向のプロパティ継承に似たものを取得する)
簡単な例は、クラス に属する個体milkBottle1
、milkBottle2
、を含むオントロジーです。それらはすべて値を持つプロパティを持つ必要がありますが、明らかにこれはクラスのすべてのメンバーによって共有されるものであり、明示的に一度だけアサートする必要があります。milkBottle3
Milk
containsNutrient
protein
Milk
私はここでのみ同じ質問を見つけましたが、唯一の答えは不適切な解決策を示唆しています: クラスをプロパティ制限クラスのサブクラスにすることです。これにより、推論者はクラスが Nothing クラスと同等であると推論し (そのようなプロパティを持つ名前付きの個体は存在しないため)、個体の割り当てにより矛盾が生じます。
これは、次のような SWRL ルールを使用した簡単なタスクであることを認識しています。
牛乳(?a) → 含まれる栄養素(?a、タンパク質)
しかし、できれば避けたいと思います。
これは、OWL 2 の回避策なしで可能ですか? もしそうなら、どうすればそれを行うことができますか?