OWL,将 属性 添加到 class 的所有实例

OWL, adding a property to all instances of a class

我正在寻找一种方法来将对象 属性 添加到给定 class 的所有实例。

示例问题:

假设我定义了三个 class。 Religious_Person Supreme_Being Christian Religious_Person.

的子class

现在我想要一个对象 属性 "devotes",它的域为 Religous_Person,范围为 Supreme_Being。

我有三个 Christian 实例:Marck、Bob 和 Cathy。 我有一个实例Supreme_Being:上帝。

现在我想声明 Marck 奉献上帝,Bob 奉献上帝,Cathy 奉献上帝。对每个实例都这样做似乎很乏味,所以我想表达 class 基督徒的每个实例都默认奉献上帝。现在当然这可能有点令人困惑,因为从这个例子来看,我似乎希望每个 Religious_Person 只专注于一个 Supreme_Being,但事实并非如此。

示例:

假设 JackAndJillian 是一个 Religious_Person 既喜欢杰克又喜欢吉尔。所以我希望 JackAndJillian 的每个实例都用于 Jack 和 Jill(他们都是 Supreme_Being 的实例)。

我觉得 "devotes" 应该是 class 基督徒的对象 属性,但是由于 class 没有属性,这是不可能的。

我正在使用 protege 来帮助自己构建一个 ontology,所以如果有一种方法我可以用 protege 来表达这一点,那就太好了。

  1. 您可以在 SubClassOf 公理中使用 owl:hasValue(在曼彻斯特 OWL 语法中):

    Class: Christian
       SubClassOf: Religious_Person and devotes value God
    
  2. OWL中没有默认值的概念。 OWL中的推理是单调的,因此,您不能通过添加其他语句来删除任何语句。