Logic programming and databases
Logic programming and databases
Prolog-Based Meta-rules for Relational Database Representation and Manipulation
IEEE Transactions on Software Engineering
Logical foundations of object-oriented and frame-based languages
Journal of the ACM (JACM)
Deductive database languages: problems and solutions
ACM Computing Surveys (CSUR)
An Integrated Information System Powered by Prolog
PADL '03 Proceedings of the 5th International Symposium on Practical Aspects of Declarative Languages
The description logic handbook: theory, implementation, and applications
The description logic handbook: theory, implementation, and applications
A Semantic Web Primer, 2nd Edition (Cooperative Information Systems)
A Semantic Web Primer, 2nd Edition (Cooperative Information Systems)
High-Level Interaction with Relational Databases in Logic Programming
PADL '09 Proceedings of the 11th International Symposium on Practical Aspects of Declarative Languages
Concept languages as query languages
AAAI'91 Proceedings of the ninth National conference on Artificial intelligence - Volume 1
Hi-index | 0.00 |
Most applications rely on relational databases for persistence, interacting through SQL embedded in the host programming language. Such code being error-prone and hard to maintain, many proposals have been made to raise its level, mostly in the direction of deductive and/or object-oriented databases. We have put forward an alternative approach, inspired by natural language, that packs a lot of power in very concise and readable code, while relying on standard database technology. This is achieved using the flexible term syntax and deductive capabilities of logic programming, both to compile a database scheme from a high-level description, and to interpret high-level queries and commands. In this paper we review the basic ideas of the novel approach and concentrate on the interaction language of queries and commands, formalizing its semantics on the basis of characterizing canonical database schemes. These rely on uniform notions of concept, attribute and reference, rather than the dichotomous entity-relationship model. Query and command expressions are variable-free terms, reading very naturally when appropriate nouns (rather than verbs) are chosen for all concept and attribute names. Attribute inheritance and chaining avoid many explicit joins, which are automatically derived as inner or outer joins. Scheme-derived multi-valued global parameters can flexibly be used for implicit current values. The abstraction power is further raised by having manifold attributes, whose values may actually vary along a parametric domain, the main examples being the handling of temporal validity and multi-lingual data. Commands can also be very high-level, with simple statements possibly resulting in large transactions.