previous next contents

11 June 2003

Appendix A. XML Schemas

An archive (schema.zip) that includes all the Schema drivers and modules is available.

Table of Contents


Appendix A.1 Introduction

A.1.1 Modularization of XML Schema

This appendix provides a set of XML Schema modules for the XML presentation syntax. The design goal of this modularization is to set up a core module common to all the OWL sublanguages and define additional modules to be customized for different sublanguages. Note that the modularization here is done for the adaptation to the three sublanguages, and is not designed for the arbitrary customization of OWL.

The top-level Schema document, which collects required modules together, is called a Schema driver. A driver document only includes other modules, and does not contain any markup declarations in itself. Modularization through drivers and modules is being done for the reformulation of the XHTML specification in XML Schema [XHTML m12n].

A.1.2 How to Use an XML Schema

XML Schemas do not have to be specified in an OWL document instance itself, but it may be specified in an instance by adding schemaLocation attribute (in the XML Schema instance namespace) to the root element. For example, if an author uses the XML Schema for OWL Lite, the start tag of the Ontology element may designate the location of the XML Schema as shown below:

<owlx:Ontology 
  xmlns:owlx="http://www.w3.org/2003/05/owl-xml"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.w3.org/2003/05/owl-xml
                      http://example.org/owl1-lite.xsd" >

A value of the xsi:schemaLocation attribute is a pair (or pairs) of URI references consisting of a namespace name and a location of an XML Schema. Note that a pair of URI references is only a hint for XML Schema processors, which may use alternative XML Schemas indicated by other names. For the further details of schema document access, see "4.3.2 How schema definitions are located on the Web" of the XML Schema Part 1 [XMLSchema-1]

Appendix A.2 Schema Drivers

Table of module inclusion is given below for each XML Schema driver.

Schema Drivers
A.2.1
OWL Lite
owl1-lite.xsd
A.2.2
OWL DL
owl1-dl.xsd
A.2.3
OWL Full
owl1-full.xsd
Schema
Modules
A.3.1 owl1-lite-core.xsd x x x
A.3.2 owl1-lite-classElementGroup.xsd x
owl1-dl-classElementGroup.xsd x x
A.3.3 owl1-lite-descriptionGroup.xsd x
owl1-dl-descriptionGroup.xsd x x
A.3.4 owl1-lite-restrictionGroup.xsd x
owl1-dl-restrictionGroup.xsd x x
A.3.5 owl1-lite-domainRangeGroup.xsd x
owl1-dl-domainRangeGroup.xsd x x
A.3.6 owl1-lite-dataPropInverseFuncAttr.xsd x x
owl1-full-dataPropInverseFuncAttr.xsd x
A.3.7 owl1-lite-objectPropInverseFuncAttr.xsd x
owl1-dl-objectPropInverseFuncAttr.xsd x x

A.2.1 OWL Lite Schema Driver

owl1-lite.xsd
<!--
"owl1-lite.xsd"
XML Schema Driver for the XML Presentation Syntax of OWL Lite 1.0
Copyright: 2002-2003 W3C (MIT, INRIA, Keio), All Rights Reserved.
See http://www.w3.org/Consortium/Legal/.
Revision: 2003/03/20 
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:owlx="http://www.w3.org/2003/05/owl-xml"
    targetNamespace="http://www.w3.org/2003/05/owl-xml"
    elementFormDefault="qualified"
    attributeFormDefault="qualified">

  <xsd:annotation>
    <xsd:documentation>
      XML Schema driver for OWL Lite. 
      The root element of OWL documents for the XML 
      presentation syntax must be the Ontology element. 
    </xsd:documentation>
  </xsd:annotation>

  <xsd:include schemaLocation="module/owl1-lite-core.xsd" /> 
  <xsd:include schemaLocation="module/owl1-lite-classElementGroup.xsd" /> 
  <xsd:include schemaLocation="module/owl1-lite-descriptionGroup.xsd" /> 
  <xsd:include schemaLocation="module/owl1-lite-restrictionGroup.xsd" /> 
  <xsd:include schemaLocation="module/owl1-lite-domainRangeGroup.xsd" /> 
  <xsd:include schemaLocation="module/owl1-lite-dataPropInverseFuncAttr.xsd" /> 
  <xsd:include schemaLocation="module/owl1-lite-objectPropInverseFuncAttr.xsd" /> 
</xsd:schema>

A.2.2 OWL DL Schema Driver

owl1-dl.xsd
<!--
"owl1-dl.xsd"
XML Schema Driver for the XML Presentation Syntax of OWL DL 1.0
Copyright: 2002-2003 W3C (MIT, INRIA, Keio), All Rights Reserved.
See http://www.w3.org/Consortium/Legal/.
Revision: 2003/03/20 
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:owlx="http://www.w3.org/2003/05/owl-xml"
    targetNamespace="http://www.w3.org/2003/05/owl-xml"
    elementFormDefault="qualified"
    attributeFormDefault="qualified">

  <xsd:annotation>
    <xsd:documentation>
      XML Schema driver for OWL DL
      The root element of OWL documents for the XML 
      presentation syntax must be the Ontology element. 
    </xsd:documentation>
  </xsd:annotation>

  <xsd:include schemaLocation="module/owl1-lite-core.xsd" /> 
  <xsd:include schemaLocation="module/owl1-dl-classElementGroup.xsd" /> 
  <xsd:include schemaLocation="module/owl1-dl-descriptionGroup.xsd" /> 
  <xsd:include schemaLocation="module/owl1-dl-restrictionGroup.xsd" /> 
  <xsd:include schemaLocation="module/owl1-dl-domainRangeGroup.xsd" /> 
  <xsd:include schemaLocation="module/owl1-lite-dataPropInverseFuncAttr.xsd" /> 
  <xsd:include schemaLocation="module/owl1-dl-objectPropInverseFuncAttr.xsd" /> 
</xsd:schema>

A.2.3 OWL Full Schema Driver

owl1-full.xsd
<!--
"owl1-full.xsd"
XML Schema Driver for the XML Presentation Syntax of OWL Full 1.0
Copyright: 2002-2003 W3C (MIT, INRIA, Keio), All Rights Reserved.
See http://www.w3.org/Consortium/Legal/.
Revision: 2003/03/20 
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:owlx="http://www.w3.org/2003/05/owl-xml" 
    targetNamespace="http://www.w3.org/2003/05/owl-xml"
    elementFormDefault="qualified"
    attributeFormDefault="qualified">

  <xsd:annotation>
    <xsd:documentation>
      XML Schema driver for OWL Full
      The root element of OWL documents for the XML 
      presentation syntax must be the Ontology element. 
    </xsd:documentation>
  </xsd:annotation>

  <xsd:include schemaLocation="module/owl1-lite-core.xsd" /> 
  <xsd:include schemaLocation="module/owl1-dl-classElementGroup.xsd" /> 
  <xsd:include schemaLocation="module/owl1-dl-descriptionGroup.xsd" /> 
  <xsd:include schemaLocation="module/owl1-dl-restrictionGroup.xsd" /> 
  <xsd:include schemaLocation="module/owl1-dl-domainRangeGroup.xsd" /> 
  <xsd:include schemaLocation="module/owl1-full-dataPropInverseFuncAttr.xsd" /> 
  <xsd:include schemaLocation="module/owl1-dl-objectPropInverseFuncAttr.xsd" /> 
</xsd:schema>

Appendix A.3 Schema Modules

A.3.1 Common Core Module

This module specifies a core module (owl1-lite-core.xsd) common to all the XML Schemas for OWL sublanguages, and is included into every Schema driver. This core module requires additional modules as specified in each Schema driver.

