0

我的本体有一点问题!我们致力于管理智能家居的本体。所以我们有像桌子、门、灯……这样的对象。一个聪明的对象有:

  • 一个执行器,它运行一个动作,例如打开一扇门
  • 例如,获取有关温度信息的传感器

我有对象属性,例如:hasActuator --> Door hasActuator DoorController

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

我该如何治疗?有哪些限制?

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

4

1 回答 1

3

简短的解决方案

听起来您试图说一个实体一次不能被多个事物使用。这是 InverseFunctionalProperties 的候选对象。如果你这么说的话

uses 是一个反函数属性
door1 使用 controller1
door1 ≠ door2

然后你可以推断

不是(门 1 使用控制器 1)

这个怎么运作

说明属性p是反函数属性表示

函数式(p): 如果p(x,y) & p(x,z)y = z

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

InverseFunctional (p):如果p(x,z) & p(y,z)x = y

所以,假设你有数据:

使用(门1,控制器1
1 ≠门2

现在考虑以下假设

用途(门2,控制器1

从它和数据中,您可以得出

1 = 门2

但从我们已有的数据来看

1号门≠ 2号门

这是一个矛盾,所以假设一定是错误的。所以:

不(使用(门2,控制器1))

于 2013-12-11T14:07:26.307 回答