- From: Chris Parish <chris.parish@oxfordcc.co.uk>
- Date: Wed, 4 Jan 2006 13:20:21 -0000
- To: <public-sws-ig@w3.org>
I am currently attempting to describe web services using OWL-S in such a way that I can perform automatic web service composition. Consider the following simple example. Ontology -------- Ontology has a class Person with properties ID1, ID2, Name, where ID1/ID2 are integer values and Name is a string. Web Services ------------ Two web service operations exist which obtain ID2 given ID1 and Name given ID2, ie: int ID1toID2(int ID1) String ID2toName(int ID2) Composition ----------- I want to generate a composition which given a person's ID1 returns their Name. Currently I am using a custom format to describe the web services using the following rules: (?person hasData ID1) -> (?person hasData ID2) (?person hasData ID2) -> (?person hasData Name) By defining statement (?person hasData ID1) I then test whether (?person hasData Name) can be inferred (I am using the Jena generic rule reasoner for this) and from the resulting derivation the sequence of calls required can be determined. I am now trying to describe the services using a standard format (OWL-S) but am not really clear how this should be achieved. The hasInput/Output Process properties are defined with a parameterType which is either a class or an XSD datatype, but what I want to do is define as a class/property pair, eg. Person/ID1 otherwise a full semantic description of the parameter is not possible. Is this a limitation of OWL-S or a result of my misunderstanding? If I can achieve a satisfactory representation of the above simple case within OWL-S, I have some more complex situations which need to be handled: 1) If their is a web service which requires ID1 of two people where the two people are related (eg. person1 hasMother person2, where hasMother is a further property added to the ontology), how could this be handled so that the two different ID1 parameters can be distinguished. 2) If the web services operate on arrays instead of single values, eg: int[] Array_ID1toID2(int[] ID1) String[] Array_ID2toName(int[] ID2) How can these services be handled distinctly from those above. Any ideas are most welcome. Thank you Chris Parish ................................................................................................... This message and any attachments may contain OCC confidential or proprietary information. If you are an unintended recipient: (i) immediately delete the information contained herein and contact the author; and (ii) do not disclose, distribute, or duplicate any information from this message or any of its attachments.
Received on Thursday, 5 January 2006 03:38:59 UTC