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 | simpleObjectPropID |
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 | metaPropertyID |
rdfs:comment | simpleObjectPropID |
rdfs:isDefinedBy | simpleObjectPropID, metaPropertyID |
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 | 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.