There are several approaches that you can take, depending on the use case:
- Import the ontologies that contain the terms that you need.
- Reuse the terms that you need from external ontologies, but do not explicitly import them.
- 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.