module/owl1-lite-core.xsd
<!--
"owl1-lite-core.xsd"
XML Schema Module for the XML Presentation Syntax of OWL 1.0
Copyright: 2002-2003 W3C (MIT, INRIA, Keio), All Rights Reserved.
See http://www.w3.org/Consortium/Legal/.
Revision: 2003/03/25
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:owlx="http://www.w3.org/2003/05/owl-xml"
    targetNamespace="http://www.w3.org/2003/05/owl-xml"
    elementFormDefault="qualified"
    attributeFormDefault="qualified"> 

<xsd:annotation>
  <xsd:documentation>
    This module specifies a core part of the XML Schemas  
    common to all the OWL sublanguages, and is included 
    in every Schema driver. 
  </xsd:documentation>
</xsd:annotation>

<xsd:import namespace="http://www.w3.org/XML/1998/namespace" 
            schemaLocation="xml.xsd">
  <!-- "http://www.w3.org/2001/xml.xsd" -->
  <xsd:annotation>
    <xsd:documentation>
      Get access to the xml: attribute groups for xml:lang
      as declared on 'Label' and 'Documentation' below 
    </xsd:documentation>
  </xsd:annotation>
</xsd:import>

<xsd:element name="Ontology"> 
  <xsd:annotation>
    <xsd:documentation>
      This is the root element of OWL documents 
      in the XML presentation syntax. 
    </xsd:documentation>
    <xsd:documentation>
      'owlx:classElements' group is included from either 
         + owl1-lite-classElementGroup.xsd [Lite] or 
         + owl1-dl-classElementGroup.xsd [DL/Full] 
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexType> 
    <xsd:sequence>
      <xsd:sequence minOccurs="0" maxOccurs="unbounded">
        <xsd:choice>
          <!-- Header elements --> 
          <xsd:element name="VersionInfo" type="xsd:string" />
          <xsd:element name="PriorVersion" 
                       type="owlx:ontologyAttrType" /> 
          <xsd:element name="BackwardCompatibleWith" 
                       type="owlx:ontologyAttrType" /> 
          <xsd:element name="IncompatibleWith" 
                       type="owlx:ontologyAttrType" /> 
          <xsd:element name="Imports" type="owlx:ontologyAttrType" /> 
          <xsd:element ref="owlx:Annotation" />

          <!-- Class elements --> 
          <xsd:element ref="owlx:Class" />
          <xsd:group   ref="owlx:classElements" />
  
          <!-- Property elements --> 
          <xsd:element ref="owlx:DatatypeProperty" />
          <xsd:element ref="owlx:ObjectProperty" />
          <xsd:element ref="owlx:SubPropertyOf" />
          <xsd:element ref="owlx:EquivalentProperties" /> 
   
          <!-- Instances --> 
          <xsd:element ref="owlx:Individual" />
          <xsd:element ref="owlx:SameIndividual" />
          <xsd:element ref="owlx:DifferentIndividuals" />
        </xsd:choice>
      </xsd:sequence>
    </xsd:sequence>
    <xsd:attribute name="name" type="owlx:OntologyName" />
  </xsd:complexType>

  <xsd:unique name="classNameUniqueness"> 
    <xsd:annotation>
      <xsd:documentation>
        This constraint ensures that every class name is unique 
        in a single OWL document. 
      </xsd:documentation>
    </xsd:annotation>
    <xsd:selector xpath="owlx:Class" /> 
    <xsd:field xpath="@owlx:name" /> 
  </xsd:unique>
</xsd:element> 

<xsd:element name="Annotation">
  <xsd:annotation>
    <xsd:documentation>
      Annotations allow arbitrary uninterpreted 
      information to be added to ontologies. 
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexType> 
    <xsd:sequence minOccurs="0" maxOccurs="unbounded">
      <xsd:choice>
        <xsd:element ref="owlx:Label" /> 
        <xsd:element ref="owlx:Documentation" /> 
        <xsd:any namespace="##other" processContents="lax" />
      </xsd:choice>
    </xsd:sequence> 
  </xsd:complexType>
</xsd:element>

<xsd:element name="Label"> 
  <xsd:complexType mixed="true"> 
    <xsd:attribute ref="xml:lang" />
  </xsd:complexType>
</xsd:element>

<xsd:element name="Documentation">
  <xsd:complexType mixed="true"> 
    <xsd:attribute ref="xml:lang" />
  </xsd:complexType>
</xsd:element>

<xsd:complexType name="annotated">
  <xsd:annotation>
    <xsd:documentation>
      This complex type is extended by all the elements 
      that may have annotation.  Annotated type is used by: 
        + Ontology/Individual [Lite/DL/Full]
        + Ontology/Class [Lite/DL/Full]
        + Ontology/DatatypeProperty [Lite/DL/Full]
        + Ontology/ObjectProperty [Lite/DL/Full]
        + classElements/EnumerationType(EnumeratedClass) [DL/Full] 
      Note that 'Ontology' is not extended from 'annotated' 
      complexType, but embeds 'Annotation' element.  
    </xsd:documentation>
  </xsd:annotation>
  <xsd:sequence minOccurs="0" maxOccurs="1"> 
    <xsd:element ref="owlx:Annotation" /> 
  </xsd:sequence>
</xsd:complexType>


<xsd:element name="Class">
  <xsd:annotation>
    <xsd:documentation>
      'Class' contains a non-empty sequence of descriptions.  
      Attributes provide a class name and the modality. 
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="owlx:annotated"> 
        <xsd:sequence minOccurs="0" maxOccurs="unbounded">
          <xsd:group ref="owlx:description" />
        </xsd:sequence>
        <xsd:attribute name="name" type="owlx:ClassName" use="required" />
        <xsd:attribute name="complete" type="xsd:boolean" use="required" /> 
        <xsd:attribute name="deprecated" type="xsd:boolean" /> 
      </xsd:extension> 
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>


<xsd:annotation>
  <xsd:documentation>
    Property elements (DatatypeProperty, ObjectProperty) contain 
    superProperty, domain, and range element along with 
    characteristics of the property. 
  </xsd:documentation>
</xsd:annotation>

<xsd:element name="DatatypeProperty"> 
  <xsd:annotation>
    <xsd:documentation>
      'owlx:dataPropDomainRange' group is included from either 
         + owl1-lite-dataDomainRangeGroup.xsd [Lite] or 
         + owl1-dl-dataDomainRangeGroup.xsd [DL/Full] 
    </xsd:documentation>
    <xsd:documentation>
      'owlx:dataPropInverseFuncAttr' attribute group is 
      included from either 
         + owl1-lite-dataPropInverseFuncAttr.xsd [Lite/DL] or 
         + owl1-full-dataPropInverseFuncAttr.xsd [Full]
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="owlx:annotated"> 
        <xsd:sequence minOccurs="0" maxOccurs="unbounded">
          <xsd:choice>
            <xsd:element name="superProperty">
              <xsd:complexType>
                <xsd:attribute name="name" type="owlx:DataPropertyName" 
                               use="required"/>
              </xsd:complexType>
            </xsd:element>
            <xsd:group ref="owlx:dataPropDomainRange" /> 
          </xsd:choice>
        </xsd:sequence>
        <xsd:attribute name="name" type="owlx:DataPropertyName" use="required" />
        <xsd:attribute name="functional" type="xsd:boolean" /> 
        <xsd:attributeGroup ref="owlx:dataPropInverseFuncAttr" /> 
        <xsd:attribute name="deprecated" type="xsd:boolean" /> 
      </xsd:extension> 
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element> 


