[論文レビュー] XSB: Extending Prolog with Tabled Logic Programming
本論文では、再帰的および否定的クエリにおける終了性と最適な計算量を保証するため、従来の論理プログラミングにテーブルド論理プログラミング(TLP)を拡張したPrologシステムXSBを提示する。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分解を用いる。
- 整合的かつ終了性を保証する形で否定を処理するため、Well-Founded Semantics(WFS)を用いたテーブル化された否定を実装する。
- より一般的な答えを再利用し、重複する計算を回避することで、テーブル化評価の最適化を図るため、コールおよび答えの包含を適用する。
- インクリメンタルテーブリングと動的コード変更をサポートし、コンパイルなしで述語とテーブルを実行時に入れ替えることを可能にする。
- 付加変数を介して制約論理プログラミングと統合し、CLP(R)、CLP(FD)、および制約処理ルール(CHR)をサポートする。
- スレッドセーフなテーブル管理とスレッド間での共有テーブルアクセスを備えた、スレッドセーフなマルチスレーディング実行を可能にする。
実験結果
リサーチクエスチョン
- RQ1どのようにしてテーブリングをPrologに効果的に統合することで、再帰的および否定的クエリにおける終了性と最適な計算量を保証できるか?
- RQ2テーブルドPrologシステムにおいて、動的コード変更とインクリメンタルテーブリングをサポートするために必要なメカニズムは何か?
- RQ3テーブルド論理プログラミングをどのように拡張することで、非単調的推論、好み、およびAnswer Set Programming(ASP)との統合を可能にするか?
- RQ4テーブルドPrologのパフォーマンスおよびスケーラビリティ特性は、マルチスレーディングおよび制約ベースのプログラミング環境においてどのように現れるか?
- RQ5テーブルドPrologをどのように用いて、Flora-2 やセマンティックウェブアプリケーションのような複雑な知識表現システムを実装できるか?
主な発見
- XSBにおけるテーブルド論理プログラミングは、有界項サイズ性質を持つプログラムに対して終了性を保証し、再帰的クエリの信頼性ある実行を可能にする。
- Well-Founded Semanticsに基づくテーブル化された否定により、サイクルが存在する場合でも、正しいかつ効率的な否定部分目標の評価が可能になる。
- コールおよび答えの包含により、より一般的な答えの再利用と重複導出の回避によって、テーブル領域と計算時間の両方を顕著に削減できる。
- XSBは動的コード変更とインクリメンタルテーブリングをサポートしており、再コンパイルなしで実行時における述語の更新を可能にする。
- 付加変数を介した制約統合により、CLP(R)、CLP(FD)、CHRをテーブルドProlog環境内でシームレスに利用できる。
- XSBのマルチスレーディングサポートにより、スケーラブルかつ並列実行可能なテーブルクエリが可能となり、現代の並列アーキテクチャでのパフォーマンスが向上する。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。