To install click the Add extension button. That's it.

The source code for the WIKI 2 extension is being checked by specialists of the Mozilla Foundation, Google, and Apple. You could also do it yourself at any point in time.

4,5
Kelly Slayton
Congratulations on this excellent venture… what a great idea!
Alexander Grigorievskiy
I use WIKI 2 every day and almost forgot how the original Wikipedia looks like.
Live Statistics
English Articles
Improved in 24 Hours
Added in 24 Hours
Languages
Recent
Show all languages
What we do. Every page goes through several hundred of perfecting techniques; in live mode. Quite the same Wikipedia. Just better.
.
Leo
Newton
Brights
Milds

Transaction logic

From Wikipedia, the free encyclopedia

Transaction Logic is an extension of predicate logic that accounts in a clean and declarative way for the phenomenon of state changes in logic programs and databases. 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 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 in artificial intelligence, active databases, and methods with side effects in object databases.

Transaction Logic was originally proposed in 1993 by Anthony Bonner and Michael Kifer[1] and later described in more detail in An Overview of Transaction Logic[2] and Logic Programming for Database Transactions.[3] The most comprehensive description appears in Bonner & Kifer's technical report from 1995.[4]

In later years, Transaction Logic was extended in various ways, including concurrency,[5] defeasible reasoning,[6] partially defined actions,[7] and other features.[8][9]

In 2013, the original paper on Transaction Logic has won the 20-year Test of Time Award of the Association for Logic Programming as the most influential paper from the proceedings of ICLP 1993 conference in the preceding 20 years.

YouTube Encyclopedic

  • 1/3
    Views:
    4 785
    13 158
    602
  • GATE 2012- SERIALIZABILITY: Transaction & Concurrency Control
  • SwiftUI 2.0: In-App Purchase - Getting Started From Scratch (2020)
  • Explain bean-managed transaction. | javapedia.net

Transcription

Examples

Graph coloring

Here tinsert 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 tdelete 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 action1 and action2 are possible, execute action1. Otherwise, if only action2 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.[5]

diningPhilosophers <- phil(1) | phil(2) | phil(3) | phil(4).

Implementations

A number of implementations of Transaction Logic exist:

  • The original implementation.[10]
  • An implementation of Concurrent Transaction Logic.[11]
  • Transaction Logic enhanced with tabling. An implementation of Transaction Logic has also been incorporated as part of the Flora-2 knowledge representation and reasoning system.[12]

All these implementations are open source.

References

  1. ^ A.J. Bonner and M. Kifer (1993), Transaction Logic Programming, International Conference on Logic Programming (ICLP), 1993.
  2. ^ A.J. Bonner and M. Kifer (1994), An Overview of Transaction Logic, Theoretical Computer Science, 133:2, 1994.
  3. ^ A.J. Bonner and M. Kifer (1998), Logic Programming for Database Transactions in Logics for Databases and Information Systems, J. Chomicki and G. Saake (eds.), Kluwer Academic Publ., 1998.
  4. ^ A.J. Bonner and M. Kifer (1995), Transaction Logic Programming (or A Logic of Declarative and Procedural Knowledge). Technical Report CSRI-323, November 1995, Computer Science Research Institute, University of Toronto.
  5. ^ a b 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
  6. ^ P. Fodor and M. Kifer (2011), Transaction Logic with Defaults and Argumentation Theories. In Technical communications of the 27th International Conference on Logic Programming (ICLP), July 2011.
  7. ^ M. Rezk and M. Kifer (2012), Transaction Logic with Partially Defined Actions. Journal on Data Semantics, August 2012, vol. 1, no. 2, Springer.
  8. ^ H. Davulcu, M. Kifer and I.V. Ramakrishnan (2004), CTR-S: A Logic for Specifying Contracts in Semantic Web Services. Proceedings of the 13-th World Wide Web Conference (WWW2004), May 2004.
  9. ^ P. Fodor and M. Kifer (2010), Tabling for Transaction Logic. In Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming (PPDP), July 2010.
  10. ^ Hung, Samuel (1996). "Transaction Logic Prototype". University of Toronto, Department of Computer Science. Retrieved 2021-05-10.
  11. ^ Sleghel, Amalia F. (2000). "Concurrent Transaction Logic Prototype". University of Toronto, Department of Computer Science. Retrieved 2021-05-10.
  12. ^ "Knowledge Representation & Reasoning with Flora-2". Sourceforge.net. Retrieved 2021-05-10.

External links

This page was last edited on 9 March 2024, at 10:06
Basis of this page is in Wikipedia. Text is available under the CC BY-SA 3.0 Unported License. Non-text media are available under their specified licenses. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc. WIKI 2 is an independent company and has no affiliation with Wikimedia Foundation.