Transaction logic
   HOME

TheInfoList



OR:

Transaction Logic is an extension of
predicate logic First-order logic—also known as predicate logic, quantificational logic, and first-order predicate calculus—is a collection of formal systems used in mathematics, philosophy, linguistics, and computer science. First-order logic uses quantifie ...
that accounts in a clean and declarative way for the phenomenon of state changes in logic programs and
database In computing, a database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases s ...
s. This extension adds connectives specifically designed for combining simple actions into complex transactions and for providing control over their execution. The logic has a natural model theory and a sound and complete proof theory. Transaction Logic has a
Horn clause In mathematical logic and logic programming, a Horn clause is a logical formula of a particular rule-like form which gives it useful properties for use in logic programming, formal specification, and model theory. Horn clauses are named for the log ...
subset, which has a procedural as well as a declarative semantics. The important features of the logic include hypothetical and committed updates, dynamic constraints on transaction execution, non-determinism, and bulk updates. In this way, Transaction Logic is able to declaratively capture a number of non-logical phenomena, including
procedural knowledge Procedural knowledge (also known as knowing-how, and sometimes referred to as practical knowledge, imperative knowledge, or performative knowledge) is the knowledge exercised in the performance of some task. Unlike descriptive knowledge (also kno ...
in
artificial intelligence Artificial intelligence (AI) is intelligence—perceiving, synthesizing, and inferring information—demonstrated by machines, as opposed to intelligence displayed by animals and humans. Example tasks in which this is done include speech r ...
,
active database An active database is a database that includes an event-driven architecture (often in the form of ECA rules) which can respond to conditions both inside and outside the database. Possible uses include security monitoring, alerting, statistics gat ...
s, and methods with side effects in
object database An object database or object-oriented database is a database management system in which information is represented in the form of objects as used in object-oriented programming. Object databases are different from relational databases which a ...
s. Transaction Logic was originally proposed in A.J. Bonner and M. Kifer (1993), ''Transaction Logic Programming'', International Conference on Logic Programming (ICLP), 1993. b
Anthony Bonner
an
Michael Kifer
and later described in more detail in and. The most comprehensive description appears in. In later years, Transaction Logic was extended in various ways, including concurrency,A.J. Bonner and M. Kifer (1996)
''Concurrency and communication in Transaction Logic''
Joint Intl. Conference and Symposium on Logic Programming, Bonn, Germany, September 1996
defeasible reasoning In philosophical logic, defeasible reasoning is a kind of reasoning that is rationally compelling, though not deductive reasoning, deductively valid. It usually occurs when a rule is given, but there may be specific exceptions to the rule, or su ...
, partially defined actions, and other features. In 2013, the original paper on Transaction Logic ha
won
th
20-year Test of Time Award
of the
Association for Logic Programming The Association for Logic Programming (ALP) was founded in 1986. Its mission is "to contribute to the development of Logic Programming, relate it to other formal and also to humanistic sciences, and to promote its uses in academia and industry al ...
as the most influential paper from the proceedings o
ICLP 1993 conference
in the preceding 20 years.


Examples


Graph coloring

Here denotes the elementary update operation of ''transactional insert''. The connective is called ''serial conjunction''. colorNode <- // color one node correctly node(N) ⊗ ¬ colored(N,_) ⊗ color(C) ⊗ ¬(adjacent(N,N2) ∧ colored(N2,C)) ⊗ tinsert(colored(N,C)). colorGraph <- ¬uncoloredNodesLeft. colorGraph <- colorNode ⊗ colorGraph.


Pyramid stacking

The elementary update represents the ''transactional delete'' operation. stack(N,X) <- N>0 ⊗ move(Y,X) ⊗ stack(N-1,Y). stack(0,X). move(X,Y) <- pickup(X) ⊗ putdown(X,Y). pickup(X) <- clear(X) ⊗ on(X,Y) ⊗ ⊗ tdelete(on(X,Y)) ⊗ tinsert(clear(Y)). putdown(X,Y) <- wider(Y,X) ⊗ clear(Y) ⊗ tinsert(on(X,Y)) ⊗ tdelete(clear(Y)).


Hypothetical execution

Here is the modal operator of possibility: If both and are possible, execute . Otherwise, if only is possible, then execute it. execute <- <>action1 ⊗ <>action2 ⊗ action1. execute <- ¬<>action1 ⊗ <>action2 ⊗ action2.


Dining philosophers

Here is the logical connective of parallel conjunction of Concurrent Transaction Logic. diningPhilosophers <- phil(1) , phil(2) , phil(3) , phil(4).


Implementations

A number of implementations of Transaction Logic exist: * The original implementation. * An implementation of Concurrent Transaction Logic. * Transaction Logic enhanced with tabling. An implementation of Transaction Logic has also been incorporated as part of the
Flora-2 Flora-2 is an open source semantic rule-based system for knowledge representation and reasoning. The language of the system is derived from F-logic, HiLog, W. Chen, M. Kifer and D.S. Warren (1993)''HiLog: A Foundation for Higher-Order Logic Programm ...
knowledge representation and reasoning system. All these implementations are open source.


References

{{Reflist


External links


Flora-2 Web site
containing additional papers on Transaction Logic Logic programming languages Declarative programming languages Knowledge representation