Protege Owl:对个人的限制

时间:2013-12-11 13:04:31

标签: semantic-web owl protege description-logic

我的本​​体论有点问题! 我们致力于管理智能家居的本体论。所以我们有像桌子,门,灯等对象......一个聪明的对象有:

  • 执行例如打开门的动作的执行器
  • 获取温度信息的传感器

我有以下的ObjectProperties:hasActuator - >门有执行器门控制器

所以现在,问题是个人!我想一个物体(例如Door_1)有一个执行器DoorController_1但是另一个门(Door_2)不能使用执行器DoorController_1因为他已经使用了!

我该如何对待?哪些限制?

如果我把hasActuator功能化,那只能说一个物体只能有一个执行器,但这不是我想要的!

1 个答案:

答案 0 :(得分:3)

简短解决方案

听起来你似乎在试图说一个实体一次不能被多个东西使用。这是InverseFunctionalProperties的候选者。如果你这么说

  

用途是反函数属性
  door1使用controller1
  door1≠door2

然后你可以推断出

  

not(door1使用controller1)

如何运作

声明属性 p 是反函数属性,表示

  

功能性(p):如果 p(x,y)& p(x,z)然后 y = z

声明属性 p 是反函数是类似的,但是说

  

InverseFunctional (p): if p(x,z)& p(y,z)然后 x = y

所以,假设你有数据:

  

用途(门<子> 1 ,控制器<子> 1
  门 1 ≠门 2

现在考虑一下这个假设

  

使用(door 2 ,controller 1

从它和数据中,您可以派生

  

1 =门 2

但是从我们已有的数据

  

1 ≠门 2

这是一个矛盾,所以假设必定是假的。因此:

  

不(用途(门<子> 2 ,控制器<子> 1 ))