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 Bonneran
Michael Kiferand 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
wonth
20-year Test of Time Awardof 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 conferencein 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