
Prologは1972年にフランスのマルセイユ第二大学でAlain Colmerauerと学生Philippe Rousselらによって設計された、論理プログラミングのパイオニア的言語である。事実とルールを述語論理の形で記述すると、処理系が単一化と探索を通じて結論を導く宣言型のパラダイムを世に広めた。1980年代に日本の第五世代コンピュータ計画で中核言語に採用された経緯でも知られ、現代でも自然言語処理、エキスパートシステム、知識ベース推論で独自の存在感を保ち続けている。
この記事の目次
- マルセイユで生まれた論理プログラミング
- 事実・ルール・問い合わせの3要素
- 第五世代コンピュータと人工知能の歴史
- 現代のSWI-Prologと制約論理プログラミング
- まとめ
マルセイユで生まれた論理プログラミング

1970年代初頭、マルセイユ第二大学のAlain Colmerauerは自然言語処理に取り組み、論理式を用いた質問応答システムを試作していた。当時、論理学者Robert Kowalskiが提唱したホーン節を用いた計算モデルに触発され、1972年にPhilippe Rousselと共に最初の処理系を構築した。これがProlog(Programmation en Logique)の誕生である。
1977年にはエディンバラ大学のDavid H. D. Warrenが効率的な処理系「Edinburgh Prolog」を発表し、後の事実上の標準構文となるEdinburgh構文を確立した。1983年にはWarrenが考案したWAM(Warren Abstract Machine)と呼ばれる仮想機械が提案され、Prolog処理系の高速化に大きく貢献した。ISO標準化は1995年にISO/IEC 13211-1として実現している。
事実・ルール・問い合わせの3要素

Prologのプログラムは「事実」「ルール」「問い合わせ」の三つから構成される。事実は「parent(taro, hanako).」のような述語、ルールは「ancestor(X, Z) :- parent(X, Z).」「ancestor(X, Z) :- parent(X, Y), ancestor(Y, Z).」のように頭部と本体を「:-」で結んだ形で記述する。問い合わせは「?- ancestor(taro, X).」のように与え、処理系が条件を満たすXを順に返す。
実行モデルの核は単一化(unification)と後戻り探索(バックトラッキング)にあり、複数の解を順に探索する性質が、組合せ問題や制約充足、構文解析に向いている。手続き型言語のように「どう計算するか」を書くのではなく、「何が成り立つか」を書くだけで結果が得られるという、宣言型プログラミングを最も純粋に体現する言語の一つである。
第五世代コンピュータと人工知能の歴史

1982年から1992年にかけて、日本の通産省主導で進められた「第五世代コンピュータ計画」では、知的計算を担う中核言語としてPrologの並列版KL1が採用された。約540億円の予算が投じられ、専用ハードウェアPIM(Parallel Inference Machine)も開発された。最終的に商業的成功には至らなかったが、論理プログラミング研究と人工知能研究を世界的に押し上げた意義は大きい。
Prologは医療診断、法律支援、構造解析、自然言語処理など多くの場面でエキスパートシステムの基盤となった。IBMが2011年に開発し、クイズ番組『Jeopardy!』で人間チャンピオンに勝利したWatsonの言語処理パイプラインにもPrologが用いられていることが、IBMの技術解説で明らかにされている。
現代のSWI-Prologと制約論理プログラミング

現在もっとも広く使われているProlog処理系は、オランダのアムステルダム大学発祥のSWI-Prologである。Jan Wielemaker氏が1980年代後半から開発を続けており、Webサーバ機能、SQLite連携、機械学習ライブラリとの統合など、現代的な実装が整っている。日本国内ではAZ-PrologやGNU Prologも教育・研究で使われている。
Prologから派生した制約論理プログラミング(CLP)も活発な分野で、CLP(FD)やCLP(R)といったライブラリは生産計画、スケジューリング、半導体配置最適化などで活用されてきた。MercuryやCurryなど、論理プログラミングと関数型プログラミングを融合した言語も登場している。命令型言語が主流の現在でも、Prologは知識表現と推論を簡潔に書ける貴重な道具として残り続けている。
まとめ
Prologは1972年にマルセイユで生まれ、事実とルールを宣言的に書くだけで推論結果を得られる論理プログラミングのパラダイムを切り拓いた。第五世代計画やエキスパートシステム、Watsonへの応用などを経て、現代の知識処理や制約解決の領域でも独自の存在感を保ち続けている。
※本記事はIT用語辞典の手書きドラフトです。公開前に最新情報・出典を確認のうえ加筆修正してください。

コメント