- From: Sean Bechhofer <seanb@cs.man.ac.uk>
- Date: Wed, 28 Jan 2004 10:55:19 +0000
- To: public-sws-ig@w3.org
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