거래논리학

Transaction logic

거래 로직은 논리 프로그램데이터베이스의 상태 변화 현상에 대해 깨끗하고 선언적인 방식으로 설명하는 술어 로직의 확장이다.이 확장자는 복잡한 트랜잭션에 간단한 작업을 결합하고 실행 제어권을 제공하기 위해 특별히 설계된 연결 장치를 추가한다.그 논리는 자연적인 모델 이론과 건전하고 완전한 증명 이론을 가지고 있다.Transaction Logic에는 선언적 의미뿐만 아니라 절차적 의미도 있는 Horn 절 하위 집합이 있다.논리의 중요한 특징으로는 가상의 업데이트와 커밋된 업데이트, 트랜잭션 실행에 대한 동적 제약, 비결정론, 대량 업데이트 등이 있다.이런 식으로 거래논리는 인공지능에 대한 절차적 지식, 액티브 데이터베이스, 오브젝트 데이터베이스에 부작용이 있는 방법 등 많은 비논리적 현상을 선언적으로 포착할 수 있다.

Transaction Logic은 Anthony BonnerMichael Kifer에 의해 원래 에서 제안되었고 나중에 및 에서 더 자세히 설명되었다.[3]가장 포괄적인 설명이 에 나타난다.[4]

후년에 이르러서[5]동시성, 배변성 추론,[6] 부분적으로 정의된 행동,[7] 기타 특징 등 다양한 방식으로 거래 로직(Transaction logic,[8][9] and other features.

2013년, 거래논리에 관한 원서는, 이전 20년 동안 ICLP 1993 회의의 진행으로부터 가장 영향력 있는 논문으로 로직 프로그래밍 협회20년 시험상수상하였다.

그래프 컬러링

여기tinsert트랜잭션 삽입의 기본 업데이트 작업을 나타낸다.접속사 직렬 접속사라고 한다.

colorNode <- // 한 노드(N) ⊗ 컬러(N,_) ⊗ 컬러(C) ⊗(인접색(N,N2) ∧ 컬러(N2,C)) ⊗ 티삽(C) ⊗ 컬러(N,C)).colorGraph <- ¬uncoloredNodesLeft. colorGraph <- colorNode color colorGraph>. 

피라미드 쌓기

기본 업데이트 삭제트랜잭션 삭제 작업을 나타낸다.

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)).

가상 실행

여기서 <>는 가능성의 모달 연산자다.action1action2가 모두 가능한 경우 action1을 실행한다.그렇지 않은 경우 조치2만 가능한 경우 실행하십시오.

<- <>액션1 action <>액션2 ⊗액션1>을 실행하다.행동1 행동2 행동2를 실행하다. 

식사 철학자들

다음은 동시 트랜잭션 로직의 병렬 연결의 논리적 결합이다.[5]

식당필로소퍼 <- 필(1) 필(2) 필(3) 필(4)>. 

구현

Transaction Logic의 구현은 다음과 같은 구현이 존재한다.

  • 원래 구현.[10]
  • 동시 트랜잭션 로직의 구현.[11]
  • Tabling으로 Transaction Logic 향상.트랜잭션 로직의 구현은 또한 Flora-2 지식 표현 및 추론 시스템의 일부로 통합되었다.[12]

이 모든 구현은 오픈 소스다.

참조

  1. ^ a b A.J. Bonner와 M. Kifer(1993), 거래 논리 프로그래밍, ICLP 국제회의, 1993.
  2. ^ A.J. Bonner와 M. Kifer(1994), A.J. Bonner와 M. Kifer, Averview of Transaction Logic, Theory Computer Science, 133:2, 1994.
  3. ^ A.J. Bonner와 M. Kifer(1998), Logics for Database and Information Systems, J. Chomicki와 G. Saake(eds), Kluwer ArchicalPublic, 1998.
  4. ^ A.J. Bonner와 M. Kifer(1995), 트랜잭션 로직 프로그래밍(또는 선언적절차적 지식의 논리)기술 보고서 CSRI-323, 1995년 11월, 토론토 대학 컴퓨터 과학 연구 연구소.
  5. ^ a b A.J. Bonner와 M. Kifer(1996), 트랜잭션 로직에서의 동시성과 통신, Joint Intl.1996년 9월 독일 본에서 열린 로직프로그래밍 컨퍼런스 및 심포지엄
  6. ^ P. Fordor와 M. Kifer(2011), Defaults와 논쟁 이론이 있는 거래 논리.2011년 7월, 제27회 ICLP 국제회의 기술 통신.
  7. ^ M. Rezk 및 M. Kifer(2012), 부분 정의된 액션있는 트랜잭션 논리.Journal on Data Semantics, 2012년 8월 1권 2호 Springer.
  8. ^ H. Davulcu, M. Kifer 및 I.V. Ramakrishnan(2004), CTR-S: 의미론적 서비스에서 계약을 특정하기 위한 논리. 2004년 5월 제13차 월드 와이드 웹 컨퍼런스(WWW2004)의 진행.
  9. ^ P. 포더와 M. Kifer(2010), Tabling for Transaction Logic.2010년 7월, 선언적 프로그래밍의 원칙과 실천에 관한 제12회 국제 ACM SIGPlan 심포지엄의 진행에서.
  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.

외부 링크