Re: Doubt about Parameter during execution

Tatiana Vieira wrote:

> Evren,
>  
> > OutputA is an instance itself so you wouldn't generate an instance of
> > that individual. Note that OutputA is the description of the output
> > parameter and different from the values that are retrieved from the Web
> > Service.
> Ok, I understood OutputA is the instance, but what do you mean with 
> "different from the values that are retrieved from the Web Service"? 
> If it is the instance of the process output, how can I get the output 
> data? If OutputA is of type books:Book, so the output data is 
> something like:
>  
> <myProcessNamespace:OutputA>
>   <books:hasTitle>...</books:hasTitle>
>   <books:hasAuthor rdf:resource="..."/>
> </myProcessNamespace:OutputA>
>
>   Isn't it correct?

No, it is not. This description defines an anonymous individual that is 
an instance of OutputA. It means that OutputA is a class which is not 
true. OutputA is an individual of type process:Output.

> It's because OutputA is defined as an output of my process (in its 
> namespace), and OutputA is of type books:Book, ok?

Maybe there is a confusion with the terminology here. OutputA is NOT of 
type books:Book. It would be of type books:Book if there was a statement 
(OutputA rdf:type books:Book) or it could be inferred from other 
statements.On the other hand, the statement (OutputA 
process:parameterType books:Book), describes that the value Web Service 
will return is going to be of type books:Book (as the example in my 
previous e-mail).

>  
> > you need to use the instance
> > returned by the service. This is how the preconditions and effects are
> > evaluated anyway. If the expression in the effect refers to an output
> > parameter then after execution the value returned from the service is
> > replaced in the expression and applied to the current state.
> Yes, it's what I want...to have the value generated by the service!!!
>  
> In the Congo process example, for instance, we have a similar case. 
> FullCongoBuyBookName is an output of FullCongoBuy process

Actually it as an input.

> , but FullCongoBuyBookName is of type xsd;#string. In this case, how 
> does the generated string value is queried?

There is no direct representation of Web Service execution results in 
OWL-S. But you could easily define your own class to represent that 
information. I guess you would want to represent at least three 
different things, process that was executed, the input values sent, the 
output values received. In the case of data values you can use datatype 
properties. For example, suppose FindBook process accepts an xsd:string 
input and returns the book information as a books:Book instance. Then 
you could have something like this to describe the result:

<PerformResult>
    <performedProcess rdf:resource="#FindBook">
     <hasInputValue>
            <InputValue>
                    <input rdf:resource="BookName"/>
                    <hasDataValue rdf:datatype="&xsd;#string">Name of 
the book</hasDataValue>
            </InputValue>
     </hasInputValue>
     <hasOutputValue>
            <OutputValue>
                    <output rdf:resource="BookInfo"/>
                    <hasValue>
                         <books:Book>
                              <books:hasTitle>...</books:hasTitle>
                              <books:hasAuthor rdf:resource="..."/>
                         </books:Book>
                    </hasValue>
            </OutputValue>
     </hasOutputValue>
</PerformResult>

If you generate descriptions like this (maybe with additional 
information like a timestamp, etc.), put them in your KB then you can 
query them any way you like.

Regards,
Evren

>  
> Sorry for many doubts,
> Tatiana.
>  
>
> */Evren Sirin <evren@cs.umd.edu>/* wrote:
>
>     Tatiana Vieira wrote:
>
>     > Hi Evren,
>     >
>     > I understood that it's expected that everybody explicitly says
>     that a
>     > Parameter is an Input or an Output, for instance, instead of simply
>     > saying that it's a Parameter. However, I continue with my doubt...
>     >
>     > Thinking about the execution of the process I specified, if I
>     put that
>     > a process A has as output the parameter named "OutputA"
>     > (process:Output rdf:ID="OutputA"), which is of type MyClass,
>
>     So we have: OutputA parameterType MyClass
>
>     > is it expected that during execution an instance of OutputA is
>     generated?
>
>     OutputA is an instance itself so you wouldn't generate an instance of
>     that individual. Note that OutputA is the description of the output
>     parameter and fifferent from the values that are retrieved from
>     the Web
>     Sservice.
>
>     ! > I mean, will the execution generate, for example, an instance
>     > OutputA_a that is of type MyClass?
>
>     This is not the same as the above but it is more accurate. For
>     example,
>     if the parameterType of the output is books:Book (assuming Book is a
>     class defined in the books ontology) then when you execute the
>     service
>     you may recevie a result like this from the service:
>
>
>     ...
>
>     ...
>
>
>     There may or may not be an ID associated with this Book instance
>     depending on how the service works.
>
>     >
>     > I'm asking it because I'm constructing a system that have some
>     rules
>     > associated with some variables, specially with the processes output
>     > variables and I (the system) must test if the value of one
>     output was
>     > "X", for example. So, how do I have to test it? If an inst! ance
>     is the
>     > generated, I would have to test the value of this instance...if
>     not, I
>     > would have to test the value of OutputA, don't I?
>
>     I'm not sure what you mean by "the value of OutputA" but as far as I
>     understand your problem it seems that you need to use the instance
>     returned by the service. This is how the preconditions and effects
>     are
>     evaluated anyway. If the expression in the effect refers to an output
>     parameter then after execution the value returned from the service is
>     replaced in the expression and applied to the current state.
>
>     Hope this helps,
>     Evren
>
>     >
>     > Thank you again,
>     > Tatiana.
>     >
>     >
>     > */Evren Sirin /* wrote:
>     >
>     >
>     > Hi Tatiana,
>     > The "instantiation" of Parameter class is not related to the
>     > execution
>     > of processes. It is related to the OWL individuals found in the
>     OWL-S
>     > descriptions. It simply says that we don't expe! ct anybody to
>     create a
>     > "direct" instance of Parameter class, i.e. having only one type
>     > assertion for a parameter like this:
>     >
>     >
>     >
>     > In your OWL-S description, it is expected (though not mandatory)
>     that
>     > you will explicitly say that a parameter is an input or output,
>     > i.e. by
>     > saying
>     >
>     > OR
>     >
>     > There are also different subclasses of Parameter class defined in
>     > OWL-S
>     > 1.1, such as Local and ResultVar, which you might use. Of course
>     > you can
>     > also extend the OWL-S ontologies to define your own subclasses
>     of the
>     > Parameter class.
>     >
>     > Regards,
>     > Evren
>     >
>     >
>     >
>     > Tatiana Vieira wrote:
>     >
>     > > Hi people,
>     > > In the "OWL-S: Semantic Markup for Web Services" document,
>     > > Section 4.2.3, when there is a description about
>     "hasParameter", we
>     > > found the following sentence: "...we do not expe! ct this
>     class to be
>     > > instantiated. It's role is solely making domain knowledge
>     > explicit".
>     > > What does it mean? What happens when a process is executed:
>     does it
>     > > create an instance of each output parameter class?
>     > > Thank you in advance,
>     > > Tatiana.
>     > >
>     > > __________________________________________________
>     > > Converse com seus amigos em tempo real com o Yahoo! Messenger
>     > > http://br.download.yahoo.com/messenger/
>     > >
>     >
>     >
>     >
>     ------------------------------------------------------------------------
>     > Yahoo! Acesso Grátis
>     > -
>     > Internet rápida e grátis. Instale o discador do Yahoo! agora.
>
>
> ------------------------------------------------------------------------
> Yahoo! Acesso Grátis 
> <http://br.rd.yahoo.com/mail/taglines/*http://br.acesso.yahoo.com/> - 
> Internet rápida e grátis. Instale o discador do Yahoo! agora. 

Received on Thursday, 30 December 2004 20:49:59 UTC