个人可以在Protege上使用object属性连接到类吗?

时间:2016-10-05 21:42:20

标签: ontology protege4

个人(实例)是否有任何方式使用对象属性连接到类?例如,在这种情况下,个人是模块名称:Web Programming。对象属性:isClassified。课程:网络。

我尝试将Web编程定义为类,它的工作原理是因为域和范围都是类。如果我同时定义Web Programming&网络作为个人,它的工作原理。如果域是一个类,范围是个体的,它仍然有效。但是,如果域是个体的并且范围是类,该怎么办?有什么办法可以用object属性连接它:isClassifiedIn?

2 个答案:

答案 0 :(得分:3)

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

  1. 使用注释属性而不是对象属性。这可能不是理想的,因为OWL DL推理器必须忽略推理过程中的注释属性。它们只是:注释,类似于编程代码中的注释。
  2. 将个人与另一个与该类同名的个人联系起来。让我详细说明一下。
  3. 在OWL 2 DL中,尽管个人不可能成为课程,但个人姓名可能同时课程名称。例如,可以说(用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此处与课程无关。它与owl:Thing类型的个人有关。虽然它具有相同的名称,但这个人与名为ex:Network的类没有任何关系。这在OWL 2规范中称为“双关语”。

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

答案 1 :(得分:0)

您必须使用“值”。 使用类表达式编辑器编写您自己的表达式。 选择比写的类:                                “属性”值“个人”