ソース:prologcgi.pl
apache のインストールとデモプログラム、環境の設定
最終的にサーバーでプログラムを公開するにしても、デバック・開発用にクライアントマシンにもアパッチのインストールをしておいたほうが便利です。アパッチは次のURLから任意のダウンロードサイトへリンクしており入手できます。
設定は難しくありませんが、必要に応じて関連書籍などをお読みください。
入手サイト:http://www.apache.jp/
PrologによるCGIのデモは、AZ-Prologのインストールディレクトリ下 sample\cgi_demo に入っています。
デモをごらんになるには、次の手順をおとり下さい。
① | AZ-PrologのインストールDIR\sample\cgi_demo\cgi-bin の全ファイルを アパッチインストールDIR\cgi-binへコピー |
② | AZ-PrologのインストールDIR\sample\cgi_demo\htdocs の全ファイル、DIRを アパッチインストールDIR\htdocsへコピー |
③ | Odbcのデモには、あらかじめ設定が必要です。 AZ-PrologのインストールDIR\system\odbc\odbctest.pl に書かれている方法と名前でODBCのDNSを設定し、同じファイルをインタプリタに読み込んで、MDBを 生成しておいてください。 ※2010年3月現在、この機能は32ビット版に限られます。 |
④ | 日本語形態素解析器:MeCab および日本語係り受け解析器:CaboChaのデモのためには、これらのインストールが必要です。Chapter 16を参照してください。 ※2010年3月現在、この機能は32ビット版に限られます。 |
⑤ | 上記が終了しましたら、ブラウザを開き、アドレス欄に次の入力でデモを開始することができます。 http://localhost/az_index.html |
(1)ソースコードの一行目にCGI用Prologインタプリタを記述します。
例:
#! prologcgi
#! C:\AZ-V5\bin\prologcgi (フルパスで指定の場合)
Prologcgi.exe
言語処理パッケージを含まないCGI用インタプリタ
Prologcgi_l.exe
めかぶ、かぼちゃをリンクした言語処理パッケージ
(2010年現在、32ビット版のみ)
64bitパッケージには Prologcgi_l32.exeの名前で同梱しています
get_param/2 | CGI呼び出しの際の引数を取得。指定タグが引数にないときは失敗。 ?-get_param(+タグ名,-値 ). タグ名は呼び出し元のCGI,HTMLでsubmitされたformのinputタグ内のnameに設定された値です。 ファイルを送信した場合、該当タグの値として {ファイル名、受信データタイプ,ファイル内容}がユニファイされます。 下記では、タグ名:user_file 値:{選択されたファイル名,Type,ファイル内容} |
html_call/1 | リストを引数とし、リストの各要素を write します。要素が文字列リストの場合は全要素をput。また、要素が call(述語)の場合のみ、Prolog述語呼び出しを行います。 |
html_tmplate(テンプレートファイル名) | tmp_name/2 をassert後に呼び出す |
html_tmplate (テンプレートファイル名,データファイル名アトム) |
定義ファイルを指定して呼び出す |
html_tmplate (テンプレートファイル名, [変数名1=値1,変数名2=値2.....]) |
変数と値の組を渡して呼び出す <テンプレートの利用> 画面構成部分とデータ部分を切り離し、同一の画面イメージ(テンプレート)で複数のページを容易に生成することが可能となります。 【テンプレートファイル】 HTMLファイルを用意し、データ部分(文字列、写真ファイル名など)を変数書式に置き換えます。 この変数部分は、変数と値の対応を定義することにより、上記述語で呼び出される際、自動的に置き換えられます。 書式:<TMPL_VAR NAME=変数名> 特定の変数が値充足されたときのみ生かしたい行があるときは、条件文で囲うことで切り分けができます。 書式:<TMPL_IF NAME=変数名> ...生かしたいHTML文... </TMPL_IF> 【変数と対応値の定義】 単位節: tmp_name(変数名, 値). を静的・動的に定義するか、あらかじめ定義されているファイルから読込みます。 または、変数名と、キーと変数名、値の組をデータベースに登録しておき、次のような節を定義します。 tmp_name(VarName,Value):- |
set_exit_timer/1 | 引数はミリセコンドをあらわす整数でこの時間が経過したときにPrologプロセスが強制終了されます。利用はCGIに限りませんが、バグや誤入力でプロセスが終了せずサーバー負荷が高まるのを防ぎます。?-set_exit_timer(+整数). |
param_assoc_list/1 | CGI呼び出しの際の全引数をタグと値の組のリストが保存されます。 チェックリストのように、値が異なる複数の同一タグ一覧を処理するときに利用できます。 ?-param_assoc_list(-リスト). |
my_cgi_name/1 | CGI読み込み時のファイル名がこの単位節で保存されます。
?-my_cgi_name(?アトム). |