首先,您必须小心程序中缺少的空格。需要Eoln以及比较语句的空格。所以,你的程序应该是这样的:

rule_prec = '(phase ?phase)\n'

rule_prec += '?address1

rule_prec += '?address2

rule_prec += '?address3

rule_body = '(if(=(str-compare ?*pickupEvent* "no") 0) then\n'

rule_body += '(bind ?predicted-action ?action)\n'

rule_body += '(bind ?*current-action* ?predicted-action)\n'

rule_body += '(bind ?ex-tool ?tool)\n'

rule_body += 'else\n'

rule_body += '(bind ?actual-action ?action)\n'

rule_body += '(bind ?s-tool ?tool)\n'

rule_body += '(retract ?address1 ?address2 ?address3)\n'

rule_body += '(if (and (= (str-compare ?predicted-action ?actual-action) 0) \

(=(str-compare ?ex-tool ?s-tool) 0)) then\n'

rule_body += '(updateAction ?*current-action* ?actual-action)\n'

rule_body += 'else\n'

rule_body += '( if (not (= (str-compare ?predicted-action ?actual-action) 0)) then\n'

rule_body += '(updateAction ?*current-action* ?actual-action)\n'

rule_body += '(assert (You have mistake: incorrect action))\n'

rule_body += '(bind ?*number-of-mistakes* (+ ?*number-of-mistakes* 1)))\n'

rule_body += '(if (not (= (str-compare ?ex-tool ?s-tool) 0)) then\n'

rule_body += '(updateAction ?*current-action* ?actual-action)\n'

rule_body += '(assert (You have mistake: incorrect surgical device))\n'

rule_body += '(bind ?*number-of-mistakes* (+ ?*number-of-mistakes* 1))\n'

rule_body += ')))\n'其次,如果您正在使用PyClip并对CLIPS感到满意,请使用以下行来获取规则的真实CLIPS错误消息。我尝试解决您的问题,但规则的模式和操作部分存在一些问题。

import logging.config

engine = clips.Environment()

try:

rule_name = 'rule_1'

rule_prec = '(phase ?phase)\n'

rule_prec += '?address1

rule_prec += '?address2

rule_prec += '?address3

rule_body = '(if(=(str-compare ?*pickupEvent* "no") 0) then\n'

rule_body += '(bind ?predicted-action ?action)\n'

rule_body += '(bind ?*current-action* ?predicted-action)\n'

rule_body += '(bind ?ex-tool ?tool)\n'

rule_body += 'else\n'

rule_body += '(bind ?actual-action ?action)\n'

rule_body += '(bind ?s-tool ?tool)\n'

rule_body += '(retract ?address1 ?address2 ?address3)\n'

rule_body += '(if (and (= (str-compare ?predicted-action ?actual-action) 0) \

(=(str-compare ?ex-tool ?s-tool) 0)) then\n'

rule_body += '(updateAction ?*current-action* ?actual-action)\n'

rule_body += 'else\n'

rule_body += '( if (not (= (str-compare ?predicted-action ?actual-action) 0)) then\n'

rule_body += '(updateAction ?*current-action* ?actual-action)\n'

rule_body += '(assert (You have mistake: incorrect action))\n'

rule_body += '(bind ?*number-of-mistakes* (+ ?*number-of-mistakes* 1)))\n'

rule_body += '(if (not (= (str-compare ?ex-tool ?s-tool) 0)) then\n'

rule_body += '(updateAction ?*current-action* ?actual-action)\n'

rule_body += '(assert (You have mistake: incorrect surgical device))\n'

rule_body += '(bind ?*number-of-mistakes* (+ ?*number-of-mistakes* 1))\n'

rule_body += ')))\n'

rule=clips.BuildRule(rule_name, rule_prec, rule_body,"test rule")

except clips.ClipsError:

logging.error(clips.ErrorStream.Read())

