summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/stex/schema/rnc/owl2-xml.rnc
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/stex/schema/rnc/owl2-xml.rnc')
-rw-r--r--Master/texmf-dist/source/latex/stex/schema/rnc/owl2-xml.rnc532
1 files changed, 532 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/stex/schema/rnc/owl2-xml.rnc b/Master/texmf-dist/source/latex/stex/schema/rnc/owl2-xml.rnc
new file mode 100644
index 00000000000..cf0bb9c5774
--- /dev/null
+++ b/Master/texmf-dist/source/latex/stex/schema/rnc/owl2-xml.rnc
@@ -0,0 +1,532 @@
+# 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.
+
+default namespace = "http://www.w3.org/2002/07/owl#"
+
+# The ontology
+Prefix.type =
+ attribute name {
+ xsd:string {
+ pattern =
+ "([A-Z]|[a-z]|[À-Ö]|[Ø-ö]|[ø-˿]|[Ͱ-ͽ]|[Ϳ-῿]|[‌-‍]|[⁰-↏]|[Ⰰ-⿯]|[、-퟿]|[豈-﷏]|[ﷰ-�]|[𐀀-󯿿])(([A-Z]|[a-z]|[À-Ö]|[Ø-ö]|[ø-˿]|[Ͱ-ͽ]|[Ϳ-῿]|[‌-‍]|[⁰-↏]|[Ⰰ-⿯]|[、-퟿]|[豈-﷏]|[ﷰ-�]|[𐀀-󯿿]|_|\-|[0-9]|·|[̀-ͯ]|[‿-⁀]|\.)*([A-Z]|[a-z]|[À-Ö]|[Ø-ö]|[ø-˿]|[Ͱ-ͽ]|[Ϳ-῿]|[‌-‍]|[⁰-↏]|[Ⰰ-⿯]|[、-퟿]|[豈-﷏]|[ﷰ-�]|[𐀀-󯿿]|_|\-|[0-9]|·|[̀-ͯ]|[‿-⁀] ))?|"
+ }
+ },
+ attribute IRI { xsd:anyURI }
+start |= Prefix
+Prefix = element Prefix { Prefix.type }
+Import.type = attribute specialAttrs { text }
+start |= Import
+Import = element Import { Import.type }
+Ontology.type =
+ Prefix*,
+ Import*,
+ ontologyAnnotations,
+ Axiom*,
+ attribute ontologyIRI { xsd:anyURI }?,
+ attribute versionIRI { xsd:anyURI }?,
+ attribute specialAttrs { text }
+start |= Ontology
+Ontology = element Ontology { Ontology.type }
+# 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 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).
+Entity =
+ Class
+ | Datatype
+ | ObjectProperty
+ | DataProperty
+ | AnnotationProperty
+ | NamedIndividual
+# This is the type for the attribute. The complex type for the element is capitalized.
+abbreviatedIRI =
+ xsd:string {
+ pattern =
+ "(((([A-Z]|[a-z]|[À-Ö]|[Ø-ö]|[ø-˿]|[Ͱ-ͽ]|[Ϳ-῿]|[‌-‍]|[⁰-↏]|[Ⰰ-⿯]|[、-퟿]|[豈-﷏]|[ﷰ-�]|[𐀀-󯿿])(([A-Z]|[a-z]|[À-Ö]|[Ø-ö]|[ø-˿]|[Ͱ-ͽ]|[Ϳ-῿]|[‌-‍]|[⁰-↏]|[Ⰰ-⿯]|[、-퟿]|[豈-﷏]|[ﷰ-�]|[𐀀-󯿿]|_|\-|[0-9]|·|[̀-ͯ]|[‿-⁀]|\.)*([A-Z]|[a-z]|[À-Ö]|[Ø-ö]|[ø-˿]|[Ͱ-ͽ]|[Ϳ-῿]|[‌-‍]|[⁰-↏]|[Ⰰ-⿯]|[、-퟿]|[豈-﷏]|[ﷰ-�]|[𐀀-󯿿]|_|\-|[0-9]|·|[̀-ͯ]|[‿-⁀] ))?)?:)(([A-Z]|[a-z]|[À-Ö]|[Ø-ö]|[ø-˿]|[Ͱ-ͽ]|[Ϳ-῿]|[‌-‍]|[⁰-↏]|[Ⰰ-⿯]|[、-퟿]|[豈-﷏]|[ﷰ-�]|[𐀀-󯿿]|_|[0-9])(([A-Z]|[a-z]|[À-Ö]|[Ø-ö]|[ø-˿]|[Ͱ-ͽ]|[Ϳ-῿]|[‌-‍]|[⁰-↏]|[Ⰰ-⿯]|[、-퟿]|[豈-﷏]|[ﷰ-�]|[𐀀-󯿿]|_|\-|[0-9]|·|[̀-ͯ]|[‿-⁀]|\.)*([A-Z]|[a-z]|[À-Ö]|[Ø-ö]|[ø-˿]|[Ͱ-ͽ]|[Ϳ-῿]|[‌-‍]|[⁰-↏]|[Ⰰ-⿯]|[、-퟿]|[豈-﷏]|[ﷰ-�]|[𐀀-󯿿]|_|\-|[0-9]|·|[̀-ͯ]|[‿-⁀]))?))|((([A-Z]|[a-z]|[À-Ö]|[Ø-ö]|[ø-˿]|[Ͱ-ͽ]|[Ϳ-῿]|[‌-‍]|[⁰-↏]|[Ⰰ-⿯]|[、-퟿]|[豈-﷏]|[ﷰ-�]|[𐀀-󯿿])(([A-Z]|[a-z]|[À-Ö]|[Ø-ö]|[ø-˿]|[Ͱ-ͽ]|[Ϳ-῿]|[‌-‍]|[⁰-↏]|[Ⰰ-⿯]|[、-퟿]|[豈-﷏]|[ﷰ-�]|[𐀀-󯿿]|_|\-|[0-9]|·|[̀-ͯ]|[‿-⁀]|\.)*([A-Z]|[a-z]|[À-Ö]|[Ø-ö]|[ø-˿]|[Ͱ-ͽ]|[Ϳ-῿]|[‌-‍]|[⁰-↏]|[Ⰰ-⿯]|[、-퟿]|[豈-﷏]|[ﷰ-�]|[𐀀-󯿿]|_|\-|[0-9]|·|[̀-ͯ]|[‿-⁀] ))?)?:)"
+ }
+Class.type =
+ ClassExpression,
+ attribute IRI { xsd:anyURI }?,
+ attribute abbreviatedIRI { abbreviatedIRI }?
+start |= Class
+Class = element Class { Class.type }
+Datatype.type =
+ DataRange,
+ attribute IRI { xsd:anyURI }?,
+ attribute abbreviatedIRI { abbreviatedIRI }?
+start |= Datatype
+Datatype = element Datatype { Datatype.type }
+ObjectProperty.type =
+ ObjectPropertyExpression,
+ attribute IRI { xsd:anyURI }?,
+ attribute abbreviatedIRI { abbreviatedIRI }?
+start |= ObjectProperty
+ObjectProperty = element ObjectProperty { ObjectProperty.type }
+DataProperty.type =
+ DataPropertyExpression,
+ attribute IRI { xsd:anyURI }?,
+ attribute abbreviatedIRI { abbreviatedIRI }?
+start |= DataProperty
+DataProperty = element DataProperty { DataProperty.type }
+AnnotationProperty.type =
+ attribute IRI { xsd:anyURI }?,
+ attribute abbreviatedIRI { abbreviatedIRI }?,
+ attribute specialAttrs { text }
+start |= AnnotationProperty
+AnnotationProperty = element AnnotationProperty { AnnotationProperty.type }
+Individual = attribute specialAttrs { text }, (NamedIndividual | AnonymousIndividual)
+NamedIndividual.type =
+ Individual,
+ attribute IRI { xsd:anyURI }?,
+ attribute abbreviatedIRI { abbreviatedIRI }?
+start |= NamedIndividual
+NamedIndividual = element NamedIndividual { NamedIndividual.type }
+AnonymousIndividual.type =
+ Individual,
+ attribute nodeID { xsd:NCName }
+start |= AnonymousIndividual
+AnonymousIndividual =
+ element AnonymousIndividual { AnonymousIndividual.type }
+Literal.type =
+ attribute datatypeIRI { xsd:anyURI },
+ attribute specialAttrs { text }
+start |= Literal
+Literal = element Literal { Literal.type }
+# Declarations
+Declaration.type = Axiom, Entity
+start |= Declaration
+Declaration = element Declaration { Declaration.type }
+# Object property expressions
+ObjectPropertyExpression = attribute specialAttrs { text }, (ObjectProperty | ObjectInverseOf)
+ObjectInverseOf.type = ObjectPropertyExpression, ObjectProperty
+start |= ObjectInverseOf
+ObjectInverseOf = element ObjectInverseOf { ObjectInverseOf.type }
+# Data property expressions
+DataPropertyExpression = attribute specialAttrs { text }, DataProperty
+# Data ranges
+DataRange = attribute specialAttrs { text },
+ (Datatype
+ | DataIntersectionOf
+ | DataUnionOf
+ | DataComplementOf
+ | DataOneOf
+ | DatatypeRestriction)
+DataIntersectionOf.type = DataRange, DataRange+
+start |= DataIntersectionOf
+DataIntersectionOf = element DataIntersectionOf { DataIntersectionOf.type }
+DataUnionOf.type = DataRange, DataRange+
+start |= DataUnionOf
+DataUnionOf = element DataUnionOf { DataUnionOf.type }
+DataComplementOf.type = DataRange, DataRange
+start |= DataComplementOf
+DataComplementOf = element DataComplementOf { DataComplementOf.type }
+DataOneOf.type = DataRange, Literal+
+start |= DataOneOf
+DataOneOf = element DataOneOf { DataOneOf.type }
+DatatypeRestriction.type =
+ DataRange,
+ Datatype,
+ element FacetRestriction { FacetRestriction }+
+start |= DatatypeRestriction
+DatatypeRestriction =
+ element DatatypeRestriction { DatatypeRestriction.type }
+FacetRestriction =
+ Literal,
+ attribute facet { xsd:anyURI },
+ attribute specialAttrs { text }
+# Class expressions
+ClassExpression = attribute specialAttrs { text },
+ (Class
+ | ObjectIntersectionOf
+ | ObjectUnionOf
+ | ObjectComplementOf
+ | ObjectOneOf
+ | ObjectSomeValuesFrom
+ | ObjectAllValuesFrom
+ | ObjectHasValue
+ | ObjectHasSelf
+ | ObjectMinCardinality
+ | ObjectMaxCardinality
+ | ObjectExactCardinality
+ | DataSomeValuesFrom
+ | DataAllValuesFrom
+ | DataHasValue
+ | DataMinCardinality
+ | DataMaxCardinality
+ | DataExactCardinality)
+ObjectIntersectionOf.type = ClassExpression, ClassExpression+
+start |= ObjectIntersectionOf
+ObjectIntersectionOf =
+ element ObjectIntersectionOf { ObjectIntersectionOf.type }
+ObjectUnionOf.type = ClassExpression, ClassExpression+
+start |= ObjectUnionOf
+ObjectUnionOf = element ObjectUnionOf { ObjectUnionOf.type }
+ObjectComplementOf.type = ClassExpression, ClassExpression
+start |= ObjectComplementOf
+ObjectComplementOf = element ObjectComplementOf { ObjectComplementOf.type }
+ObjectOneOf.type = ClassExpression, Individual+
+start |= ObjectOneOf
+ObjectOneOf = element ObjectOneOf { ObjectOneOf.type }
+ObjectSomeValuesFrom.type =
+ ClassExpression, ObjectPropertyExpression, ClassExpression
+start |= ObjectSomeValuesFrom
+ObjectSomeValuesFrom =
+ element ObjectSomeValuesFrom { ObjectSomeValuesFrom.type }
+ObjectAllValuesFrom.type =
+ ClassExpression, ObjectPropertyExpression, ClassExpression
+start |= ObjectAllValuesFrom
+ObjectAllValuesFrom =
+ element ObjectAllValuesFrom { ObjectAllValuesFrom.type }
+ObjectHasValue.type = ClassExpression, ObjectPropertyExpression, Individual
+start |= ObjectHasValue
+ObjectHasValue = element ObjectHasValue { ObjectHasValue.type }
+ObjectHasSelf.type = ClassExpression, ObjectPropertyExpression
+start |= ObjectHasSelf
+ObjectHasSelf = element ObjectHasSelf { ObjectHasSelf.type }
+ObjectMinCardinality.type =
+ ClassExpression,
+ ObjectPropertyExpression,
+ ClassExpression?,
+ attribute cardinality { xsd:nonNegativeInteger }
+start |= ObjectMinCardinality
+ObjectMinCardinality =
+ element ObjectMinCardinality { ObjectMinCardinality.type }
+ObjectMaxCardinality.type =
+ ClassExpression,
+ ObjectPropertyExpression,
+ ClassExpression?,
+ attribute cardinality { xsd:nonNegativeInteger }
+start |= ObjectMaxCardinality
+ObjectMaxCardinality =
+ element ObjectMaxCardinality { ObjectMaxCardinality.type }
+ObjectExactCardinality.type =
+ ClassExpression,
+ ObjectPropertyExpression,
+ ClassExpression?,
+ attribute cardinality { xsd:nonNegativeInteger }
+start |= ObjectExactCardinality
+ObjectExactCardinality =
+ element ObjectExactCardinality { ObjectExactCardinality.type }
+DataSomeValuesFrom.type = ClassExpression, DataPropertyExpression+, DataRange
+start |= DataSomeValuesFrom
+DataSomeValuesFrom = element DataSomeValuesFrom { DataSomeValuesFrom.type }
+DataAllValuesFrom.type = ClassExpression, DataPropertyExpression+, DataRange
+start |= DataAllValuesFrom
+DataAllValuesFrom = element DataAllValuesFrom { DataAllValuesFrom.type }
+DataHasValue.type = ClassExpression, DataPropertyExpression, Literal
+start |= DataHasValue
+DataHasValue = element DataHasValue { DataHasValue.type }
+DataMinCardinality.type =
+ ClassExpression,
+ DataPropertyExpression,
+ DataRange?,
+ attribute cardinality { xsd:nonNegativeInteger }
+start |= DataMinCardinality
+DataMinCardinality = element DataMinCardinality { DataMinCardinality.type }
+DataMaxCardinality.type =
+ ClassExpression,
+ DataPropertyExpression,
+ DataRange?,
+ attribute cardinality { xsd:nonNegativeInteger }
+start |= DataMaxCardinality
+DataMaxCardinality = element DataMaxCardinality { DataMaxCardinality.type }
+DataExactCardinality.type =
+ ClassExpression,
+ DataPropertyExpression,
+ DataRange?,
+ attribute cardinality { xsd:nonNegativeInteger }
+start |= DataExactCardinality
+DataExactCardinality =
+ element DataExactCardinality { DataExactCardinality.type }
+# Axioms
+Axiom = axiomAnnotations, attribute specialAttrs { text },
+ (Declaration
+ | ClassAxiom
+ | ObjectPropertyAxiom
+ | DataPropertyAxiom
+ | DatatypeDefinition
+ | HasKey
+ | Assertion
+ | AnnotationAxiom)
+# Class expression axioms
+ClassAxiom = Axiom | SubClassOf | EquivalentClasses | DisjointClasses | DisjointUnion
+SubClassOf.type =
+ ClassAxiom,
+ ClassExpression,
+ # This is the subexpression
+ ClassExpression
+ # This is the superexpression
+
+start |= SubClassOf
+SubClassOf = element SubClassOf { SubClassOf.type }
+EquivalentClasses.type = ClassAxiom, ClassExpression+
+start |= EquivalentClasses
+EquivalentClasses = element EquivalentClasses { EquivalentClasses.type }
+DisjointClasses.type = ClassAxiom, ClassExpression+
+start |= DisjointClasses
+DisjointClasses = element DisjointClasses { DisjointClasses.type }
+DisjointUnion.type = ClassAxiom, Class, ClassExpression+
+start |= DisjointUnion
+DisjointUnion = element DisjointUnion { DisjointUnion.type }
+# Object property axioms
+ObjectPropertyAxiom = Axiom|
+ SubObjectPropertyOf
+ | EquivalentObjectProperties
+ | DisjointObjectProperties
+ | InverseObjectProperties
+ | ObjectPropertyDomain
+ | ObjectPropertyRange
+ | FunctionalObjectProperty
+ | InverseFunctionalObjectProperty
+ | ReflexiveObjectProperty
+ | IrreflexiveObjectProperty
+ | SymmetricObjectProperty
+ | AsymmetricObjectProperty
+ | TransitiveObjectProperty
+SubObjectPropertyOf.type =
+ ObjectPropertyAxiom,
+ (# This is the subproperty expression or the property chain
+ ObjectPropertyExpression
+ | element ObjectPropertyChain { ObjectPropertyChain.type }),
+ ObjectPropertyExpression
+ # This is the superproperty expression
+
+start |= SubObjectPropertyOf
+SubObjectPropertyOf =
+ element SubObjectPropertyOf { SubObjectPropertyOf.type }
+ObjectPropertyChain.type =
+ ObjectPropertyExpression+,
+ attribute specialAttrs { text }
+EquivalentObjectProperties.type =
+ ObjectPropertyAxiom, ObjectPropertyExpression+
+start |= EquivalentObjectProperties
+EquivalentObjectProperties =
+ element EquivalentObjectProperties { EquivalentObjectProperties.type }
+DisjointObjectProperties.type =
+ ObjectPropertyAxiom, ObjectPropertyExpression+
+start |= DisjointObjectProperties
+DisjointObjectProperties =
+ element DisjointObjectProperties { DisjointObjectProperties.type }
+ObjectPropertyDomain.type =
+ ObjectPropertyAxiom, ObjectPropertyExpression, ClassExpression
+start |= ObjectPropertyDomain
+ObjectPropertyDomain =
+ element ObjectPropertyDomain { ObjectPropertyDomain.type }
+ObjectPropertyRange.type =
+ ObjectPropertyAxiom, ObjectPropertyExpression, ClassExpression
+start |= ObjectPropertyRange
+ObjectPropertyRange =
+ element ObjectPropertyRange { ObjectPropertyRange.type }
+InverseObjectProperties.type =
+ ObjectPropertyAxiom,
+ ObjectPropertyExpression,
+ ObjectPropertyExpression
+start |= InverseObjectProperties
+InverseObjectProperties =
+ element InverseObjectProperties { InverseObjectProperties.type }
+FunctionalObjectProperty.type = ObjectPropertyAxiom, ObjectPropertyExpression
+start |= FunctionalObjectProperty
+FunctionalObjectProperty =
+ element FunctionalObjectProperty { FunctionalObjectProperty.type }
+InverseFunctionalObjectProperty.type =
+ ObjectPropertyAxiom, ObjectPropertyExpression
+start |= InverseFunctionalObjectProperty
+InverseFunctionalObjectProperty =
+ element InverseFunctionalObjectProperty {
+ InverseFunctionalObjectProperty.type
+ }
+ReflexiveObjectProperty.type = ObjectPropertyAxiom, ObjectPropertyExpression
+start |= ReflexiveObjectProperty
+ReflexiveObjectProperty =
+ element ReflexiveObjectProperty { ReflexiveObjectProperty.type }
+IrreflexiveObjectProperty.type =
+ ObjectPropertyAxiom, ObjectPropertyExpression
+start |= IrreflexiveObjectProperty
+IrreflexiveObjectProperty =
+ element IrreflexiveObjectProperty { IrreflexiveObjectProperty.type }
+SymmetricObjectProperty.type = ObjectPropertyAxiom, ObjectPropertyExpression
+start |= SymmetricObjectProperty
+SymmetricObjectProperty =
+ element SymmetricObjectProperty { SymmetricObjectProperty.type }
+AsymmetricObjectProperty.type = ObjectPropertyAxiom, ObjectPropertyExpression
+start |= AsymmetricObjectProperty
+AsymmetricObjectProperty =
+ element AsymmetricObjectProperty { AsymmetricObjectProperty.type }
+TransitiveObjectProperty.type = ObjectPropertyAxiom, ObjectPropertyExpression
+start |= TransitiveObjectProperty
+TransitiveObjectProperty =
+ element TransitiveObjectProperty { TransitiveObjectProperty.type }
+# Data property axioms
+DataPropertyAxiom = Axiom |
+ SubDataPropertyOf
+ | EquivalentDataProperties
+ | DisjointDataProperties
+ | DataPropertyDomain
+ | DataPropertyRange
+ | FunctionalDataProperty
+SubDataPropertyOf.type =
+ DataPropertyAxiom,
+ DataPropertyExpression,
+ # This is the subproperty expression
+ DataPropertyExpression
+ # This is the superproperty expression
+
+start |= SubDataPropertyOf
+SubDataPropertyOf = element SubDataPropertyOf { SubDataPropertyOf.type }
+EquivalentDataProperties.type = DataPropertyAxiom, DataPropertyExpression+
+start |= EquivalentDataProperties
+EquivalentDataProperties =
+ element EquivalentDataProperties { EquivalentDataProperties.type }
+DisjointDataProperties.type = DataPropertyAxiom, DataPropertyExpression+
+start |= DisjointDataProperties
+DisjointDataProperties =
+ element DisjointDataProperties { DisjointDataProperties.type }
+DataPropertyDomain.type =
+ DataPropertyAxiom, DataPropertyExpression, ClassExpression
+start |= DataPropertyDomain
+DataPropertyDomain = element DataPropertyDomain { DataPropertyDomain.type}
+DataPropertyRange.type = DataPropertyAxiom, DataPropertyExpression, DataRange
+start |= DataPropertyRange
+DataPropertyRange = element DataPropertyRange { DataPropertyRange.type }
+FunctionalDataProperty.type = DataPropertyAxiom, DataPropertyExpression
+start |= FunctionalDataProperty
+FunctionalDataProperty =
+ element FunctionalDataProperty { FunctionalDataProperty.type }
+# Datatype definitions
+DatatypeDefinition.type = Axiom, Datatype, DataRange
+start |= DatatypeDefinition
+DatatypeDefinition = element DatatypeDefinition { DatatypeDefinition.type }
+# Key axioms
+HasKey.type =
+ Axiom,
+ ClassExpression,
+ ObjectPropertyExpression*,
+ DataPropertyExpression*
+start |= HasKey
+HasKey = element HasKey { HasKey.type }
+# Assertions
+Assertion = Axiom |
+ SameIndividual
+ | DifferentIndividuals
+ | ClassAssertion
+ | ObjectPropertyAssertion
+ | NegativeObjectPropertyAssertion
+ | DataPropertyAssertion
+ | NegativeDataPropertyAssertion
+SameIndividual.type = Assertion, Individual+
+start |= SameIndividual
+SameIndividual = element SameIndividual { SameIndividual.type }
+DifferentIndividuals.type = Assertion, Individual+
+start |= DifferentIndividuals
+DifferentIndividuals =
+ element DifferentIndividuals { DifferentIndividuals.type }
+ClassAssertion.type = Assertion, ClassExpression, Individual
+start |= ClassAssertion
+ClassAssertion = element ClassAssertion { ClassAssertion.type }
+ObjectPropertyAssertion.type =
+ Assertion,
+ ObjectPropertyExpression,
+ Individual,
+ # This is the source invididual
+ Individual
+ # This is the target individual
+
+start |= ObjectPropertyAssertion
+ObjectPropertyAssertion =
+ element ObjectPropertyAssertion { ObjectPropertyAssertion.type }
+NegativeObjectPropertyAssertion.type =
+ Assertion,
+ ObjectPropertyExpression,
+ Individual,
+ # This is the source invididual
+ Individual
+ # This is the target individual
+
+start |= NegativeObjectPropertyAssertion
+NegativeObjectPropertyAssertion =
+ element NegativeObjectPropertyAssertion {
+ NegativeObjectPropertyAssertion.type
+ }
+DataPropertyAssertion.type =
+ Assertion,
+ DataPropertyExpression,
+ Individual,
+ # This is the source invididual
+ Literal
+ # This is the target individual
+
+start |= DataPropertyAssertion
+DataPropertyAssertion =
+ element DataPropertyAssertion { DataPropertyAssertion.type }
+NegativeDataPropertyAssertion.type =
+ Assertion,
+ DataPropertyExpression,
+ Individual,
+ # This is the source invididual
+ Literal
+ # This is the target individual
+
+start |= NegativeDataPropertyAssertion
+NegativeDataPropertyAssertion =
+ element NegativeDataPropertyAssertion {
+ NegativeDataPropertyAssertion.type
+ }
+# Annotations
+IRI.type = attribute specialAttrs { text }
+start |= IRI
+IRI = element IRI { IRI.type }
+AbbreviatedIRI.type = attribute specialAttrs { text }
+start |= AbbreviatedIRI
+AbbreviatedIRI = element AbbreviatedIRI { AbbreviatedIRI.type }
+AnnotationSubject = IRI | AbbreviatedIRI | AnonymousIndividual
+AnnotationValue = IRI | AbbreviatedIRI | AnonymousIndividual | Literal
+Annotation.type =
+ annotationAnnotations,
+ AnnotationProperty,
+ AnnotationValue,
+ attribute specialAttrs { text }
+start |= Annotation
+Annotation = element Annotation { Annotation.type }
+axiomAnnotations = Annotation*
+ontologyAnnotations = Annotation*
+annotationAnnotations = Annotation*
+# Annotation axioms
+AnnotationAxiom = Axiom |
+ AnnotationAssertion
+ | SubAnnotationPropertyOf
+ | AnnotationPropertyDomain
+ | AnnotationPropertyRange
+AnnotationAssertion.type =
+ AnnotationAxiom,
+ AnnotationProperty,
+ AnnotationSubject,
+ AnnotationValue
+start |= AnnotationAssertion
+AnnotationAssertion =
+ element AnnotationAssertion { AnnotationAssertion.type }
+SubAnnotationPropertyOf.type =
+ AnnotationAxiom,
+ AnnotationProperty,
+ # This is the subproperty
+ AnnotationProperty
+ # This is the superproperty
+
+start |= SubAnnotationPropertyOf
+SubAnnotationPropertyOf =
+ element SubAnnotationPropertyOf { SubAnnotationPropertyOf.type }
+AnnotationPropertyDomain.type =
+ AnnotationAxiom, AnnotationProperty, IRI, AbbreviatedIRI
+start |= AnnotationPropertyDomain
+AnnotationPropertyDomain =
+ element AnnotationPropertyDomain { AnnotationPropertyDomain.type }
+AnnotationPropertyRange.type =
+ AnnotationAxiom, AnnotationProperty, IRI, AbbreviatedIRI
+start |= AnnotationPropertyRange
+AnnotationPropertyRange =
+ element AnnotationPropertyRange { AnnotationPropertyRange.type }