前向規(guī)則包括三部分:
1. 唯一的名字侥涵;
2. foreach 子句(可選)眉抬;
3. assert 子句唐责。
foreach 子句,由多項 premise 組成卑惜。
premise 是 事實模式 或者 復合premise ?或者 python premise 組成膏执。
復合premise 有三種形式:
1. 'first' premise:在反向推理時會立刻失敗,從而阻止后續(xù)的反向推理露久。
2. 'forall' premise:forall 和 require 子句合用更米,只要發(fā)現一個推理失敗則整個premise就失敗。如果忽略 require 子句毫痕,則 forall 返回 successful征峦。?
3. 'notany' premise:所有推理失敗時,notany 子句返回 successful消请。notany 在反向推理時永遠 fail栏笆。?
asssert 子句是由 事實模式 或者 python 語句組成。
python 語句以 python 開始臊泰,后接 python 語句蛉加。這與python premise 不同。
python premise 有四種形式:
1. 模式 = python 表達式缸逃;
2. 模式 in python 表達式针饥;
3. check python 表達式;
4. python 語句需频。
注:
1. 向模式變量賦值的唯一的方法是 <pattern> = <python expression>打厘。不要試圖在python 語句中改變模式變量。
2. python表達式或語句中使用的模式變量必須被約束贺辰;
3. 推理引擎無法訪問 python 變量户盯,這些變量也不能被其它規(guī)則的python語句訪問。
4. when子句中的python變量饲化,在其后的with語句中是無法訪問的莽鸭。若有需要,應當將python變量存儲到模式變量中作為過渡吃靠。