个人可以使用 Protege 上的对象 属性 连接到 class 吗?

Can individual connect to class with object property on Protege?

个人(实例)是否可以通过对象 属性 连接到 class?例如,在这种情况下,个人是模块名称:Web Programming。对象 属性:已Class化。 Class:网络。

我尝试将 Web 编程定义为 class,它之所以有效,是因为域和范围都是 class。如果我将 Web Programming 和 Network 都定义为个人,也是如此,它会起作用。如果域是 class 并且范围是个人的,它仍然有效。但是,如果域是单独的并且范围是 class 怎么办?有什么方法可以将它与对象 属性 联系起来:isClassifiedIn?

Protégé 是 OWL 2 DL 编辑器(从版本 4 开始)。在 OWL 2 DL 中,个体不能是 class,对象 属性 必须仅将个体与个体相关联。所以你想要的东西不能用你制定它的方式来表达。但是,您可以做两件事:

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

在OWL2个DL中,虽然个人不可能是class,但是个人名字是有可能的class 同时命名。例如,可以说(在 Turtle 语法中):

ex:Module  a  owl:Class .
ex:Network  a  owl:Class, owl:Thing .
ex:isClassified  a  owl:ObjectProperty .
ex:webProgramming  a  ex:Module;
    ex:isClassified  ex:Network .

注意这里的ex:webProgramming与class没有关系。它与 owl:Thing 类型的个体有关。这个人与名为 ex:Network 的 class 先验无关,尽管它具有相同的名称。这在 OWL 2 规范中称为 "punning"。

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

你必须使用 "value"。 使用 class 表达式编辑器编写您自己的表达式。 Select class 比写: "property" 值 "individual"