如何将每个类的实例与另一个类的每个实例相关联?

时间:2014-02-02 16:07:26

标签: semantic-web owl ontology protege description-logic

一般问题

我正在研究一个简单的本体,使用Protégé4.3并尝试创建一个模型,使得 C 类的每个实例都具有某些特定值 v ,其中是给定属性 p 的类 V 的实例。我可以使用公理

来推断这个推论
  

C subClassOf (p v)

但我想我希望能够更多地说明这一点

  

C subClassOf (p 某些 V)

因为我实际上希望 C 的每个实例与 V 的每个实例相关。

一个具体的例子

我的例子是汽车和行动 - 我想为汽车创造一系列行动。当我创建新的汽车实例时,我希望每个人都有一套动作。如果我添加新的操作实例,我希望所有汽车实例都能反映所有相关操作。

为了进一步添加细节,我定义了自动类和两个子类: Car Truck 。我还定义了一个 Action 类和一个子类 TruckAction 。我已经使用域自动和范围操作定义了 hasAction 属性,以关联自动和操作。我进一步创建了几个不同类型的人:

  • 自动
    • 卡车{F150}
    • Car {ChevyMalibu}
  • 行动{加速}
    • TruckAction {LoadCargo}

当我 Car (hasAction value Accelerate)的子类时,我可以看到 ChevyMalibu 具有推断的对象属性 hasAction Accelerate ,但这似乎类似于对对象属性断言进行硬编码。我想为 ChevyMalibu 推断所有汽车行动,同样推断 F150 所有 TruckActions。我不太确定为什么要做 Car 的子类(hasAction some Action)这样的事情不会让我在那里。

我认为OWL type inference with a restriction的雄辩答案与我的问题有关,但我不能完全补充这一点。

0 个答案:

没有答案