An owl:imports
statement, that is an instance of
owl:OntologyProperty, references another OWL ontology containing definitions, whose meaning
is considered to be part of the meaning of the importing ontology.
Each
reference consists of a URI specifying from where the ontology is to be
imported. Syntactically, owl:imports is a property with the class
owl:Ontology as its domain and range.
The owl:imports statements are transitive, that is, if ontology
A imports B, and B imports C, then A imports both B and C.
<rdf:Property rdf:ID="imports">
<rdfs:label>imports</rdfs:label>
<rdf:type rdf:resource="#OntologyProperty"/>
<rdfs:domain rdf:resource="#Ontology"/>
<rdfs:range rdf:resource="#Ontology"/>
</rdf:Property>
If a property o is used where an ontology property is expected
then it should either be one of the built in ontology properties
(owl:imports, owl:priorVersion,
owl:backwardCompatibleWith, and owl:incompatibleWith)
or there should be a triple:
o rdf:type owl:OntologyProperty
<owl:Ontology rdf:about="">
<rdfs:comment>An example OWL ontology</rdfs:comment>
<owl:priorVersion rdf:resource="http://www.w3.org/TR/2003/PR-owl-guide-20031215/wine"/>
<owl:imports rdf:resource="http://www.w3.org/TR/2004/REC-owl-guide-20040210/food"/>
<rdfs:label>Wine Ontology</rdfs:label>
...
Importing an ontology into itself is considered a null action, so if ontology A imports B and B imports A, then they are considered to be equivalent.
Note that whether or not an OWL tool must load an imported ontology depends on the purpose of the tool. If the tool is a complete reasoner (including complete consistency checkers) then it must load all of the imported ontologies. Other tools, such as simple editors and incomplete reasoners, may choose to load only some or even none of the imported ontologies.
Although owl:imports and namespace declarations may appear redundant, they actually serve different purposes. Namespace declarations simply set up a shorthand for referring to identifiers. They do not implicitly include the meaning of documents located at the URI. On the other hand, owl:imports does not provide any shorthand notation for referring to the identifiers from the imported document. Therefore, it is common to have a corresponding namespace declaration for any ontology that is imported.
The ontology-import construct owl:imports and the
ontology-versioning constructs owl:priorVersion,
owl:backwardCompatibleWith and owl:incompatibleWith are defined in the OWL
vocabulary as instances of the OWL built-in class owl:OntologyProperty. Instances of
owl:OntologyProperty must have the class owl:Ontology
as their domain and range.