Chapter 2: Synonyms
Question: How should synonyms be defined in ontologies?
Category: Conceptual/Computational
Problem owner: Roos
Date: 8 Oct 2019
Context
For the DDINGS project we are creating an ontology about greenhouses. Data from climate computers in existing greenhouses can be queried and structured using this ontology. In this project we want the ontology to be widely applicable: greenhouse owners with different types of greenhouses each have to recognize the terms they use in the ontology.
Problem
Greenhouse owners sometimes use the same terms for concepts, but often they use small variations of it, or even a complete different word. This can make communication hard and building an ontology even harder. For example, the Structure of a greenhouse can also be called a Frame. We want both options to be available in the ontology for the greenhouse owner to be able to recognize the term that he/she is familiar with.
Competency Questions
What type of structure is used in greenhouse X?
What type of frame is used in greenhouse X?
Does this structure have other names?
Discussed options
We discussed three options based on having two words that mean the same according to experts. Whether two words truly mean the same is an interesting discussion which is relevant for some ontologies. However, for this ontology in the DDINGS project it is more important that we follow the advice of the domain experts. Therefore we will accept that two words have the same meaning if that is wat the domain expert says. The options to express synonyms in ontologies that we discussed are stated below.
1) To express synonyms, we make a different class for each concept and add an owl:equivalentClass property.
2) We can also give multiple labels to one class to express synonyms.
3) The last option we discussed is using the owl:sameAs property to define class equality.
Outcome
The three options we discussed formally mean different things. The first option, using the owl:equivalentClass property to express synonyms, entails that the class extension is the same. This means that both class extensions contain exactly the same individuals. However, this does not mean that the classes themselves are equivalent. To express this, we can use option 3 that is explained below. Despite this technical sidenote, using the owl:equivalentClass property is a valid option for expressing synonyms. The only practical downside is that the ontology becomes larger and possibly less comprehensive because of all the classes you add for synonyms.
In the second option we discussed giving multiple labels to one class. This is a relatively simple solution, one can view the synonyms and there is no overload of classes for every synonym. However, in the above example the reasoner cannot use the term structure for reasoning since it only sees the class Frame. If you need to have to possibility to use the reasoner with the synonyms, this is not a good option. Otherwise it is the simplest solution.
With the last option, option 3, you define true class equality. This indicates that two classes have the same intentional meaning. In contrast with option 1, both classes here denote the same concept. This is for synonyms intuitively the best option, but it requires that classes can be treated as individuals, which is only possible in OWL Full. For now we do not use OWL Full, so we cannot use this option.
We also briefly discussed the skos:exactMatch property, but this option is only meant to be used on individuals. We concluded that in this project, giving multiple labels to one class suffices to express the synonyms. However, we should look into this problem more if the synonyms serve a broader purpose in an ontology.
For more information and examples see the w3c recommendations:
https://www.w3.org/TR/owl-ref/#equivalentClass-def
Last updated
Was this helpful?