[comp.ai.digest] multiple copies of a clause in the DB

tim@LINC.CIS.UPENN.EDU (Tim Finin) (08/07/87)

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