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.
KeywordsGraph-databases functional databases functional programming semantic networks
Unable to display preview. Download preview PDF.
- [Abr74]J. R. Abrial. Data semantics. In J. W. Klimbie and K. L. Koffeman, editors, Data Base Management, pages 1–59. North Holland, 1974.Google Scholar
- [AK84]M. P. Atkinson and K. G. Kulkarni. Experimenting with the functional data model. In P. Stocker, editor, Databases — Role and Structure, pages 311–338. Cambridge Univeristy Press, 1984.Google Scholar
- [AK95]R. Ayres and P. J. H. King. Entities, functions, and surrogates in functional database languages. In Bob Werner, editor, Proceedings of Basque International Conference on Information Technology, BIWIT 95, San Sebastian, Spain, July 1995. IEEE Computer Society Press.Google Scholar
- [Ayr95]R. Ayres. Enhancing the Semantic Power of Functional Database Languages. PhD thesis, Birkbeck College, University of London, August 1995.Google Scholar
- [BFN82]P. Buneman, R. E. Frankel, and R. Nikhil. An implementation technique for database query languages. ACM Transactions on Database Systems, 7(2):164–186, June 1982.Google Scholar
- [CM90]Mariano P Consens and Alberto O Mendelzon. GraphLog: A visual formalism for real life recursion. In Proceedings of the Ninth ACM SIGACT-SIGMOD-SIGART Symposium on Principles of Database Systems, pages 404–416, 1990.Google Scholar
- [CP95]S. Courtenage and A. Poulovassilis. Combining inheritance and parametric polymorphism in a functional database language. In Carole Goble and John Keane, editors, Advances in Databases, Proceedings 13th British National Conference on Databases, BNCOD 13, pages 24–46, Manchester, United Kingdom, July 1995. Springer-Verlag, LNCS 940.Google Scholar
- [HOT76]P Hall, J Owlett, and S J P Todd. Relations and entities. In G M Nijssen, editor, Modelling in Data Base Management Systems. North Holland, 1976.Google Scholar
- [Ken79]William Kent. Limitations of record-based information models. ACM Transactions on Database Systems, 4(1):107–131, 1979.Google Scholar
- [Mit91]J. C. Mitchell. Type inference with simple subtypes. Journal of Functional Programming, 1(3):245–285, July 1991.Google Scholar
- [PK90]A. Poulovassilis and P. J. H. King. Extending the functional data model to computational completeness. In Proceedings of EDBT'90, pages 75–91, Venice, Italy, 1990. Springer-Verlag, LNCS 416.Google Scholar
- [Shi81]D. Shipman. The functional model and the data language DAPLEX. ACM Transactions on Database Systems, 6(1):140–173, March 1981.Google Scholar