在制定规则谁可以计算它之后,我如何将事实布尔值放入插槽中?
how do i put facts boolean in a slot by then after make a rule who can count it?
我想计算我的事实,而事实必须是布尔值。对于我的意图,我只需要计数为真。我的问题是,例如,如果我断言或使用 defact 在一个插槽中制作 4 个事实。工作记忆不会读取所有的事实。我尝试将另一个插槽与另一个数据(在这种情况下为名称)放在一起并且工作正常,但我不需要另一个插槽。我这样做只是为了尝试 运行 这段代码。还有其他选择吗?让我告诉你:
(deftemplate testing (slot bole)(slot otro))
(watch all)
(defquery search-by-true
"Finds true"
(declare (variables ?ln))
(testing (bole ?ln)(otro ?ot)))
(deffacts data
(testing (bole TRUE)(otro josue))
(testing (bole TRUE)(otro pedro))
(testing (bole FALSE)(otro pablo))
(testing (bole TRUE)(otro carlos))
)
(reset)
(bind ?result (run-query* search-by-true TRUE))
(bind ?x 0)
(while (?result next)
(bind ?x (+ ?x 1))
)
(printout t (* ?x 0.3) crlf)
我的意图是通过使用带有 java 代码和 jess 的对象来学习这一点。我将如何使用 JCheckbox 并且这个对象是布尔值,所以这就是为什么我需要理解这一点。
如果您对我有好的建议,我会虚心接受。谢谢
如果我没理解错的话,你希望工作记忆包含类似
的内容
(testing (bole TRUE))
(testing (bole TRUE))
(testing (bole FALSE))
... 然后 运行 一些代码告诉您有 2 个“bole TRUE”事实。这在 Jess 中是不可能的:工作记忆不能包含重复的事实。如果您尝试断言一个与现有事实相同的事实,请断言 returns FALSE 并且不会对工作记忆进行任何更改。您可以使用额外的插槽来包含序列号或其他一些独特的信息。
我想计算我的事实,而事实必须是布尔值。对于我的意图,我只需要计数为真。我的问题是,例如,如果我断言或使用 defact 在一个插槽中制作 4 个事实。工作记忆不会读取所有的事实。我尝试将另一个插槽与另一个数据(在这种情况下为名称)放在一起并且工作正常,但我不需要另一个插槽。我这样做只是为了尝试 运行 这段代码。还有其他选择吗?让我告诉你:
(deftemplate testing (slot bole)(slot otro))
(watch all)
(defquery search-by-true
"Finds true"
(declare (variables ?ln))
(testing (bole ?ln)(otro ?ot)))
(deffacts data
(testing (bole TRUE)(otro josue))
(testing (bole TRUE)(otro pedro))
(testing (bole FALSE)(otro pablo))
(testing (bole TRUE)(otro carlos))
)
(reset)
(bind ?result (run-query* search-by-true TRUE))
(bind ?x 0)
(while (?result next)
(bind ?x (+ ?x 1))
)
(printout t (* ?x 0.3) crlf)
我的意图是通过使用带有 java 代码和 jess 的对象来学习这一点。我将如何使用 JCheckbox 并且这个对象是布尔值,所以这就是为什么我需要理解这一点。 如果您对我有好的建议,我会虚心接受。谢谢
如果我没理解错的话,你希望工作记忆包含类似
的内容(testing (bole TRUE))
(testing (bole TRUE))
(testing (bole FALSE))
... 然后 运行 一些代码告诉您有 2 个“bole TRUE”事实。这在 Jess 中是不可能的:工作记忆不能包含重复的事实。如果您尝试断言一个与现有事实相同的事实,请断言 returns FALSE 并且不会对工作记忆进行任何更改。您可以使用额外的插槽来包含序列号或其他一些独特的信息。