可废止逻辑编程:原理与实现
1. 知识基础与推理概念
在推理过程中,我们常常依据部分信息进行思考,这些不同的信息集合被称为知识库。通常,我们会基于整个可废止逻辑(d - Prolog)数据库进行推理,这个完整的数据库被称作根知识库。当比较两条规则的特异性时,我们会将范围限制在其中一条规则的条件子句,以及根知识库中的严格规则、可废止规则和反驳器,同时排除根知识库中的事实和假设。
以简是大学生为例,不能仅仅因为她是大学生就推断她有工作,即便存在其他信息也不能直接得出这个结论。这表明从简是大学生这一信息,甚至不能以可废止的方式推出她有工作。
2. DPROLOG.PL 文件概述
DPROLOG.PL 是一个用于 Prolog 的可废止推理引擎。以下是该文件的部分关键代码及解释:
% DPROLOG.PL
% A defeasible inference engine for Prolog.
init :-
nl,
nl,
write('d-Prolog - A Defeasible Extension of Prolog'),
nl,
nl,
write('"preempt" toggles preemption of defeaters.'),
nl,
nl,
nl,
op(1100,fx,@),
op(900,fx,neg),
op(1100,xfy,:=),
op(1100,xfy,:^).
:- init.
:- dynamic (neg)/1, (:=)/2, (:^)