The distinct feature of the tool is the usage of Description Logics Reasoner (HermiT) that makes indifferent the way information is stored within an ontology.
The tool provides a translation of OWL 2 axioms into XML Schema elements as defined in the table:
|OWL 2 Entity||XML Schema Construct||Comments|
|owl:Class||xs:complexType||Only single class inheritance is supported. Generated complex type may be either extended or restricted depending on its properties.|
|owl:Datatype||xs:simpleType||Multiple inheritance is supported through a union variety.|
|owl:ObjectProperty||xs:element||Wherever it is possible local elements are used. Otherwise global elements with substitutions are created.|
|owl:DataProperty||xs:attribute, xs:element||For single properties (restricted to max = 1) attributes may be used.|
The first stage of processing is an ontology analysis with a closed world assumption. The objective is to extract all Universal and Existential Quantification axioms for any defined ontology class. This is done through a set of negations taking into account both properties and range hierarchies. The hierarchies are used to restrict a number of negations to be performed (if some property is not an xs:string, it makes no sense to check whether it is an xs:Name). In general negations look like:
Because properties are generally inherited (a general source of confusion is, for instance, Open Word assumption where properties are also "inherited" from children) some post-processing is still needed.
A second stage is the generation of the XML Schema, which can be divided into two steps:
- Property Analysis - a decision is made wherever a property must be represented either as an attribute or a local or global element.
- XML Type generation - type generation with proper inheritance or restriction based also on properties analysis.