<xsd:element name="ObjectProperty">
  <xsd:annotation>
    <xsd:documentation>
      'owlx:objectPropDomainRange' group is included from either 
         + owl1-lite-domainRangeGroup.xsd [Lite] or 
         + owl1-dl-domainRangeGroup.xsd [DL/Full] 
    </xsd:documentation>
    <xsd:documentation>
      'owlx:objectPropInverseFuncAttr' attribute group is 
      included from either 
         + owl1-lite-objectPropInverseFuncAttr.xsd [Lite] or 
         + owl1-dl-objectPropInverseFuncAttr.xsd [DL/Full] 
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="owlx:annotated"> 
        <xsd:sequence minOccurs="0" maxOccurs="unbounded">
          <xsd:choice>
            <xsd:element name="superProperty">
              <xsd:complexType>
                <xsd:attribute name="name" type="owlx:IndividualPropertyName" 
                               use="required"/>
              </xsd:complexType>
            </xsd:element>
            <xsd:group ref="owlx:objectPropDomainRange" /> 
          </xsd:choice>
        </xsd:sequence>
        <xsd:attribute name="name" type="owlx:IndividualPropertyName" 
                       use="required" />
        <xsd:attribute name="inverseOf"  type="owlx:IndividualPropertyName" />
        <xsd:attribute name="transitive" type="xsd:boolean" />
        <xsd:attribute name="symmetric"  type="xsd:boolean" />
        <xsd:attribute name="functional" type="xsd:boolean" />
        <xsd:attributeGroup ref="owlx:objectPropInverseFuncAttr" /> 
        <xsd:attribute name="deprecated" type="xsd:boolean" /> 
      </xsd:extension> 
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>


<xsd:complexType name="DataRangeType">
  <xsd:annotation>
    <xsd:documentation>
      Datatypes and sets of values can show up in data property ranges.  
    </xsd:documentation>
    <xsd:documentation>
      Used by: 
        + dataRestriction/allValuesFrom [DL/Full] 
        + dataRestriction/someValuesFrom [DL/Full] 
        + dataPropDomainRange/range [DL/Full] 
    </xsd:documentation>
  </xsd:annotation>
  <xsd:sequence>
    <xsd:element name="OneOf" minOccurs="0" maxOccurs="1">
      <xsd:complexType>
        <xsd:sequence minOccurs="0" maxOccurs="unbounded">
          <xsd:element ref="owlx:DataValue" />
        </xsd:sequence>
      </xsd:complexType>
    </xsd:element>
  </xsd:sequence>
  <xsd:attribute name="datatype" type="owlx:DatatypeName" />
</xsd:complexType>


<xsd:element name="EquivalentProperties">
  <xsd:complexType>
    <xsd:annotation>
      <xsd:documentation>
        EquivalentProperties can take propertyIDs with the 
        same property type (i.e., either DatatypeProperty 
        or ObjectProperty). 
      </xsd:documentation>
      <xsd:documentation>
        Used by: Ontology [Lite/DL/Full] 
      </xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="DatatypeProperty" type="owlx:PropertyIDType" 
                   minOccurs="2" maxOccurs="unbounded" />
      <xsd:element name="ObjectProperty" type="owlx:PropertyIDType" 
                   minOccurs="2" maxOccurs="unbounded" />
    </xsd:choice>
  </xsd:complexType>
</xsd:element>


<xsd:element name="SubPropertyOf">
  <xsd:annotation>
    <xsd:documentation>
      A subproperty statement is just two propertyIDs, sub and 
      super, with the following restrictions (not expressed here)
      if sub is a data property then super must be a data property
      if sub is a simple property then super must be an individual 
      property. There are other restrictions having to do with 
      transitivity and cardinalites. 
    </xsd:documentation>
    <xsd:documentation>
      Used by: Ontology [Lite/DL/Full] 
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexType>
    <xsd:choice minOccurs="1" maxOccurs="1">
      <xsd:element name="DatatypeProperty" type="owlx:PropertyIDType" />
      <xsd:element name="ObjectProperty" type="owlx:PropertyIDType" />
    </xsd:choice>
    <xsd:attribute name="sub" type="owlx:PropertyName" use="required" />
  </xsd:complexType>
</xsd:element>


<xsd:annotation>
  <xsd:documentation>
    'owlx:description' group is declared and included from either 
      + owl1-lite-descriptionGroup.xsd [Lite] or 
      + owl1-dl-descriptionGroup.xsd [DL/Full] 
  </xsd:documentation>
  <xsd:documentation>
    'owlx:description' is used by: 
      + Ontology/Class [Lite/DL/Full] 
      + Ontology/Individual [Lite/DL/Full] 
      + DescriptionType [DL/Full] 
      + DescriptionsType [DL/Full] 
      + classElements/EnumeratedClass [DL/Full] 
      + classElements/DisjointClasses [DL/Full] 
  </xsd:documentation>
</xsd:annotation>


<xsd:complexType name="DescriptionType">  
  <xsd:annotation>
    <xsd:documentation>
      Used by: 
        + SubClassOf/sub [DL/Full]
        + SubClassOf/super [DL/Full]
        + description/ComplementOf [DL/Full] 
    </xsd:documentation>
  </xsd:annotation>
  <xsd:group ref="owlx:description" />
</xsd:complexType>

<xsd:complexType name="DescriptionsType"> 
  <xsd:annotation>
    <xsd:documentation>
      Used by: 
        + DatatypeProperty/domain [DL/Full]
        + ObjectProperty/domain [DL/Full]
        + ObjectProperty/range [DL/Full]
        + description/UnionOf [DL/Full]
        + description/IntersectionOf [DL/Full]
        + objectRestrictionType/allValuesFrom [DL/Full]
        + objectRestrictionType/someValuesFrom [DL/Full]
    </xsd:documentation>
  </xsd:annotation>
  <xsd:sequence minOccurs="0" maxOccurs="unbounded">
    <xsd:group ref="owlx:description" />
  </xsd:sequence>
  <xsd:attribute name="class" type="owlx:ClassName" />
</xsd:complexType>


<xsd:annotation>
  <xsd:documentation>
    Both types of restrictions (DataRestriction and 
    ObjectRestriction) have the property name as an attribute, 
    an optional cardinality, zero or more ranges, zero or more 
    required restrictions, and zero or more value restrictions. 
    There is a side condition that restrictions on transitive 
    properties and their sub-properties cannot have cardinality 
    constraints. 
  </xsd:documentation>
</xsd:annotation>

<xsd:element name="DataRestriction">
  <xsd:annotation>
    <xsd:documentation>
      Used by 'description' [Lite/DL/Full] 
    </xsd:documentation>
    <xsd:documentation>
      Model group 'owlx:dataRestriction' is included from either: 
        + owl1-lite-restrictionGroup.xsd [Lite] or 
        + owl1-dl-restrictionGroup.xsd [DL/Full] 
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexType> 
    <xsd:sequence> 
      <xsd:group ref="owlx:dataRestriction" /> 
    </xsd:sequence>
    <xsd:attribute name="property" type="owlx:DataPropertyName" 
                   use="required" />
  </xsd:complexType>
</xsd:element>

<xsd:element name="ObjectRestriction">
  <xsd:annotation>
    <xsd:documentation>
      Used by 'description' [Lite/DL/Full] 
    </xsd:documentation>
    <xsd:documentation>
      Model group 'owlx:objectRestriction' is included from either: 
        + owl1-lite-restrictionGroup.xsd [Lite] or 
        + owl1-dl-restrictionGroup.xsd [DL/Full] 
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexType> 
    <xsd:sequence>  
      <xsd:group ref="owlx:objectRestriction" /> 
    </xsd:sequence>
    <xsd:attribute name="property" type="owlx:IndividualPropertyName" 
                   use="required" />
  </xsd:complexType>
</xsd:element>


<xsd:annotation>
  <xsd:documentation> 
    'minCardinality', 'maxCardinality' and 'cardinality' 
    elements are used by: 
      + dataRestriction [Lite/DL/Full]
      + ObjectRestriction [Lite/DL/Full] 
  </xsd:documentation>
