使用上的Protege类expresions类型推断(Type inference using cl

2019-11-04 17:06发布

我希望我可以定义Elective_Course以这样的方式被所有个人partOf一个Knowledge_Unit和类型不是Core_CourseElective_Course秒。

对于Course我有这样的:

我想,也许在东西线(partOf only Knowledge_unit) and not(Core_Course)会做的伎俩,但它不工作。

也许是因为我需要的, only用的逆财产partOf ,但因为我并不需要它为其余的我还没有定义的属性。 所以,我可以在说Knowledge_UnithasPart only Course ,然后not(Core_Course)Elective_Course

但我迷路了,所以任何帮助或链接的例子是值得欢迎的。

完整的本体是可以在这里

Answer 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

像WRT通用性限制partOf only KnowledgeUnit ,它明白它也包括由此可以知道,他们不采取任何部分个人是很重要的partOf关系。 这可能会导致蕴涵可能很难理解。 我写这个位置 。



文章来源: Type inference using class expresions on Protege