Question: Ontology Import vs. owl:sameAs in Ontology Design

I am under the impression that there are two approaches when designing an ontology:

  1. search for other ontologies and embed some of their classes into my own ontology
  2. create unique identifier for each term and set a data link with owl:sameAs or owl:equivalentClass

Is that correct? Is there something to be considered best practice or why should I choose one alternative over the other?

In my case I design an ontology for investigations of coral reefs, which includes surveys, different results, different metrics, kind of complex and something like this cannot already be found in search engines.

However, things like Organism, Substrate can be and for geolocations like Country, Settlement and Region I already use the places ontology.

Asked by Erandir on August 28th, 2012 at 14:13


There are several approaches that you can take, depending on the use case:

  1. Import the ontologies that contain the terms that you need.
  2. Reuse the terms that you need from external ontologies, but do not explicitly import them.
  3. Redefine your own terms.

Approach 1. is the most powerful: it makes all the terms and all the axioms from the imported ontology part of your ontology. You can then reuse the terms, extend them with more axioms, link them to your own terms etc. The knowledge of the imported ontologies is integrated with the knowledge of your ontology and you can do rich inferences. However, if the imported ontology is very big and expressive and you just need a few terms, it's not always the best option.

With approach 2., you don't benefit from the axioms of the external ontology unless you copy the relevant axioms too. But you benefit from the fact that you are reusing existing terms that are possible well known. Take the example of FOAF. If you are using foaf:Person as a class for persons, even if you don't import the FOAF ontology, people will be able to use tools that are specifically made for FOAF. They will be able to query your dataset with the same SPARQL query as for other datasets using FOAF. Moreover, in case a more accurate definition of the term is needed, one can also use the "follow your nose" method which consists in looking up the URI of the term with an appropriate protocol, and getting back the ontology document. By doing so, you don't even need owl:imports very much. If you insist on having a valid OWL DL ontology, you can declare the terms by explicitly saying whether they are object properties, datatype properties, annotation properties, classes or individuals.

With approach 3., you have full control of the terms. This may be a good choice if there is only poorly designed ontologies for the terms you need. Or, you may disagree with the definitions of the other ontologies. Or you are concerned by the fact that external ontologies may change at any time, possibly disappearing completely. In any case, if you have your own terms that mirror existing terms from other ontologies, you can also provide the correspondences between your terms and the others. In that case, I recommend that you provide those outside your ontology.

You can combine all the approaches, importing some ontologies (e.g., FOAF), reusing terms from others (e.g., Dublin Core) and making your own terms in some cases. The approach you choose in each case can be based on reasoning issues (expressiveness, size, conformance to DL, modularity), querying issues, robustness, linkage, reusability, taste, belief, mood, magnetic field, humour, weather, topology, spirituality, life :)

By the way, if you are working in the domain of coral reef, you should take a look at the very good ontologies of the FAO.

Answered by Antoine Zimmermann on August 30th, 2012 at 04:17