Re: OWL-S in protege?

The following may be of use here. It details our experiences of trying 
to 1) validate the OWL-S ontologies and 2) load them into our tool. 2) 
is perhaps of less interest as the restrictions are due to our 
particular implementation. 1) is likely to be of more interest, however 
in the context of this thread (and message 
http://lists.w3.org/Archives/Public/public-sws-ig/2004Jan/0103.html)

---------------------------------------------------------------------

This document describes the steps necessary to load the OWL-S 1.0
ontology set [1] into OilEd 3.5.5 [2].

The process has two phases:

1. Getting the OWL-S ontologies (Service.owl, Profile.owl,
    Process.owl, Grounding.owl, time-entry.owl) to validate as OWL-DL
    with the OWL-Validator [3]

2. Some changes also need to be made to load an OWL-DL ontology to
    OilEd due to some existing limitations.

The lesson for OWL-S is that most of the violations of OWL-DL have to
do with mistakes in the representation rather than adding
expressivity. Therefore, it is advisable to reconsider all features of
OWL-S that push the ontology to OWL Full, especially since there are
few reasoners or editors that would cope with OWL-Full at the moment.

The lesson for OWL is that even engineers of OWL-Full ontologies
should carefully consider the validation messages one-by-one. Messages
introduced by syntactical errors cannot be distinguished from messages
that point to places where OWL-DL is violated "on purpose", i.e. for
adding to the expressive power of the ontology. Some intelligence
could be added to the Validator that highlights those messages which
are most certainly introduced by languages abuses (such as using
rdf:Property).

The "fixed" ontologies that are ready to be loaded in OilEd can be
found at http://www.cs.vu.nl/~pmika/owl-s/. (Fixed means that they
validate as OWL-DL with the OWL-Validator [3]). Note that if you
download the ontologies to the disk, the pointers (URIs) in the
owl:Ontology and owl:imports definitions need to be changed
appropriately.

General comments

-- Some of the ontologies lack an xml:base declaration, which puts the
    elements into the namespace of the source file. This is not a
    problem if the ontology is loaded from its original location on the
    web, but it becomes a problem loading it from disk.

-- time-entry.owl should say <owl:Ontology rdf:about="" > instead of
    just <owl:Ontology>, which creates a blank node

DL violations

-- Service.owl redefines rdf:Resource when it uses it as a
    domain/range of provides/providedBy.

-- All ontologies use at several places rdf:Property instead of
    owl:ObjectProperty or owl:DatatypeProperty. This is reason enough
    to fail validation...

-- Service.owl uses rdfs:List as a superclass for ProcessComponentList
    and ProcessComponentBag and as a range for sameValues.

-- Grounding.owl uses rdfs:List as a superclass for
    WsdlInputMessageMapList and WsdlOutputMessageMapList

-- Service.owl has a restriction on rdfs:first and rdfs:rest for the
    class ProcessComponentList and ProcessComponentBag.

-- Grounding.owl has a restriction on rdfs:first and rdfs:rest for the 
class WsdlInputMessageMapList and WsdlOutputMessageMapList

-- Service.owl defines the name property to range on
    rdfs:Literal. This can be fixed by having its range redefined to
    xsd:String.

-- Profile.owl does not define the has_process property as either
    owl:ObjectProperty or owl:DatatypeProperty. Note that
    owl:FunctionalProperty is not enough on its own!

-- Grounding.owl does not define the wsdlInputs,  wsdlOutputs,
    owlsProcess, wsdlOutputMessageParts, wsdlInputMessageParts
    properties as either owl:ObjectProperty or
    owl:DatatypeProperty. Note that owl:FunctionalProperty is not
    enough on its own!

-- Grounding.owl defines the DatatypeProperty xsltTransformationString
    and xsltTransformationURI to be subProperty of the
    xsltTransformation property, which is defined to be an
    ObjectProperty. (Likely to be a flaw in the ontology design.)

Changes needed due to limitations in OilEd

-- OilEd 3.5.5. cannot deal with cardinality constraints on a
    DatatypeProperty. In Process.owl this effects name at Process and
    invocable at CompositeProcess. In Grounding.owl this effects
    portType and operation at WsdlOperationRef, wsdlMessagePart and
    xsltTransformation at WsdlInputMessageMap and
    WsdlOutputMessageMap.

[1] http://www.daml.org/services/owl-s/1.0/
[2] http://oiled.man.ac.uk/
[3] http://phoebus.cs.man.ac.uk:9999/OWL/Validator

Cheers,

	Sean Bechhofer
	Peter Mika [pmika@cs.vu.nl]

-- 
Sean Bechhofer
seanb@cs.man.ac.uk
http://www.cs.man.ac.uk/~seanb

Received on Wednesday, 28 January 2004 05:56:01 UTC