gpt4 book ai didi

java - 如何在jess中定义另一种模板类型的插槽

转载 作者:行者123 更新时间:2023-11-30 09:37:56 26 4
gpt4 key购买 nike

我有一个名为 Person 的模板,这个模板有眼睛、手、 body 和许多其他插槽。但是这些插槽中的每一个都是其他模板。
那么如何为其他模板类型的模板定义一个槽呢??
以及如何定义事实??

这是我主要的一个例子:

(deftemplate Eyes
(slot colorOfEye (type STRING))
(slot ShapeOfEye (type STRING)))
(deftemplate Person
(slot eye (type Eyes))
)
(deffacts People
(Person (eye ....))
)
(reset)

定义Person模板不是这样的,不知道怎么定义事实

谢谢

最佳答案

您必须将它们都定义为单独的模板。然后,您可以在主要事实中存储 fact-id 或“子事实”的其他标识符,然后使用该值将主要事实模式与“子事实”模式结合起来:

(defrule blue-eyed-person
(person (name ?name) (eyes ?eyes))
?eyes <- (eyes (color blue))
=>
(printout t ?name " has blue eyes." crlf))

或者另一种方式

(defrule blue-eyed-person
(person (name ?name) (eyes ?eyes))
(eyes (id ?eyes) (color blue))
=>
(printout t ?name " has blue eyes." crlf))

首先要创造事实,你可能会说

(bind ?eyes (assert (eyes (color blue))))
(assert (person (name Fred) (eyes ?eyes)))

关于java - 如何在jess中定义另一种模板类型的插槽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10323024/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com