Navigation

Introduction Differences Source
Lite Syntax Lite Mapping Lite Triples Lite Proof
DL Syntax DL Mapping DL Triples DL Proof

lite Abstract Syntax

The grammar for the abstract syntax is defined in terms of the non-constant terminals uriref, lexicalForm, language, 0, 1 and naturalNumber (DL only). There are also the following constant terminal tokens: Functional, InverseFunctional, Transitive,Symmetric, Partial, Complete, Deprecated and Declaration (DL only).

A uriref is an RDF URI reference as defined in RDF Concepts.

A language is a language identifier as defined in RDF Concepts.

A lexicalForm is a lexical form as defined in RDF Concepts.

A naturalNumber is a lexical form that is in the lexical space of xsd:nonNegativeInteger.

0 and 1 are the first two naturalNumbers.

Each uriref used in the abstract syntax appears within one of the following constructs.

If a specific uriref is used within one of these, then all other occurrences of that uriref in a specific abstract syntax tree must be within the same construct.

Moreover, certain urirefs from the RDF, RDFS, XSD and OWL namespaces are builtin, and must only be used in the constructs permitted below:

UrirefPermitted Constructs
rdf:type None
rdf:Property None
rdf:first None
rdf:rest None
rdf:List None
rdf:XMLLiteral datatypeID
rdf:_NNN complexObjectPropID
rdfs:Literal dataRangeID
rdfs:Resource none
rdfs:Datatype none
rdfs:ContainerMembershipProperty none
rdfs:subClassOf none
rdfs:subPropertyOf none
rdfs:domain none
rdfs:range none
rdfs:label annotationPropID
rdfs:comment annotationPropID
rdfs:isDefinedBy annotationPropID
rdfs:seeAlso annotationPropID
xsd:built-in datatypeID
owl:imports metaPropertyID
owl:backwardCompatibleWith metaPropertyID
owl:incompatibleWith metaPropertyID
owl:priorVersion metaPropertyID
owl:Thing classID
owl:Nothing classID
owl:anything-else-defined-in-owl.owl none

Only the builtin urirefs above may be used as metaPropertyIDs. In OWL Lite, only the builtin uriref above may be used as a dataRangeID, and only the builtin urirefs above may be used as datatypeIDs. (No mechanism is provided for user defined datatypes, even in OWL DL).

ontologyID  [A1] ::= OntologyID(  uriref  ) 
ontologyPropertyID[A2] ::= OntologyPropertyID(  uriref  ) 
datatypeID  [A3] ::= DatatypeID(  uriref  ) 
annotationPropID[A4] ::= AnnotationPropID(  uriref  ) 
dataAnnotationPropID[A5] ::= DataAnnotationPropID(  uriref  ) 
classID     [A6] ::= ClassID(  uriref  ) 
individualID[A7] ::= IndividualID(  uriref  ) 
dataPropID  [A8] ::= DataPropID(  uriref  ) 
objectPropID[A9] ::= ObjectPropID(  uriref  ) 
transitivePropID[A10] ::= TransitivePropID(  uriref  ) 
ontology    [B1] ::= Ontology(  { directive  }  ) 
directive   [C1] ::= header 
            [C2] | axiom 
            [C3] | fact 
header      [D1] ::= Header(  ontologyID { metaPropValue  } { annotation  }  ) 
metaPropValue[E1] ::= MetaPropValue(  ontologyPropertyID ontologyID  ) 
annotation  [F1] ::= Annotation(  annotationPropID dataLiteral  ) 
            [F2] | Annotation(  dataAnnotationPropID dataLiteral  ) 
            [F3] | Annotation(  annotationPropID individual  ) 
            [F4] | Annotation(  annotationPropID annotationPropID  ) 
            [F5] | Annotation(  annotationPropID dataAnnotationPropID  ) 
            [F6] | Annotation(  annotationPropID ontologyPropertyID  ) 
            [F7] | Annotation(  annotationPropID ontologyID  ) 
            [F8] | Annotation(  annotationPropID datatypeID  ) 
            [F9] | Annotation(  annotationPropID classID  ) 
            [F10] | Annotation(  annotationPropID individualID  ) 
            [F11] | Annotation(  annotationPropID dataPropID  ) 
            [F12] | Annotation(  annotationPropID objectPropID  ) 
            [F13] | Annotation(  annotationPropID transitivePropID  ) 
