Introduction | Differences | Source | |
Lite Syntax | Lite Mapping | Lite Triples | Lite Proof |
DL Syntax | DL Mapping | DL Triples | DL Proof |
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:
Uriref | Permitted 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 [J3] | UnionOf( { description } ) [J4] | IntersectionOf( { description } ) [J5] | ComplementOf( description ) [J6] | OneOf( { individualID } ) 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 [M14] | EnumeratedClass( classID [ Deprecated ] { annotation } { individualID } ) [M15] | DisjointClasses( description description ) [M16] | SubClassOf( description 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 ) ) [O13] | Restriction( dataPropID HasValue( dataLiteral ) ) [O14] | Restriction( objectPropID HasValue( individualID ) ) [O15] | Restriction( transitivePropID HasValue( individualID ) ) classInRestriction[P1] ::= classID [P2] | description smallInt [Q1] ::= 0 [Q2] | 1 [Q3] | naturalNumber dataRange [R1] ::= datatypeID [R2] | DataRange( { dataLiteral } )