[英]Problems in using Existential restrictions in Protege
我想找出属于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问题。
我想知道约翰是否已经注册了UG_CE所需的所有课程,请注意,约翰已经注册了所有课程和其他课程。
调用推理程序后,以下查询不会给我所需的结果:
Student that hasEnrolledIn only (is-PartOf value UG_CE)
由于“仅”仅限于定义关系的确切数量,因此它不能满足预期的目的。 另外,我无法使用Max或Min,因为课程的数量是可以推断的,因此无法事先知道。
其他方法可以解决我的问题吗?
尽管根据John所上的课程来“关闭”世界是很好的,但对于UG_CE所要求的类来说,关闭世界也同样重要。 我认为您需要这样的方法:
M需要A。
M需要B。
M: 仅需要{A,B}。
J参加了A。
J报名参加B.
J报名参加C.
J: 仅在 {A,B,C}中注册。
对于单个学生J,您可以通过询问M所需的班级集合是否是该学生所注册的班级集合的子集来找出他们是否已参加M的所有班级:
( 逆 (需要) 值 M) SubClassOf ( 逆 (enrolledIn) 值 J)
或者,以DL表示法,使用枚举类(很多表达方式):
∃要求-1 。{M}∃已在-1中注册。{J}
现在,如果猫头鹰财产否定,你可以得到一套只不是 没有这样的表达所需的类录取谁的学生:
不是 (enrolledIn) 仅 不是 ( 取反 (需要) 值 M)
询问的事情,使得他们没有报名参加中唯一开设的课程并不需要由M.然而,OWL没有财产否定表达的课程,所以我不知道从哪里离开我们。 最简单的方法是添加“未注册”属性,尽管这看起来并不优雅。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.