Hello,

I'm having a somewhat difficult time understanding how I can use
inferencing and user-defined rules.

My example scenario is as follow:
  - There are two appliances available in a room: TV and Light.
  - There are two tasks available in a room: WatchingTVTask and
SleepingTask.

If TV and light are turned ON, room task is WatchingTVTask.
If TV and light are turned OFF, room task is SleepingTask.


I'm wondering how I can infer "Room task is WatchingTVTask" from TV and
light status.
In other words, I would like to infer a triple such as
    (eg:Room eg:executes eg:WatchingTVTask)
from explicit triples like
    (eg:TV eg:hasState eg:ON) and (eg:Light eg:hasState eg:ON)

One simple/naive way of doing this would be to use a user-defined rule such
as
"(eg:TV eg:hasState eg:ON), (eg:Light eg:hasState eg:ON) -> (eg:Room
eg:executes eg:WatchingTVTask)"

However, this seems very hard-coded approach as appliances are hard-coded.
There is always a chance for WatchingTVTask to change its composed
appliances.

Is there any other good way to deduce (eg:Room eg:executes
eg:WatchingTVTask)?

Any forms of advice would be greatly appreciated.

Thanks,

Jason Lim

-- 
Junsung Lim

Reply via email to