在 Cyc KB 中重新创建常量的 Cyc 查询或 SubL 命令

Cyc query or SubL command to recreate constant in Cyc KB

我需要从 KB 中删除涉及特定常量的所有断言,同时保持常量本身不变(例如 "recreate constant")。

我可以为此目的使用哪个 Cyc 查询或 SubL 命令?

Cyc KB - 研究 Cyc 4.0q.

有一个 SubL 函数:

(ke-recreate-now CONSTANT)

它实际上会完全删除常量,但随后会使用相同的名称和 guid 重新创建它。

如果您真正想要的是删除关于 CONSTANT 的大部分而非全部断言,您需要以某种方式决定要保留哪些断言。如果你有一组想要保留的谓词,你可以这样做:

(with-all-mts (do-gaf-arg-index (assert #$GeorgeWashington) 
  (clet ((*the-cyclist* #$CycAdministrator) 
         (keep? nil))
    (cdolist (pred '(#$isa #$argIsa #$genls))
      (pwhen (expression-find pred assert t)
        (csetq keep? t)))
    (punless keep? (ke-unassert-assertion-now assert)))))