使用Protege

时间:2018-04-22 00:31:17

标签: rdf owl ontology protege

我希望我能够以Elective_Course partOf且不属于Knowledge_Unit类型的所有人Core_Course定义Elective_Course

对于Course我有这个:

enter image description here

我认为(partOf only Knowledge_unit) and not(Core_Course)可能会有一些行为,但它不起作用。

也许是因为我需要和only具有partOf的反向属性,但我没有定义该属性,因为我不需要其余的属性。我可以在Knowledge_UnithasPart only Course然后not(Core_Course)Elective_Course说明。

但我迷路了,所以欢迎任何帮助或示例链接。

完整的本体可用here

1 个答案:

答案 0 :(得分:1)

您遇到的问题是由于OWL和描述逻辑中的开放世界假设。这意味着推理者只会根据明确声明的信息推断出新的推论,而则因缺少信息而推断。

因此,为了达到理想的结果,您必须说明Core_CourseElective_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