Abstract
Starlog, a pure logic programming language including negation is
introduced. It is shown that this language is capable of directly
expressing the mutation and change of clauses within a database.
This is the problem traditionally solved in Prolog with the
semantically-unsatisfactory "assert" and "retract". The standard,
minimal-model semantics for normal logic programs is preserved in Starlog,
and no extensions are used beyond standard clausal logic. It is noted that
by extending stratification to a "temporal stratification" the completion
of such programs is guaranteed to be consistent. Some short, example
programs are described and used to illustrate an effective and efficient
bottom-up technique for executing the language based on connection graphs.
The execution technique solves the problems of matching generated results
against goals and of efficiently and correctly dealing with negations.
Notes
We are currently acquiring citations for the work deposited into this collection. We recognize the distribution rights of this item may have been assigned to another entity, other than the author(s) of the work.If you can provide the citation for this work or you think you own the distribution rights to this work please contact the Institutional Repository Administrator at digitize@ucalgary.ca