I have a little problem with my ontology! We work on an ontology which manage a smart home. So we have objects like Tables, Doors, Lamps, .... A object that is smart has:
I have ObjectProperties for ex: hasActuator --> Door hasActuator DoorController
So now, the problem is the individuals! I would like that an object (Door_1 for example) has an actuator DoorController_1 but an other Door (Door_2) can't use the actuator DoorController_1 because he's already use !
How can I treat that? Which restrictions?
If I put hasActuator functional, it's only to say that a object can have only one actuator, but it's not that I want!
It sounds like you're trying to say an entity can't be in use by more than one thing at a time. This is a candidate for InverseFunctionalProperties. If you say that
uses is an inverse functional property
door1 uses controller1
door1 ≠ door2
Then you can infer that
not( door1 uses controller1 )
Stating that a property p is an inverse functional property says that
Functional (p): if p(x,y) & p(x,z) then y = z
Stating that a property p is inverse function is similar, but says that
InverseFunctional (p): if p(x,z) & p(y,z) then x = y
So, suppose you have the data:
uses(door 1 ,controller 1 )
door 1 ≠ door 2
Now consider the hypothesis that
uses(door 2 ,controller 1 )
From it and the data, you can derive
door 1 = door 2
But from the data we already have
door 1 ≠ door 2
and this is a contradiction, so the hypothesis must be false. Therefore:
not(uses(door 2 ,controller 1 ))
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.