I want to refer to concepts defined in other ontologies, using only the respective concepts URI, without importing the outer ontology. I think that this is compatible with OWL semantics, using owl:equivalentTo
property.
Can somebody confirm that this is correct? Furthermore, could someone provide me with an example on how to do it (preferably using Protege)?
Assume there is an ontology anOnt:
in which there is a term anOnt:Term
that you want to reuse in your ontology yourOnt:
. You may import anOnt:
and you're done. However, you can also redeclare the term anOnt:Term
in your ontology, like this:
yourOnt: a owl:Ontology .
anOnt:Term a owl:Class .
# use anOnt:Term as you wish
But these options are only necessary if you want to comply with OWL 2 DL. OWL also defines OWL Full, and its RDF-based semantics, where terms do not have to be declared at all. So you can just write:
yourOnt:SomeTerm rdfs:subClass anOnt:Term .
and that's compatible with OWL semantics, in the sense of the OWL 2 RDF-based semantics.
For more on whether you should use owl:imports
or redeclare terms, or just reuse terms, you can read an answer I wrote on answers.semanticweb.com
(a now deceased website). For more on why OWL 2 has two semantics, you can read another answer I wrote on answers.semanticweb.com
.
The only way you can refer to concepts in an external ontology is by importing it. After you have imported it you can use owl:equivalentTo
to assert that say the Identity
concept in your ontology is equivalent to the external:ID
concept of the external ontology.