Summary
The Associative Model of Data represents information, both schema and instance, in the form of a directed graph but with certain constraints on the labelling of nodes and edges, in our context termed arcs. Such a directed graph can readily be shown to be uniquely represented as a set of triples and thus held in some form of triple store repository. Many practical applications involve networks which can be represented as directed graphs and for which special purpose languages have been developed[2.10, 2.6, 2.5].
Previous work on FDL [2.9, 3.13] on which that described in this chapter builds, has shown that Shipman’s functional data model can be integrated with a functional programming language to considerable advantage with the definitions of all the functions invoved, whether extension-ally or intentionally defined or of mixed definition, being held in a triple store repository. This integration was an important advance but was soon discoverd to have limitations consequent upon its semantic power being equivalent only to that of the lambda calculus.
In this chapter we describe how we take a functional view of the associative model of data very similar to that of Shipman’s approach if resricted to functions of a single variable, and integrate if with a functional programming language using a triple store repository just as with FDL. Then, by taking a somewhat more relaxed approach to typing than with conventional functional programming, by treating named functions as first class objects in the computation, and by defing a set of higher order functions, we show that the functional database/language paradigm can be extended to include the power of the graph query languages referred to above. We also show how this approach greatly facilitates working in areas where the schema is subject to continuous change and update, since useful queries can be made without any knowledge of the schema.