【发布时间】:2019-10-02 21:59:29
【问题描述】:
我有一个来自 OWL 本体的类结构,我希望将其转换为 CLIPS 知识以执行封闭世界推理。我现有的类层次结构具有多个类类型的实例。例如,我想在 CLIPS 中执行以下操作:
CLIPS> (defclass A (is-a USER))
CLIPS> (defclass B (is-a USER))
CLIPS> (bind ?x (make-instance fact1 of A B))
[fact1]
CLIPS> (type ?x)
A B
我知道这是不可能的(见下一个例子)。
CLIPS> (make-instance fact1 of A B)
[PRNTUTIL2] Syntax Error: Check appropriate syntax for slot-override.
是否可以使实例具有多种类型,其中一种类型与另一种类型无关(即不是其他类型的父类型或子类型)。如果没有,任何建议将不胜感激。我猜这是否不可能,可以使用具有 A 类型和 B 类型的父级的新 defclass 来完成。如果采用这条路线,将制定一个规则,自动创建一个匿名类型,将这两个类型作为父级算不算好作风?还是我应该从根本上改变类结构?
希望这很清楚。感谢您提供任何帮助/建议。
【问题讨论】: