JessTab:求平均值

我知道

我正在尝试通过以下JessTab规则找到家庭本体论中主张的人们的平均年龄:

(defrule print_people_total_age 
   (object (https://wiki.csc.calpoly.edu/OntologyTutorial/family_example.owl#age ?a1)) 
   => 
   (bind ?s 0) 
   (bind ?num 0) 
   (foreach ?a (create$ ?a1) (+ ?s ?a) (++ ?num) (printout t "Total age " ?s " and average age is " (/ ?s ?num) " of persons" crlf)))

该规则可以很好地编译,但是在激活时会出现以下错误:

Jess reported an error in routine +
    while executing (+ ?s ?a)
    while executing (foreach ?a (create$ ?a1) (+ ?s ?a) (++ ?num) (printout t "Total age " ?s " and average age is " (/ ?s ?num) " of persons" crlf))
    while executing defrule MAIN::print_people_total_ageSSS
    while executing (run).
  Message: Not a number: "~@http://www.w3.org/2001/XMLSchema#integer 20".

我哪里错了?

异想天开

您需要了解规则执行的基础知识,最值得注意的是,与规则匹配的每个事实(或一组事实)都会导致该规则的执行,并且所有这些执行彼此独立。为了合并包含在多个事实中的数据,您可以使用累积的CE;否则,可能会失败。在更复杂的情况下,可能需要一个辅助事实。

(defrule sumofages
?res <- (accumulate (progn (bind ?s 0)(bind ?n))
                    (progn (bind ?s (+ ?s ?a)) (++ ?n))
                    (create$ ?n ?s)
                    (object (age ?a)))
=>
(bind ?s (nth$ 2 ?res))
(bind ?n (nth$ 1 ?res))
(printout t "Total age " ?s
            " and average age is " (/ ?s ?n) " of persons" crlf))

您还应该确保了解算术功能的基本原理。(+ ?s ?a)?添加但不更改操作数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

求平均值

来自分类Dev

Power BI:求平均值的平均值和平均值的 STDEV.P

来自分类Dev

求平均值的更快方法

来自分类Dev

PHP算法求平均值

来自分类Dev

使用 OR 函数求平均值

来自分类Dev

使用java求平均值

来自分类Dev

根据两个条件求平均值;根据这些平均值创建列

来自分类Dev

如何对mongodb中的求和值求平均值?

来自分类Dev

根据键对字典中的值求平均值

来自分类Dev

如何对表字段中的数据求平均值

来自分类Dev

对存储在结构中的所有矩阵求平均值

来自分类Dev

按行和列求平均值

来自分类Dev

对数组邻居值求平均值

来自分类Dev

根据文本文件的数据求平均值

来自分类Dev

对从finviz提取的值求平均值时出错

来自分类Dev

如何对mongodb中的求和值求平均值?

来自分类Dev

对数字列表求平方并除以列表的平均值

来自分类Dev

根据x的分组值求y的平均值

来自分类Dev

通过一个因素求平均值

来自分类Dev

使用两个字典求平均值

来自分类Dev

Python:对列表求平均值并追加到字典

来自分类Dev

按 R 中的位置对列表求平均值

来自分类Dev

如何求两组数据的平均值?

来自分类Dev

VBA excel:求和求加权平均值

来自分类Dev

分别按多列求平均值

来自分类Dev

在 groupby 内分组,然后求平均值

来自分类Dev

如何按特定列求平均值

来自分类Dev

求奇数序列中最大值的平均值

来自分类Dev

条件平均值(“平均值”)