0

オントロジーに少し問題があります。スマートホームを管理するオントロジーに取り組んでいます。テーブル、ドア、ランプなどのオブジェクトがあります。スマートなオブジェクトには次のものがあります。

  • たとえば、ドアを開けるようなアクションを実行するアクチュエータ
  • たとえば、温度に関する情報を取得するセンサー

私は例のための ObjectProperties を持っています: hasActuator --> ドア hasActuator DoorController

さて、問題は個人です!オブジェクト (たとえば、Door_1) にはアクチュエーター DoorController_1 がありますが、他のドア (Door_2) は既に ! を使用しているため、アクチュエーター DoorController_1 を使用できません。

どうすればそれを治療できますか?どの制限?

hasActuator を関数にすると、オブジェクトは 1 つのアクチュエータしか持てないと言うだけですが、それは私が望んでいるわけではありません!

4

1 に答える 1

3

短い解決策

エンティティを一度に複数のもので使用することはできないと言っているようです。これは InverseFunctionalProperties の候補です。もし、あなたがそう言うなら

uses は逆関数プロパティ
です door1 uses controller1
door1 ≠ door2

それからあなたはそれを推測することができます

not(door1 は controller1 を使用)

使い方

プロパティpが逆関数プロパティであると述べると、

関数(p): p( x ,y) & p(x,z) の場合、 y = z

プロパティpが逆関数であると述べることは似ていますが、

InverseFunctional (p): p( x ,z) & p(y,z) の場合、 x = y

したがって、次のデータがあるとします。

uses(door 1 ,controller 1 )
ドア1 ≠ ドア2

ここで、次の仮説を考えてみましょう。

用途(ドア2、コントローラー1 )

それとデータから、次のことを導き出すことができます

ドア1 = ドア2

しかし、私たちがすでに持っているデータから

ドア1 ≠ ドア2

これは矛盾しているので、仮説は間違っているに違いありません。したがって:

not(uses(door 2 ,controller 1 ))

于 2013-12-11T14:07:26.307 に答える