Pyke 学习笔记(二)

规则

Pyke 通过回溯的方式,尝试每个可能的匹配。因此,同一规则可能多次适用成功,每次成功匹配的是不同的事实。在规则的 if 子句的“前提列表”中,是进还是退、是上还是下,取决于前提的证明是成功还是失败。在列表中往后退,尝试别的证明办法,这个过程叫做回溯。


推理

规则保存在规则库中,各有不同的具体内容。规则之间没有嵌套和显性关联。Pyke 必须自己设法来解决规则之间的整合,以完成某些大型任务。 Pyke 用的办法叫做“推理”,它有两种不同的方式:

1)应用正向推理规则,要求规则库已经激活。 正向推理规则可以断言新的事实,可以激活更多的规则库。 

2)当你的程序要求 Pyke 证明某个具体目标时,使用反向推理规则(例如,向 Pyke 询问)。 应用这些规则,是为了回答某个问题,而非断言新事实,或者激活更多的规则库。 反向推理规则,还能汇集 Python 函数,形成具体的“调用顺序图”或叫做“方案图”的程序,以处理实际问题。


正向推理(用 foreach 和 asssert 代替 if 和 then

规则库激活后,正向规则执行的顺序,以其在.krb规则库文件中的次序为准。

为了进行正向推理,Pyke 查看哪个规则的 if 子句,与已知事实相匹配( if 子句可以多次匹配成功,参见“回溯”)。 规则匹配成功后,开始启用它,将其 than 子句中的事实,加入已知事实的列表。 新的事实与其他正向规则 if 子句匹配后,可以将其启用。各种深度的推理过程,都可发生这种匹配。正向推理的过程,持续到没有规则可供使用。

规则的 if 子句中有事实陈述的模式,它们可能与几个事实匹配,于是,规则可能多次匹配启用。 规则 then 子句的事实陈述也有模式。每当规则启用,then 子句中的模式变量,可以约束成不同值,从而断言出不同事实。

注意,foreach 子句末尾的事实,可以多次匹配成功,由此多次启用 assert 子句。 

可是, foreach 子句起始的事实,仅能匹配失败一次。若匹配失败,整个规则适用失败。

例子


反向推理 (用 use 和 when 代替 then 和 if)

Pyke 的证明活动,开始于寻找某一规则,其 then 子句与目标匹配。 

Pyke 接着证明规则 if 子句为真。 

亦即:规则的 if 子句,与另一规则的 then 子句,可以建立连接。

Pyke 最终会形成一条“证据链”,从第一条规则的 if 子句开始,到下一规则的 then 子句结束。

Pyke 只允许在 use 子句里出现一个事实陈述,这与正向推理的 assert 子句(允许多个事实)不同。

在向 Pyke 求证某个目标的要求之后,这些规则才被调用。 

提出求证要求的最简方式,是用函数 some_engine.prove_1_goal 或者 some_engine.prove_goal。函数 prove_1_goal 返回找到的第一个证据后,便停止运行(或者引起意外:pyke.knowledge_engine.CanNotProve)。函数 prove_goal 返回的是求证过程中产生的全部证据的“管理器”。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,186评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,858评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,620评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,888评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,009评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,149评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,204评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,956评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,385评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,698评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,863评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,544评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,185评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,899评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,141评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,684评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,750评论 2 351

推荐阅读更多精彩内容