Re: Representation of SWRL expressions in OWL-S

Daniel Elenius wrote:

>
> In the OWL-S examples, we have SWRL-expressions such as
>
>    <expr:SWRL-Condition rdf:ID="ExpressCongoBuyAcctExists">
>      <rdfs:label>hasAcctID(ExpressCongoBuySignInInfo, 
> ExpressCongoBuyAcctID)</rdfs:label>
>      <expr:expressionLanguage rdf:resource="&expr;#SWRL"/>
>        <expr:expressionBody rdf:parseType="Literal">
>          <swrlx:AtomList>
>            <rdf:first>
>              <swrlx:IndividualPropertyAtom>
>                <swrlx:propertyPredicate rdf:resource="#hasAcctID"/>
>                <swrlx:argument1 
> rdf:resource="#ExpressCongoBuySignInInfo"/>
>                <swrlx:argument2 rdf:resource="#ExpressCongoBuyAcctID"/>
>              </swrlx:IndividualPropertyAtom>
>            </rdf:first>
>            <rdf:rest rdf:resource="&rdf;#nil"/>
>          </swrlx:AtomList>
>        </expr:expressionBody>
>    </expr:SWRL-Condition>
>
>
> I have two concerns about this format:
>
> 1) Aren't all SWRL expressions supposed to be instances of the 
> http://www.daml.org/rules/proposal/swrl.owl#Imp class? 

No, a SWRL expression body is supposed to be an AtomList which is simply 
the conjunction of atoms in the list.

> I know that this was the case in an intermediate
> version of OWL-S, but this version does not seem to be available 
> anymore. Expressions were rules with
> empty heads (bodies?).

I think at some point it was considered to use rules with empty bodies. 
Then the expression would be written as the head of the rule. SWRL 
defines empty body to be trivially true so the implication is true 
whenever the head is true. But using rules in this way would be more 
confusing so it was decided to use AtomList's directly.

>
> 2) If this is not the case, i.e. we can use constructs from SWRL as we 
> feel like it, 

No, we can not. Only AtomList's are allowed to be used. If the SWRL 
expressions were not defined as literals we would have the following 
restriction:

 SubClassOf(SWRL-Expression restriction(expressionBody allValuesFrom(swrl:AtomList))


> then why do we have
> an AtomList in the example above, where there is only one Atom? (The 
> same occurs all over BravoAirProcess.owl
> and CongoProcess.owl). We could just put the IndividualPropertyAtom 
> directly under expressionBody.

To be consistent we are always using AtomLists (in these cases lists 
with one element).

>
>
> And some bugs in the expressions:
>
> 3) In BravoAirProcess.owl, swrl expressions refer to 
> #hasFlightItinerary, but this
> property is never declared. In CongoProcess.owl, there is a reference 
> to an undeclared #creditNumber
> property (should be #cardNumber I think).

Yes, there are couple of errors in the expressions (some others were 
also reported). I'm hoping we will have better examples for the next 
version.

Regards,
Evren

>
>
> /Daniel
>
>
>
>
>
>
>

Received on Friday, 4 February 2005 06:36:22 UTC