Introduction | Differences | source |
Lite Syntax | Lite Mapping | Lite Triples |
DL Syntax | DL Mapping | DL Triples |
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.
ontologyID [A1] ::= OntologyID( uriref ) metaPropertyID[A2] ::= MetaPropertyID( uriref ) datatypeID [A3] ::= DatatypeID( uriref ) classID [A4] ::= ClassID( uriref ) individualID[A5] ::= IndividualID( uriref ) dataRangeID [A6] ::= DataRangeID( uriref ) simpleDataPropID[A7] ::= SimpleDataPropID( uriref ) complexDataPropID[A8] ::= ComplexDataPropID( uriref ) simpleObjectPropID[A9] ::= SimpleObjectPropID( uriref ) complexObjectPropID[A10] ::= ComplexObjectPropID( uriref ) transitivePropID[A11] ::= TransitivePropID( uriref ) ontology [B1] ::= Ontology( { directive } ) directive [C1] ::= header [C2] | axiom [C3] | fact header [D1] ::= Header( ontologyID { metaPropValue } { annotation } ) metaPropValue[E1] ::= MetaPropValue( metaPropertyID ontologyID ) annotation [F1] ::= Annotation( simpleDataPropID dataLiteral ) [F2] | Annotation( simpleObjectPropID individual ) fact [G1] ::= individual [G2] | AllDifferentIndividuals( { individualID } ) individual [H1] ::= Individual( [ individualID ] { Type( description ) } { propertyValue } { individualComparison } ) propertyValue[I1] ::= PropertyValue( simpleObjectPropID individual ) [I2] | PropertyValue( complexObjectPropID individual ) [I3] | PropertyValue( transitivePropID individual ) [I4] | PropertyValue( simpleDataPropID dataLiteral ) [I5] | PropertyValue( complexDataPropID dataLiteral ) description [J1] ::= classID [J2] | restriction [J3] | UnionOf( { description } { classComparison } ) [J4] | IntersectionOf( { description } { classComparison } ) [J5] | ComplementOf( description { classComparison } ) [J6] | OneOf( { individualID } { classComparison } ) dataLiteral [K1] ::= DataLiteral( lexicalForm [ language ] [ datatypeID ] ) individualComparison[L1] ::= SameIndividual( individual ) [L2] | DifferentIndividuals( individual ) axiom [M1] ::= Class( classID modality { annotation } [ Deprecated ] { Super( description ) } { classComparison } ) [M2] | restriction [M3] | DatatypeProperty( simpleDataPropID { annotation } [ Deprecated ] { Super( simpleDataPropID ) } ) [M4] | DatatypeProperty( complexDataPropID { annotation } [ Deprecated ] { Super( simpleDataPropID ) } { Super( complexDataPropID ) } { Domain( classInRestriction ) } { Range( dataRange ) } [ Functional ] ) [M5] | IndividualProperty( simpleObjectPropID { annotation } [ Deprecated ] { Super( simpleObjectPropID ) } ) [M6] | IndividualProperty( complexObjectPropID { annotation } [ Deprecated ] { Super( simpleObjectPropID ) } { Super( complexObjectPropID ) } { Super( transitivePropID ) } { Domain( classInRestriction ) } { Range( classInRestriction ) } { Inverse( complexObjectPropID ) } [ Functional ] [ InverseFunctional ] [ Symmetric ] ) [M7] | IndividualProperty( transitivePropID { annotation } [ Deprecated ] { Super( simpleObjectPropID ) } { Super( transitivePropID ) } { Domain( classInRestriction ) } { Range( classInRestriction ) } { Inverse( transitivePropID ) } [ Transitive ] ) [M8] | EquivalentProperties( simpleObjectPropID simpleObjectPropID { simpleObjectPropID } ) [M9] | EquivalentProperties( transitivePropID transitivePropID { transitivePropID } ) [M10] | EquivalentProperties( complexObjectPropID complexObjectPropID { complexObjectPropID } ) [M11] | EquivalentProperties( simpleDataPropID simpleDataPropID { simpleDataPropID } ) [M12] | EquivalentProperties( complexDataPropID complexDataPropID { complexDataPropID } ) [M13] | DatatypeDeclaration( datatypeID ) [M14] | description [M15] | EnumeratedClass( classID { annotation } [ Deprecated ] { individualID } { classComparison } ) [M16] | DataRange( dataRangeID { annotation } { dataLiteral } ) [M17] | DataRange( dataRangeID Declaration { annotation } ) modality [N1] ::= Partial [N2] | Complete classComparison[O1] ::= SameClassAs( classID ) [O2] | SameClassAs( description ) [O3] | DisjointWith( description ) [O4] | SubClassOf( description ) restriction [P1] ::= Restriction( complexDataPropID AllValuesFrom( dataRange ) { restrictionComparison } ) [P2] | Restriction( complexDataPropID SomeValuesFrom( dataRange ) { restrictionComparison } ) [P3] | Restriction( complexDataPropID Cardinality( smallInt ) { restrictionComparison } ) [P4] | Restriction( complexDataPropID MinCardinality( smallInt ) { restrictionComparison } ) [P5] | Restriction( complexDataPropID MaxCardinality( smallInt ) { restrictionComparison } ) [P6] | Restriction( complexObjectPropID AllValuesFrom( classInRestriction ) { restrictionComparison } ) [P7] | Restriction( complexObjectPropID SomeValuesFrom( classInRestriction ) { restrictionComparison } ) [P8] | Restriction( complexObjectPropID Cardinality( smallInt ) { restrictionComparison } ) [P9] | Restriction( complexObjectPropID MinCardinality( smallInt ) { restrictionComparison } ) [P10] | Restriction( complexObjectPropID MaxCardinality( smallInt ) { restrictionComparison } ) [P11] | Restriction( transitivePropID AllValuesFrom( classInRestriction ) { restrictionComparison } ) [P12] | Restriction( transitivePropID SomeValuesFrom( classInRestriction ) { restrictionComparison } ) [P13] | Restriction( complexDataPropID Value( dataLiteral ) { restrictionComparison } ) [P14] | Restriction( complexObjectPropID Value( individualID ) { restrictionComparison } ) [P15] | Restriction( transitivePropID Value( individualID ) { restrictionComparison } ) classInRestriction[Q1] ::= classID [Q2] | description restrictionComparison[R1] ::= None [R2] | classComparison smallInt [S1] ::= 0 [S2] | 1 [S3] | naturalNumber dataRange [T1] ::= datatypeID [T2] | dataRangeID [T3] | OneOf( { dataLiteral } )