2 research outputs found
Querying graph databases using a functional language extended with second order facilities
This paper presents the functional database language Hydra which extends previous such languages with associational facilities enabling a user to pose queries about the ways in which values and entities in the database are related to each other. These associational facilities work by treating the database as a graph and following all the arcs from a node or finding paths between nodes. The nodes of the database graph correspond to entities or values in the application domain and the arcs to associations between those entities and values. From the perspective of Hydra this database graph is viewed in terms of functions between sets of entities and values. Associational facilities are provided by built-in second-order primitives which use schema-level information to determine what arcs may be associated with a node or as the basis for searching for an instance-level path. Results from associational primitives are returned in the form of lists of functions which may be displayed to the user or directly applied to other parameters. The associational facilities provided are fully integrated into a computationally complete language in the style of Miranda. This integration allows complex queries to be answered, which are beyond the power of conventional database query languages
Extending functional databases for use in text-intensive applications
This thesis continues research exploring the benefits of using functional
databases based around the functional data model for advanced database
applications-particularly those supporting investigative systems. This is a
growing generic application domain covering areas such as criminal and military
intelligence, which are characterised by significant data complexity, large data
sets and the need for high performance, interactive use. An experimental
functional database language was developed to provide the requisite semantic
richness. However, heavy use in a practical context has shown that language
extensions and implementation improvements are required-especially in the
crucial areas of string matching and graph traversal. In addition, an
implementation on multiprocessor, parallel architectures is essential to meet the
performance needs arising from existing and projected database sizes in the
chosen application area. [Continues.