![]() ![]() The language is a proper extension of Prolog. Using this dynamic logic as a basis, we develop a logic programming language called Dynamic Prolog. Its basic operations are the addition and deletion of tuples from relations. For example, Prolog's "assert" and "retract" operators for changing the global state of program are notoriously non-logical, and have no declarative semantics.We develop a dynamic logic of relational updates that is useful for reasoning about logic programs that test and change their state. Currently, such a state change operation is treated very operationally. It is often desired to write a logic program that not only reasons within its underlying first-order theory, but also modifies its "global state" by some form of destructive assignment on the theory. An analogous problem exists in current logic programming languages. ![]() Unfortunately, a database update operation cannot be expressed in this framework, since an update modifies the underlying theory-it is not a first-order operation. Typically, the database is viewed as a first-order theory. A logic database uses first-order logic as a unifying framework for describing a database and its operations.
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |