RE: Web Service Composition using OWL-S

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