CLIPS中是否可以有多个类的实例?

问题描述 投票:1回答:1

我有一个来自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来完成。被认为是好的风格?还是应该从根本上改变类的结构?

希望很清楚。任何帮助/建议,表示赞赏。

rdf clips
1个回答
0
投票

如果我理解正确,您正在谈论多重继承。

您可以查看9.3.1 Multiple InheritanceBasic Programming Guide章节以了解如何在CLIPS中实现它。

© www.soinside.com 2019 - 2024. All rights reserved.