Rdf 在Protege上使用类表达式进行类型推断

Rdf 在Protege上使用类表达式进行类型推断,rdf,owl,ontology,protege,Rdf,Owl,Ontology,Protege,我希望我能以这样的方式定义选修课,即所有属于知识单元且不属于核心课程类型的个人都是选修课 当然,我有: 我想也许只有知识单元和非核心课程的一部分会起作用,但它不起作用 也许这是因为我需要并且只需要partOf的逆属性,但是我没有定义这个属性,因为我在剩下的部分不需要它。所以我可以说,在知识单元,选修课只有部分课程,然后没有核心课程 但是我迷路了,所以欢迎提供任何帮助或示例链接 完整的本体可用您遇到的问题是由于OWL和描述逻辑中的开放世界假设。这意味着推理者只会从明确说明的信息中推断出新的推论,而

我希望我能以这样的方式定义选修课,即所有属于知识单元且不属于核心课程类型的个人都是选修课

当然,我有:

我想也许只有知识单元和非核心课程的一部分会起作用,但它不起作用

也许这是因为我需要并且只需要partOf的逆属性,但是我没有定义这个属性,因为我在剩下的部分不需要它。所以我可以说,在知识单元,选修课只有部分课程,然后没有核心课程

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


完整的本体可用

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

所以为了达到你想要的结果,你必须声明核心课程和选修课程是不相交的。然后你可以做两件事中的一件:

1.为每名选修课的学生说明其类型不是 核心课程。但是你也可以把它作为选修课来陈述

2将所有知识单元定义为core1、core2、。。。coren,elective1,elective2,…,electivek。然后将知识单元设置为所有个人,将核心课程设置为所有核心课程个人,即

 Class: Knowledge_Unit
   EquivalentTo: {core1, core2, ... coren, elective1, elective2, ..., electivek}
 Class: Core_Course
    SubClassOf: Knowledge_Unit,
    EquivalentTo: {core1, core2, ... coren}
更新:20180510


Wrt universal property restrictions类似于仅知识单元的一部分,重要的是要理解,它还包括已知他们不参与任何部分关系的个人。这可能导致难以理解的后果。我已经写过了。

请发布完整的本体,而不是图片。很难从部分信息中找出你想要达到的目的。@HenrietteHarmse我已经包含了一个指向完整的本体论假设的链接,这对我们来说很重要know@moondaisy我已经更新了我的答案,加入了一个关于理解通用属性限制的参考,这可以解释为什么你的本体没有像你期望的那样运行。谢谢你在帖子中的详细解释,我已经阅读了其他帖子,但仍在为大多数事情而挣扎:基本理论可能很难理解,即使对于经验丰富的本体设计人员来说也是如此,所以不要对自己太苛刻:-你问这个问题并继续努力是件好事。这是你最终真正开始明白的唯一方法。不是因为你,而是因为这确实很难。