</xsd:annotation>

<xsd:element name="minCardinality" type="owlx:cardinalityValueAttrType" />
<xsd:element name="maxCardinality" type="owlx:cardinalityValueAttrType" />
<xsd:element name="cardinality"    type="owlx:cardinalityValueAttrType" />

<xsd:complexType name="cardinalityValueAttrType">
  <xsd:annotation>
    <xsd:documentation>
      Used by:  
        maxCardinality [Lite/DL/Full] 
        minCardinality [Lite/DL/Full] 
        cardinality [Lite/DL/Full] 
    </xsd:documentation>
    <xsd:documentation>
      A simple type 'owlx:CardinalityRangeType' is included 
      from either: 
         + owl1-lite-restrictionGroup.xsd [Lite] or 
         + owl1-dl-restrictionGroup.xsd [DL/Full] 
    </xsd:documentation>
  </xsd:annotation>
  <xsd:attribute name="value" type="owlx:CardinalityRangeType" 
                 use="required" />
</xsd:complexType>


<xsd:element name="Individual">
  <xsd:annotation>
    <xsd:documentation>
      Used by 'Ontology' [Lite/DL/Full] 
    </xsd:documentation>
    <xsd:documentation>
      Facts about individuals have several types and 
      property information, including nested facts.  
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="owlx:annotated"> 
        <xsd:sequence minOccurs="0" maxOccurs="unbounded">
          <xsd:choice>
            <xsd:element name="type"> 
              <xsd:complexType>
                <xsd:sequence minOccurs="0" maxOccurs="unbounded">
                  <xsd:group ref="owlx:description" />
                </xsd:sequence>
                <xsd:attribute name="name" type="owlx:ClassName" />
              </xsd:complexType>
            </xsd:element> 
            <xsd:element ref="owlx:DataPropertyValue" />
            <xsd:element ref="owlx:ObjectPropertyValue" /> 
          </xsd:choice>
        </xsd:sequence>
        <xsd:attribute name="name" type="owlx:IndividualName" />
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>


<xsd:element name="ObjectPropertyValue">
  <xsd:annotation>
    <xsd:documentation>
      Used by 'Ontology/Individual' [Lite/DL/Full] 
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexType>
    <xsd:sequence minOccurs="0" maxOccurs="unbounded">
      <xsd:element ref="owlx:Individual" /> 
    </xsd:sequence>
    <xsd:attribute name="property" type="owlx:IndividualPropertyName"
                   use="required" />
  </xsd:complexType>
</xsd:element>

<xsd:element name="DataPropertyValue">
  <xsd:annotation>
    <xsd:documentation>
      Used by 'Ontology/Individual' [Lite/DL/Full] 
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexType> 
    <xsd:sequence minOccurs="0" maxOccurs="unbounded">
      <xsd:element ref="owlx:DataValue" />
    </xsd:sequence>
    <xsd:attribute name="property" type="owlx:DataPropertyName"
                   use="required" />
  </xsd:complexType>
</xsd:element>

<xsd:element name="DataValue">
  <xsd:annotation>
    <xsd:documentation>
      Used by: 
        + Individual/DataPropertyValue [Lite/DL/Full] 
        + DataRangeType/OneOf [DL/Full]
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexType mixed="true"> 
    <xsd:attribute name="datatype" type="owlx:DatatypeName" />
  </xsd:complexType> 
</xsd:element>


<xsd:element name="SameIndividual">
  <xsd:annotation>
    <xsd:documentation>
      Used by 'Ontology' [Lite/DL/Full] 
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexType>
    <xsd:sequence minOccurs="2" maxOccurs="unbounded">
      <xsd:element name="Individual" 
                   type="owlx:individualIDAttrType" /> 
    </xsd:sequence>
  </xsd:complexType>
</xsd:element> 

<xsd:element name="DifferentIndividuals"> 
  <xsd:annotation>
    <xsd:documentation>
      Used by 'Ontology' [Lite/DL/Full] 
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexType> 
    <xsd:sequence minOccurs="2" maxOccurs="unbounded">
      <xsd:element name="Individual" 
                   type="owlx:individualIDAttrType" /> 
    </xsd:sequence>
  </xsd:complexType>
</xsd:element> 


<xsd:annotation>
  <xsd:documentation>
    Finally, some utility types for the various kinds of names. 
  </xsd:documentation>
</xsd:annotation>

<xsd:complexType name="ontologyAttrType">
  <xsd:annotation>
    <xsd:documentation>
      Used by:  
        Ontology/PriorVersion [Lite/DL/Full] 
        Ontology/BackwardCompatibleWith [Lite/DL/Full] 
        Ontology/IncompatibleWith [Lite/DL/Full] 
        Ontology/Imports [Lite/DL/Full] 
    </xsd:documentation>
  </xsd:annotation>
  <xsd:attribute name="ontology" type="owlx:OntologyName" use="required" /> 
</xsd:complexType>

<xsd:complexType name="datatypeAttrType"> 
  <xsd:annotation>
    <xsd:documentation>
      Used by:  
        dataRestriction/allValuesFrom [only Lite] 
        dataRestriction/someValuesFrom [only Lite] 
        dataPropDomainRange/range [only Lite] 
    </xsd:documentation>
  </xsd:annotation>
  <xsd:attribute name="datatype" type="owlx:DatatypeName" />
</xsd:complexType>

<xsd:complexType name="classAttrType"> 
  <xsd:annotation>
    <xsd:documentation>
      Used by:  
        objectRestriction/allValuesFrom [only Lite] 
        objectRestriction/someValuesFrom [only Lite] 
    </xsd:documentation>
  </xsd:annotation>
  <xsd:attribute name="class" type="owlx:ClassName" />
</xsd:complexType> 


<xsd:complexType name="individualIDAttrType"> 
  <xsd:annotation>
    <xsd:documentation>
      This complex type is used for the definitions of 
      'Individual' element that solely refers to individual 
      ID and does not declare any individual construct. 
      The element of individual reference must be declared as 
      an element local to its parent element, in order to avoid 
      the element name conflict with 'Ontology/Individual'.  
    </xsd:documentation> 
    <xsd:documentation>
      Used by: 
        + ontology/SameIndividual [Lite/DL/Full] 
        + ontology/DifferentIndividuals [Lite/DL/Full] 
        + classElements/EnumeratedClass [DL/Full] 
        + description/OneOf [DL/Full] 
    </xsd:documentation>
  </xsd:annotation>
  <xsd:attribute name="name" type="owlx:IndividualName" use="required" /> 
  <xsd:attribute name="type" type="owlx:ClassName" />
</xsd:complexType>


<xsd:complexType name="ClassIDType">
  <xsd:attribute name="name" type="owlx:ClassName" use="required" />
</xsd:complexType>

<xsd:complexType name="PropertyIDType">
  <xsd:attribute name="name" type="owlx:PropertyName" use="required"/>
</xsd:complexType>

<xsd:simpleType name="OntologyName">
  <xsd:restriction base="xsd:anyURI" />
</xsd:simpleType>

<xsd:simpleType name="ClassName">
  <xsd:restriction base="xsd:anyURI" />
</xsd:simpleType>

<xsd:simpleType name="DatatypeName">
  <xsd:restriction base="xsd:anyURI" />
</xsd:simpleType>

<xsd:simpleType name="PropertyName">
  <xsd:restriction base="xsd:anyURI" />
</xsd:simpleType>

<xsd:simpleType name="DataPropertyName">
  <xsd:restriction base="xsd:anyURI" />
</xsd:simpleType>

<xsd:simpleType name="IndividualPropertyName">
  <xsd:restriction base="xsd:anyURI" />