exclips为什么j创建局java出错_clips.BuildRule出错相关推荐

  1. exclips为什么j创建局java出错_用Eclipse建立jdbc_odbc连接oracle

    一.  创建oracle的数据源 我的电脑 --> 控制面板 --> 管理工具 --> 数据源(ODBC)--> 用户DSN,添加 ---> 找到oracle的驱动,点击 ...

  2. java二级选择题要对一半吗_据说一半以上的java程序员会出错的题

    大三即将结束,经过一段时间的较为系统的自学java, 突然看到一个自称一半以上的java程序员都会出错的程序尤为感兴趣.便深究了一番 程序代码如下: package com.longpo; class ...

  3. java运行构建期间出错_构建和运行Java 8支持

    java运行构建期间出错 尚未提供对Java 8的Eclipse支持. 如果要使用它,则必须构建它. Eclipsepedia的JDT Core / Java8页面包含有关使用Eclipse Java ...

  4. Java web 开发填坑记 2 -如何正确的创建一个Java Web 项目

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/72566261 本文出自[赵彦军的博客] Java web 开发填坑记 1-如何正确 ...

  5. 如何使用eclipse软件创建一个Java项目?

    同学们在参加Java的时候老师肯定会教给你们如何去创建一个项目,这里怕有些同学没记住,所以单独为大家分享一篇如何使用eclipse软件创建一个Java项目教程,感觉有用的话收藏转发一下~ eclips ...

  6. IntelliJ IDEA for Mac 如何创建普通的Java项目_创建项目_新建项目

    文章目录 创建 Java 新项目的流程 普通 Java 项目结构 Java 项目结构特例讲解 创建 Java 新项目的流程 Create New Project Empty Project (1)选择 ...

  7. idea 新建的java项目没发run_IntelliJ IDEA创建普通的Java 项目及创建 Java 文件并运行的教程...

    最近突然看到这篇几年前随手记录的文章,居然浏览量那么高.看来很多小伙伴也开始从 Eclipse 转到 IDEA,这里为了让大家更好的掌握 IDEA 的使用,我建议大家可以看看下面这个 IDEA 教程. ...

  8. Linux环境下创建运行.java文件

    1.下载安装jdk. 一条yum指令就可以搞定了,也可以自己从windows上共享文件进行操作,有些复杂,这里不做详细描述. 以后熟练了,可能进行二更. yum install java-1.8.0- ...

  9. 创建一个java项目

    新建一个java项目 创建一个java项目 使用MyEclipse 新建项目 文件>新建>java项目 项目名称与存放路径 如果弹出此项,选择yes 项目创建成功 界面的效果 项目目录中的 ...

  10. WebApi接口访问异常问题。尝试创建“testController”类型的控制器时出错。请确保控制器具有无参数公共构造函数

    WebApi接口访问异常问题.尝试创建"testController"类型的控制器时出错.请确保控制器具有无参数公共构造函数 参考文章: (1)WebApi接口访问异常问题.尝试创 ...

最新文章

  1. Java基础学习总结(12)——一哈希编码HashCode
  2. 线程池底层工作原理?
  3. 1113 Integer Set Partition (25 分)【难度: 一般 / 知识点: 思维 贪心】
  4. 环境搭建之日志搜集/采集服务系统对比(logtail/hadoop/elk/splunk/appender)
  5. http --- Web页面请求的历程(如何根据URL寻找到需要的资源)
  6. SDM For Face Alignment 流程介绍及Matlab代码实现之预处理篇
  7. sqlite插入时间字段_sqlite 获取最后插入id
  8. 软路由VS高性能路由,该怎么选择?
  9. 【NOIP2015】【Luogu2670】扫雷游戏(搜索,字符串输入输出)
  10. Matlab 用sort函数排序 二维数组
  11. Python2.X和Python3.X文件对话框、下拉列表的不同
  12. Vue学习(二):class与style绑定
  13. 流水线激光打标视觉定位系统
  14. MetaMask新版本新增获取并修改用户剪切板内容权限
  15. 关于yaml的基本写法
  16. php百度蜘蛛劫持,PHP模拟百度蜘蛛,伪造IP爬行网站,附源代码
  17. echarts组织架构图
  18. python装饰器原理wraps(method)(self)_理解Python中装饰器最佳方法~
  19. 使用跟踪查看器查看 ASP.NET 跟踪信息
  20. 在安装虚拟机时,”intel vt-x 处于禁用状态“ 如何解决

热门文章

  1. Go语言:数组练习—数组逆置
  2. HTML:H5新特性
  3. await js 报错_async/await优雅的错误处理方法总结
  4. 解决npm安装时出现run `npm audit fix` to fix them, or `npm audit` for details
  5. S2D_基于深度学习的视觉稠密建图和定位_相关文章
  6. 图像/视频超分之降质过程
  7. 使用国内源来安装pytorch(速度很快)
  8. Ubuntu安装pycharm后没有快捷方式的解决办法
  9. H3C 帧中继地址映射
  10. MySQL复制应用中继日志解析