Title: OWLS for Amazon
1OWL-S for Amazon
- Amazon.com publishes a WS to browse its DB and
reserve goods - At the time of this experiment Amazon published
only the buyer WS - Interaction limited to browsing the server DB and
reserving products purchase had to be done
through the Web site - OWL-S description generated from the WSDL that
describes the Amazon WS further annotation - OWL-S VM has been used to interact with Amazon to
find and reserve books
2Translation Problems
- Translation Problem Amazon uses only keyword
searches, but each search can produce any
product. - We had to restrict to the type of searches that
were guaranteed to return books and CDs - Data problem translation from the Amazons data
structure to the ontology used to describe IO - Amazon describes all its products in the same
data structure no distinction between books and
dvd players - The Grounding specification includes a mapping
from the content of the Amazons messages to the
books ontologies that we used
3Process Model for Amazon.com
Shop BrowseManage Account
- Process Model allows three operations
- Browse Allows the user to look for books
available at Amazon - Manage Account check content of the shopping
cart, add and remove products - Shop a sequence of the previous two. First
browse to find the product, the put it in the
shopping basket
Browse
Manage Account
Process Model for Amazon.com
4Problem for automatic processing Handling
Choices
- 11 valid execution paths
- Each of them has a different outcome
Client should select the correct path to obtain
the results it desires
Find Book
Find CD
We solved the problem by computing the path that
lead to the expected effects
correct(ProcessModel,In,Out) ? hasProcess(Process
,ProcessModel) correct(Process ,In,Out,In,Out)
correct(composite(Process,List,In,Out))
? executable(list,In), expectedValue(oneOf(List)
,Out)
executable(composite(Process,List),In)
? executable(list,In),
exepectedValue(composite(Process,List),
out) ? expectedValue(oneOf(List)
)
executable(atomic(Process),In) ? In ?
inputs(Process)
exepectedValue(atomic(Process),Out) ? Out ?
Outputs(Process)