Prolog 【Programmation en logique】

概要

Prolog(Programmation en logique)とは、代表的な論理型プログラミング言語の一つ。1972年に仏マルセイユ大学のアラン・カルメラウアー(Alain Colmerauer)氏とフィリップ・ルーセル(Pphilippe Roussel)氏が、自然言語の解析や定理の自動証明などを研究する過程で考案した。

「述語論理」(一階述語論理)と呼ばれる論理形式を用いて物事の間の関係を「述語」として定義し、述語が満たすべき条件を規則として定義することによりプログラムを記述する。プログラムのほとんどが短い宣言の列挙であり、手続きなどは記述しないため、「宣言型プログラミング言語」に分類されることもある。

Prologは自然言語の処理や機械的な推論などに適しているため、古くからエキスパートシステムなどいわゆる人工知能システムの研究・開発などの分野で利用されてきた。1995年にはISO標準が策定され、様々な環境向けに処理系開発されているが、汎用的なソフトウェア開発には適用しにくいため、限られた用途・分野で利用されている。

基本的な文法

Prologでは事物の持つ性質や、事物の間の関係を「事実」として定義する。「parent(john,mary).」(johnはmaryのparentである)「male(john).」(johnはmaleである)のように記述する。事実の宣言を集めたものを「データベース」という。

ある事実が他の事実に依拠して決まる場合は、これを「規則」として記述する。例えば、「father(X,Y) :- parent(X,Y), male(X).」という規則は、「Xがfatherであるとは、XがYのparentであり、かつ、Xがmaleであることを指す」と定義している。

Prologの処理系に事実と規則を記述したプログラムを与え、「質問」を実行すると、導かれる結論を返す。例えば、上記の事実と規則を宣言したプログラムに「?- father(john, mary).」という質問を与えると、「yes」と出力する。事実や規則に当てはまらない場合や「知らない」場合は「no」を出力する。

(2024.1.22更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる