Operation-oriented query language approach for recursive queries—part 2. Prototype implementation and its integration with relational databases

作者:

Highlights:

摘要

In terms of our operation-oriented language introduced in [Niemi and Järvelin, Information Systems 17(1), 49–75 (1992)] the non-professional user can formulate queries which find transitive relationships among objects. In our approach the user can make these kinds of queries without mastering recursive definition techniques. In this paper we consider how our operation-oriented language can be implemented on the basis of the rule-oriented approach. The rule-oriented implementation contains several recursive definitions but this definition level is invisible to the user. The rule-based prototype implementation is defined in Prolog. For the prototype implementation we propose the use of structural objects such as objects of type tuple, map and set. In terms of these objects the prototype can be defined in a compact and systematic way. Likewise, a Prolog-based way of parsing and evaluating functional expressions is developed. The integration of our operation-oriented language with the extensional database (EDB) based on the relational model is also considered. Any node-oriented expression generated by our language is integrated with relational processing using a restriction operation tailored for this purpose. We discuss how the interface of our prototype can be utilized in deductive databases based on both the heterogeneous and homogeneous approach. We also give a prototype implementation for the generalized aggregation operation introduced in Part 1 which involves transitive computation. Now relational processing can be utilized in the implementation of its EDB-dependent aspects.

论文关键词:Deductive databases,recursive queries,knowledge representation,Prolog programming,logic grammars,prototyping,integration of recursive and non-recursive processing

论文评审过程:Received 5 October 1990, Revised 3 June 1991, Available online 17 June 2003.

论文官网地址:https://doi.org/10.1016/0306-4379(92)90006-9