Warning:
This wiki has been archived and is now read-only.

OWL XML Schema test include

From OWL
Jump to: navigation, search
    <!DOCTYPE xsd:schema [ <!ENTITY PN_CHARS_BASE "[A-Z]|[a-z]|[&amp;#x00C0;-&amp;#x00D6;]|[&amp;#x00D8;-&amp;#x00F6;]|[&amp;#x00F8;-&amp;#x02FF;]|[&amp;#x0370;-&amp;#x037D;]|[&amp;#x037F;-&amp;#x1FFF;]|[&amp;#x200C;-&amp;#x200D;]|[&amp;#x2070;-&amp;#x218F;]|[&amp;#x2C00;-&amp;#x2FEF;]|[&amp;#x3001;-&amp;#xD7FF;]|[&amp;#xF900;-&amp;#xFDCF;]|[&amp;#xFDF0;-&amp;#xFFFD;]|[&amp;#x10000;-&amp;#xEFFFF;]"> <!ENTITY PN_CHARS_U "&amp;PN_CHARS_BASE;|_"> <!ENTITY PN_CHARS "&amp;PN_CHARS_U;|\-|[0-9]|&amp;#x00B7;|[&amp;#x0300;-&amp;#x036F;]|[&amp;#x203F;-&amp;#x2040;]"> <!ENTITY PN_PREFIX "(&amp;PN_CHARS_BASE;)((&amp;PN_CHARS;|\.)*(&amp;PN_CHARS; ))?"> <!ENTITY PN_LOCAL "(&amp;PN_CHARS_U;|[0-9])((&amp;PN_CHARS;|\.)*(&amp;PN_CHARS;))?"> <!ENTITY PNAME_NS "(&amp;PN_PREFIX;)?:"> <!ENTITY PNAME_LN "(&amp;PNAME_NS;)(&amp;PN_LOCAL;)"> <!ENTITY PrefixedName "(&amp;PNAME_LN;)|(&amp;PNAME_NS;)"> ]> <!-- From: http://www.w3.org/TR/rdf-sparql-query/#grammar The entities implement productions [95] (PN_CHARS_BASE), [96] (PN_CHARS_U), [98] (PN_CHARS), [99] (PN_PREFIX), [100] (PN_LOCAL), [71] (PNAME_NS), [72] (PNAME_LN) and [68] (PrefixedName) PN_PREFIX is roughly equivalent to NCName.--> <xsd:schema 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="unqualified"> <xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/> <!-- The ontology --> <xsd:complexType name="Prefix"> <xsd:attribute name="name" use="required"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:pattern value="&amp;PN_PREFIX;"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> <xsd:attribute name="IRI" type="xsd:anyURI" use="required"/> </xsd:complexType> <xsd:element name="Prefix" type="owl:Prefix"/> <xsd:complexType name="Import"> <xsd:simpleContent> <xsd:extension base="xsd:anyURI"> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <xsd:element name="Import" type="owl:Import"/> <xsd:complexType name="Ontology"> <xsd:sequence> <xsd:element ref="owl:Prefix" minOccurs="0" maxOccurs="unbounded"/> <xsd:element ref="owl:Import" minOccurs="0" maxOccurs="unbounded"/> <xsd:group ref="owl:ontologyAnnotations"/> <xsd:group ref="owl:Axiom" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="ontologyIRI" type="xsd:anyURI" use="optional"/> <xsd:attribute name="versionIRI" type="xsd:anyURI" use="optional"/> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> <xsd:element name="Ontology" type="owl:Ontology"> <xsd:unique name="prefix"> <xsd:selector xpath="owl:Prefix"/> <xsd:field xpath="@name"/> </xsd:unique> </xsd:element> <!-- Entities, anonymous individuals, and literals --> <!-- Note that the "Entity" group does not have a corresponding abstract type. This is due to the fact that XML Schema 1.1 does not support multiple inheritence. "owl:Class" is both an entity and a class expression. The authors of this schema determined it was more useful to be able to retrieve "owl:Class" in such queries as schema(*, owl:ClassExpression). --> <xsd:group name="Entity"> <xsd:choice> <xsd:element ref="owl:Class"/> <xsd:element ref="owl:Datatype"/> <xsd:element ref="owl:ObjectProperty"/> <xsd:element ref="owl:DataProperty"/> <xsd:element ref="owl:AnnotationProperty"/> <xsd:element ref="owl:NamedIndividual"/> </xsd:choice> </xsd:group> <!-- This is the type for the attribute. The complex type for the element is capitalized. --> <xsd:simpleType name="abbreviatedIRI"> <xsd:restriction base="xsd:string"> <xsd:pattern value="&amp;PrefixedName;"/> </xsd:restriction> </xsd:simpleType> <xsd:complexType name="Class"> <xsd:complexContent> <xsd:extension base="owl:ClassExpression"> <xsd:attribute name="IRI" type="xsd:anyURI" use="optional"/> <xsd:attribute name="abbreviatedIRI" type="owl:abbreviatedIRI" use="optional"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="Class" type="owl:Class"/> <xsd:complexType name="Datatype"> <xsd:complexContent> <xsd:extension base="owl:DataRange"> <xsd:attribute name="IRI" type="xsd:anyURI" use="optional"/> <xsd:attribute name="abbreviatedIRI" type="owl:abbreviatedIRI" use="optional"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="Datatype" type="owl:Datatype"/> <xsd:complexType name="ObjectProperty"> <xsd:complexContent> <xsd:extension base="owl:ObjectPropertyExpression"> <xsd:attribute name="IRI" type="xsd:anyURI" use="optional"/> <xsd:attribute name="abbreviatedIRI" type="owl:abbreviatedIRI" use="optional"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="ObjectProperty" type="owl:ObjectProperty"/> <xsd:complexType name="DataProperty"> <xsd:complexContent> <xsd:extension base="owl:DataPropertyExpression"> <xsd:attribute name="IRI" type="xsd:anyURI" use="optional"/> <xsd:attribute name="abbreviatedIRI" type="owl:abbreviatedIRI" use="optional"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="DataProperty" type="owl:DataProperty"/> <xsd:complexType name="AnnotationProperty"> <xsd:attribute name="IRI" type="xsd:anyURI" use="optional"/> <xsd:attribute name="abbreviatedIRI" type="owl:abbreviatedIRI" use="optional"/> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> <xsd:element name="AnnotationProperty" type="owl:AnnotationProperty"/> <xsd:complexType name="Individual" abstract="true"> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> <xsd:group name="Individual"> <xsd:choice> <xsd:element ref="owl:NamedIndividual"/> <xsd:element ref="owl:AnonymousIndividual"/> </xsd:choice> </xsd:group> <xsd:complexType name="NamedIndividual"> <xsd:complexContent> <xsd:extension base="owl:Individual"> <xsd:attribute name="IRI" type="xsd:anyURI" use="optional"/> <xsd:attribute name="abbreviatedIRI" type="owl:abbreviatedIRI" use="optional"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="NamedIndividual" type="owl:NamedIndividual"/> <xsd:complexType name="AnonymousIndividual"> <xsd:complexContent> <xsd:extension base="owl:Individual"> <xsd:attribute name="nodeID" type="xsd:NCName" use="required"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="AnonymousIndividual" type="owl:AnonymousIndividual"/> <xsd:complexType name="Literal"> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute name="datatypeIRI" type="xsd:anyURI"/> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <xsd:element name="Literal" type="owl:Literal"/> <!-- Declarations --> <xsd:complexType name="Declaration"> <xsd:complexContent> <xsd:extension base="owl:Axiom"> <xsd:sequence> <xsd:group ref="owl:Entity"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="Declaration" type="owl:Declaration"/> <!-- Object property expressions --> <xsd:complexType name="ObjectPropertyExpression" abstract="true"> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> <xsd:group name="ObjectPropertyExpression"> <xsd:choice> <xsd:element ref="owl:ObjectProperty"/> <xsd:element ref="owl:InverseObjectProperty"/> </xsd:choice> </xsd:group> <xsd:complexType name="InverseObjectProperty"> <xsd:complexContent> <xsd:extension base="owl:ObjectPropertyExpression"> <xsd:sequence> <xsd:element ref="owl:ObjectProperty"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="InverseObjectProperty" type="owl:InverseObjectProperty"/> <!-- Data property expressions --> <xsd:complexType name="DataPropertyExpression" abstract="true"> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> <xsd:group name="DataPropertyExpression"> <xsd:sequence> <xsd:element ref="owl:DataProperty"/> </xsd:sequence> </xsd:group> <!-- Data ranges --> <xsd:complexType name="DataRange" abstract="true"> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> <xsd:group name="DataRange"> <xsd:choice> <xsd:element ref="owl:Datatype"/> <xsd:element ref="owl:DataIntersectionOf"/> <xsd:element ref="owl:DataUnionOf"/> <xsd:element ref="owl:DataComplementOf"/> <xsd:element ref="owl:DataOneOf"/> <xsd:element ref="owl:DatatypeRestriction"/> </xsd:choice> </xsd:group> <xsd:complexType name="DataIntersectionOf"> <xsd:complexContent> <xsd:extension base="owl:DataRange"> <xsd:sequence> <xsd:group ref="owl:DataRange" minOccurs="2" maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="DataIntersectionOf" type="owl:DataIntersectionOf"/> <xsd:complexType name="DataUnionOf"> <xsd:complexContent> <xsd:extension base="owl:DataRange"> <xsd:sequence> <xsd:group ref="owl:DataRange" minOccurs="2" maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="DataUnionOf" type="owl:DataUnionOf"/> <xsd:complexType name="DataComplementOf"> <xsd:complexContent> <xsd:extension base="owl:DataRange"> <xsd:sequence> <xsd:group ref="owl:DataRange"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="DataComplementOf" type="owl:DataComplementOf"/> <xsd:complexType name="DataOneOf"> <xsd:complexContent> <xsd:extension base="owl:DataRange"> <xsd:sequence> <xsd:element ref="owl:Literal" minOccurs="1" maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="DataOneOf" type="owl:DataOneOf"/> <xsd:complexType name="DatatypeRestriction"> <xsd:complexContent> <xsd:extension base="owl:DataRange"> <xsd:sequence> <xsd:element ref="owl:Datatype"/> <xsd:element name="FacetRestriction" type="owl:FacetRestriction" minOccurs="1" maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="DatatypeRestriction" type="owl:DatatypeRestriction"/> <xsd:complexType name="FacetRestriction"> <xsd:sequence> <xsd:element ref="owl:Literal"/> </xsd:sequence> <xsd:attribute name="facet" type="xsd:anyURI" use="required"/> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> <!-- Class expressions --> <xsd:complexType name="ClassExpression" abstract="true"> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> <xsd:group name="ClassExpression"> <xsd:choice> <xsd:element ref="owl:Class"/> <xsd:element ref="owl:ObjectIntersectionOf"/> <xsd:element ref="owl:ObjectUnionOf"/> <xsd:element ref="owl:ObjectComplementOf"/> <xsd:element ref="owl:ObjectOneOf"/> <xsd:element ref="owl:ObjectSomeValuesFrom"/> <xsd:element ref="owl:ObjectAllValuesFrom"/> <xsd:element ref="owl:ObjectHasValue"/> <xsd:element ref="owl:ObjectHasSelf"/> <xsd:element ref="owl:ObjectMinCardinality"/> <xsd:element ref="owl:ObjectMaxCardinality"/> <xsd:element ref="owl:ObjectExactCardinality"/> <xsd:element ref="owl:DataSomeValuesFrom"/> <xsd:element ref="owl:DataAllValuesFrom"/> <xsd:element ref="owl:DataHasValue"/> <xsd:element ref="owl:DataMinCardinality"/> <xsd:element ref="owl:DataMaxCardinality"/> <xsd:element ref="owl:DataExactCardinality"/> </xsd:choice> </xsd:group> <xsd:complexType name="ObjectIntersectionOf"> <xsd:complexContent> <xsd:extension base="owl:ClassExpression"> <xsd:sequence> <xsd:group ref="owl:ClassExpression" minOccurs="2" maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="ObjectIntersectionOf" type="owl:ObjectIntersectionOf"/> <xsd:complexType name="ObjectUnionOf"> <xsd:complexContent> <xsd:extension base="owl:ClassExpression"> <xsd:sequence> <xsd:group ref="owl:ClassExpression" minOccurs="2" maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="ObjectUnionOf" type="owl:ObjectUnionOf"/> <xsd:complexType name="ObjectComplementOf"> <xsd:complexContent> <xsd:extension base="owl:ClassExpression"> <xsd:sequence> <xsd:group ref="owl:ClassExpression"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="ObjectComplementOf" type="owl:ObjectComplementOf"/> <xsd:complexType name="ObjectOneOf"> <xsd:complexContent> <xsd:extension base="owl:ClassExpression"> <xsd:sequence> <xsd:group ref="owl:Individual" minOccurs="1" maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="ObjectOneOf" type="owl:ObjectOneOf"/> <xsd:complexType name="ObjectSomeValuesFrom"> <xsd:complexContent> <xsd:extension base="owl:ClassExpression"> <xsd:sequence> <xsd:group ref="owl:ObjectPropertyExpression"/> <xsd:group ref="owl:ClassExpression"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="ObjectSomeValuesFrom" type="owl:ObjectSomeValuesFrom"/> <xsd:complexType name="ObjectAllValuesFrom"> <xsd:complexContent> <xsd:extension base="owl:ClassExpression"> <xsd:sequence> <xsd:group ref="owl:ObjectPropertyExpression"/> <xsd:group ref="owl:ClassExpression"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="ObjectAllValuesFrom" type="owl:ObjectAllValuesFrom"/> <xsd:complexType name="ObjectHasValue"> <xsd:complexContent> <xsd:extension base="owl:ClassExpression"> <xsd:sequence> <xsd:group ref="owl:ObjectPropertyExpression"/> <xsd:group ref="owl:Individual"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="ObjectHasValue" type="owl:ObjectHasValue"/> <xsd:complexType name="ObjectHasSelf"> <xsd:complexContent> <xsd:extension base="owl:ClassExpression"> <xsd:sequence> <xsd:group ref="owl:ObjectPropertyExpression"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="ObjectHasSelf" type="owl:ObjectHasSelf"/> <xsd:complexType name="ObjectMinCardinality"> <xsd:complexContent> <xsd:extension base="owl:ClassExpression"> <xsd:sequence> <xsd:group ref="owl:ObjectPropertyExpression"/> <xsd:group ref="owl:ClassExpression" minOccurs="0" maxOccurs="1"/> </xsd:sequence> <xsd:attribute name="cardinality" type="xsd:nonNegativeInteger" use="required"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="ObjectMinCardinality" type="owl:ObjectMinCardinality"/> <xsd:complexType name="ObjectMaxCardinality"> <xsd:complexContent> <xsd:extension base="owl:ClassExpression"> <xsd:sequence> <xsd:group ref="owl:ObjectPropertyExpression"/> <xsd:group ref="owl:ClassExpression" minOccurs="0" maxOccurs="1"/> </xsd:sequence> <xsd:attribute name="cardinality" type="xsd:nonNegativeInteger" use="required"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="ObjectMaxCardinality" type="owl:ObjectMaxCardinality"/> <xsd:complexType name="ObjectExactCardinality"> <xsd:complexContent> <xsd:extension base="owl:ClassExpression"> <xsd:sequence> <xsd:group ref="owl:ObjectPropertyExpression"/> <xsd:group ref="owl:ClassExpression" minOccurs="0" maxOccurs="1"/> </xsd:sequence> <xsd:attribute name="cardinality" type="xsd:nonNegativeInteger" use="required"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="ObjectExactCardinality" type="owl:ObjectExactCardinality"/> <xsd:complexType name="DataSomeValuesFrom"> <xsd:complexContent> <xsd:extension base="owl:ClassExpression"> <xsd:sequence> <xsd:group ref="owl:DataPropertyExpression" minOccurs="1" maxOccurs="unbounded"/> <xsd:group ref="owl:DataRange"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="DataSomeValuesFrom" type="owl:DataSomeValuesFrom"/> <xsd:complexType name="DataAllValuesFrom"> <xsd:complexContent> <xsd:extension base="owl:ClassExpression"> <xsd:sequence> <xsd:group ref="owl:DataPropertyExpression" minOccurs="1" maxOccurs="unbounded"/> <xsd:group ref="owl:DataRange"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="DataAllValuesFrom" type="owl:DataAllValuesFrom"/> <xsd:complexType name="DataHasValue"> <xsd:complexContent> <xsd:extension base="owl:ClassExpression"> <xsd:sequence> <xsd:group ref="owl:DataPropertyExpression"/> <xsd:element ref="owl:Literal"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="DataHasValue" type="owl:DataHasValue"/> <xsd:complexType name="DataMinCardinality"> <xsd:complexContent> <xsd:extension base="owl:ClassExpression"> <xsd:sequence> <xsd:group ref="owl:DataPropertyExpression"/> <xsd:group ref="owl:DataRange" minOccurs="0" maxOccurs="1"/> </xsd:sequence> <xsd:attribute name="cardinality" type="xsd:nonNegativeInteger" use="required"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="DataMinCardinality" type="owl:DataMinCardinality"/> <xsd:complexType name="DataMaxCardinality"> <xsd:complexContent> <xsd:extension base="owl:ClassExpression"> <xsd:sequence> <xsd:group ref="owl:DataPropertyExpression"/> <xsd:group ref="owl:DataRange" minOccurs="0" maxOccurs="1"/> </xsd:sequence> <xsd:attribute name="cardinality" type="xsd:nonNegativeInteger" use="required"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="DataMaxCardinality" type="owl:DataMaxCardinality"/> <xsd:complexType name="DataExactCardinality"> <xsd:complexContent> <xsd:extension base="owl:ClassExpression"> <xsd:sequence> <xsd:group ref="owl:DataPropertyExpression"/> <xsd:group ref="owl:DataRange" minOccurs="0" maxOccurs="1"/> </xsd:sequence> <xsd:attribute name="cardinality" type="xsd:nonNegativeInteger" use="required"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="DataExactCardinality" type="owl:DataExactCardinality"/> <!-- Axioms --> <xsd:complexType name="Axiom" abstract="true"> <xsd:sequence> <xsd:group ref="owl:axiomAnnotations"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> <xsd:group name="Axiom"> <xsd:choice> <xsd:element ref="owl:Declaration"/> <xsd:group ref="owl:ClassAxiom"/> <xsd:group ref="owl:ObjectPropertyAxiom"/> <xsd:group ref="owl:DataPropertyAxiom"/> <xsd:element ref="owl:DatatypeDefinition"/> <xsd:element ref="owl:HasKey"/> <xsd:group ref="owl:Assertion"/> <xsd:group ref="owl:AnnotationAxiom"/> </xsd:choice> </xsd:group> <!-- Class expression axioms --> <xsd:complexType name="ClassAxiom" abstract="true"> <xsd:complexContent> <xsd:extension base="owl:Axiom"/> </xsd:complexContent> </xsd:complexType> <xsd:group name="ClassAxiom"> <xsd:choice> <xsd:element ref="owl:SubClassOf"/> <xsd:element ref="owl:EquivalentClasses"/> <xsd:element ref="owl:DisjointClasses"/> <xsd:element ref="owl:DisjointUnion"/> </xsd:choice> </xsd:group> <xsd:complexType name="SubClassOf"> <xsd:complexContent> <xsd:extension base="owl:ClassAxiom"> <xsd:sequence> <xsd:group ref="owl:ClassExpression"/> <!-- This is the subexpression --> <xsd:group ref="owl:ClassExpression"/> <!-- This is the superexpression --> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="SubClassOf" type="owl:SubClassOf"/> <xsd:complexType name="EquivalentClasses"> <xsd:complexContent> <xsd:extension base="owl:ClassAxiom"> <xsd:sequence> <xsd:group ref="owl:ClassExpression" minOccurs="2" maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="EquivalentClasses" type="owl:EquivalentClasses"/> <xsd:complexType name="DisjointClasses"> <xsd:complexContent> <xsd:extension base="owl:ClassAxiom"> <xsd:sequence> <xsd:group ref="owl:ClassExpression" minOccurs="2" maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="DisjointClasses" type="owl:DisjointClasses"/> <xsd:complexType name="DisjointUnion"> <xsd:complexContent> <xsd:extension base="owl:ClassAxiom"> <xsd:sequence> <xsd:element ref="owl:Class"/> <xsd:group ref="owl:ClassExpression" minOccurs="2" maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="DisjointUnion" type="owl:DisjointUnion"/> <!-- Object property axioms --> <xsd:complexType name="ObjectPropertyAxiom" abstract="true"> <xsd:complexContent> <xsd:extension base="owl:Axiom"/> </xsd:complexContent> </xsd:complexType> <xsd:group name="ObjectPropertyAxiom"> <xsd:choice> <xsd:element ref="owl:SubObjectPropertyOf"/> <xsd:element ref="owl:EquivalentObjectProperties"/> <xsd:element ref="owl:DisjointObjectProperties"/> <xsd:element ref="owl:InverseObjectProperties"/> <xsd:element ref="owl:ObjectPropertyDomain"/> <xsd:element ref="owl:ObjectPropertyRange"/> <xsd:element ref="owl:FunctionalObjectProperty"/> <xsd:element ref="owl:InverseFunctionalObjectProperty"/> <xsd:element ref="owl:ReflexiveObjectProperty"/> <xsd:element ref="owl:IrreflexiveObjectProperty"/> <xsd:element ref="owl:SymmetricObjectProperty"/> <xsd:element ref="owl:AsymmetricObjectProperty"/> <xsd:element ref="owl:TransitiveObjectProperty"/> </xsd:choice> </xsd:group> <xsd:complexType name="SubObjectPropertyOf"> <xsd:complexContent> <xsd:extension base="owl:ObjectPropertyAxiom"> <xsd:sequence> <xsd:choice> <!-- This is the subproperty expression or the property chain --> <xsd:group ref="owl:ObjectPropertyExpression"/> <xsd:element name="PropertyChain" type="owl:PropertyChain"/> </xsd:choice> <xsd:group ref="owl:ObjectPropertyExpression"/> <!-- This is the superproperty expression --> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="SubObjectPropertyOf" type="owl:SubObjectPropertyOf"/> <xsd:complexType name="PropertyChain"> <xsd:sequence> <xsd:group ref="owl:ObjectPropertyExpression" minOccurs="2" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> <xsd:complexType name="EquivalentObjectProperties"> <xsd:complexContent> <xsd:extension base="owl:ObjectPropertyAxiom"> <xsd:sequence> <xsd:group ref="owl:ObjectPropertyExpression" minOccurs="2" maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="EquivalentObjectProperties" type="owl:EquivalentObjectProperties"/> <xsd:complexType name="DisjointObjectProperties"> <xsd:complexContent> <xsd:extension base="owl:ObjectPropertyAxiom"> <xsd:sequence> <xsd:group ref="owl:ObjectPropertyExpression" minOccurs="2" maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="DisjointObjectProperties" type="owl:DisjointObjectProperties"/> <xsd:complexType name="ObjectPropertyDomain"> <xsd:sequence> <xsd:group ref="owl:ObjectPropertyExpression"/> <xsd:group ref="owl:ClassExpression"/> </xsd:sequence> </xsd:complexType> <xsd:element name="ObjectPropertyDomain" type="owl:ObjectPropertyDomain"/> <xsd:complexType name="ObjectPropertyRange"> <xsd:complexContent> <xsd:extension base="owl:ObjectPropertyAxiom"> <xsd:sequence> <xsd:group ref="owl:ObjectPropertyExpression"/> <xsd:group ref="owl:ClassExpression"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="ObjectPropertyRange" type="owl:ObjectPropertyRange"/> <xsd:complexType name="InverseObjectProperties"> <xsd:complexContent> <xsd:extension base="owl:ObjectPropertyAxiom"> <xsd:sequence> <xsd:group ref="owl:ObjectPropertyExpression" minOccurs="2" maxOccurs="2"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="InverseObjectProperties" type="owl:InverseObjectProperties"/> <xsd:complexType name="FunctionalObjectProperty"> <xsd:complexContent> <xsd:extension base="owl:ObjectPropertyAxiom"> <xsd:sequence> <xsd:group ref="owl:ObjectPropertyExpression"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="FunctionalObjectProperty" type="owl:FunctionalObjectProperty"/> <xsd:complexType name="InverseFunctionalObjectProperty"> <xsd:complexContent> <xsd:extension base="owl:ObjectPropertyAxiom"> <xsd:sequence> <xsd:group ref="owl:ObjectPropertyExpression"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="InverseFunctionalObjectProperty" type="owl:InverseFunctionalObjectProperty"/> <xsd:complexType name="ReflexiveObjectProperty"> <xsd:complexContent> <xsd:extension base="owl:ObjectPropertyAxiom"> <xsd:sequence> <xsd:group ref="owl:ObjectPropertyExpression"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="ReflexiveObjectProperty" type="owl:ReflexiveObjectProperty"/> <xsd:complexType name="IrreflexiveObjectProperty"> <xsd:complexContent> <xsd:extension base="owl:ObjectPropertyAxiom"> <xsd:sequence> <xsd:group ref="owl:ObjectPropertyExpression"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="IrreflexiveObjectProperty" type="owl:IrreflexiveObjectProperty"/> <xsd:complexType name="SymmetricObjectProperty"> <xsd:complexContent> <xsd:extension base="owl:ObjectPropertyAxiom"> <xsd:sequence> <xsd:group ref="owl:ObjectPropertyExpression"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="SymmetricObjectProperty" type="owl:SymmetricObjectProperty"/> <xsd:complexType name="AsymmetricObjectProperty"> <xsd:complexContent> <xsd:extension base="owl:ObjectPropertyAxiom"> <xsd:sequence> <xsd:group ref="owl:ObjectPropertyExpression"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="AsymmetricObjectProperty" type="owl:AsymmetricObjectProperty"/> <xsd:complexType name="TransitiveObjectProperty"> <xsd:complexContent> <xsd:extension base="owl:ObjectPropertyAxiom"> <xsd:sequence> <xsd:group ref="owl:ObjectPropertyExpression"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="TransitiveObjectProperty" type="owl:TransitiveObjectProperty"/> <!-- Data property axioms --> <xsd:complexType name="DataPropertyAxiom" abstract="true"> <xsd:complexContent> <xsd:extension base="owl:Axiom"/> </xsd:complexContent> </xsd:complexType> <xsd:group name="DataPropertyAxiom"> <xsd:choice> <xsd:element ref="owl:SubDataPropertyOf"/> <xsd:element ref="owl:EquivalentDataProperties"/> <xsd:element ref="owl:DisjointDataProperties"/> <xsd:element ref="owl:DataPropertyDomain"/> <xsd:element ref="owl:DataPropertyRange"/> <xsd:element ref="owl:FunctionalDataProperty"/> </xsd:choice> </xsd:group> <xsd:complexType name="SubDataPropertyOf"> <xsd:complexContent> <xsd:extension base="owl:DataPropertyAxiom"> <xsd:sequence> <xsd:group ref="owl:DataPropertyExpression"/> <!-- This is the subproperty expression --> <xsd:group ref="owl:DataPropertyExpression"/> <!-- This is the superproperty expression --> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="SubDataPropertyOf" type="owl:SubDataPropertyOf"/> <xsd:complexType name="EquivalentDataProperties"> <xsd:complexContent> <xsd:extension base="owl:DataPropertyAxiom"> <xsd:sequence> <xsd:group ref="owl:DataPropertyExpression" minOccurs="2" maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="EquivalentDataProperties" type="owl:EquivalentDataProperties"/> <xsd:complexType name="DisjointDataProperties"> <xsd:complexContent> <xsd:extension base="owl:DataPropertyAxiom"> <xsd:sequence> <xsd:group ref="owl:DataPropertyExpression" minOccurs="2" maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="DisjointDataProperties" type="owl:DisjointDataProperties"/> <xsd:complexType name="DataPropertyDomain"> <xsd:complexContent> <xsd:extension base="owl:DataPropertyAxiom"> <xsd:sequence> <xsd:group ref="owl:DataPropertyExpression"/> <xsd:group ref="owl:ClassExpression"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="DataPropertyDomain" type="owl:DataPropertyDomain"/> <xsd:complexType name="DataPropertyRange"> <xsd:complexContent> <xsd:extension base="owl:DataPropertyAxiom"> <xsd:sequence> <xsd:group ref="owl:DataPropertyExpression"/> <xsd:group ref="owl:DataRange"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="DataPropertyRange" type="owl:DataPropertyRange"/> <xsd:complexType name="FunctionalDataProperty"> <xsd:complexContent> <xsd:extension base="owl:DataPropertyAxiom"> <xsd:sequence> <xsd:group ref="owl:DataPropertyExpression"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="FunctionalDataProperty" type="owl:FunctionalDataProperty"/> <!-- Datatype definitions --> <xsd:complexType name="DatatypeDefinition"> <xsd:complexContent> <xsd:extension base="owl:Axiom"> <xsd:sequence> <xsd:element ref="owl:Datatype"/> <xsd:group ref="owl:DataRange"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="DatatypeDefinition" type="owl:DatatypeDefinition"/> <!-- Key axioms --> <xsd:complexType name="HasKey"> <xsd:complexContent> <xsd:extension base="owl:Axiom"> <xsd:sequence> <xsd:group ref="owl:ClassExpression"/> <xsd:group ref="owl:ObjectPropertyExpression" minOccurs="0" maxOccurs="unbounded"/> <xsd:group ref="owl:DataPropertyExpression" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="HasKey" type="owl:HasKey"/> <!-- Assertions --> <xsd:complexType name="Assertion" abstract="true"> <xsd:complexContent> <xsd:extension base="owl:Axiom"/> </xsd:complexContent> </xsd:complexType> <xsd:group name="Assertion"> <xsd:choice> <xsd:element ref="owl:SameIndividual"/> <xsd:element ref="owl:DifferentIndividuals"/> <xsd:element ref="owl:ClassAssertion"/> <xsd:element ref="owl:ObjectPropertyAssertion"/> <xsd:element ref="owl:NegativeObjectPropertyAssertion"/> <xsd:element ref="owl:DataPropertyAssertion"/> <xsd:element ref="owl:NegativeDataPropertyAssertion"/> </xsd:choice> </xsd:group> <xsd:complexType name="SameIndividual"> <xsd:complexContent> <xsd:extension base="owl:Assertion"> <xsd:sequence> <xsd:group ref="owl:Individual" minOccurs="2" maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="SameIndividual" type="owl:SameIndividual"/> <xsd:complexType name="DifferentIndividuals"> <xsd:complexContent> <xsd:extension base="owl:Assertion"> <xsd:sequence> <xsd:group ref="owl:Individual" minOccurs="2" maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="DifferentIndividuals" type="owl:DifferentIndividuals"/> <xsd:complexType name="ClassAssertion"> <xsd:complexContent> <xsd:extension base="owl:Assertion"> <xsd:sequence> <xsd:group ref="owl:ClassExpression"/> <xsd:group ref="owl:Individual"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="ClassAssertion" type="owl:ClassAssertion"/> <xsd:complexType name="ObjectPropertyAssertion"> <xsd:complexContent> <xsd:extension base="owl:Assertion"> <xsd:sequence> <xsd:group ref="owl:ObjectPropertyExpression"/> <xsd:group ref="owl:Individual"/> <!-- This is the source invididual --> <xsd:group ref="owl:Individual"/> <!-- This is the target individual --> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="ObjectPropertyAssertion" type="owl:ObjectPropertyAssertion"/> <xsd:complexType name="NegativeObjectPropertyAssertion"> <xsd:complexContent> <xsd:extension base="owl:Assertion"> <xsd:sequence> <xsd:group ref="owl:ObjectPropertyExpression"/> <xsd:group ref="owl:Individual"/> <!-- This is the source invididual --> <xsd:group ref="owl:Individual"/> <!-- This is the target individual --> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="NegativeObjectPropertyAssertion" type="owl:NegativeObjectPropertyAssertion"/> <xsd:complexType name="DataPropertyAssertion"> <xsd:complexContent> <xsd:extension base="owl:Assertion"> <xsd:sequence> <xsd:group ref="owl:DataPropertyExpression"/> <xsd:group ref="owl:Individual"/> <!-- This is the source invididual --> <xsd:element ref="owl:Literal"/> <!-- This is the target individual --> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="DataPropertyAssertion" type="owl:DataPropertyAssertion"/> <xsd:complexType name="NegativeDataPropertyAssertion"> <xsd:complexContent> <xsd:extension base="owl:Assertion"> <xsd:sequence> <xsd:group ref="owl:DataPropertyExpression"/> <xsd:group ref="owl:Individual"/> <!-- This is the source invididual --> <xsd:element ref="owl:Literal"/> <!-- This is the target individual --> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="NegativeDataPropertyAssertion" type="owl:NegativeDataPropertyAssertion"/> <!-- Annotations --> <xsd:complexType name="IRI"> <xsd:simpleContent> <xsd:extension base="xsd:anyURI"> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <xsd:element name="IRI" type="owl:IRI"/> <xsd:complexType name="AbbreviatedIRI"> <xsd:simpleContent> <xsd:extension base="owl:abbreviatedIRI"> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> <xsd:element name="AbbreviatedIRI" type="owl:AbbreviatedIRI"/> <xsd:group name="AnnotationSubject"> <xsd:choice> <xsd:element ref="owl:IRI"/> <xsd:element name="AbbreviatedIRI"/> <xsd:element ref="owl:AnonymousIndividual"/> </xsd:choice> </xsd:group> <xsd:group name="AnnotationValue"> <xsd:choice> <xsd:element ref="owl:IRI"/> <xsd:element name="AbbreviatedIRI"/> <xsd:element ref="owl:AnonymousIndividual"/> <xsd:element ref="owl:Literal"/> </xsd:choice> </xsd:group> <xsd:complexType name="Annotation"> <xsd:sequence> <xsd:group ref="owl:annotationAnnotations"/> <xsd:element ref="owl:AnnotationProperty"/> <xsd:group ref="owl:AnnotationValue"/> </xsd:sequence> <xsd:attributeGroup ref="xml:specialAttrs"/> </xsd:complexType> <xsd:element name="Annotation" type="owl:Annotation"/> <xsd:group name="axiomAnnotations"> <xsd:sequence> <xsd:element ref="owl:Annotation" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:group> <xsd:group name="ontologyAnnotations"> <xsd:sequence> <xsd:element ref="owl:Annotation" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:group> <xsd:group name="annotationAnnotations"> <xsd:sequence> <xsd:element ref="owl:Annotation" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:group> <!-- Annotation axioms --> <xsd:complexType name="AnnotationAxiom" abstract="true"> <xsd:complexContent> <xsd:extension base="owl:Axiom"/> </xsd:complexContent> </xsd:complexType> <xsd:group name="AnnotationAxiom"> <xsd:choice> <xsd:element ref="owl:AnnotationAssertion"/> <xsd:element ref="owl:SubAnnotationPropertyOf"/> <xsd:element ref="owl:AnnotationPropertyDomain"/> <xsd:element ref="owl:AnnotationPropertyRange"/> </xsd:choice> </xsd:group> <xsd:complexType name="AnnotationAssertion"> <xsd:complexContent> <xsd:extension base="owl:AnnotationAxiom"> <xsd:sequence> <xsd:element ref="owl:AnnotationProperty"/> <xsd:group ref="owl:AnnotationSubject"/> <xsd:group ref="owl:AnnotationValue"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="AnnotationAssertion" type="owl:AnnotationAssertion"/> <xsd:complexType name="SubAnnotationPropertyOf"> <xsd:complexContent> <xsd:extension base="owl:AnnotationAxiom"> <xsd:sequence> <xsd:element ref="owl:AnnotationProperty"/> <!-- This is the subproperty --> <xsd:element ref="owl:AnnotationProperty"/> <!-- This is the superproperty --> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="SubAnnotationPropertyOf" type="owl:SubAnnotationPropertyOf"/> <xsd:complexType name="AnnotationPropertyDomain"> <xsd:complexContent> <xsd:extension base="owl:AnnotationAxiom"> <xsd:sequence> <xsd:element ref="owl:AnnotationProperty"/> <xsd:element ref="owl:IRI"/> <xsd:element name="AbbreviatedIRI"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="AnnotationPropertyDomain" type="owl:AnnotationPropertyDomain"/> <xsd:complexType name="AnnotationPropertyRange"> <xsd:complexContent> <xsd:extension base="owl:AnnotationAxiom"> <xsd:sequence> <xsd:element ref="owl:AnnotationProperty"/> <xsd:element ref="owl:IRI"/> <xsd:element name="AbbreviatedIRI"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="AnnotationPropertyRange" type="owl:AnnotationPropertyRange"/> </xsd:schema>