In Block I we looked at languages for representing ontologies, and you obtained experience in reading existing ontologies, adding and removing some axioms, and using the automated reasoner. But how exactly did someone come up with the whole ontology in the first place? What can, or should, you do when you have to develop your own ontology? When is an ontology a good one? Just like in software engineering, there are methods and methodologies to guide you through it so that you will be able to answer these questions, or they at least will help out with one or more of the steps in the development of an ontology.
There is not just one way of doing it or a single up-to-date comprehensive methodology for ontology development that covers everything you possibly probably need, but there some useful steps and combinations. There are several proposals along the line of generic ‘waterfall’ and ‘agile’ approaches that were inspired by software development methodologies. They are at the level of general guidelines and more and less detailed stages, which we shall cover in this chapter in Section 5.1:Methodologies for Ontology Development. Diagrammatically, such (generalised!) methodologies have the tasks as shown in Figure 5.1.1: this one may look like a ‘waterfall’, but practically, it can be an iterative one not only within the ontology development, but within the “maintenance” that may involve substantial redesign or adding a new module that follows those development steps again, and a further refinement are methodologies for ontology authoring that permeate the whole development process. Particular aspects of such methodologies can be assisted by one or more methods and guidelines of the many ones available. A main reason for this state of affairs is that there is still much to be done, there are many different use-case scenarios, and it is—scientifically—hard to prove one methodology is better than another. This is easier to demonstrate for particular methods.
More specifically, in this chapter we start with high-level methodologies reminiscent of those in software development—dubbed (process-oriented) ‘macro-level’ methodologies—and more detailed ones that focus on ontology authoring—called ‘micro-level’ development—in Section 5.1: Methodologies for Ontology Development. We then proceed to a sampling of methods that can be used as a component within those methodologies (Section 5.2: Methods to Improve an Ontology’s Quality), which are roughly divided into one of the four categories of methods: logic-based only, purely based on philosophy, a combination of the two, and heuristics.
Figure 5.1.1: Main tasks in ontology engineering (Source: based on [SMB10])