Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!rutgers!ucla-cs!zen!ucbvax!LINC.CIS.UPENN.EDU!tim From: tim@LINC.CIS.UPENN.EDU (Tim Finin) Newsgroups: comp.ai.digest Subject: multiple copies of a clause in the DB Message-ID: <8708071354.AA29673@linc.cis.upenn.edu> Date: Fri, 7-Aug-87 09:54:13 EDT Article-I.D.: linc.8708071354.AA29673 Posted: Fri Aug 7 09:54:13 1987 Date-Received: Mon, 10-Aug-87 05:42:56 EDT Sender: daemon@ucbvax.BERKELEY.EDU Distribution: world Organization: The ARPA Internet Lines: 25 Approved: ailist@stripe.sri.com 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