逻辑编程与粗糙集数据挖掘工具概述
1. 上下文(约束)逻辑编程概述
上下文逻辑编程(Contextual Logic Programming,CxLP)是一种简单却强大的语言,它通过模块化机制扩展了逻辑编程。在CxLP中,具有给定名称的有限Horn子句集被指定为单元(unit)。
1.1 CxLP单元示例
以下是一个名为 teacher
的单元示例,用于表示大学教学的一些基本事实:
:-unit(teacher).
name(N) :- teacher(N, _, _).
department(D) :- teacher(_, D, _).
degree(D) :- teacher(_, _, D).
teacher(john, cs, phd).
teacher(bill, cs, msc).
该示例代码与常规逻辑程序的唯一区别在于第一行声明了单元名称。
再看一个表示课程信息的单元示例:
:-unit(course).
teacher(N) :- course(N, _).
course(C) :- course(_, C).
course(john, ai).
course(bill, lp).
一组单元被指定为上下文逻辑程序。使用上述单元,我们可以构建程序 P = {teacher, course}
。如果将 teacher