</xsd:simpleType>

<xsd:simpleType name="IndividualName">
  <xsd:restriction base="xsd:anyURI" />
</xsd:simpleType>

</xsd:schema>

A.3.2 Class Element Group Module

The Class Element Group modules (owl1-lite-classElementGroup.xsd and owl1-dl-classElementGroup.xsd) control the inclusion of the following class elements.

The OWL Lite Schema driver (owl1-lite.xsd) includes an XML Schema module (owl1-lite-classElementGroup.xsd) that makes EnumeratedClass available in OWL Lite. In addition, SubClassOf, EquivalentClasses and DisjointClasses are not included in this module because they are not available in OWL Lite.

On the other hand, owl1-dl-classElementGroup.xsd is included by the Schema drivers for OWL DL (owl1-dl.xsd) and OWL Full (owl-full.xsd), so that EquivalentClasses can be extended as equality among descriptions. In addition, SubClassOf, EnumeratedClasses, and DisjointClasses are made available for OWL DL and Full.

module/owl1-lite-classElementGroup.xsd
<!--
"owl1-lite-classElementGroup.xsd"
XML Schema Module for the XML Presentation Syntax of OWL 1.0
Copyright: 2002-2003 W3C (MIT, INRIA, Keio), All Rights Reserved.
See http://www.w3.org/Consortium/Legal/.
Revision: 2003/02/28 
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:owlx="http://www.w3.org/2003/05/owl-xml"
    targetNamespace="http://www.w3.org/2003/05/owl-xml"
    elementFormDefault="qualified"
    attributeFormDefault="qualified">

  <xsd:annotation>
    <xsd:documentation>
      Class element group for OWL Lite.  
      EquivalentClasses in OWL Lite is only applicable to Class IDs. 
      SubClassOf, EnumeratedClasses, and DisjointClasses are not included.  
      This model group is replaced with "owl1-dl-classElementGroup.xsd" 
      in OWL DL and Full. 
    </xsd:documentation>
  </xsd:annotation>

  <xsd:group name="classElements">
    <xsd:choice>
      <xsd:element ref="owlx:EquivalentClasses" /> 
    </xsd:choice>
  </xsd:group>

  <xsd:element name="EquivalentClasses">
    <xsd:annotation>
      <xsd:documentation>
        'EquivalentClasses' in OWL Lite contains only class IDs. 
        Note that arbitrary descriptions are allowed in 
        OWL DL and OWL Full. 
      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexType> 
      <xsd:sequence minOccurs="2" maxOccurs="unbounded"> 
        <xsd:element name="Class" type="owlx:ClassIDType" /> 
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element> 

</xsd:schema>
module/owl1-dl-classElementGroup.xsd
<!--
"owl1-dl-classElementGroup.xsd"
XML Schema Module for the XML Presentation Syntax of OWL 1.0 
Copyright: 2002-2003 W3C (MIT, INRIA, Keio), All Rights Reserved.
See http://www.w3.org/Consortium/Legal/.
Revision: 2003/02/28 
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:owlx="http://www.w3.org/2003/05/owl-xml"
    targetNamespace="http://www.w3.org/2003/05/owl-xml"
    elementFormDefault="qualified"
    attributeFormDefault="qualified">

  <xsd:annotation>
    <xsd:documentation>
      Class element group for OWL DL and OWL Full. 
      EquivalentClasses is extended as equality among descriptions. 
      SubClassOf, EnumeratedClasses, and DisjointClasses are added. 
      This model group replaces "owl1-lite-classElementGroup.xsd" 
      provided for OWL Lite. 
    </xsd:documentation>
  </xsd:annotation>

  <xsd:group name="classElements">   
    <xsd:choice>
      <!-- 'EquivalentClasses' is modified for OWL DL and Full --> 
      <xsd:element ref="owlx:EquivalentClasses" />

      <!-- The following three elements are added for OWL DL and Full --> 
      <xsd:element ref="owlx:EnumeratedClass" />   
      <xsd:element ref="owlx:SubClassOf" />
      <xsd:element ref="owlx:DisjointClasses" />
    </xsd:choice>
  </xsd:group>

  <xsd:element name="EquivalentClasses">
    <xsd:annotation>
      <xsd:documentation>
        'EquivalentClasses' contains a non-empty list of descriptions. 
        Note that only class IDs are allowed in OWL Lite. 
      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexType> 
      <xsd:sequence minOccurs="2" maxOccurs="unbounded">
        <xsd:group ref="owlx:description" />
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>

  <xsd:element name="SubClassOf">
    <xsd:annotation>
      <xsd:documentation>
        SubClassOf element takes two descriptions as sub and super 
        classes.  SubClassOf is available only for OWL DL and Full. 
      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="sub" type="owlx:DescriptionType" 
                     minOccurs="1" maxOccurs="1" />
        <xsd:element name="super" type="owlx:DescriptionType" 
                     minOccurs="1" maxOccurs="1" />
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>

  <xsd:element name="EnumeratedClass">
    <xsd:annotation>
      <xsd:documentation>
        'EnumeratedClass' contains a list of individuals, 
         and is available only for OWL DL and OWL Full. 
      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexType>
      <xsd:complexContent>
        <xsd:extension base="owlx:annotated"> 
          <xsd:sequence minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="Individual" 
                         type="owlx:individualIDAttrType" /> 
          </xsd:sequence>
          <xsd:attribute name="name" type="owlx:ClassName" 
                         use="required" />
          <xsd:attribute name="deprecated" type="xsd:boolean" /> 
        </xsd:extension> 
      </xsd:complexContent>
    </xsd:complexType>
  </xsd:element>

  <xsd:element name="DisjointClasses">
    <xsd:annotation>
      <xsd:documentation>
        'DisjointClasses' contains a non-empty list of descriptions, 
        and is available only for OWL DL and Full. 
      </xsd:documentation>
    </xsd:annotation>
    <xsd:complexType> 
      <xsd:sequence minOccurs="2" maxOccurs="unbounded">
        <xsd:group ref="owlx:description" />
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>

</xsd:schema>

A.3.3 Description Group Module

The Description Group modules (owl1-lite-descriptionGroup.xsd and owl1-dl-descriptionGroup.xsd) control the inclusion of the elements declared as members of a description.

The OWL Lite Schema driver (owl1-lite.xsd) includes an XML Schema module (owl1-lite-descriptionGroup.xsd) that makes Class, DataResiction, and ObjectRestriction available in OWL Lite. However, UnionOf, IntersectionOf, ComplementOf, and OneOf are not included in the module because they are not available in OWL Lite.

On the other hand, owl1-dl-descriptionGroup.xsd is included by the Schema drivers for OWL DL (owl1-dl.xsd) and OWL Full (owl-full.xsd), so that UnionOf, IntersectionOf, ComplementOf, and OneOf can be made available for OWL DL and Full.

module/owl1-lite-descriptionGroup.xsd
<!--
"owl1-lite-descriptionGroup.xsd"
XML Schema Module for the XML Presentation Syntax of OWL 1.0 
Copyright: 2002-2003 W3C (MIT, INRIA, Keio), All Rights Reserved.
See http://www.w3.org/Consortium/Legal/.
Revision: 2003/02/28 
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:owlx="http://www.w3.org/2003/05/owl-xml"
    targetNamespace="http://www.w3.org/2003/05/owl-xml"
    elementFormDefault="qualified"
    attributeFormDefault="qualified">

  <xsd:annotation>
    <xsd:documentation>
      Description group for OWL Lite.  
      Elements for boolean combination of class expressions 
      (UnionOf, IntersectionOf, ComplementOf), and an element 
      for Class enumeration (OneOf) are not included. 
      This model group is replaced with "owl1-dl-descriptionGroup.xsd" 
      for OWL DL and Full.  
    </xsd:documentation>
  </xsd:annotation>

  <xsd:group name="description"> 
    <xsd:annotation>
      <xsd:documentation>
        A description in OWL Lite only includes either a named 
        class, datatype restriction, or object restriction. 
      </xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="Class" type="owlx:ClassIDType"
                   minOccurs="1" maxOccurs="1" />
      <xsd:element ref="owlx:DataRestriction" 
                   minOccurs="1" maxOccurs="1" />
      <xsd:element ref="owlx:ObjectRestriction" 
                   minOccurs="1" maxOccurs="1" /> 

      <!-- Boolean combination and class enumeration are not included --> 
    </xsd:choice>
  </xsd:group>

