- From: Drew McDermott <drew.mcdermott@yale.edu>
- Date: Thu, 16 Dec 2004 14:43:17 -0500
- To: "Camara Melgosa, Javier" <JCAMARA@softwareag.es>
- Cc: public-sws-ig@w3.org
> [Javier Camara] > > I have an scenario in which want to find out whether a person is working at > a given date and time, i.e. isWorking(Person,Time) . There are two available > services for performing this, one telling me whether isWorkingTime(Time) and > other telling whether isOnHoliday(Person,Date). Thus, one can say that > > isWorking(Person,Time) == isWorkingTime(Time) & not > isOnHoliday(Person,Date(Time) ) > > Now, how would it be better to model this in OWL-S? Assuming the existing > services have OWL-S descriptions including no effect and with respective > outputs of isWorkingTime(Time) and isOnHoliday(Person,Date), I can see at > least three options: > > 1) In the requester profile,specify a required output of > isWorking(Person,Time) , and then define using OWL that > isWorking(Person,Time) is equivalent to isWorkingTime(Time) & not > isOnHoliday(Person,Date(Time) ) > > 2) In the requester profile, directly specify a required output of > isWorkingTime(Time) & not isOnHoliday(Person,Date(Time) ) > > 3) Have the requester profile specifying an output of > isWorking(Person,Time), and create a new composite process description whose > output is isWorking(Person,Time) and whose model invokes the two existing > services in a proper way > > I would choose option 1) , but it looks to me that most OWL-S processors > would handle better option 3). Any opinion on this? Would option would be > better? Are there other options? I like option (1) as well, although I would try to be a bit more precise in specifying the outputs and effects. What is requested is a service such that invoking it will produce a boolean-literal output B with effect "knows-value-is(client, isWorking(Person,Time), B)." However, that doesn't address your main question. I don't think an Owl-S processor's job is to figure out how to achieve the requested goal. You need a planner with a reasoning engine clever enough to infer that if P & Q <-> R, then one way to achieve KG = knows-value(client, R) is to achieve knows-value-is(client,P,true) & knows-value-is(client,Q, true) OR knows-value-is(client,P,false) OR knows-value-is(client,Q,false) (omitting several important details). If we schematize this as KG = ((KG1 & KG2) OR KG3 OR KG4) then the planner must figure out that service 1 will achieve KG1 or KG3, and service 2 will achieve KG2 or KG4, after which it will have achieved KG. -- -- Drew McDermott Yale University Computer Science Department
Received on Thursday, 16 December 2004 19:42:25 UTC