[논문 리뷰] XSB: Extending Prolog with Tabled Logic Programming
이 논문은 XSB를 제시하며, 이는 전통적인 논리 프로그래밍에 표 테이블링 논리 프로그래밍(TLP)을 확장하여 재귀적이고 부정된 쿼리에 대해 종료 보장과 최적의 복잡도를 보장하는 Prolog 시스템이다. XSB는 표 테이블링을 동적 코드, 제약 조건, 다중 스레딩과 통합함으로써 의미 웹, 프로그램 분석, 지식 표현 분야의 복잡한 응용 프로그램을 위한 효율적이고 선언적인 프로그래밍을 가능하게 한다.
The paradigm of Tabled Logic Programming (TLP) is now supported by a number of Prolog systems, including XSB, YAP Prolog, B-Prolog, Mercury, ALS, and Ciao. The reasons for this are partly theoretical: tabling ensures termination and optimal known complexity for queries to a large class of programs. However the overriding reasons are practical. TLP allows sophisticated programs to be written concisely and efficiently, especially when mechanisms such as tabled negation and call and answer subsumption are supported. As a result TLP has now been used in a variety of applications from program analysis to querying over the semantic web. This paper provides a survey of TLP and its applications as implemented in XSB Prolog, along with discussion of how XSB supports tabling with dynamically changing code, and in a multi-threaded environment.
연구 동기 및 목표
- 재귀적이고 부정된 쿼리에서 종료 및 효율성 문제를 해결하기 위해 Prolog에 표 테이블링 논리 프로그래밍(TLP)을 통합하는 것.
- 표 테이블링을 표준 Prolog 환경에서 동적 코드, 제약 조건, 다중 스레딩과 통합함으로써 실용적이고 효율적이며 선언적인 프로그래밍을 가능하게 하는 것.
- 비단조화적 추론, 선호도, Answer Set Programming(ASP)과의 통합과 같은 고급 지식 표현 패러다임을 지원하는 것.
- 프로그램 분석, 의미 웹, 의료 정보학 분야의 실세계 응용 프로그램을 지원하는 견고하고 표준 준수 Prolog 시스템을 제공하는 것.
제안 방법
- 무한 루프를 방지하기 위해 표 테이블링된 서브목표를 사용하여 SLG 해석을 사용하여 답을 캐시하고 재사용한다.
- 잘 정의된 의미론(WFS)을 사용하여 표 테이블링된 부정을 구현함으로써 부정을 일관되고 종료 가능한 방식으로 처리한다.
- 더 일반적인 답을 재사용하고 중복 계산을 방지함으로써 표 테이블링 평가를 최적화하기 위해 호출 및 답의 포함 관계를 적용한다.
- 증분 표 테이블링과 동적 코드 수정을 지원하여 런타임 동안 목표 및 표를 재컴파일 없이 업데이트할 수 있다.
- 특성 변수를 통해 제약 논리 프로그래밍과 통합하고 CLP(R), CLP(FD), 제약 처리 규칙(CHT)을 지원한다.
- 스레드 안정적인 표 관리와 스레드 간 공유 가능한 표 액세스를 통해 다중 스레딩 실행을 가능하게 한다.
실험 결과
연구 질문
- RQ1표 테이블링은 어떻게 Prolog에 효과적으로 통합되어 재귀적이고 부정된 쿼리에 대해 종료 보장과 최적의 복잡도를 확보할 수 있는가?
- RQ2표 테이블링 Prolog 시스템에서 동적 코드 수정과 증분 표 테이블링을 지원하기 위해 필요한 메커니즘은 무엇인가?
- RQ3표 테이블링 논리 프로그래밍은 어떻게 비단조화적 추론, 선호도, Answer Set Programming과의 통합을 지원하도록 확장될 수 있는가?
- RQ4표 테이블링 Prolog는 다중 스레딩 및 제약 기반 프로그래밍 환경에서 성능 및 확장성 특성은 어떠한가?
- RQ5표 테이블링 Prolog는 Flora-2 및 의미 웹 응용 프로그램과 같은 복잡한 지식 표현 시스템을 어떻게 구현하는 데 사용될 수 있는가?
주요 결과
- XSB의 표 테이블링 논리 프로그래밍은 유한한 항의 크기를 갖는 프로그램에 대해 종료 보장을 보장하여 재귀적 쿼리의 신뢰할 수 있는 실행을 가능하게 한다.
- 잘 정의된 의미론 기반 표 테이블링 부정은 사이클이 존재하는 경우에도 정확하고 효율적인 서브목표 평가를 가능하게 한다.
- 호출 및 답의 포함 관계는 더 일반적인 답을 재사용하고 중복 유도를 방지함으로써 표 공간과 계산 시간을 크게 줄인다.
- XSB는 동적 코드 수정과 증분 표 테이블링을 지원하여 재컴파일 없이도 런타임 동안 목표를 업데이트할 수 있다.
- 특성 변수를 통한 제약 조건 통합은 CLP(R), CLP(FD), CHR를 표 테이블링 Prolog 환경 내에서 원활하게 사용할 수 있도록 한다.
- XSB의 다중 스레딩 지원은 확장 가능하고 동시적인 표 테이블링 쿼리 실행을 가능하게 하여 현대의 병렬 아키텍처에서 성능을 향상시킨다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.