个人可以通过 Protege 上的对象属性连接到类吗?

Gan*_*Gan 3 ontology protege4

有什么方法可以将个人(实例)连接到具有对象属性的类吗?例如,本例中的个体是模块名称:Web 编程。对象属性:isClassified。类别:网络。

我尝试将 Web 编程定义为类,并且它有效,因为域和范围都是类。同样,如果我将网络编程和网络定义为个体,它也是有效的。如果域是一个类并且范围是单个的,它仍然有效。但是如果域是个体的并且范围是类的呢?有什么方法可以将它与对象属性连接:isClassifiedIn?

Ant*_*ann 5

Prot\xc3\xa9g\xc3\xa9 是 OWL 2 DL 编辑器(自版本 4 起)。在 OWL 2 DL 中,个体不能是类,并且对象属性必须仅将个体与个体相关联。所以你想要的东西不能用你所表述的方式来表达。但是,您可以做两件事:

\n
    \n
  1. 使用注释属性而不是对象属性。这可能并不理想,因为 OWL DL 推理器必须在推理过程中忽略注释属性。它们就是:注释,类似于编程代码中的注释。
  2. \n
  3. 将个体与与班级同名的另一个个体联系起来。让我详细介绍一下。
  4. \n
\n

在OWL 2 DL中,虽然个体不可能是类,但个体名称同时是类名称是可能的。例如,可以说(用 Turtle 语法):

\n
ex:Module  a  owl:Class .\nex:Network  a  owl:Class, owl:Thing .\nex:isClassified  a  owl:ObjectProperty .\nex:webProgramming  a  ex:Module;\n    ex:isClassified  ex:Network .\n
Run Code Online (Sandbox Code Playgroud)\n

注意,ex:webProgramming这里与类无关。它与 类型的个体有关owl:Thing。这个个体与名为 的类没有任何关系ex:Network,尽管它具有相同的名称。这在 OWL 2 规范中称为“双关语”。

\n

还有第三种方法:改变你的知识模型,这样你就不会遇到这个问题。我不知道你的本体论,但它可能暗示你应该避免的反模式。

\n