BC rule 包括四個部分:
1. 唯一的名稱;
2. use 子句;
3. when 子句(可選);
4. with 子句(可選)。
use 子句由模式和taking子句組成。taking子句列出了plan 函數(shù)的 python 參數(shù)(不要使用 $)。
when 子句就是rule的if部分。忽略when子句,則由use子句的模式匹配結(jié)果來決定是否successful。when 子句 的形式包括:模式匹配、復合premise或者python premise。模式匹配中可能包括rule分類。
在when子句中指定plan_spec時,with子句即為其plan function。注:python 語句會自動轉(zhuǎn)換為with子句。每個python語句的附屬plan function由 $$ 來識別,該函數(shù)的結(jié)果可以賦值給pyton變量(不是模式變量),taking子句的變量可以在plan function里面使用。如果不使用step,語句按照出現(xiàn)的順序運行,否則按照step指定的數(shù)字順序來運行。as 將模式變量轉(zhuǎn)化為pyton函數(shù),由此就可以在其他python程序里面調(diào)用它,而該函數(shù)的參數(shù)就是taking子句指定的。
bc_extra、fc_extra、plan_extra可以用來擴展python語句。