A Hierarchical Database Model for a Logic Programming Language
This paper presents an extended Clausal Database Model for a logic programming language. Instead of being restricted to one global database, as is the case with Prolog, we allow segmentation of the database into database units which are linked together into a semi-lattice. Each database unit defines a database view which includes clauses which have been asserted into that unit as well as clauses inherited from its ancestors higher in the lattice structure. This model supports arbitrary retraction. Retracting a clause in a database unit effectively blocks its inheritance for that unit and all of its descendants. Motivations for using this model are given. We also discuss the implementation of a Prolog meta-interpreter that uses this model. (hereafter referred to as (Phd) or Prolog Hierarchical Database) This meta-interpreter is in the spirit of Prolog and therefore has a version of assert, retract and cut.