この記事を読んだら知れること
記事の背景
以下のURLのAIITという社会人大学院に通っていて、授業の中でPrologを扱う回があり、初めてPrologを触るということで備忘録も含めて実行方法などをまとめます。
aiit.ac.jp
Web上での実行ツールの紹介(SWISH)
以下のWeb上のSWISHというツールで、Create a [Program]を選択するとプログラムを記述できるようになります。
SWISH -- SWI-Prolog for SHaring
VSCodeでの環境構築
以下のプラグインをVSCodeに入れると開発が楽になると思います。
marketplace.visualstudio.com
SWI-Prologでのプログラムの実行方法
簡単に試せる実行方法は2つあり、簡単に紹介します。
ルールの読み込みはファイル読み込みでの実行しかできないように見えますが、通常実行している途中でファイル読み込みもできます。
- 通常実行
swipl # ?- write(hello). hello true. # ファイル読み込みで、ファイル名の指定を行いそのファイル内のルールを読み込む [square]. true. ?- square(2, 3). false. # control + D で終了
- ファイル読み込み(ルール読み込み)の実行
swipl square.pl ?- square(2, 3). false. ?- square(2, 4). true. ?- square(X, 4). ERROR: Arguments are not sufficiently instantiated ERROR: In: ERROR: [11] 4 is _26776*_26778 ERROR: [9] toplevel_call(user:user: ...) at /usr/local/Cellar/swi-prolog/9.0.4/libexec/lib/swipl/boot/toplevel.pl:1173 ERROR: ERROR: Note: some frames are missing due to last-call optimization. ERROR: Re-run your program in debug mode (:- debug.) to get more detail. ?- square(3, Y). Y = 9. # control + D で終了
square.pl自体の中身はこちらです。
square(X, Y) :- Y is X * X.
最初に見てみると良さそうな動画
AIITのインテリジェンス特論という授業を紹介したいところですが、入学あるいは科目履修生にならないとこちらを参照できないため、YoutubeでPrologの紹介をしていた以下のYoutubeの動画が概要も含めてより掴みやすいと思ったので、紹介です。
www.youtube.com
こちらの大学の授業で取り扱われていそうですね。
人工知能の基礎(全15回)