</xsd:schema>
module/owl1-dl-descriptionGroup.xsd
<!--
"owl1-dl-descriptionGroup.xsd"
XML Schema Module for the XML Presentation Syntax of OWL 1.0
Copyright: 2002-2003 W3C (MIT, INRIA, Keio), All Rights Reserved.
See http://www.w3.org/Consortium/Legal/.
Revision: 2003/02/28 
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:owlx="http://www.w3.org/2003/05/owl-xml"
    targetNamespace="http://www.w3.org/2003/05/owl-xml"
    elementFormDefault="qualified"
    attributeFormDefault="qualified">

  <xsd:annotation>
    <xsd:documentation>
      Description group for OWL DL and OWL Full. 
      Elements for boolean combination of class expressions 
      (UnionOf, IntersectionOf, ComplementOf), and an element 
      for Class enumeration (OneOf) are added. 
      This model group replaces "owl1-lite-descriptionGroup.xsd"  
      provided for OWL Lite. 
    </xsd:documentation>
  </xsd:annotation>

  <xsd:group name="description">   
    <xsd:annotation>
      <xsd:documentation>
        A description in OWL DL and Full includes either oneOf or 
        a boolean combination of descriptions, in addition to  
        a named class, datatype restriction and object restriction 
        declared for OWL Lite. 
      </xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="Class" type="owlx:ClassIDType"
                   minOccurs="1" maxOccurs="1" />
      <xsd:element ref="owlx:DataRestriction" 
                   minOccurs="1" maxOccurs="1" />
      <xsd:element ref="owlx:ObjectRestriction" 
                   minOccurs="1" maxOccurs="1" /> 

      <!-- An element for class enumeration is added --> 
      <xsd:element name="OneOf" minOccurs="1" maxOccurs="1"> 
        <xsd:complexType> 
          <xsd:sequence minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="Individual" 
                         type="owlx:individualIDAttrType" /> 
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element> 

      <!-- Elements for boolean combination are added --> 
      <xsd:element name="UnionOf" type="owlx:DescriptionsType"
                   minOccurs="1" maxOccurs="1" />
      <xsd:element name="IntersectionOf" type="owlx:DescriptionsType"
                   minOccurs="1" maxOccurs="1" />
      <xsd:element name="ComplementOf" type="owlx:DescriptionType" 
                   minOccurs="1" maxOccurs="1" />

    </xsd:choice>
  </xsd:group>

</xsd:schema>

A.3.4 Restriction Group Module

The Restriction Group modules (owl1-lite-restrictionGroup.xsd and owl1-dl-restrictionGroup.xsd) control the inclusion of the following elements for restricting cardinality values and property filler.

The OWL Lite Schema driver (owl1-lite.xsd) includes an XML Schema module (owl1-lite-restrictionGroup.xsd) that makes cardinality, allValuesFrom and someValuesFrom elements available for both datatype and object restrictions in OWL Lite. In particular, the allValuesFrom and someValuesFrom are restricted only for datatype ID for datatype restriction and class ID for object restriction. However, value (hasValue) restriction is not included since it is not available in OWL Lite.

On the other hand, owl1-dl-restrictionGroup.xsd is included by the Schema drivers for OWL DL (owl1-dl.xsd) and OWL Full (owl-full.xsd), so that cardinality, allValuesFrom and someValuesFrom restrictions can be applicable to DataRangeType for datatype restriction and DescriptionsType for object restriction. In addition, value (hasValue) elements are added to both datatype and object restriction for OWL DL and Full.

Restrictions on cardinality value are indicated by attributes (minValue, maxValue, and value) of a cardinality element. The constraints on the cardinality attributes are represented by using a simple type definition CardinalityRangeType, which allows to change the cardinality restriction features. OWL Lite only permits cardinality values of 0 or 1 for OWL Lite , while arbitrary non-negative integers are allowed for OWL DL and OWL Full.

The restriction group module for OWL Lite (owl1-lite-restrictionGroup.xsd) includes CardinalityRangeType that only permits cardinality values of 0 or 1. The definition of the cardinality range type is extended for OWL DL and OWL Full in owl1-dl-restrictionGroup.xsd, so that cardinality values can take arbitrary non-negative integers. The schema module with the extended range type is included by the Schema drivers for OWL DL (owl1-dl.xsd) and OWL Full (owl-full.xsd).

module/owl1-lite-restrictionGroup.xsd
<!--
"owl1-lite-restrictionGroup.xsd"
XML Schema Module for the XML Presentation Syntax of OWL 1.0
Copyright: 2002-2003 W3C (MIT, INRIA, Keio), All Rights Reserved.
See http://www.w3.org/Consortium/Legal/.
Revision: 2003/03/27 
--> 
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:owlx="http://www.w3.org/2003/05/owl-xml"
    targetNamespace="http://www.w3.org/2003/05/owl-xml"
    elementFormDefault="qualified"
    attributeFormDefault="qualified">

  <xsd:annotation>
    <xsd:documentation>
      Restriction group only for OWL Lite. This model group 
      is replaced with "owl1-dl-restrictionGroup.xsd" provided 
      for OWL DL and OWL Full. 
    </xsd:documentation>
    <xsd:documentation>
      Restrictions for OWL Lite must have exactly one component. 
    </xsd:documentation>
  </xsd:annotation>

  <xsd:group name="dataRestriction">
    <xsd:annotation>
      <xsd:documentation>
        Used by: 
          + DataRestriction [Lite] (defined in "owl1-lite-core.xsd") 
      </xsd:documentation>
      <xsd:documentation>
        Element types of 'allValuesFrom' and 'someValuesFrom' are 
        restricted to datatype ID.  
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence> 
      <xsd:choice minOccurs="1" maxOccurs="1"> 
        <xsd:element ref="owlx:minCardinality" /> 
        <xsd:element ref="owlx:maxCardinality" /> 
        <xsd:element ref="owlx:cardinality" /> 
        <xsd:element name="allValuesFrom" type="owlx:datatypeAttrType" /> 
        <xsd:element name="someValuesFrom" type="owlx:datatypeAttrType" />
        <!-- 'hasValue' restriction is not included --> 
      </xsd:choice>
    </xsd:sequence>
  </xsd:group>
  
  <xsd:group name="objectRestriction"> 
    <xsd:annotation>
      <xsd:documentation>
        Used by: 
          + ObjectRestriction [Lite] (defined in "owl1-lite-core.xsd") 
      </xsd:documentation>
      <xsd:documentation>
        Element types of 'allValuesFrom' and 'someValuesFrom' are 
        restricted to class ID.  
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence> 
      <xsd:choice minOccurs="1" maxOccurs="1">
        <xsd:element ref="owlx:minCardinality" /> 
        <xsd:element ref="owlx:maxCardinality" /> 
        <xsd:element ref="owlx:cardinality" /> 
        <xsd:element name="allValuesFrom" type="owlx:classAttrType" /> 
        <xsd:element name="someValuesFrom" type="owlx:classAttrType" /> 
        <!-- 'hasValue' restriction is not included --> 
      </xsd:choice>
    </xsd:sequence>
  </xsd:group>

  <xsd:simpleType name="CardinalityRangeType"> 
    <xsd:annotation>
      <xsd:documentation>
        Used by: 
          + cardinality [Lite] (defined in "owl1-lite-core.xsd") 
      </xsd:documentation>
      <xsd:documentation>
        Cardinality value is restricted to either 0 or 1 for OWL Lite. 
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:nonNegativeInteger"> 
      <xsd:minInclusive value="0" /> 
      <xsd:maxInclusive value="1" />
    </xsd:restriction>
  </xsd:simpleType>

