Copyright © 2008 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark and document use rules apply.
This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.
This document is being published as one of a set of 711 documents:
The OWL Working Group seeks public feedback on these Working Drafts. Please send your comments to public-owl-comments@w3.org (public archive). If possible, please offer specific changes to the text that would address your concern. You may also wish to check the Wiki Version of this document for internal-review comments and changes being drafted which may address your concerns.
Publication as a Working Draft does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.
This document was produced by a group operating under the 5 February 2004 W3C Patent Policy. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.
Contents |
This document defines anthe XML syntax for OWL 2, which2. This syntax mirrors the structural specification of OWL 2 [OWL 2 Specification ]. The italicized keywords MUST , MUST NOT , SHOULD , SHOULD NOT , and MAY specify certain aspects of the normative behavior of OWL 2 tools,] and are interpreted as specified in RFC 2119 [ RFC 2119 ]. The syntaxis defined by means of an XML schema [XML Schema], which is available as part of this document. The XML schema has been obtained by a straightforward translation of the structural specification of the OWL 2 Specification [OWL 2 Specification] in the following way:
The elements in the XML Schema belong to the owl namespace, and the attributes have no namespace. The local parts of the names used in the XML Schema are the same as the names of their corresponding UML classes.elements from the structural specification.
The XML schema thus captures the structure of OWL 2 entities, expressions, and axioms. Certain global conditions on OWL 2 ontologies, such as the ones described in Sections 5.9.15.8.1 and 1011 of the OWL 2 Specification [OWL 2 Specification], cannot be captured in an XML schema. Tools parsing OWL 2 ontologies in this syntax need to additionally implement these global conditions.
AsThe XML syntax of OWL 2 corresponds mostclosely to the structural specification of OWL 22, so it is fully typed. It thus differs somewhat from the functional-style syntax of OWL 2 [OWL 2 Specification]. For example, whereas the functional-style syntax uses a nonterminal SomeValuesFrom for existential restrictions on both the object and data properties, the XML syntax provides two elements ox:ObjectSomeValuesFromowl:ObjectSomeValuesFrom and ox:DataSomeValuesFromowl:DataSomeValuesFrom.
Each axiom in the OWL 2XML syntax of OWL 2 contains complete information about the type of all the entities in it. Therefore the OWL 2 XML Syntax can be parsed more easily than by using the canonical parsing process from Section 5.9.35.8.3 of OWL 2 Specification [OWL 2 Specification]. Nonetheless, each OWL 2 ontology written in the OWL 2XML syntax of OWL 2 MUST satisfy the requirements on declarations andtyping constraints from Section 5.95.8.1 of the OWL 2 Specification [OWL 2 Specification] —that is, declarations for ontology entities MUST be present in the import closure of the ontology as required even if the type of ontology elements can be inferred from the axioms.
Relative URIs in an OWL 2During parsing of ontology documents written in the XML syntax of OWL 2, all values that are declared in the schema given below as being of type xsd:anyURI MUST be resolved against the respective base URI as specified in the XML Base specification [XML Base]. If present, the xml:base onThis expansion is handled at the ox:Ontology element MAY , but need not, be equal toXML level during parsing, and the ontology and/orstructural specification of OWL 2 makes no provisions for keeping track of the versionbase URIs of ontology entities and axioms. The base URI of the ontology.owl:Ontology element is completely independent from the ontology URI andand/or the version URI, even if present, do not participateURI of the ontology and its value MUST be determined exactly as specified in the resolutionXML Base specification. Furthermore, just like all other URIs, the values of relative URIs.the expansionontologyURI and/or versionURI attributes of relative URIs using xml:base is handled atthe XML level during parsing, and is thus completely independentowl:Ontology element MUST be resolved against the base URI of the ontology and version URIsowl:Ontology element. In contrast, OWL 2 literals of the ontology being parsed.xsd:anyURI datatype MUST NOT be resolved against the base URI: all literals of OWL 2 are treated as opaque values whose value is fully defined by their lexical representation.
The XML schema presented here covers the entire OWL 2 structural specification, and thus includes all the features available in OWL 2 profiles [OWL 2 Profiles]. There are no separate schemata for these profiles —that is, ontologies that can be expressed by the profiles MUST be written using the most general schema. Validating whether an ontology belongs to a particular profile is not intended to be performed using XML schema mechanisms, so the specification of such mechanisms is beyond the scope of this document.
An XML syntax ontology document is a sequence of octets accessible from some URI by means of the standard protocols that can be parsed into an XML document conforming to the XML schema defined in this document, and that can be converted into an OWL 2 ontology as specified earlier.
The italicized keywords MUST, MUST NOT, SHOULD, SHOULD NOT, and MAY specify certain aspects of the normative behavior of OWL 2 tools, and are interpreted as specified in RFC 2119 [RFC 2119].
The following is an example of an OWL 2 ontology written in XML syntax. More examples can be found in the OWL 2 Primer [OWL 2 Primer].
<?xml version="1.0" encoding="UTF-8"?>
<ox:Ontology<owl:Ontology xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/ns/owl2-xml http://www.w3.org/ns/owl2-xml/live-from-wiki.xsd"
xmlns:ox="http://www.w3.org/ns/owl2-xml" xmlns:owl="http://www.w3.org/2002/07/owl#"
xml:base="http://example.com/myOntology"
ox:ontologyURI="http://example.com/myOntology"> <ox:Import>http://example.com/someOtherOntology"</ox:Import> <ox:Declaration> <ox:OWLClass ox:URI="#animal"/> </ox:Declaration> <ox:Declaration> <ox:OWLClass ox:URI="#tabloid"/> </ox:Declaration> <ox:Declaration> <ox:ObjectProperty ox:URI="#eats"/> </ox:Declaration> <ox:Declaration> <ox:ObjectProperty ox:URI="#reads"/> </ox:Declaration> <ox:SubClassOf> <ox:OWLClass ox:URI="#animal"/> <ox:ObjectAllValuesFrom> <ox:ObjectProperty ox:URI="#reads"/> <ox:OWLClass ox:URI="#tabloid"/> </ox:ObjectAllValuesFrom> </ox:SubClassOf> </ox:Ontology>owl:ontologyURI="http://example.com/myOntology">
<owl:Import>http://example.com/someOtherOntology</owl:Import>
<owl:Declaration>
<owl:Class URI="#animal"/>
</owl:Declaration>
<owl:Declaration>
<owl:Class URI="#tabloid"/>
</owl:Declaration>
<owl:Declaration>
<owl:ObjectProperty URI="#eats"/>
</owl:Declaration>
<owl:Declaration>
<owl:ObjectProperty URI="#reads"/>
</owl:Declaration>
<owl:SubClassOf>
<owl:Class URI="#animal"/>
<owl:ObjectAllValuesFrom>
<owl:ObjectProperty URI="#reads"/>
<owl:Class URI="#tabloid"/>
</owl:ObjectAllValuesFrom>
</owl:SubClassOf>
</owl:Ontology>
Editor'sNote:OWLWG[issue109]involvesthenamespacefortheXMLserialization.<xsd:schemaxmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:ox="http://www.w3.org/ns/owl2-xml"targetNamespace="http://www.w3.org/ns/owl2-xml"xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:owl="http://www.w3.org/2002/07/owl#" targetNamespace="http://www.w3.org/2002/07/owl#" elementFormDefault="qualified"attributeFormDefault="qualified">attributeFormDefault="unqualified"> <xsd:importnamespace="http://www.w3.org/XML/1998/namespace"schemaLocation="http://www.w3.org/2001/xml.xsd"/>namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/> <!-- The ontology --> <xsd:element name="Import"> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="xsd:anyURI"> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> <xsd:element name="Ontology"> <xsd:complexType> <xsd:sequence> <xsd:elementref="ox:Import"ref="owl:Import" minOccurs="0" maxOccurs="unbounded"/> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/>ref="owl:ontologyAnnotations"/> <xsd:groupref="ox:Axiom"ref="owl:Axiom" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="ontologyURI" type="xsd:anyURI" use="optional"/> <xsd:attribute name="versionURI" type="xsd:anyURI" use="optional"/> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <!-- Entities, anonymous individuals, and literals --> <xsd:group name="Entity"> <xsd:choice> <xsd:elementref="ox:Class"/>ref="owl:Class"/> <xsd:elementref="ox:Datatype"/>ref="owl:Datatype"/> <xsd:elementref="ox:ObjectProperty"/>ref="owl:ObjectProperty"/> <xsd:elementref="ox:DataProperty"/>ref="owl:DataProperty"/> <xsd:elementref="ox:AnnotationProperty"/>ref="owl:AnnotationProperty"/> <xsd:elementref="ox:NamedIndividual"/>ref="owl:NamedIndividual"/> </xsd:choice> </xsd:group> <xsd:element name="Class"> <xsd:complexType> <xsd:attribute name="URI" type="xsd:anyURI" use="required"/> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="Datatype"> <xsd:complexType> <xsd:attribute name="URI" type="xsd:anyURI" use="required"/> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="ObjectProperty"> <xsd:complexType> <xsd:attribute name="URI" type="xsd:anyURI" use="required"/> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="DataProperty"> <xsd:complexType> <xsd:attribute name="URI" type="xsd:anyURI" use="required"/> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="AnnotationProperty"> <xsd:complexType> <xsd:attribute name="URI" type="xsd:anyURI" use="required"/> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:group name="Individual"> <xsd:choice> <xsd:elementref="ox:NamedIndividual"/>ref="owl:NamedIndividual"/> <xsd:elementref="ox:AnonymousIndividual"/>ref="owl:AnonymousIndividual"/> </xsd:choice> </xsd:group> <xsd:element name="NamedIndividual"> <xsd:complexType> <xsd:attribute name="URI" type="xsd:anyURI" use="required"/> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="AnonymousIndividual"> <xsd:complexType> <xsd:attribute name="nodeID" type="xsd:NCName" use="required"/> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="Literal"> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute name="datatypeURI" type="xsd:anyURI"/> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> <!-- Declarations --> <xsd:element name="Declaration"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/>ref="owl:axiomAnnotations"/> <xsd:groupref="ox:Entity"/>ref="owl:Entity"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <!-- Object property expressions --> <xsd:group name="ObjectPropertyExpression"> <xsd:choice> <xsd:elementref="ox:ObjectProperty"/>ref="owl:ObjectProperty"/> <xsd:elementref="ox:InverseObjectProperty"/>ref="owl:InverseObjectProperty"/> </xsd:choice> </xsd:group> <xsd:element name="InverseObjectProperty"> <xsd:complexType> <xsd:sequence> <xsd:elementref="ox:ObjectProperty"/>ref="owl:ObjectProperty"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <!-- Data property expressions --> <xsd:group name="DataPropertyExpression"> <xsd:sequence> <xsd:elementref="ox:DataProperty"/>ref="owl:DataProperty"/> </xsd:sequence> </xsd:group> <!-- Data ranges --> <xsd:group name="DataRange"> <xsd:choice> <xsd:elementref="ox:Datatype"/>ref="owl:Datatype"/> <xsd:element ref="owl:DataIntersectionOf"/> <xsd:elementref="ox:DataComplementOf"/>ref="owl:DataUnionOf"/> <xsd:elementref="ox:DataOneOf"/>ref="owl:DataComplementOf"/> <xsd:elementref="ox:DatatypeRestriction"/>ref="owl:DataOneOf"/> <xsd:element ref="owl:DatatypeRestriction"/> </xsd:choice> </xsd:group> <xsd:element name="DataIntersectionOf"> <xsd:complexType> <xsd:sequence> <xsd:group ref="owl:DataRange" minOccurs="2" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="DataUnionOf"> <xsd:complexType> <xsd:sequence> <xsd:group ref="owl:DataRange" minOccurs="2" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="DataComplementOf"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:DataRange"/>ref="owl:DataRange"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="DataOneOf"> <xsd:complexType> <xsd:sequence> <xsd:elementref="ox:Literal"ref="owl:Literal" minOccurs="1" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="DatatypeRestriction"> <xsd:complexType> <xsd:sequence> <xsd:elementref="ox:Datatype"/>ref="owl:Datatype"/> <xsd:element name="FacetRestriction" minOccurs="1" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence> <xsd:elementref="ox:Literal"/>ref="owl:Literal"/> </xsd:sequence> <xsd:attribute name="facet" type="xsd:anyURI" use="required"/> </xsd:complexType> </xsd:element> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <!-- Class expressions --> <xsd:group name="ClassExpression"> <xsd:choice> <xsd:elementref="ox:Class"/>ref="owl:Class"/> <xsd:elementref="ox:ObjectIntersectionOf"/>ref="owl:ObjectIntersectionOf"/> <xsd:elementref="ox:ObjectUnionOf"/>ref="owl:ObjectUnionOf"/> <xsd:elementref="ox:ObjectComplementOf"/>ref="owl:ObjectComplementOf"/> <xsd:elementref="ox:ObjectOneOf"/>ref="owl:ObjectOneOf"/> <xsd:elementref="ox:ObjectSomeValuesFrom"/>ref="owl:ObjectSomeValuesFrom"/> <xsd:elementref="ox:ObjectAllValuesFrom"/>ref="owl:ObjectAllValuesFrom"/> <xsd:elementref="ox:ObjectHasValue"/>ref="owl:ObjectHasValue"/> <xsd:elementref="ox:ObjectExistsSelf"/>ref="owl:ObjectHasSelf"/> <xsd:elementref="ox:ObjectMinCardinality"/>ref="owl:ObjectMinCardinality"/> <xsd:elementref="ox:ObjectMaxCardinality"/>ref="owl:ObjectMaxCardinality"/> <xsd:elementref="ox:ObjectExactCardinality"/>ref="owl:ObjectExactCardinality"/> <xsd:elementref="ox:DataSomeValuesFrom"/>ref="owl:DataSomeValuesFrom"/> <xsd:elementref="ox:DataAllValuesFrom"/>ref="owl:DataAllValuesFrom"/> <xsd:elementref="ox:DataHasValue"/>ref="owl:DataHasValue"/> <xsd:elementref="ox:DataMinCardinality"/>ref="owl:DataMinCardinality"/> <xsd:elementref="ox:DataMaxCardinality"/>ref="owl:DataMaxCardinality"/> <xsd:elementref="ox:DataExactCardinality"/>ref="owl:DataExactCardinality"/> </xsd:choice> </xsd:group> <xsd:element name="ObjectIntersectionOf"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:ClassExpression"ref="owl:ClassExpression" minOccurs="2" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="ObjectUnionOf"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:ClassExpression"ref="owl:ClassExpression" minOccurs="2" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="ObjectComplementOf"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:ClassExpression"/>ref="owl:ClassExpression"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="ObjectOneOf"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:Individual"ref="owl:Individual" minOccurs="1" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="ObjectSomeValuesFrom"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:ObjectPropertyExpression"/>ref="owl:ObjectPropertyExpression"/> <xsd:groupref="ox:ClassExpression"/>ref="owl:ClassExpression"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="ObjectAllValuesFrom"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:ObjectPropertyExpression"/>ref="owl:ObjectPropertyExpression"/> <xsd:groupref="ox:ClassExpression"/>ref="owl:ClassExpression"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="ObjectHasValue"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:ObjectPropertyExpression"/>ref="owl:ObjectPropertyExpression"/> <xsd:groupref="ox:Individual"/>ref="owl:Individual"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:elementname="ObjectExistsSelf">name="ObjectHasSelf"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:ObjectPropertyExpression"/>ref="owl:ObjectPropertyExpression"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="ObjectMinCardinality"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:ObjectPropertyExpression"/>ref="owl:ObjectPropertyExpression"/> <xsd:groupref="ox:ClassExpression"ref="owl:ClassExpression" minOccurs="0" maxOccurs="1"/> </xsd:sequence> <xsd:attribute name="cardinality" type="xsd:nonNegativeInteger" use="required"/> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="ObjectMaxCardinality"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:ObjectPropertyExpression"/>ref="owl:ObjectPropertyExpression"/> <xsd:groupref="ox:ClassExpression"ref="owl:ClassExpression" minOccurs="0" maxOccurs="1"/> </xsd:sequence> <xsd:attribute name="cardinality" type="xsd:nonNegativeInteger" use="required"/> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="ObjectExactCardinality"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:ObjectPropertyExpression"/>ref="owl:ObjectPropertyExpression"/> <xsd:groupref="ox:ClassExpression"ref="owl:ClassExpression" minOccurs="0" maxOccurs="1"/> </xsd:sequence> <xsd:attribute name="cardinality" type="xsd:nonNegativeInteger" use="required"/> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="DataSomeValuesFrom"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:DataPropertyExpression"ref="owl:DataPropertyExpression" minOccurs="1" maxOccurs="unbounded"/> <xsd:groupref="ox:DataRange"/>ref="owl:DataRange"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="DataAllValuesFrom"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:DataPropertyExpression"ref="owl:DataPropertyExpression" minOccurs="1" maxOccurs="unbounded"/> <xsd:groupref="ox:DataRange"/>ref="owl:DataRange"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="DataHasValue"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:DataPropertyExpression"/>ref="owl:DataPropertyExpression"/> <xsd:elementref="ox:Literal"/>ref="owl:Literal"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="DataMinCardinality"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:DataPropertyExpression"/>ref="owl:DataPropertyExpression"/> <xsd:groupref="ox:DataRange"ref="owl:DataRange" minOccurs="0" maxOccurs="1"/> </xsd:sequence> <xsd:attribute name="cardinality" type="xsd:nonNegativeInteger" use="required"/> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="DataMaxCardinality"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:DataPropertyExpression"/>ref="owl:DataPropertyExpression"/> <xsd:groupref="ox:DataRange"ref="owl:DataRange" minOccurs="0" maxOccurs="1"/> </xsd:sequence> <xsd:attribute name="cardinality" type="xsd:nonNegativeInteger" use="required"/> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="DataExactCardinality"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:DataPropertyExpression"/>ref="owl:DataPropertyExpression"/> <xsd:groupref="ox:DataRange"ref="owl:DataRange" minOccurs="0" maxOccurs="1"/> </xsd:sequence> <xsd:attribute name="cardinality" type="xsd:nonNegativeInteger" use="required"/> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <!-- Axioms --> <xsd:group name="Axiom"> <xsd:choice> <xsd:elementref="ox:Declaration"/>ref="owl:Declaration"/> <xsd:groupref="ox:ClassAxiom"/>ref="owl:ClassAxiom"/> <xsd:groupref="ox:ObjectPropertyAxiom"/>ref="owl:ObjectPropertyAxiom"/> <xsd:groupref="ox:DataPropertyAxiom"/>ref="owl:DataPropertyAxiom"/> <xsd:elementref="ox:HasKey"/>ref="owl:HasKey"/> <xsd:groupref="ox:Assertion"/><xsd:elementref="ox:EntityAnnotation"/><xsd:elementref="ox:AnonymousIndividualAnnotation"/>ref="owl:Assertion"/> <xsd:group ref="owl:AnnotationAxiom"/> </xsd:choice> </xsd:group> <!-- Class expression axioms --> <xsd:group name="ClassAxiom"> <xsd:choice> <xsd:elementref="ox:SubClassOf"/>ref="owl:SubClassOf"/> <xsd:elementref="ox:EquivalentClasses"/>ref="owl:EquivalentClasses"/> <xsd:elementref="ox:DisjointClasses"/>ref="owl:DisjointClasses"/> <xsd:elementref="ox:DisjointUnion"/>ref="owl:DisjointUnion"/> </xsd:choice> </xsd:group> <xsd:element name="SubClassOf"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/>ref="owl:axiomAnnotations"/> <xsd:groupref="ox:ClassExpression"/>ref="owl:ClassExpression"/> <!-- This is the subexpression --> <xsd:groupref="ox:ClassExpression"/>ref="owl:ClassExpression"/> <!-- This is the superexpression --> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="EquivalentClasses"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/>ref="owl:axiomAnnotations"/> <xsd:groupref="ox:ClassExpression"ref="owl:ClassExpression" minOccurs="2" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="DisjointClasses"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/>ref="owl:axiomAnnotations"/> <xsd:groupref="ox:ClassExpression"ref="owl:ClassExpression" minOccurs="2" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="DisjointUnion"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/>ref="owl:axiomAnnotations"/> <xsd:elementref="ox:Class"/>ref="owl:Class"/> <xsd:groupref="ox:ClassExpression"ref="owl:ClassExpression" minOccurs="2" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <!-- Object property axioms --> <xsd:group name="ObjectPropertyAxiom"> <xsd:choice> <xsd:elementref="ox:SubObjectPropertyOf"/>ref="owl:SubObjectPropertyOf"/> <xsd:elementref="ox:EquivalentObjectProperties"/>ref="owl:EquivalentObjectProperties"/> <xsd:elementref="ox:DisjointObjectProperties"/>ref="owl:DisjointObjectProperties"/> <xsd:elementref="ox:InverseObjectProperties"/>ref="owl:InverseObjectProperties"/> <xsd:elementref="ox:ObjectPropertyDomain"/>ref="owl:ObjectPropertyDomain"/> <xsd:elementref="ox:ObjectPropertyRange"/>ref="owl:ObjectPropertyRange"/> <xsd:elementref="ox:FunctionalObjectProperty"/>ref="owl:FunctionalObjectProperty"/> <xsd:elementref="ox:InverseFunctionalObjectProperty"/>ref="owl:InverseFunctionalObjectProperty"/> <xsd:elementref="ox:ReflexiveObjectProperty"/>ref="owl:ReflexiveObjectProperty"/> <xsd:elementref="ox:IrreflexiveObjectProperty"/>ref="owl:IrreflexiveObjectProperty"/> <xsd:elementref="ox:SymmetricObjectProperty"/>ref="owl:SymmetricObjectProperty"/> <xsd:elementref="ox:AsymmetricObjectProperty"/>ref="owl:AsymmetricObjectProperty"/> <xsd:elementref="ox:TransitiveObjectProperty"/>ref="owl:TransitiveObjectProperty"/> </xsd:choice> </xsd:group> <xsd:element name="SubObjectPropertyOf"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/>ref="owl:axiomAnnotations"/> <xsd:choice> <!-- This is the subproperty expression or the property chain --> <xsd:groupref="ox:ObjectPropertyExpression"/>ref="owl:ObjectPropertyExpression"/> <xsd:element name="PropertyChain"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:ObjectPropertyExpression"ref="owl:ObjectPropertyExpression" minOccurs="2" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> </xsd:choice> <xsd:groupref="ox:ObjectPropertyExpression"/>ref="owl:ObjectPropertyExpression"/> <!-- This is the superproperty expression --> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="EquivalentObjectProperties"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/>ref="owl:axiomAnnotations"/> <xsd:groupref="ox:ObjectPropertyExpression"ref="owl:ObjectPropertyExpression" minOccurs="2" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="DisjointObjectProperties"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/>ref="owl:axiomAnnotations"/> <xsd:groupref="ox:ObjectPropertyExpression"ref="owl:ObjectPropertyExpression" minOccurs="2" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="ObjectPropertyDomain"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/>ref="owl:axiomAnnotations"/> <xsd:groupref="ox:ObjectPropertyExpression"/>ref="owl:ObjectPropertyExpression"/> <xsd:groupref="ox:ClassExpression"/>ref="owl:ClassExpression"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="ObjectPropertyRange"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/>ref="owl:axiomAnnotations"/> <xsd:groupref="ox:ObjectPropertyExpression"/>ref="owl:ObjectPropertyExpression"/> <xsd:groupref="ox:ClassExpression"/>ref="owl:ClassExpression"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="InverseObjectProperties"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/>ref="owl:axiomAnnotations"/> <xsd:groupref="ox:ObjectPropertyExpression"ref="owl:ObjectPropertyExpression" minOccurs="2" maxOccurs="2"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="FunctionalObjectProperty"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/>ref="owl:axiomAnnotations"/> <xsd:groupref="ox:ObjectPropertyExpression"/>ref="owl:ObjectPropertyExpression"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="InverseFunctionalObjectProperty"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/>ref="owl:axiomAnnotations"/> <xsd:groupref="ox:ObjectPropertyExpression"/>ref="owl:ObjectPropertyExpression"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="ReflexiveObjectProperty"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/>ref="owl:axiomAnnotations"/> <xsd:groupref="ox:ObjectPropertyExpression"/>ref="owl:ObjectPropertyExpression"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="IrreflexiveObjectProperty"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/>ref="owl:axiomAnnotations"/> <xsd:groupref="ox:ObjectPropertyExpression"/>ref="owl:ObjectPropertyExpression"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="SymmetricObjectProperty"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/>ref="owl:axiomAnnotations"/> <xsd:groupref="ox:ObjectPropertyExpression"/>ref="owl:ObjectPropertyExpression"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="AsymmetricObjectProperty"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/>ref="owl:axiomAnnotations"/> <xsd:groupref="ox:ObjectPropertyExpression"/>ref="owl:ObjectPropertyExpression"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="TransitiveObjectProperty"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/>ref="owl:axiomAnnotations"/> <xsd:groupref="ox:ObjectPropertyExpression"/>ref="owl:ObjectPropertyExpression"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <!-- Data property axioms --> <xsd:group name="DataPropertyAxiom"> <xsd:choice> <xsd:elementref="ox:SubDataPropertyOf"/>ref="owl:SubDataPropertyOf"/> <xsd:elementref="ox:EquivalentDataProperties"/>ref="owl:EquivalentDataProperties"/> <xsd:elementref="ox:DisjointDataProperties"/>ref="owl:DisjointDataProperties"/> <xsd:elementref="ox:DataPropertyDomain"/>ref="owl:DataPropertyDomain"/> <xsd:elementref="ox:DataPropertyRange"/>ref="owl:DataPropertyRange"/> <xsd:elementref="ox:FunctionalDataProperty"/>ref="owl:FunctionalDataProperty"/> </xsd:choice> </xsd:group> <xsd:element name="SubDataPropertyOf"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/>ref="owl:axiomAnnotations"/> <xsd:groupref="ox:DataPropertyExpression"/>ref="owl:DataPropertyExpression"/> <!-- This is the subproperty expression --> <xsd:groupref="ox:DataPropertyExpression"/>ref="owl:DataPropertyExpression"/> <!-- This is the superproperty expression --> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="EquivalentDataProperties"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/>ref="owl:axiomAnnotations"/> <xsd:groupref="ox:DataPropertyExpression"ref="owl:DataPropertyExpression" minOccurs="2" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="DisjointDataProperties"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/>ref="owl:axiomAnnotations"/> <xsd:groupref="ox:DataPropertyExpression"ref="owl:DataPropertyExpression" minOccurs="2" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="DataPropertyDomain"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/>ref="owl:axiomAnnotations"/> <xsd:groupref="ox:DataPropertyExpression"/>ref="owl:DataPropertyExpression"/> <xsd:groupref="ox:ClassExpression"/>ref="owl:ClassExpression"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="DataPropertyRange"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/>ref="owl:axiomAnnotations"/> <xsd:groupref="ox:DataPropertyExpression"/>ref="owl:DataPropertyExpression"/> <xsd:groupref="ox:DataRange"/>ref="owl:DataRange"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="FunctionalDataProperty"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/>ref="owl:axiomAnnotations"/> <xsd:groupref="ox:DataPropertyExpression"/>ref="owl:DataPropertyExpression"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <!-- Key axioms --> <xsd:element name="HasKey"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/>ref="owl:axiomAnnotations"/> <xsd:groupref="ox:ClassExpression"/>ref="owl:ClassExpression"/> <xsd:choice minOccurs="1" maxOccurs="unbounded"> <xsd:groupref="ox:ObjectPropertyExpression"/>ref="owl:ObjectPropertyExpression"/> <xsd:groupref="ox:DataPropertyExpression"/>ref="owl:DataPropertyExpression"/> </xsd:choice> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <!-- Assertions --> <xsd:group name="Assertion"> <xsd:choice> <xsd:elementref="ox:SameIndividual"/>ref="owl:SameIndividual"/> <xsd:elementref="ox:DifferentIndividuals"/>ref="owl:DifferentIndividuals"/> <xsd:elementref="ox:ClassAssertion"/>ref="owl:ClassAssertion"/> <xsd:elementref="ox:ObjectPropertyAssertion"/>ref="owl:ObjectPropertyAssertion"/> <xsd:elementref="ox:NegativeObjectPropertyAssertion"/>ref="owl:NegativeObjectPropertyAssertion"/> <xsd:elementref="ox:DataPropertyAssertion"/>ref="owl:DataPropertyAssertion"/> <xsd:elementref="ox:NegativeDataPropertyAssertion"/>ref="owl:NegativeDataPropertyAssertion"/> </xsd:choice> </xsd:group> <xsd:element name="SameIndividual"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/>ref="owl:axiomAnnotations"/> <xsd:groupref="ox:Individual"ref="owl:Individual" minOccurs="2" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="DifferentIndividuals"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/>ref="owl:axiomAnnotations"/> <xsd:groupref="ox:Individual"ref="owl:Individual" minOccurs="2" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="ClassAssertion"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/>ref="owl:axiomAnnotations"/> <xsd:groupref="ox:ClassExpression"/>ref="owl:ClassExpression"/> <xsd:groupref="ox:Individual"/>ref="owl:Individual"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="ObjectPropertyAssertion"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/>ref="owl:axiomAnnotations"/> <xsd:groupref="ox:ObjectPropertyExpression"/>ref="owl:ObjectPropertyExpression"/> <xsd:groupref="ox:Individual"/>ref="owl:Individual"/> <!-- This is the source invididual --> <xsd:groupref="ox:Individual"/>ref="owl:Individual"/> <!-- This is the target individual --> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="NegativeObjectPropertyAssertion"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/>ref="owl:axiomAnnotations"/> <xsd:groupref="ox:ObjectPropertyExpression"/>ref="owl:ObjectPropertyExpression"/> <xsd:groupref="ox:Individual"/>ref="owl:Individual"/> <!-- This is the source invididual --> <xsd:groupref="ox:Individual"/>ref="owl:Individual"/> <!-- This is the target individual --> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="DataPropertyAssertion"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/>ref="owl:axiomAnnotations"/> <xsd:groupref="ox:DataPropertyExpression"/>ref="owl:DataPropertyExpression"/> <xsd:groupref="ox:Individual"/>ref="owl:Individual"/> <!-- This is the source invididual --> <xsd:elementref="ox:Literal"/>ref="owl:Literal"/> <!-- This is the target value --> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="NegativeDataPropertyAssertion"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/>ref="owl:axiomAnnotations"/> <xsd:groupref="ox:DataPropertyExpression"/>ref="owl:DataPropertyExpression"/> <xsd:groupref="ox:Individual"/>ref="owl:Individual"/> <!-- This is the source invididual --> <xsd:elementref="ox:Literal"/>ref="owl:Literal"/> <!-- This is the target value --> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <!-- Annotations --> <xsd:elementname="Annotation">name="URI"> <xsd:complexType><xsd:sequence><xsd:simpleContent> <xsd:extension base="xsd:anyURI"> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/><xsd:elementref="ox:AnnotationProperty"/>name="AnnotationSubject"> <xsd:choice> <xsd:element ref="owl:URI"/> <xsd:element ref="owl:AnonymousIndividual"/> </xsd:choice> </xsd:group> <xsd:groupref="ox:Entity"/>name="AnnotationValue"> <xsd:choice> <xsd:elementref="ox:AnonymousIndividual"/>ref="owl:URI"/> <xsd:elementref="ox:Literal"/>ref="owl:AnonymousIndividual"/> <xsd:element ref="owl:Literal"/> </xsd:choice></xsd:sequence><xsd:attributeGroupref="xml:specialAttrs"/></xsd:complexType></xsd:element></xsd:group> <xsd:elementname="Label">name="Annotation"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/>ref="owl:annotationAnnotations"/> <xsd:elementref="ox:Literal"/>ref="owl:AnnotationProperty"/> <xsd:group ref="owl:AnnotationValue"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element><xsd:elementname="Comment"><xsd:complexType><xsd:sequence><xsd:groupref="ox:Annotation"name="axiomAnnotations"> <xsd:sequence> <xsd:element ref="owl:Annotation" minOccurs="0" maxOccurs="unbounded"/><xsd:elementref="ox:Literal"/></xsd:sequence><xsd:attributeGroupref="xml:specialAttrs"/></xsd:complexType></xsd:element><xsd:elementname="Deprecation"><xsd:complexType></xsd:group> <xsd:group name="ontologyAnnotations"> <xsd:sequence> <xsd:element ref="owl:Annotation" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:group> <xsd:groupref="ox:Annotation"name="annotationAnnotations"> <xsd:sequence> <xsd:element ref="owl:Annotation" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence><xsd:attributeGroupref="xml:specialAttrs"/></xsd:complexType></xsd:element></xsd:group> <!-- Annotation axioms --> <xsd:groupname="Annotation">name="AnnotationAxiom"> <xsd:choice> <xsd:elementref="ox:Annotation"/>ref="owl:AnnotationAssertion"/> <xsd:elementref="ox:Label"/>ref="owl:SubAnnotationPropertyOf"/> <xsd:elementref="ox:Comment"/>ref="owl:AnnotationPropertyDomain"/> <xsd:elementref="ox:Deprecation"/>ref="owl:AnnotationPropertyRange"/> </xsd:choice> </xsd:group><!--Annotationaxioms--><xsd:elementname="EntityAnnotation">name="AnnotationAssertion"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/><!--Thisistheannotationfortheaxiom-->ref="owl:axiomAnnotations"/> <xsd:element ref="owl:AnnotationProperty"/> <xsd:groupref="ox:Entity"/>ref="owl:AnnotationSubject"/> <xsd:groupref="ox:Annotation"minOccurs="1"maxOccurs="unbounded"/><!--Thisistheannotationfortheentity-->ref="owl:AnnotationValue"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:elementname="AnonymousIndividualAnnotation">name="SubAnnotationPropertyOf"> <xsd:complexType> <xsd:sequence> <xsd:groupref="ox:Annotation"minOccurs="0"maxOccurs="unbounded"/>ref="owl:axiomAnnotations"/> <xsd:element ref="owl:AnnotationProperty"/> <!-- This is theannotationfortheaxiomsubproperty --> <xsd:elementref="ox:AnonymousIndividual"/><xsd:groupref="ox:Annotation"minOccurs="1"maxOccurs="unbounded"/>ref="owl:AnnotationProperty"/> <!-- This is theannotationfortheanonymousindividualsuperproperty --> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="AnnotationPropertyDomain"> <xsd:complexType> <xsd:sequence> <xsd:group ref="owl:axiomAnnotations"/> <xsd:element ref="owl:AnnotationProperty"/> <xsd:element ref="owl:URI"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> <xsd:element name="AnnotationPropertyRange"> <xsd:complexType> <xsd:sequence> <xsd:group ref="owl:axiomAnnotations"/> <xsd:element ref="owl:AnnotationProperty"/> <xsd:element ref="owl:URI"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> </xsd:element> </xsd:schema>
The Internet Media Type / MIME Type for the OWL XML Serialization is application/owl+xml.
It is recommended that OWL XML Serialization files have the extension .owx (all lowercase) on all platforms.
It is recommended that OWL XML Serialization files stored on Macintosh HFS file systems be given a file type of TEXT.
The information that follows will be submitted to the IESG for review, approval, and registration with IANA.