ABSTRACT

In the previous chapters, we have investigated various formalisms for specifying and querying semantic data – or phrased even more boldly: knowledge – be it on the Web, in some company’s intranet, or elsewhere. We have seen that those formalisms come with standardized, precisely defined syntax and formal semantics. So, knowledgeable about those knowledge representation formalisms and

their grounding in formal logic, we could argue that we are well-equipped and readily prepared to go about bringing semantics to everybody in need of it. However, being able to come up with semantic descriptions of toy examples

in some sandbox domain (such as a nut-allergic person consuming an inappropriate dish) does not guarantee that real-world modeling tasks (such as coming up with a comprehensive description of patients, allergies, allergens, and medical treatments) can be effortlessly tackled in the same way. As an analogy, imagine the situation of a programmer able to create a “Hello World!” program faced with the task of producing a desktop publishing system or the like. It is clear that the sheer size and complexity of real-world modeling tasks will easily exceed what can be done by an RDF(S) or OWL expert by just sitting down and creating an ontology document. This directly brings us to the discipline of ontology engineering which –

in analogy to software engineering – is concerned with the challenges of designing complex systems (in our case: ontologies) by providing methodologies and auxiliary tools for their development, evaluation, and maintenance. In the following sections, we briefly sketch the central topics in ontology engineering. However, note that, as opposed to the formalisms introduced in the previous chapters, this area is still very much in flux and subject to active research. Therefore, our review is necessarily preliminary and less detailed, as it aims at providing just an overview. Furthermore, our choice of which aspects of ontology engineering to present here is of course very influenced by our subjective view of the emerging field. Software engineering has been around for many more years than ontology

engineering and the process of creating software bears some similarities to designing an ontology (despite the foundational difference between the operational vs. declarative paradigm). Hence, it is worthwhile to investigate the central ideas of this neighboring field and see whether they can be transferred. One of the basic principles in software engineering is the idea of a life cycle,

for development and maintenance. Clearly, the design of large-size and complex knowledge bases requires a similarly structured approach. In the following three sections, 8.1, 8.2, and 8.3, we focus on the subtasks of requirement analysis, ontology creation, and ontology quality assurance which will be further subdivided. Thereafter, in Section 8.4, we address the somewhat orthogonal issue of on-

tology modularization which is particularly important for ontology reuse and collaborative ontology creation as well as for optimizing automated inference. We finish the chapter by naming some of the most popular and mature

software tools in the context of ontology engineering.