</xsd:schema>
module/owl1-dl-restrictionGroup.xsd
<!--
"owl1-dl-restrictionGroup.xsd"
XML Schema Module for the XML Presentation Syntax of OWL 1.0
Copyright: 2002-2003 W3C (MIT, INRIA, Keio), All Rights Reserved.
See http://www.w3.org/Consortium/Legal/.
Revision: 2003/03/27
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:owlx="http://www.w3.org/2003/05/owl-xml"
    targetNamespace="http://www.w3.org/2003/05/owl-xml"
    elementFormDefault="qualified"
    attributeFormDefault="qualified">

  <xsd:annotation>
    <xsd:documentation>
      Restriction group for OWL DL and OWL Full. 
      This model group replaces "owl1-lite-restrictionGroup.xsd" 
      provided for OWL Lite. 
    </xsd:documentation>
    <xsd:documentation>
      Restrictions for OWL DL and Full must have at least one 
      component.   
    </xsd:documentation>
  </xsd:annotation>

  <xsd:group name="dataRestriction">   
    <xsd:annotation>
      <xsd:documentation>
        Used by: 
          + DataRestriction [DL/Full] (defined in "owl1-lite-core.xsd") 
      </xsd:documentation>
      <xsd:documentation>
        Element types of 'allValuesFrom' and 'someValuesFrom' 
        are extended to DataRangeType.  In addition, 'hasValue' 
        element is added. 
      </xsd:documentation>
      <xsd:documentation>
        A content type of 'hasValue' element (data literal) may be 
        specified by using 'xsi:type' attribute, which is part 
        of the XML Schema instance namespace.  A literal type can 
        be either one of built-in non-list XML Schema datatypes. 
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:sequence minOccurs="1" maxOccurs="unbounded"> 
        <xsd:choice>
          <xsd:element ref="owlx:minCardinality" /> 
          <xsd:element ref="owlx:maxCardinality" /> 
          <xsd:element ref="owlx:cardinality" /> 
          <xsd:element name="allValuesFrom" type="owlx:DataRangeType" />
          <xsd:element name="someValuesFrom" type="owlx:DataRangeType" />
          <!-- 'hasValue' restriction is added --> 
          <xsd:element name="hasValue" type="xsd:anySimpleType" />
        </xsd:choice>
      </xsd:sequence>
    </xsd:sequence>
  </xsd:group>

  <xsd:group name="objectRestriction"> 
    <xsd:annotation>
      <xsd:documentation>
        Used by: 
          + ObjectRestriction [DL/Full] (defined in "owl1-lite-core.xsd") 
      </xsd:documentation>
      <xsd:documentation>
        Element types of 'allValuesFrom' and 'someValuesFrom' 
        are extended to DescriptionsType.  In addition, 
        'hasValue' element is added. 
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:sequence minOccurs="1" maxOccurs="unbounded"> 
        <xsd:choice>
          <xsd:element ref="owlx:minCardinality" /> 
          <xsd:element ref="owlx:maxCardinality" /> 
          <xsd:element ref="owlx:cardinality" /> 
          <xsd:element name="allValuesFrom" type="owlx:DescriptionsType" />
          <xsd:element name="someValuesFrom" type="owlx:DescriptionsType" />
          <!-- 'hasValue' restriction is added --> 
          <xsd:element name="hasValue">
            <xsd:complexType>
              <xsd:attribute name="name" type="owlx:IndividualName" 
                             use="required"/>
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:sequence>
    </xsd:sequence>
  </xsd:group>


  <xsd:simpleType name="CardinalityRangeType">
    <xsd:annotation>
      <xsd:documentation>
        Used by: 
          + cardinality [DL/Full] (defined in "owl1-lite-core.xsd") 
      </xsd:documentation>
      <xsd:documentation>
        Cardinality value can be an arbitrary non-negative integer. 
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:nonNegativeInteger" /> 
  </xsd:simpleType>

</xsd:schema>

A.3.5 Domain and Range Group Module

Domain and Range group modules (owl1-lite-domainRangeGroup.xsd and owl1-dl-domainRangeGroup.xsd) allow to change element types of domain and range. In OWL Lite, datatype properties only allow class IDs (for domains) and datatype IDs (for ranges). In addition, object properties only allow class IDs for their domains and ranges.

Element types of domain and range are broadened for OWL DL and OWL Full. Datatype properties allow descriptions (for domains) and data range (for ranges). In the object properties, descriptions can be used for both domans and ranges.

module/owl1-lite-domainRangeGroup.xsd
<!--
"owl1-lite-domainRangeGroup.xsd"
XML Schema Module for the XML Presentation Syntax of OWL 1.0
Copyright: 2002-2003 W3C (MIT, INRIA, Keio), All Rights Reserved.
See http://www.w3.org/Consortium/Legal/.
Revision: 2003/02/28 
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:owlx="http://www.w3.org/2003/05/owl-xml"
    targetNamespace="http://www.w3.org/2003/05/owl-xml"
    elementFormDefault="qualified"
    attributeFormDefault="qualified">

  <xsd:annotation>
    <xsd:documentation>
      Domain and Range group for OWL Lite. This model 
      group is replaced with "owl1-dl-domainRangeGroup.xsd" 
      provided for OWL DL and OWL Full. 
    </xsd:documentation>
  </xsd:annotation>

  <xsd:group name="dataPropDomainRange"> 
    <xsd:annotation>
      <xsd:documentation>
        Element types of 'domain' and 'range' are restricted 
        respectively to class ID and datatype ID for datatype   
        property in OWL Lite. 
      </xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="domain" type="owlx:ClassesType" /> 
      <xsd:element name="range"  type="owlx:datatypeAttrType" />
    </xsd:choice>
  </xsd:group>
  
  <xsd:group name="objectPropDomainRange"> 
    <xsd:annotation>
      <xsd:documentation>
        Element types of 'domain' and 'range' are restricted 
        to class ID for object property in OWL Lite.  
      </xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="domain" type="owlx:ClassesType" /> 
      <xsd:element name="range"  type="owlx:ClassesType" /> 
    </xsd:choice>
  </xsd:group>

  <xsd:complexType name="ClassesType"> 
    <xsd:sequence minOccurs="0" maxOccurs="unbounded"> 
      <xsd:element name="Class" type="owlx:ClassIDType" />
    </xsd:sequence>
    <xsd:attribute name="class" type="owlx:ClassName" />
  </xsd:complexType>

