【发布时间】:2015-05-19 22:57:48
【问题描述】:
我想知道属于 A 类的个人是否与 B 类的所有个人至少有一种关系。
我无法找到合适的表达式来提供我想要的 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 已注册所有课程和其他课程。
调用推理器后,以下查询不会给我想要的结果:
Student that hasEnrolledIn only (is-PartOf value UG_CE)
由于“仅”仅限于定义关系的确切数量,因此它不符合预期目的。另外,我不能使用 Max 或 Min,因为课程数量是推断出来的,并且事先不知道。
另一种方法可以解决我的问题吗?
【问题讨论】:
-
“请注意,John 已注册 [for UG_CE] 的所有课程和其他课程。”我们怎么知道?我们怎么知道没有尚未提及的 UG_CE 附加课程?
-
对于未来的读者,stackoverflow.com/questions/37380729/… 的解决方案可能也适用于此。
标签: semantic-web owl ontology protege dlquery