Pyke FC Rule

前向规则包括三部分:

1. 唯一的名字;

2. foreach 子句(可选);

3. assert 子句。


foreach 子句,由多项 premise 组成。

premise 是 事实模式 或者 复合premise  或者 python premise 组成。


复合premise 有三种形式:

1. 'first' premise:在反向推理时会立刻失败,从而阻止后续的反向推理。

2. 'forall' premise:forall 和 require 子句合用,只要发现一个推理失败则整个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 变量,这些变量也不能被其它规则的python语句访问。

4. when子句中的python变量,在其后的with语句中是无法访问的。若有需要,应当将python变量存储到模式变量中作为过渡。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • BC rule 包括四个部分: 1. 唯一的名称; 2. use 子句; 3. when 子句(可选); 4. w...
    gocoding阅读 773评论 1 50
  • 规则 Pyke 通过回溯的方式,尝试每个可能的匹配。因此,同一规则可能多次适用成功,每次成功匹配的是不同的事实。在...
    gocoding阅读 3,078评论 0 48
  • 1. 简介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 5,776评论 0 4
  • 人没有志,如同人没有心,这样的人和行尸走肉没啥区别!孔夫子因材施教,针对不同的人性特点来教学!但统一要求要人们都要...
    李廿阅读 1,003评论 3 1
  • 美丽的痕迹阅读 208评论 0 0