BC rule 包括四个部分:
1. 唯一的名称;
2. use 子句;
3. when 子句(可选);
4. with 子句(可选)。
use 子句由模式和taking子句组成。taking子句列出了plan 函数的 python 参数(不要使用 $)。
when 子句就是rule的if部分。忽略when子句,则由use子句的模式匹配结果来决定是否successful。when 子句 的形式包括:模式匹配、复合premise或者python premise。模式匹配中可能包括rule分类。
在when子句中指定plan_spec时,with子句即为其plan function。注:python 语句会自动转换为with子句。每个python语句的附属plan function由 $$ 来识别,该函数的结果可以赋值给pyton变量(不是模式变量),taking子句的变量可以在plan function里面使用。如果不使用step,语句按照出现的顺序运行,否则按照step指定的数字顺序来运行。as 将模式变量转化为pyton函数,由此就可以在其他python程序里面调用它,而该函数的参数就是taking子句指定的。
bc_extra、fc_extra、plan_extra可以用来扩展python语句。
网友评论