回答を得る前に、解決する必要のある誤解がいくつかあります。
まず、サブクラスと個人は非常に異なる概念です。個人(インスタンス)はクラスのメンバーです。 Subclassは、あるクラスが別のクラスのサブセットであることを意味します。つまり、(推論による)意味は、サブクラスのすべてのメンバーが(スーパー)クラスのメンバーであることを意味します。 (参考のため、OWLに継承の概念はありません):People :has :Disease
のような2番目のクラスレベルのプロパティは、クラスの個人にとって意味がありません。プロパティとクラスとの関係を定義する方法は、プロパティのドメインと範囲を設定することです。 (。ただ、プロパティ名として:has
を使用すると、おそらく言語の他の種類の中から、誤解の広いセットを示す)だから私は名前:hasDisease
とアサーションをお勧めしたい:
:hasDisease rdfs:domain :People .
:hasDisease rdfs:range :Disease .
第三に、あなたはその:John :hasDisease :Cancer
を主張することができますし、 :Cancer
が:Disease
のサブクラスであるとすると、ジョンは疾患を有すると推測する。これには、標準のRDFS推論が必要です。また、上記のドメインと範囲の定義とアサーション:Joy :hasDisease :Gout
がある場合、RDFS推論器は:Joy a :Person
と:Gout a :Disease
を推論します。
Googleから検索できるOWLプライマーがいくつかあります。 OWLと推論の仕組みがどのように機能するかを理解するために、これらのいくつかを検討することをお勧めします。
あなたは、ジョンが人であり人々に病気があるので、ジョンがガンを持っていると推測したいと言っていますか?それは意味をなさないので、あなたが持っている事実とあなたが推論したいことを少しはっきりさせることは良い考えかもしれません。 (人名の代わりに ':Person'のようなクラス名の方が単名詞の方が優れています。 – scotthenninger