---This is prolog2.doc---
処理系(=CPROLOG/CMIS)に於て受付可能なコマンドの概略は既にprolog1.docに紹介済
みであるが、ここでは個別に、より詳細な説明を記述する。
MIS関係はCMISの版でのみ使用可能であり、CMISではピュアPrologのみ受付可能。
:pure-------------prolog実行モードをpureモードに設定。実行結果にゴール節中の
変数に求まった値(=答)についてでなく、質問に対する真偽を
yes/noの形で表示するモード゙。
:ans--------------prolog実行モードをansモードに設定。実行結果にゴール節中の
変数の答について最初に求まった1組を表示するモード゙。
:quer-------------prolog実行モードをqueryモードに設定。実行結果にゴール節中
の変数の答の全組を求め、これを表示するモード゙。
:trac-------------prolog実行中、unification対(ゴール節とホーン節)の追跡表
示をすべき旨、処理系に知らせる。
:dupl-------------prolog実行により求まったゴール節中の変数の値、つまり答えを
同一値を含めそのまま求まった順に表示すべき旨、処理系に知ら
せる。
nodupの場合、duplicate機能を取消す。つまり同一値は一つに
まとめて、異なり分を表示すべき旨、処理系に知らせる。
:orde-------------ゴール節中のアトムunify順を、左から右(最左戦略)とすべき
旨、処理系に知らせる。
noorderの場合、ゴール節中のアトムunify順を、変数を含まな
いアトムから先にすべき旨、処理系に知らせる。
:cond-------------MIS実行中、精密化後の重複仮説のコンデンスを行うよう、
処理系に指示する。
0:nocond =コンデンスを行なわない。
1:clauseck=全ての偽なる仮説の精密化後にコンデンスを行なう。
2:atomsck=各偽なる仮説の精密化毎にコンデンスを行なう。
:log -------------MIS実行中のStrueCHECK後毎にcptohn(.HN)のログ及び精密
化毎にLrm(k)(.LC)ログをとるよう、処理系に指示する。
:mult-------------精密化を制御する、アトム・関数の節内個数制限をアーギュメ
ント数に乗ずる数で指定する。
変数・関数の数制限はアトム数1のヘッドのみの節に関係する。
:subfy------------MISの精密化タイプ3として変数を言語Lの関数で置き換える
精密化があるがこれを仮説の頭部のみに施すか、節全体に施すか
かを指定する。
:bind-------------MISの精密化の一つとして、節の体部追加に自由変項アトムを
使用するか、さらに節が閉論理式になる体部を生成し追加する。
n:addbody=自由変項アトムを使用する。(Default)
y:bindbody=閉論理式になる体部を生成し追加する。
addbodyに加えて機能する。
:samep------------精密化を制御するため、同一述語名を持つアトムを追加可能か否
かを指定する。(ただし体部のアトムについてのみ関係する)
:gen--------------MIS実行中、言語Lからの定文型節(再帰節,迂回節)の自動
生成を行い仮説に加えるよう、処理系に指示する。
(fidの指定がないとき)
fidがあると:loadfid.llと:langを実行後、自動生成試験。
:goda------------MISのSfalseck実行中、偽事例を真と導いてしまった場合、
導出に用いられたホーン節の頭部を神託に例示して真偽を問う。
但し例示に変数が残れば真偽質問前に値を入力してもらう(最初
のみ神託に聞くこと)
a=t:常に真を返す,f:常に偽を返す,n:神託に問う。
:szcomp-----------MIS実行中、サイズを計算するポイントを指示する。
r:精密化中で計算する。
c:コンデンス中で計算する。
:tatm-------------2つの仮説のアトム重複チェックを行うか否かを指定する。
:hexu-------------偽でない仮説と事例とのユニファイチェックと強弱評価を行うか
否かを指定する。(仮説をホーン節に読み込む前で評価)
:cls -------------表示画面の消去
:listx,n---------xについて画面に表示。
xは脚注参照、指定無しはx=h
nは行番号、指定無しはn=1
LRM.CPファイルはMISのVMモードでなければ:mode0,1とし
てから、:listcとする。
:file-------------ディレクトリ表示。PFXを指定すれば選択表示可。
:newx------------xについて現在するものを各メモリー上で消去。
xは脚注参照、指定無しはx=h
:load file--------fileで指定のファイルデータ(通常はホーン節)をディスクから
実行メモリー上に読み込む。
fileは拡張子無指定の場合、.PROとみなす。
拡張子の指定は次のようにする。
ホーン節------------->.PRO
MISの言語L------->.LL
MISの事実--------->.EX
DCG記法によるものは.PROで良いが、そのままでは実行できな
いので:dcgコマンドでprolog節に変換する必要がある。
CPROLOGの版では一時変数の取り扱いは可能。
中置記法によるものは.PROで良いが、そのままでは実行できない
のでこのコマンド実行中に自動的にprolog節に変換される。
CMIS(MISの版)ではDCG記法や中置記法は不可。
:save fid---------現在実行メモリー中にあるデータをfidで指定のファイルIDで
ディスクに書き出す。
:maxd n-----------nでprolog実行のdepthつまり探索深度を指定する。
:mode s,v---------現在の処理系に設定されている各種の状態を表示する。
smode,VM,lmode,nmode,file-id,pure/ans/query,trace/notrace,
duplicate/noduplicate,order/noorder,step/nostep,
current&maxdepth
MIS->(log/nolog,gen/nogen,god ans t/f/ask to god,szcomp r/c,
addbody only/+bind body)
:stat-------------処理系実行中の各種進捗状況を表示する。
smode=0:h0,h1,g1,gn,g2
smode=1:finec,infc,exn,sizek,lrmRN,useb,usecp,usec,
cpct,cfct
:help-------------コマンドリストの表示。
:sys--------------処理系の作動中:sysとキーインするとDOSに戻る。
ESCキーを押すことによりその実行を一時中断してコマンド等の
処理後中断状態から脱出し本処理に戻る際にも使用する。
どの時点に於ても結局:sysキーインは再帰的に呼出元に戻る。
:dvcd------------入力方法の選択・リスト表示レベルの設定。
in 0:getch()..ESCusable,1:getc(stdin)..ESC disable
cmis-d<stdin filenameの形で起動時に指定する。
out 0:listout,1:listnop,2:dsnap
:step--------------hitanykey/escに続いてどれかのキーで次のステップに進む。
ここでESCキーを押すことによりその実行を一時中断することが
できる。
ESCキーが押されると処理系はcont? y/n/:と表示し操作員
yとキーインすると一時中断をやめ実行を再開する。
nとキーインすると中断中のコマンドを現時で強制終了させる。
:とキーインするとコマンドの実行を受付可能状態にする。
(?-ゴールと:rmis/:vmisコマンドは不可)
ここでもし:sysとキーインすると受付可能状態から抜け出す。
ここで再び別のまたは同じコマンドをキーインすると後のコマン
ドの実行後、処理系は再度cont?y/n/:と表示し操作員からの
選択キーインを待つところに戻る。
:copy f,t,d,a/b---実行メモリー中のデータ(ソース形)の編集コマンド群。
:move f,t,d,a/b ここでは説明省略。prolog1.docの概略記述の方を参照のこと。
:delf,t
:lang-------------MISに与える言語Lを実行メモリーから言語Lメモリーに移す
このときメモリー節約の為、若干の変形を施す。
:ex---------------MISに与える事実のうち予め与える分を実行メモリーから事実
メモリーに移す。
このときメモリー節約の為、若干の変形を施す。
MISの実行中、MIS自身の機能として予め与えた分の事実を
適用し終えた時点で更に新しい事実を与えることが出来るように
なっている。
:rmis fid---------MISの駆動。
:vmis fid 当然、この前に言語Lや予めの分の事実を各メモリーに設定して
おく必要あり。(fidの指定がないとき)
但しfidがあれば:load fid.llと:lang及び:load fid.exと:exを
事前自動実行。
:hexck------------各ホーン節と事例とのユニファイチェックと強弱評価。
特定のホーン節番号を指定すればその節のみを評価。
:texu-------------真事例の導出に使われた仮説Lrm(k)の履歴表示。
:back-------------MISの矛盾点追跡アルゴリズムのみを駆動。
但し、あるprologを実行しておく必要あり。
なぜならば実行で得られるゴールヒストリを扱うものである。
:fine-------------指定されたホーン節でMISの精密化アルゴリズムのみを駆動。
当然、この前に言語Lを言語Lメモリーに設定しておく必要あり。
(:load ??.llと:lang <-??は言語L名を指定)
:szck-------------指定されたホーン節のサイズを計算する。
また、USAGEチェックを行いその結果も表示する。
事前に言語Lを言語Lメモリーに設定しておけば、言語Lによる
USAGEチェックも行う。(:load ??.llと:lang)
:tack-------------指定された2つのホーン節のアトム重複チェックを行う。
:bltp xx,w/s------xxに指定したビルトイン述語(理論名辞)のアトムへの適用をwakeup
またはsleepさせる為に処理系にwかsで指示する。
:dcg--------------DCG記法をprolog記法に変換する操作を実行メモリー上で行う
上記のうち:listや:newでxとあるのはh/l/e/cのいずれか一つを指定する。
ここでh/l/e/c各々の意味は次の通り。
h------->ホーン節
l------->MISの言語L
e------->MISの事実
c------->MISの仮説を含むLローm(k)
以 上
|