我希望我可以定义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
。
但我迷路了,所以任何帮助或链接的例子是值得欢迎的。
完整的本体是可以在这里
您所遇到的问题是由于在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
像WRT通用性限制partOf only KnowledgeUnit
,它明白它也包括由此可以知道,他们不采取任何部分个人是很重要的partOf
关系。 这可能会导致蕴涵可能很难理解。 我写这个位置 。