fact        [G1] ::= individual 
            [G2] | AllDifferentIndividuals(  { individualID  }  ) 
individual  [H1] ::= Individual(  individualID { annotation  } 
                         { Type(  description  )  } { value  } 
                         { individualComparison  }  ) 
            [H2] | Individual(  { annotation  } { Type(  description  )  } 
                         { value  }  ) 
value       [I1] ::= Value(  objectPropID individual  ) 
            [I2] | Value(  transitivePropID individual  ) 
            [I3] | Value(  dataPropID dataLiteral  ) 
description [J1] ::= classID 
            [J2] | restriction 
dataLiteral [K1] ::= DataLiteral(  lexicalForm [ language  ] [ datatypeID  ]  ) 
individualComparison[L1] ::= SameIndividual(  individualID  ) 
            [L2] | DifferentIndividuals(  individualID  ) 
axiom       [M1] ::= Class(  classID [ Deprecated  ] modality 
                         { annotation  } { Super(  description  )  }  ) 
            [M2] | EquivalentClasses(  classInRestriction classInRestriction  ) 
            [M3] | restriction 
            [M4] | AnnotationProperty(  annotationPropID { annotation  }  ) 
            [M5] | AnnotationProperty(  dataAnnotationPropID 
                         { annotation  }  ) 
            [M6] | DatatypeProperty(  dataPropID [ Deprecated  ] 
                         { annotation  } { Super(  dataPropID  )  } 
                         { Domain(  classInRestriction  )  } 
                         { Range(  dataRange  )  } [ Functional  ]  ) 
            [M7] | IndividualProperty(  objectPropID [ Deprecated  ] 
                         { annotation  } { Super(  objectPropID  )  } 
                         { Super(  transitivePropID  )  } { Domain(  classInRestriction  )  } 
                         { Range(  classInRestriction  )  } { Inverse(  objectPropID  )  } 
                         [ Functional  ] [ InverseFunctional  ] 
                         [ Symmetric  ]  ) 
            [M8] | IndividualProperty(  transitivePropID [ Deprecated  ] 
                         { annotation  } { Super(  transitivePropID  )  } 
                         { Domain(  classInRestriction  )  } 
                         { Range(  classInRestriction  )  } { Inverse(  transitivePropID  )  } 
                         [ Transitive  ] [ Symmetric  ]  ) 
            [M9] | EquivalentProperties(  transitivePropID transitivePropID 
                         { transitivePropID  }  ) 
            [M10] | EquivalentProperties(  objectPropID objectPropID 
                         { objectPropID  }  ) 
            [M11] | EquivalentProperties(  dataPropID dataPropID 
                         { dataPropID  }  ) 
            [M12] | DatatypeDeclaration(  datatypeID { annotation  }  ) 
            [M13] | description 
modality    [N1] ::= Partial 
            [N2] | Complete 
restriction [O1] ::= Restriction(  dataPropID AllValuesFrom(  
                         dataRange  )  ) 
            [O2] | Restriction(  dataPropID SomeValuesFrom(  
                         dataRange  )  ) 
            [O3] | Restriction(  dataPropID Cardinality(  smallInt 
                          )  ) 
            [O4] | Restriction(  dataPropID MinCardinality(  
                         smallInt  )  ) 
            [O5] | Restriction(  dataPropID MaxCardinality(  
                         smallInt  )  ) 
            [O6] | Restriction(  objectPropID AllValuesFrom(  
                         classInRestriction  )  ) 
            [O7] | Restriction(  objectPropID SomeValuesFrom(  
                         classInRestriction  )  ) 
            [O8] | Restriction(  objectPropID Cardinality(  
                         smallInt  )  ) 
            [O9] | Restriction(  objectPropID MinCardinality(  
                         smallInt  )  ) 
            [O10] | Restriction(  objectPropID MaxCardinality(  
                         smallInt  )  ) 
            [O11] | Restriction(  transitivePropID AllValuesFrom(  
                         classInRestriction  )  ) 
            [O12] | Restriction(  transitivePropID SomeValuesFrom(  
                         classInRestriction  )  ) 
classInRestriction[P1] ::= classID 
smallInt    [Q1] ::= 0 
            [Q2] | 1 
dataRange   [R1] ::= datatypeID