Re: the difference of the data type between WSDL and OWL-S

dink wrote:

> Hello, I am a beginner in the area of OWL-S. I have some questions
> about how to map the datatype in WSDL to the parameter type in OWL-S.
> There is a WSDL document below:
> <s:complexType name="bookInfo">
> <s:sequence>
> <s:element minOccurs="0" maxOccurs="1" name="isbn" type="s:string" />
> <s:element minOccurs="0" maxOccurs="1" name="title" type="s:string" />
> <s:element minOccurs="0" maxOccurs="1" name="author" type="s:string" />
> <s:element minOccurs="0" maxOccurs="1" name="pubdate" type="s:string" />
> <s:element minOccurs="0" maxOccurs="1" name="publisher"
> type="s:string" />
> <s:element minOccurs="0" maxOccurs="1" name="format" type="s:string" />
> <s:element minOccurs="0" maxOccurs="1" name="imgUrl" type="s:string" />
> <s:element minOccurs="0" maxOccurs="1" name="timestamp"
> type="s:string" />
> </s:sequence>
> </s:complexType>
> <wsdl:message name="GetInfoIn">
> <wsdl:part name="BookName" type="s:string" />
> </wsdl:message>
> <wsdl:message name="GetInfoOut">
> <wsdl:part name="Body" element="tns:bookInfo" />
> </wsdl:message>
>
> <wsdl:operation name="GetInfo">
> <wsdl:input message="tns:GetInfoIn" />
> <wsdl:output message="tns:GetInfoOut" />
> </wsdl:operation>
> Its corresponding OWL-S document is described below:

Note that this OWL-S description is just an example I posted and in no
way is the only possible way to describe the service in OWL-S.

> <process:AtomicProcess rdf:ID="BookFinderProcess">
> <process:hasInput rdf:resource="#BookName" />
> <process:hasOutput rdf:resource="#BookInfo" />
> </process:AtomicProcess>
> <process:Input rdf:ID="BookName">
> <process:parameterType
> rdf:resource="http://www.w3.org/2001/XMLSchema#string" />
> <rdfs:label>Book Name</rdfs:label>
> </process:Input>
> <process:Output rdf:ID="BookInfo">
> <process:parameterType
> rdf:resource="http://www.aktors.org/ontology/portal#Book" />
> <rdfs:label>Book Info</rdfs:label>
> </process:Output>
> My question is whether the parameter type in OWL-S can choose either
> XML Schema datatype or OWL class to be the parameter type.

You can choose either as the parameter type.

> I guess:
> If the parameter type is simple
> the parameter type in OWL-S will be one of theXML Schema such as string
> else if the parameter type is complex
> the parameter type in OWL-S will be the OWL class
> Is that right?

This is generally the case but there is nothing that forbids using
complex XML Schema types as parameter types. This is also true for using
XSD types for the range of datatype properties. You can use a complex
XSD type as the range of a OWL datatype property but generally you will
want to define an OWL class to represent that information because there
is not much reasoning you can do with XSD types.

> I am so confused.
> If now I want to use only isbn and title to describe the bookInfo,
> would I change the content of the
> http://www.aktors.org/ontology/portal#Book?

I'm not sure what you mean by "changing the content" You can still use
the Book class as defined in that ontology even if you provide only isbn
and title information. Since OWL has open world semantics the instance
you have will still be valid. Of course you will need to change the XSLT
defined in the OWL-S accordingly.

> Or how can I find a way to still use the ontology
> http://www.aktors.org/ontology/portal#Book to represent only the isbn
> and title?

You may also have a service with two outputs, title and isbn, who has
parameter types xsd:string. Then you can use the Result structure to
define the relation between these values and a book instance.

> Many researchers use a semantic matching method to compare the degree
> of similarities between the inputs/outputs in the requirement and the
> advertisement in the area of
> the match of web services. If the parameter type in OWL-S is a XML
> Schema data type such as string, how can we compare this kind of
> parameter types since XML Schema is not
> an ontology.

You can still test for subsumption between datatypes. For example,
xsd:byte is subsumed by xsd:int which is subsumed by xsd:long. Based on
these subsumption relation you can define the "exact", "relaxed" or
"disjoint" match similar to the ones defined for OWL classes. But if you
are using complex XSD types then you won't find many reasoners (actually
I don't know if there is any) that supports reasoning with those types.
If you are using simple XSD types then reasoners like Pellet will help
you to find the subsumption relations between these datatypes.

Regards,
Evren

Received on Wednesday, 22 December 2004 06:56:09 UTC