finin@bigburd.UUCP (11/20/87)
Is it a bug or a feature for a logic programming language to allow one to assert multiple copies of a clause into the 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, 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 have never found a use for this in practice. In fact, it has only been a source of bugs. It is easy enough to accidentally get multiple copies of a clause in the database in some Prolog implementations. This can readily mess up your program in several ways unless you use a rather pure logic programming style. Has anyone out there found a good use for this Prolog "feature" of allowing multiple copies of the identical clause in the database? Tim