我希望我能够以Elective_Course
partOf
且不属于Knowledge_Unit
类型的所有人Core_Course
定义Elective_Course
第
对于Course
我有这个:
我认为(partOf only Knowledge_unit) and not(Core_Course)
可能会有一些行为,但它不起作用。
也许是因为我需要和only
具有partOf
的反向属性,但我没有定义该属性,因为我不需要其余的属性。我可以在Knowledge_Unit
中hasPart only Course
然后not(Core_Course)
上Elective_Course
说明。
但我迷路了,所以欢迎任何帮助或示例链接。
完整的本体可用here
答案 0 :(得分:1)
您遇到的问题是由于OWL和描述逻辑中的开放世界假设。这意味着推理者只会根据明确声明的信息推断出新的推论,而不则因缺少信息而推断。
因此,为了达到理想的结果,您必须说明Core_Course
和Elective_Course
是不相交的。然后你可以做两件事之一:
(1)每个人选择not
(Core_Course)
类型的选举的国家。但是,你也可以将其说明为类型Elective_Course
。
(2)将所有知识单位个体定义为core1, core2, ... coren, elective1, elective2, ..., electivek
。然后将Knowledge_Unit
等同于所有个体,Core_Course
设置为所有核心课程个体,即
Class: Knowledge_Unit
EquivalentTo: {core1, core2, ... coren, elective1, elective2, ..., electivek}
Class: Core_Course
SubClassOf: Knowledge_Unit,
EquivalentTo: {core1, core2, ... coren}
更新:20180510
像partOf only KnowledgeUnit
这样的通用属性限制,重要的是要理解它还包括已知他们不参与任何partOf
关系的个人。这可能导致难以理解的蕴含。我已经写过here。