闭世界假定(Closed-World Assumption,简称 CWA)是数据库理论、逻辑学和人工智能(知识表示)中的一个基本假定。

它的核心观点是:凡是当前无法被证实为“真”的陈述,都被假定为“假”。

以下是关于闭世界假定的关键要点:

1. 核心逻辑与对比

  • 闭世界假定 (CWA):如果知识库中没有记载“A 存在”或“A 为真”,系统就断定“A 不存在”或“A 为假”。这意味着系统拥有完全的信息(知识是闭合的)。

  • 开世界假定 (OWA, Open-World Assumption):如果知识库中没有相关信息,系统会认为“不知道 A 是否存在”。未记载的信息仅仅代表“未知”,而不是“不存在”。

2. 经典示例

假设有一个航空公司数据库,记录了所有直飞航线。

  • 如果你查询“是否存在北京直飞芝加哥的航班”,而数据库中没有这条记录:

    • 在闭世界假定下:系统回答“不存在”。(默认数据库包含了所有真实世界的直飞信息)

    • 在开世界假定下:系统回答“不知道”。(因为没有记录并不代表现实中一定没有,可能只是数据库没录入)

3. 应用场景

  • 关系型数据库 (SQL):标准的数据库管理系统普遍采用 CWA。如果表中没有某行数据,查询就会返回空,我们便认为该事实不成立。

  • 逻辑编程 (如 Prolog):采用“否定即失败”(Negation as Failure)机制。如果程序无法证明一个命题为真,它就判定该命题为假。

  • 语义网 (Semantic Web) 与 OWL:与数据库不同,语义网(如 RDF、OWL)通常采用开世界假定。因为互联网上的信息是碎片化且不断变化的,不能因为某个网页没提到某个事实,就断定该事实不存在。

4. 优缺点

  • 优点:极大地简化了数据表达和处理。我们不需要在数据库中显式地存储成千上万条“张三不是医生”、“李四不是司机”这样的否定信息,只需存储肯定信息即可。

  • 缺点:在信息不完备的现实场景中可能导致错误判断。例如在医疗系统中,如果仅仅因为患者病历中没有“青霉素过敏”的记录,就假定患者“不过敏”并直接注射,可能会带来严重后果。