prologとは
prologはかなり昔からあるプログラミング言語の一つです。ただし、C言語とかJava言語のような汎用言語とは異なり、 とても特殊な特徴があります。それは数学論理記述ができるのです。例えば、
human( jiro ).
上記のように書くとjiroは人間である。と書くことができます。
は?何ができるの?
上記例を見ても、「jiroは人間である」としか書いていなくて意味がわからないかもしれません。しかし、例えば
・人間ならば本を読める ・jiroは人間である
とプログラムすると、「質問。本を読めるのは誰か?」と命令すると回答「jiro」が得られます。 ほら、なんとなく数学の三段論法みたいですよね。このように論述プログラムを書くことができます。 そして、これを駆使すると推論をプログラムすることに繋がります。
何が面白いの?C言語のほうがいろいろなことができそうだけど
はい、C言語のような汎用性はありません。しかし、例えばこう考えてみて下さい。
事実である「jiroは人間である」の羅列をデータベースに入れておくことで、跡から質問を追加することができますね。 「人間なら本を読める」「本を読めるのはだれか」とか「jiroは本が読めるか」とか。 ほら、なんとなく論理で検索できる検索エンジンのようですね。昔はエキスパートシステムと読んでいました。