- From: Marco Luca Sbodio <marco.sbodio@hp.com>
- Date: Thu, 12 Jan 2006 03:13:00 -0500 (EST)
- To: "Battle, Steven Andrew" <steve.battle@hp.com>
- Cc: "Sbodio, Marco Luca" <marco.sbodio@hp.com>, "Chris Parish" <chris.parish@oxfordcc.co.uk>, public-sws-ig@w3.org
On Mon, January 9, 2006 8:23, Battle, Steven Andrew said: > Chris - are Marco and I answering the original question or going way off > beam? > Comments inline.. I hope so. I still add some comments below, and try to answer Steve questions. > >> -----Original Message----- >> From: Sbodio, Marco Luca >> Sent: 08 January 2006 15:16 >> To: Battle, Steven Andrew >> Cc: Chris Parish; public-sws-ig@w3.org >> Subject: RE: Web Service Composition using OWL-S >> >> On Thu, January 5, 2006 9:28, Battle, Steven Andrew said: > ... >> >> -----Original Message----- >> >> From: public-sws-ig-request@w3.org >> >> [mailto:public-sws-ig-request@w3.org] On Behalf Of Chris Parish >> >> Sent: 04 January 2006 13:20 >> >> To: public-sws-ig@w3.org >> >> Subject: Web Service Composition using OWL-S > >> >> (?person hasData ID1) -> (?person hasData ID2) >> >> (?person hasData ID2) -> (?person hasData Name) >> >> >> > >> > I assume that ID1, ID2, Name here aren't variables but a convention >> > for asserting that fact that you have ID1, ID2... >> > You probably need to quote those values and place hasData in a >> > suitable namespace. :) Incidentally, you really only need to make a >> > unary assertion about person here eg. (?person rdf:type eg:hasID1). >> >> I think that things are slightly different. Chris writes that >> he has an Ontology defining Person: >> [[ >> Ontology has a class Person with properties ID1, ID2, Name, >> where ID1/ID2 are integer values and Name is a string. >> ]] >> > > Yes, you're right, but then why are the rules above are expressed the > way they are using 'hasData'? What they appear to let you do is infer > that the composition works prior to runtime, ie. without specific values > for ID1, ID2 and Name. I admit I was sticking to the rules as stated. > Maybe they could be expressed differently. The knowledge (epistemic) > precondition of an input, say ID1in, has been described as knows(ID1). > Similarly, for an output we would have eg. knows(ID2). I think 'hasData' > may be used in the same sense as 'knows' here. In that case, these > preconditions and effects are implicit in the (proposed) semantics. But, > as you say, this has little to do with the ontology of Personhood. > I'm not sure why Chris introduced hasData. I think it's just a representation of the epistemic knowledge, but IMHO it's not really necessary and everything can be expressed without it (see my previous post). > There's a neat idea in your OWL-S that's a bit camouflaged. The way that > conditions are being used to create a connection between OWL-S bindings > and an OWL/RDF model being maintained by the client. What you seem to be > doing with the preconditions and conditional result below is to bind > ID1in to the ID1 property of a person on the way in, and to bind ID2out > to the conditional ID2 property of the same person (it's scope is the > atomic process). I agree this is better expressed as a result condition > than an effect, which really should be reserved for world-changing > events. > Correct: I'm in fact thinking of having a connection between OWL-S and an RDF model maintained by the client. > Something that perplexes me is the evaluation of these result > conditions. They're normally explained as "if the result condition is > true then the associated outputs and effects are obtained". However, > this is typically useless to a client who isn't in a position to > evaluate the condition directly (eg. Is the book in stock). What the > client receives is a set of outputs that normally tell them what > happened (eg. The book you ordered was out of stock). So at runtime we > have to infer the condition from the outputs. > > Should we assume that the relationship between a condition and > output/effect is 'iff'? eg. Knows(ID2out) iff ID2(Person, ID2out) > From this I can bind ID2out in the output and assert ID2(Person,ID2out) > as a logical consequence. However, this gets a bit hairy if the value of > the output is important (eg. output="out of stock" iff outOfStock(book), > output="in stock" iff not(outOfStock(book)))If we only have an > implication from left to right, knows(ID2out) if ID2(Person, ID2out), > then we can't do the inference from the output alone and we can't assert > the ID2 property. The OWL-S 1.1 technical documentation <http://www.daml.org/services/owl-s/1.1/overview/> says [[ The inCondition property specifies the condition under which this result (and not another) occurs. The withOutput and hasEffect properties then state what ensues when the condition is true. ]] {see paragraph "5.2 Process Parameters and Results"/"Conditioning Outputs and Effects"} >From this I think I can assume that the relationship between a condition and output/effect is 'iff': if the client gets the result, then the condition is true; and if the condition is true, then the client gets the result. The client isn't in a position to evaluate the condition directly (same situation as the example of CongoProcess: "Is the book in stock"), but knows that it gets the result iff the condition is true. Is this a misinterpretation?
Received on Thursday, 12 January 2006 08:13:07 UTC