Augmenting the relational model with conceptual graphs
While the relational model for data storage is sufficient for the modelling and manipulation of a large number of application domains, a growing class of application domains are either difficult or impossible for the relational model to deal with efficiently. The realisation of this fact has led to a proliferation of data models that attempt to increase the complexity and semantic capture of the domains that they can model - the development of object-oriented databases and the various semantic data models are a result of this. The idea of using logic to define, manipulate and constrain data has given rise to large numbers of systems that interface - not always successfully - a database system and a logic processing system. Most such systems are based on Prolog or its derivations. This thesis describes the development and use of an object-oriented and semantically rich form of logic - conceptual graph theory - as a system for the definition, manipulation, and constraint of data. It describes a theoretical correspondence between conceptual graph theory and the relational model, and proceeds to develop an augmented, hybrid theory that is formally more expressive and as rigorous as those languages based on the relational algebra or calculus. This thesis also describes the design and implementation of a hybrid relational database - conceptual graph system, that has a cleaner and more principled system of semantic capture than other (for example, Prolog-based) systems, and that is also adaptive in nature - it automatically modifies its underlying storage structures in accordance with modifications made to the structures of the application domain over time. This completely shields the user from any responsibility for database design and maintenance, and so the user need only be concerned with application domain knowledge. Although the implementation described is incomplete, it can be extended to produce a deductive, object-oriented database system based on conceptual graphs.