首先,您必须小心程序中缺少的空格。需要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. 在Heroku上创建node.js应用程序时,我应该将node_modules检入git吗?
  2. Python入门100题 | 第024题
  3. linux deb文件安装_如何在 Ubuntu 上安装 VirtualBox | Linux 中国
  4. 汉仪尚巍手书_官宣,汉仪字库入选“十大著作权合作伙伴”啦!
  5. 「第一篇」大学生电子设计竞赛,等你来提问。
  6. [蓝桥杯][算法提高VIP]分苹果(差分||树状数组)
  7. php 模拟并发请求_PHP模拟并发请求
  8. 【SpringCloud】服务注册之 zookeeper
  9. linux中df和ls区别,linux系统文件大小ls、df、du命令的区别
  10. 推荐几个程序员学习网站
  11. 助力社区防疫,百数提供了一款管理系统模板
  12. 箱线图Boxplot-统计学解读
  13. 使用深度学习打造智能聊天机器人
  14. 天下码农苦外包公司久矣
  15. 4 个方法养成大神级 “反内耗“ 体质
  16. UEFI版制作U盘启动盘重装系统
  17. Linux学习(CentOS-7)---Linux开机流程
  18. 牛客笔试OJ-在线编辑器输入输出总结
  19. 一文详解云原生DevOps(认识、熟悉、上手,DevOps,Docker,Jenkins,SonarQube,Harbor)
  20. 有效发布促成高效软文营销 | 媒介启航

热门文章

  1. 当前操作系统缺少黑体等字体_第十一章 枚举、结构体、联合体
  2. Easy-rules使用介绍
  3. cmake_安装导入静态/动态库的三种方式(find_package INSTALL 使用绝对路径)
  4. 随手记_英语_50大英文经典句/美句
  5. C#图像处理初学之平移和镜像
  6. ios::ate和ios::app在C++文件中的区别
  7. 图像超分辨率重构(一)原理及方法总结
  8. ORB-SLAM3:一个用于视觉、视觉惯性和多地图SLAM系统
  9. ICCV-2021 Oral | AdaFocus:利用空间冗余性实现高效视频识别
  10. CVPR2021 Oral|开放世界中的目标检测