Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!columbia!rutgers!super.upenn.edu!linc.cis.upenn.edu!tim From: tim@linc.cis.upenn.edu (Tim Finin) Newsgroups: comp.lang.prolog Subject: multiple copies of a clause in the DB Message-ID: <1696@super.upenn.edu> Date: Fri, 7-Aug-87 09:54:12 EDT Article-I.D.: super.1696 Posted: Fri Aug 7 09:54:12 1987 Date-Received: Sun, 9-Aug-87 01:39:48 EDT Sender: news@super.upenn.edu Reply-To: tim@linc.cis.upenn.edu.UUCP (Tim Finin) Distribution: world Organization: University of Pennsylvania Lines: 24 Keywords: database I'm studying various ways to extend Prolog's simple model of the database (e.g. a flat, global collections of clauses) to a richer hierarchical one with inheritance. I am trying to decide whether to allow multiple instances of a clause in a resulting database view. Most Prolog implementations, at least those descendant from DEC-10 Prolog, do allow the database to contain two identical clauses. Most of the non-Prolog logic programming languages that I am familiar with do not. I am interested in discovering what use, if any, people have made of the ability to assert multiple copies of a clause into the database. I, for one, have never found a use for this in practice. In fact, it has only effected my life by being a source of bugs. It is easy enough to accidentally get multiple copies of a clause in the database by consulting a file instead of reconsulting it or by defining the same predicate in two different files. This can easily mess up your program unless you use a rather pure logic programming style which doen't depend on the order in which the clauses are stored in the database. Has anyone out there found a good use for this Prolog "feature"? Tim