The World Wide Web has become one of the biggest success stories in recent history. It has allowed global exchange of information on a scale unprecedented in human history, and has an impact on almost all facets of our daily lives. Notwithstanding its enormous success, one of the shortcomings of the Web is that most information is represented in a form only usable for human interpretation i.e., the current Web can be considered to be machine-readable, but unfortunately not machine-understandable. The Semantic Web has been proposed as a solution to overcome this shortcoming by making the semantics of Web content explicit by means of ontologies.
As is the case with everything in the world that surrounds us, ontologies are not indifferent to changes. Ontologies evolve as a consequence of changes of domains they describe as well as changes in business and user requirements. Because ontologies are intended to be used and extended by other ontologies, and because they are deployed in a highly decentralized environment as the Web, the problem of ontology evolution is a far from trivial problem. The fact that ontologies depend on other ontologies means that the consequences of changes don’t remain local to the ontology itself, but affect depending ontologies as well. Furthermore, the decentralized nature of the Web makes it impossible to simply propagate changes to depending artifacts.
In this dissertation, we propose an ontology evolution approach that (1) allows ontology engineers to request changes for the ontologies they manage; (2) ensures that the ontology evolves from one consistent state into another consistent state; (3) guarantees that the depending artifacts of an ontology remain consistent after changes have been applied; (4) provides a detailed overview of the changes that occur. The cornerstones of our approach are the notion of a version log and the Change Definition Language. A version log stores for each concept ever defined in an ontology the different versions it passes through during its life cycle. The Change Definition Language is a temporal logic based language that allows ontology engineers to formally define changes. The purpose of the change definitions expressed in this Change Definition Language are twofold: they are used for both requesting and implementing changes to an ontology, as well as detecting occurrences of change definitions in the evolution of an ontology.