クラス A に属する個人が、クラス B のすべての個人と少なくとも 1 つの関係を持っているかどうかを確認したいと考えています。
希望する DL クエリ結果を得る適切な式を見つけるのに問題があります。以下の例では:
Classs: Course {CourseA, CourseB, CourseC, CourseD}
Class: Program {UG_CE, G_CE}
Class: Student {John}
ObjectProperty: is-PartOf (Course,Program)
ObjectProperty: hasEnrolledIn (Student, Course)
個人の場合: CourseA および CourseB、私は次のプロパティをアサートしました:
is-PartOf UG_CE
個々の John については、次の 3 つのプロパティがアサートされました。
hasEnrolledIn CourseA
hasEnrolledIn CourseB
hasEnrolledIn CourseC
個人型も追加しました
hasEnrolledIn only ({CourseA , CourseB , CourseC})
OWA の問題に対処します。
John が UG_CE に必要なすべてのコースに登録しているかどうかを知りたいのですが、John はすべてのコースと追加のコースに登録していることに注意してください。
Reasoner を呼び出した後、次のクエリでは目的の結果が得られません。
Student that hasEnrolledIn only (is-PartOf value UG_CE)
「のみ」は関係の正確な数を定義することに制限されているため、意図した目的には役立ちません。また、コースの数は推測され、事前にわからないため、Max または Min を使用できません。
別のアプローチで問題を解決できますか?