</xsd:schema>
module/owl1-dl-domainRangeGroup.xsd
<!--
"owl1-dl-domainRangeGroup.xsd"
XML Schema Module for the XML Presentation Syntax of OWL 1.0
Copyright: 2002-2003 W3C (MIT, INRIA, Keio), All Rights Reserved.
See http://www.w3.org/Consortium/Legal/.
Revision: 2003/02/28 
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:owlx="http://www.w3.org/2003/05/owl-xml"
    targetNamespace="http://www.w3.org/2003/05/owl-xml"
    elementFormDefault="qualified"
    attributeFormDefault="qualified">

  <xsd:annotation>
    <xsd:documentation>
      Domain and Range group for OWL DL and OWL Full. This 
      model group replaces "owl1-lite-domainRangeGroup.xsd" 
      provided for OWL Lite. 
    </xsd:documentation>
  </xsd:annotation>

  <xsd:group name="dataPropDomainRange"> 
    <xsd:annotation>
      <xsd:documentation>
        Element types of 'domain' and 'range' are redefined  
        respectively to DescriptionsType and DataRangeType 
        for datatype property. 
      </xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="domain" type="owlx:DescriptionsType" />
      <xsd:element name="range"  type="owlx:DataRangeType" /> 
    </xsd:choice>
  </xsd:group>
  
  <xsd:group name="objectPropDomainRange"> 
    <xsd:annotation>
      <xsd:documentation>
        Element types of 'domain' and 'range' are 
        extended to DescriptionsType for object property. 
      </xsd:documentation>
    </xsd:annotation>
    <xsd:choice>
      <xsd:element name="domain" type="owlx:DescriptionsType" />
      <xsd:element name="range"  type="owlx:DescriptionsType" /> 
    </xsd:choice>
  </xsd:group>

</xsd:schema>

A.3.6 Datatype Property's Inverse Functional Attribute Module

DatatypeProperty may be declared as inverse functional in OWL Full, while it must not be in OWL DL and OWL Lite. Note that ObjectProperty may be declared as inverse functional not only in OWL Full but also in OWL DL. See also the appendix A.3.7 on the inverse functional attribute of Object Property.

The Schema drivers for OWL Lite (owl1-lite.xsd) and OWL DL (owl1-dl.xsd) include a module (owl1-lite-dataPropInverseFuncAttr.xsd) for inverseFunctional attribute of DatatypeProperty to be fixed as false.

On the other hand, the inverseFunctional attribute of DatatypeProperty can be set to an arbitrary boolean value in the module for OWL Full (owl1-full-dataPropInverseFuncAttr.xsd), which is included by the OWL Full Schema driver (owl1-full.xsd).

module/owl1-lite-dataPropInverseFuncAttr.xsd
<!--
"owl1-lite-dataPropInverseFuncAttr.xsd"
XML Schema Module for the XML Presentation Syntax of OWL 1.0
Copyright: 2002-2003 W3C (MIT, INRIA, Keio), All Rights Reserved.
See http://www.w3.org/Consortium/Legal/.
Revision: 2003/02/28 
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:owlx="http://www.w3.org/2003/05/owl-xml"
    targetNamespace="http://www.w3.org/2003/05/owl-xml"
    elementFormDefault="qualified"
    attributeFormDefault="qualified">

  <xsd:annotation>
    <xsd:documentation>
      'inverseFunctional' attribute of DataPropertyAxiomType 
      is fixed as 'false' for OWL Lite and OWL DL. 
      The attribute value is set to 'false' by default for OWL Full 
      in "owl1-full-dataPropInverseFuncAttr.xsd". 
    </xsd:documentation>
  </xsd:annotation>

  <xsd:attributeGroup name="dataPropInverseFuncAttr"> 
    <xsd:attribute name="inverseFunctional" type="xsd:boolean" 
                   fixed="false" /> 
  </xsd:attributeGroup>

</xsd:schema>
module/owl1-full-dataPropInverseFuncAttr.xsd
<!--
"owl1-full-dataPropInverseFuncAttr.xsd"
XML Schema Module for the XML Presentation Syntax of OWL 1.0
Copyright: 2002-2003 W3C (MIT, INRIA, Keio), All Rights Reserved.
See http://www.w3.org/Consortium/Legal/.
Revision: 2003/02/28 
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:owlx="http://www.w3.org/2003/05/owl-xml"
    targetNamespace="http://www.w3.org/2003/05/owl-xml"
    elementFormDefault="qualified"
    attributeFormDefault="qualified">

  <xsd:annotation>
    <xsd:documentation>
      'inverseFunctional' attribute of DataPropertyAxiomType is set 
      to 'false' by default  (and may be changed to 'true' as needed) 
      for OWL Full. 
      The attribute value is fixed as 'false' for OWL Lite and LD 
      in "owl1-lite-dataPropInverseFuncAttr.xsd". 
    </xsd:documentation>
  </xsd:annotation>

  <xsd:attributeGroup name="dataPropInverseFuncAttr"> 
    <xsd:attribute name="inverseFunctional" type="xsd:boolean" />
  </xsd:attributeGroup>

</xsd:schema>

A.3.7 Object Property's Inverse Functional Attribute Module

ObjectProperty may be declared as inverse functional in OWL DL and OWL Full, while it must not be in OWL Lite. Note that DatatypeProperty must not be inverse functional in OWL DL and OWL Lite. See also the appendix A.3.6 on the inverse functional attribute of Datatype Property.

The Schema drivers for OWL Lite (owl1-lite.xsd) includes the module (owl1-lite-objectPropInverseFuncAttr) for inverseFunctional attribute of ObjectProperty to be fixed as false.

On the other hand, the inverseFunctional attribute of ObjectProperty can be set to an arbitrary boolean value in the module for OWL DL (owl1-lite-objectPropInverseFuncAttr), which is included by the Schema drivers for OWL DL (owl1-dl.xsd) and OWL Full (owl1-full.xsd).

module/owl1-lite-objectPropInverseFuncAttr.xsd
<!--
"owl1-lite-objectPropInverseFuncAttr.xsd"
XML Schema Module for the XML Presentation Syntax of OWL 1.0
Copyright: 2002-2003 W3C (MIT, INRIA, Keio), All Rights Reserved.
See http://www.w3.org/Consortium/Legal/.
Revision: 2003/02/28 
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:owlx="http://www.w3.org/2003/05/owl-xml"
    targetNamespace="http://www.w3.org/2003/05/owl-xml"
    elementFormDefault="qualified"
    attributeFormDefault="qualified">

  <xsd:annotation>
    <xsd:documentation>
      'inverseFunctional' attribute of ObjectPropertyAxiomType 
      is fixed as 'false' for OWL Lite. 
      The attribute value is set to 'false' by default for OWL DL 
      in "owl1-dl-objPropInverseFuncAttr.xsd". 
    </xsd:documentation>
  </xsd:annotation>

  <xsd:attributeGroup name="objectPropInverseFuncAttr"> 
    <xsd:attribute name="inverseFunctional" type="xsd:boolean" 
                   fixed="false" />
  </xsd:attributeGroup>

</xsd:schema>
module/owl1-dl-objectPropInverseFuncAttr.xsd
<!--
"owl1-dl-objectPropInverseFuncAttr.xsd"
XML Schema Module for the XML Presentation Syntax of OWL 1.0
Copyright: 2002-2003 W3C (MIT, INRIA, Keio), All Rights Reserved.
See http://www.w3.org/Consortium/Legal/.
Revision: 2003/02/28 
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:owlx="http://www.w3.org/2003/05/owl-xml"
    targetNamespace="http://www.w3.org/2003/05/owl-xml"
    elementFormDefault="qualified"
    attributeFormDefault="qualified">

  <xsd:annotation>
    <xsd:documentation>
      'inverseFunctional' attribute of DataPropertyAxiomType 
      is set to 'false' by default for OWL DL and OWL Full. 
      The attribute is fixed as 'false' for OWL Lite in 
      "owl1-lite-objectPropInverseFuncAttr.xsd". 
    </xsd:documentation>
  </xsd:annotation>

  <xsd:attributeGroup name="objectPropInverseFuncAttr"> 
    <xsd:attribute name="inverseFunctional" type="xsd:boolean" />
  </xsd:attributeGroup>

</xsd:schema>

previous next contents

Valid XHTML 1.0!