- From: Evren Sirin <evren@cs.umd.edu>
- Date: Wed, 29 Dec 2004 01:46:41 -0500
- To: collin@w3china.org
- CC: public-sws-ig@w3.org
Collin Hsu wrote:
> I noticed there are two flavors of Condition description to state a
> book is out of book.
>
> While
>
> {{
>
> <expr:SWRL-Condition rdf:ID="ExpressCongoBuyBookOutOfStock">
> <expr:expressionBody rdf:parseType="Literal">
> <swrlx:AtomList>
> <rdf:first>
> <swrlx:ClassAtom>
> <swrlx:classPredicate>
> <owl:Restriction>
> <owl:onProperty rdf:resource="#hasBook"/>
> <owl:allValueFrom rdf:resource="OutOfStockBook"/>
> </owl:Restriction>
> </swrlx:classPredicate>
> <swrlx:argument1 rdf:resource="#ExpressCongoBuyBookISBN"/>
> </swrlx:ClassAtom>
> </rdf:first>
> <rdf:rest rdf:resource="&rdf;#nil"/>
> </swrlx:AtomList>
> </expr:expressionBody>
> </expr:SWRL-Condition>
> }}
>
> indicates that the instance of OutOfStockBook class is actually a copy
> of a book,
>
I guess it would be more clear to write this condition as:
hasISBN(?aBook, ExpressCongoBuyBookISBN) & OutOfStockBook(?aBook)
Note that this expression is equivalent to the above expression since
hasBook is the inverse of hasISBN (and assuming that there is only one
book associated with an ISBN number). So this condition says that there
is a book identified by the ExpressCongoBuyBookISBN and that book is out
of stock.
> the following two condition description give the opposite indication.
>
> {{
>
> <expr:SWRL-Condition rdf:ID="FullCongoBuyBookOutOfStock">
> <expr:expressionBody rdf:parseType="Literal">
> <swrlx:AtomList>
> <rdf:first>
> <swrlx:DatavaluedPropertyAtom>
> <swrlx:propertyPredicate rdf:resource="&profileHierarchy;#title"/>
> <swrlx:argument1>
> <swrlx:Variable rdf:ID="#aBook"/>
> </swrlx:argument1>
> <swrlx:argument2 rdf:resource="#FullCongoBuyBookName"/>
> </swrlx:DatavaluedPropertyAtom>
> </rdf:first>
> <rdf:rest>
> <swrlx:AtomList>
> <rdf:first>
> <swrlx:ClassAtom>
> <swrlx:classPredicate rdf:resource="#OutOfStockBook"/>
> <swrlx:argument1 rdf:resource="#aBook"/>
> </swrlx:ClassAtom>
> </rdf:first>
> <rdf:rest rdf:resource="&rdf;#nil"/>
> </swrlx:AtomList>
> </rdf:rest>
> </swrlx:AtomList>
> </expr:expressionBody>
> </expr:SWRL-Condition>
> }}
>
> {{
>
> <expr:SWRL-Condition rdf:ID="BookOutOfStock">
> <expr:expressionBody rdf:parseType="Literal">
> <swrlx:AtomList>
> <rdf:first>
> <swrlx:DatavaluedPropertyAtom>
> <swrlx:propertyPredicate rdf:resource="&profileHierarchy;#title"/>
> <swrlx:argument1>
> <swrlx:Variable rdf:ID="#aBook"/>
> </swrlx:argument1>
> <swrlx:argument2 rdf:resource="#LocateBookBookName"/>
> </swrlx:DatavaluedPropertyAtom>
> </rdf:first>
> <rdf:rest>
> <swrlx:AtomList>
> <rdf:first>
> <swrlx:ClassAtom>
> <swrlx:classPredicate rdf:resource="#OutOfStockBook"/>
> <swrlx:argument1 rdf:resource="#aBook"/>
> </swrlx:ClassAtom>
> </rdf:first>
> <rdf:rest rdf:resource="&rdf;#nil"/>
> </swrlx:AtomList>
> </rdf:rest>
> </swrlx:AtomList>
> </expr:expressionBody>
> </expr:SWRL-Condition>
> }}
>
>
This condition in short form is:
hasTitle(?aBook, LocateBookBookName) & OutOfStockBook(?aBook)
This is exactly same as the first condition but uses the title of the
book to identify the book. This is because the input to ExpressCongoBuy
is an ISBN number but the input to LocateBook is the title of the book.
> Could somebody tell me why or something I missed? Thanks.
>
>
>
> Finally I 'd like to list some typos I found in the Congo examples.
>
Thanks for pointing these out. The expressions in the examples have not
been fully tested mainly because there wasn't any tool that would parse
the SWRL conditions from literals and validate them with respect to the
OWL-S definitions. I'm now working on a tool that would validate the
conditions and expressions so hopefully all the typos in the expressions
will be found and fixed.
Regards,
Evren
>
> 1) <swrlx:argument2 rdf:resource="#ExpressCongoBuyISBN"/>
>
> The URIref should be "#ExpressCongoBuyBookISBN".
>
> 2) <owl:allValueFrom rdf:resource="OutOfStockBook"/>
> The URIref should be "#OutOfStockBook".
>
> 3) <swrlx:argument1 rdf:resource="#ExpressCongoBuyShipment"/>
>
> "ExpressCongoBuyShipment" is undefined in the document.
>
> 4) <swrlx:argument1 rdf:resource="#FukkCongoBuyShipment"/>
> The URIref should be "#FullCongoBuyshipment".
>
> 5) <swrlx:argument2 rdf:resource="#ExpressCongoAcctID"/>
> The URIref should be "#ExpressCongoBuyAcctID".
>
> 6) <swrlx:Variable rdf:ID="#aBook"/>
>
> The XML Name should be "aBook"
>
> Cheers,
> Collin
>
>
> ===================================================
> Please feel free to email me once more with a changed title (starting
> with the prefix "[ByeSpam]" is recommended) if you have not received
> my reply.
> The spam guard sometimes puts email in the wrong box.
>
Received on Wednesday, 29 December 2004 06:47:36 UTC