How, What and Why to test an ontology
This work addresses the need for more robust and agile development processes in ontology engineering, though it is incremental as it adapts existing software testing methods to a new domain.
The paper tackles the problem of applying software engineering testing techniques to ontology development by using the Tawny-OWL library to build an extensive test harness and integrate it with continuous integration, resulting in a systematic classification of tests and a comparison to software tests to enable more agile ontology development.
Ontology development relates to software development in that they both involve the production of formal computational knowledge. It is possible, therefore, that some of the techniques used in software engineering could also be used for ontologies; for example, in software engineering testing is a well-established process, and part of many different methodologies. The application of testing to ontologies, therefore, seems attractive. The Karyotype Ontology is developed using the novel Tawny-OWL library. This provides a fully programmatic environment for ontology development, which includes a complete test harness. In this paper, we describe how we have used this harness to build an extensive series of tests as well as used a commodity continuous integration system to link testing deeply into our development process; this environment, is applicable to any OWL ontology whether written using Tawny-OWL or not. Moreover, we present a novel analysis of our tests, introducing a new classification of what our different tests are. For each class of test, we describe why we use these tests, also by comparison to software tests. We believe that this systematic comparison between ontology and software development will help us move to a more agile form of ontology development.