Re: Doubt about Parameter during execution

Tatiana Vieira wrote:

> Hi Evren,
>  
> Sorry for the inconvenience...but as far as we discuss it, I get more 
> doubts....
>  
> I'm really very confused with this terminology...Indeed, OutputA is 
> not of type books:Book as I wrote before, but it represents a data of 
> type books:Book. So, in my understanding, OutputA just serves as a 
> indication of the type of the output the service will generate, and 
> not as the output data itself. Roughly speaking, OutputA doesn't have 
> any purpose (sorry for this very "restrictive" word) during execution, 
> because what we have to query is the produced data, I mean the 
> books:Book info produced by the process. Ok?

Yes, that is pretty much it.

>  
> As you exemplified, I could write a piece of code to represent the 
> data generated by the process execution. This code would contain the 
> data itself, the Book data for instance.
>  
> ><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>
>
> At this piece of code, is "BookInfo" the Output of the process? 
> (process:Output rdf:ID="BookInfo"...process:parameterType 
> books:Book) ? I'm trying to understand it...

Yes, exactly. What I had in mind was a process description like this:

<process:AtomicProcess rdf:ID="FindBook">
    <process:hasInput>
        <process:Input rdf:ID="BookName">
            <process:parameterType 
rdf:datatype="&xsd;anyURI">&xsd;#string</process:parameterType>
        </process:Input>
    </process:hasInput>
    <process:hasOutput>
        <process:Output rdf:ID="BookInfo">
            <process:parameterType 
rdf:datatype="&xsd;anyURI">&books;#Book</process:parameterType>   
        </process:Output>
    </process:hasOutput>
</process:AtomicProcess>

>  
> I think the parameterType makes confusion in my mind!!!! In the same 
> way, did now the sintax of Parameter. As described at Process.owl 
> file, a Parameter can have at minimum one parameterType. What does it 
> mean? If it has more than one type, doesn't it have to have also the 
> same number of parameterValue? (I thought it as an structured 
> parameter) How can one Parameter have more than one type?

Hmm, that I don't know. I think that it should be a cardinality (not 
minCardinality) restriction.

Regards,
Evren

>  
> Thank you for the help and sorry for the confusion with 
> FullCongoBuyBookName...sure it is an Input! I picked up the wrong example!
>  
> Tatiana.
>
>
> */Evren Sirin <evren@cs.umd.edu>/* wrote:
>
>     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:
>     >
>     >
>     > ...
>     >
>     &g! t;
>     >
>     > 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 precondition! s 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:
>
>
>
>
>
>
>     Name of
>     the book
>
>
>
>
>
>
>
>     ...
>
>
>
>
>
>
>
>     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 /* 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 proc! esses
>     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 Sir! in /* 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 te! mpo 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
>     > -
>     > 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 Wednesday, 5 January 2005 03:54:09 UTC