37、Prolog编程:可废止逻辑与自然语言处理

Prolog编程:可废止逻辑与自然语言处理

可废止逻辑编程中的封闭世界假设

在数据库操作中,封闭世界假设(Closed World Assumption,CWA)是一个常用的概念。CWA 指的是,如果某条数据是正确的,那么它应该被包含在数据库中。

举个例子,有一个 Prolog 数据库存储了某公司员工的信息,如姓名、社保号码、职位、薪水、出生日期等。当我们查询 ?- position(jones,secretary). 得到回答 no 时,我们可以推断出 Jones 不是秘书。因为如果他是秘书,这个事实会在数据库中,查询就会成功。

再看另一个例子,我们想找出所有非秘书且年薪低于 25000 美元的员工,合适的查询是 ?- salary(X,Y), Y < 25000, \+ position(X,secretary). 。如果子目标 \+ position(X,secretary). 成功,那么 X 肯定不是秘书。但这只有在对于谓词 position/2 的 CWA 成立时才有效。需要注意的是,在调用包含 \+ 的子目标时,变量 X 必须已经被绑定,否则只有当公司里没有人是秘书时,该子目标才会成功。

否定即失败(Negation-as-failure)只适用于 CWA 合理的情况。当 CWA 合理时,我们可以在 Prolog 中使用 \+ 来调用它。然而,这对于 d - Prolog 来说

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值