CN104778071A - 智能规则多语言类型解释系统及其创建方法 - Google Patents
智能规则多语言类型解释系统及其创建方法 Download PDFInfo
- Publication number
- CN104778071A CN104778071A CN201510151147.5A CN201510151147A CN104778071A CN 104778071 A CN104778071 A CN 104778071A CN 201510151147 A CN201510151147 A CN 201510151147A CN 104778071 A CN104778071 A CN 104778071A
- Authority
- CN
- China
- Prior art keywords
- rule
- language
- creation method
- file
- virtual machine
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Abstract
本发明公开了一种应用于智能家居领域的智能规则多语言类型解释系统及其创建的方法,此系统为目前解决智能家居领域的“伪智能”(本质上是远程控制系统或者局部智能)问题提供了基础。系统是由规则编辑器、规则词法检查、规则语法检查、中间代码生成、执行代码生成、可执行代码文件管理、规则调试、虚拟器执行环境等组成的一体化语言解释集成环境。本发明简单易学,语言语法跟我们自然语言说话没什么区别,用户无需专业性的知识即可理解使用,整个“程序”除了运算符之外其他完全可以用纯中文(藏语、蒙语等)来描述,其执行效率非常高,执行代码非常接近机器语言。通过此语言系统和智能家居云服务系统的融合,用户可以像跟系统说话一样的简单要求系统自动的完成一个复杂的过程,根据目前市场实际情况,此技术市场前景巨大。
Description
简略:
本发明系统以下简称SRS;
智能集控路由器以下简称CCR;
规则控制终端以下简称RCT;
规则控制增值服务/增值服务器集群以下简称RCVS;
规则编辑终端以下简称RET。
技术领域
本发明主要应用在智能家居领域的智能化控制中,具体是一套真正意义上的智能化控制方案。
技术背景
智能家居经过长足的发展,截止到目前为止,各智能终端设备发展迅速,也得到了一定的应用。但是由于现在的方案都是停留在远程控制上面、或者是经过系统的设置部分的达到智能控制功能、或者是智能化的功能都停留在单个产品之上等,而且各家系统的设置观念等都皆不同;就是一个公司的系统由于区域和人们生活习惯的不同在其应用方面也会有所差异,其系统也很难以达到一定的通用管理要求或者说是快速适应要求。更是缺乏一个整体的真正意义上的智能化系统方案来支撑其下步市场的扩展等。
发明的目的
1、实现智能家居领域中真正意思上的灵活控制,区域差别快速响应,智能处理的目的;
2、通过自然语言方式来解决系统太专业问题,同时增强本领域的用户体验,以加快智能家居领域的普及而提供基础。
发明内容
概述
本发明专利通过灵活、简单的自然语言方式定义的处理规则,很好的解决了智能家居的区域性、生活习惯等的不同而带来的智能控制差异问题,同样一套方案可以应用到不同的场合,只要根据不同的环境和要求,用户编写自己想要的规则即可。系统的平台无关性和高扩展性等特征,可以使任何智能硬件设备只要根据系统扩展规范,随时可以实现在线的添加和处理等,同时也很好的解决了真正意义上的智能处理问题。
系统技术方案:
SRS系统技术方案如附件图1所示,其系统框架如附件图2所示,从方案角度来说其主要分为四大部分:
1、规则编辑终端
简称RET,此部分主要功能是通过用户登录系统后加载系统中相应的信息、并根据执行条件、编辑相应的规则,然后对规则进行检查、生成CCR可以执行的中间代码,最后将用户编辑生成的多个规则向CCR提交。根据与CCR对接的接口规范、此终端也具备规则调试功能;
2、智能集控路由器
简称CCR,此部分为整个系统中的核心部分,对RET发来规则根据其执行条件进行解释执行,并根据其执行的内容对RCT和RCVS发出控制命令,从而达到灵活控制的目的;
3、规则控制终端
简称RCT,此部分为智能家居系统中受控部分,对CCR中的规则系统发来的指令进行执行,并返回结果。比如:照明灯、智能开关、冰箱、微波炉、家庭门禁系统等;
4、规则控制增值服务/增值服务器集群
简称RCVS,此部分为智能家居中的所有增值服务系统,对CCR中的规则系统发来的指令进行解释执行,并返回结果。此部分的增值业务包括:电视节目、在线电视、水电缴费等;
上述四大部分的总体工作流程为用户通过RET设备登录系统,然后根据自己的情况选择执行规则的事件并编辑自己的规则,然后对规则进行检查,如果没问题则生成CCR能够解释执行的中间代码;用户编辑规则完毕后向CCR提交生成的中间代码;CCR根据事件条件触发规则的执行,然后根据规则执行要求等来综合控制RCT中的设备和控制RCVS中的服务等,具体流程请详细参考下面的规则生成流程和规则执行流程。
从系统框架角度来说也主要分为4大部分(见附件图2):
1、规则编辑终端环境
此运行环境可以是windows、android、ios、ubuntu等任意操作系统平台,同时也是夸各硬件平台的。此部分根据语言(系统支持插件式的多自然语言语法系统,他可以通过嵌入插件来达到多自然语法功能,以下以简体中文为例来说明)的不同完成智能规则的编辑、词法的检查、语法的检查、中间代码的生成(多语言语法规则都统一生成同一中间语言语法,目前定义为简体中文)、可执行代码的生成等,并以上述流程为基础,实时在线的完成智能规则的添加、修改、删除、规则继承等;同时也缓冲系统中所有的设备及其命令信息,并起到临时文件管理功能;协调执行环境虚拟机完成规则调试功能等;
2、执行环境虚拟机
此部分可以运行在目前各大主流的硬件平台之上(x86、arm、mips等),接受来自规则编辑终端发来的规则添加、修改、删除消息,完成整个规则的实时在线管理功能;同时响应各类规则事件,启动规则的执行,从而完成对被控智能终端的综合管理功能,最终达到高度智能处理的目的;本虚拟机部署在集控器或者集控路由器之中;
3、被控智能终端
被控智能终端是遵循本系统扩展协议(基于本发明人所研发的智能家居云服务平台的智能终端扩展协议)的智能终端,每个智能终端只要遵循我们的扩展协议就可以融入到我们的系统中,从而可以达到通过我们SRS系统进行综合管理的目的;
4、系统可执行文件
此文件部署在执行环境虚拟机中,同时在规则编辑终端环境中也有部分缓冲,其主要管理还是由执行环境统一管理,编辑终端只是利用其完成一些辅助功能。此文件起到规则统一管理的功能,包括可执行代码、源代码等。
规则生成流程
基本流程如图3所示,其过程为:规则编辑终端环境登录系统,同时加载系统所有控制环境信息及其控制命令,如果登录失败则任务结束;如果登录成功用户选择需要处理规则的设备,并选中其处理的类型,此时规则编辑环境打开,用户按照《规则语言定义规范》编辑规则(可以参照《规则语言定义规范》中的规则描述例程章节进行书写),编辑完成后对规则进行检查(包括此法检查、语法检查),如果不正确用户继续按照《规则语言定义规范》编辑规则直到正确为止;规则编辑正确后生成中间执行代码(生成过程包括生成和优化过程),并提交给系统;如果用户还需要编辑其他规则则按照上述流程继续编辑和生成等。
规则执行流程:
基本流程如图3所示,其过程为:规则虚拟机等待规则执行事件,其事件的产生是由系统(启动、退出、错误)、设备(上线、下线、属性改变、属性获取、自身产生的消息)、周期/定时触发器等发出,虚拟执行环境响应;然后虚拟执行环境根据事件类型、设备全局用户编号等信息查询系统是否有此事件的处理规则,如果没有则继续等待规则执行事件;如果找到处理规则,则执行规则(通过规则而综合控制多设备),同时写入规则执行日志系统;如果规则执行错误则触发系统错误规则的处理,同时将错误写入日志系统;如果系统没有结束则继续等待规则执行事件。
附图说明:
图1 为SRS系统技术方案图;
图2 为SRS系统框架图;
图3 为规则生成流程图;
图4 为规则执行流程图;
图5 为《新一代智能家居综合云服务平台》(以下简称RSSHCSP)的整体技术方案图;
图6 为规则编辑器界面图;
图7 为系统设备命令例子图;
图8 为规则虚拟机执行示例图;
图9 为规则系统执行文件的定义图。
其实施方式:
根据以上叙述,进一步说明本发明专利的实施过程:
由于SRS系统为专利申请人开发的《新一代智能家居综合云服务平台》的一部分,《新一代智能家居综合云服务平台》(以下简称RSSHCSP)的整体技术方案如附图5,现从整体系统出发描述其实施过程:
启动过程:
智能路由器启动连接云服务平台,各硬件产品根据协议自动检测到智能路由器并连接之,然后启动本地SRS服务(同时加载本地规则库)并执行系统启动后规则(此规则一般为系统初始化的处理,给各个控制终端发出初始化命令等),最后SRS服务(规则虚拟机)等待其他规则执行事件;
结束过程:
智能路由器发出系统退出规则执行消息(此规则一般为向各控制终端发出系统离线通知处理,至个设备离线状态命令),规则虚拟机执行退出规则,然后断开各终端链接,再断开与云服务平台的链接,保存规则库于本地,最后关闭设备;
添加过程:
系统启动之后就可以对规则库进行规则添加,其过程为:启动远程操作终端连接智能路由器->加载本域范围内系统设备及服务信息(同时包括设备及服务的命令)和规则库做本地缓冲->选择需编辑规则的设备/服务、同时选择规则执行类型->启动规则编辑器如附图6,此时如果规则不存在则"添加规则"按钮可用,"修改规则"按钮不可用->根据《规则语言定义规范》编辑规则->单击"检测规则"进行规则检查,如果出错继续编辑->单击"添加规则"向系统中添加规则,同时也可以单击"执行规则"进行规则调试。添加过程基本完毕;
修改过程:
系统启动之后也可以对规则库进行规则修改,其过程为:启动远程操作终端连接智能路由器->加载本域范围内系统设备及服务信息(同时包括设备及服务的命令) 和规则库做本地缓冲->选择需修改规则的设备/服务、同时选择规则执行类型->启动规则编辑器如附图6,此时如果规则存在则"添加规则"按钮不可用,"修改规则"按钮可用->根据《规则语言定义规范》编辑规则->单击"检测规则"进行规则检查,如果出错继续编辑->单击"修改规则"向系统中修改规则,同时也可以单击"执行规则"进行规则调试。修改过程基本完毕;
删除过程:
系统启动之后也可以对规则库进行规则删除,其过程为:启动远程操作终端连接智能路由器->加载本域范围内系统设备及服务信息(同时包括设备及服务的命令) 和规则库做本地缓冲->选择任意一种类型的规则类型,只要将规则编辑器启动即可->点击编辑器左边的"规则"选项页,此时选项页中显示出系统中所有的的规则->选中需要删除的规则,单击鼠标右键->在弹出的菜单中选中删除即可;
继承过程:
运用上述添加过程启动规则编辑器,此时在左边的选项页中有个"规则例子"分支->点开此分支,会显示系统中默认的规则库(此库是从云平台中的智能规则库服务器中加载而来)->选中需要继承的规则,然后双击,此时编辑界面中就出现了选中的规则库源码->余下过程就跟添加过程类似;
执行过程:
系统启动完了之后自动执行系统启动规则,此规则执行完之后就等待新的规则事件的到来。规则事件采用消息队列的方式进行,规则虚拟机实质是在一个消息队列中等待事件,触发事件产生的对象有系统(退出前、错误),设备(上线、下线,值改变,值获取,设备消息),周期/定时触发器等。其过程为:规则产生对象触发事件,向事件队列中插入事件->虚拟机等待被唤醒->启动执行事件->获取执行规则执行代码->初始化执行环境->执行指令集(有控制命令的,向相应设备发送控制命令)->执行完毕返回执行结果->查询事件队列是否有新的事件需要执行->如果有则进行新的一轮执行,如果没有则等待新的事件发生。
规则语言定义规范:
一、简述
本智能规则系统实质上是一套应用于智能家居行业的简洁程序语言解释系统,并根据目前国内应用的实际情况,对其进行了语法上的人性化改版,此语言就像人和人之间说话一样的简单,并且此系统为一套全中文的解释系统(且可以通过插件的方式扩展其他语言类型),语言的描述统一UTF8格式,在整个规则的描述中除了运算符号以外其他的都可以是设置好的语言;通过嵌入设备和设备命令等,从而达到高度灵活的智能处理功能,而且不同地域和风俗习惯的用户可以根据自身的实际情况轻易地编辑自己所需要的综合功能;
二、规则触发的条件
规则触发条件分为两种大类型,当每种触发条件达到之时,系统自动执行相应的规则;
1、系统规则:
包括:系统启动后、系统退出前、系统错误、系统周期执行、系统定时执行、系统消息;
2、设备规则:
包括:设备启动后、设备退出前、设备值改变,设备值获取,设备消息;
三、规则模式
1、规则模式的关键字
关键字包括:真假、字符串、实数、数值、日期、如果、就执行、其他执行、循环执行、当、等于、从、到、步长、继续循环、返回;
2、运算符号及优先级
以上运算符号越在前面优先级越高;
3、数据类型/值类型
数据类型包括:真假、字符串、实数、数值、日期;
真假类型只有真和假两个值;
字符串是由ASCII码双引号括起来的字符序列;
实数就是数学中说到的实数,带有小数点的数字;
数值就是没有带有小数点的数值,有正负数区别,负数前面加上减号;
日期就是遵循“XXXX-XX-XX- XX:XX:XX”格式的特殊字符串;
4、表达式
u 算术表达式:
是由+,-,*,/,%,!,(,),=,.,及数值常量,中间变量和命令调用等组成的多个字符而组成的字符串;
u 逻辑表达式:
是由+,-,*,/,%,!,(,),=,.,==,!=,&,|,<,>,<=,>=及数值常量,中间变量和命令调用等组成的多个字符而组成的字符串;
算术表达式为遵循相应的算术运算后得出的数值或者实数结果;
逻辑表达式为遵循相应的逻辑运算后得出的一个真或者假的结果;
5、分隔符号:
a “;”语句分隔符;
b 换行回车为空字符;
c //表示注释的开始,注意注释只能在以行中出现,以回车和换行为结束符;
d “,”命令入口数据(参数)分隔符;
6、语句:
语句分为简单语句和复合语句:
简单语句:
就是由单个表达式,或者命令调用,或者空语句,或者一条规则模式;并且以“;”结尾而组成;
复合语句:
是以‘{’开始和‘}’结束的众多简单语句组成的语句;
7、‘如果’规则模式
语法1为:如果 逻辑表达式为真 就执行 简单语句|复合语句
语法2为:如果 逻辑表达式为真 就执行 简单语句|复合语句 其他执行 简单语句|复合语句
8,‘当’规则模式
语法:
当 变量
等于 常量值[变量] 就执行
简单语句[复合语句]
等于 常量值[变量] 就执行
简单语句[复合语句]
其他执行
简单语句[复合语句]
9,‘从’循环语句
语法:
从 变量=初始值 到 结束值 步长 值 循环执行
简单语句[复合语句]
10,‘当’循环
语法:
当 逻辑表达式 循环执行
简单语句[复合语句]
11,‘返回’语句
语法:返回 结果; 所有过程如果由此语句时,则函数执行到此返回相应结果
12,'继续循环'语句
语法:继续循环; 语句执行到此时,下面不执行了,继续下一个循环
13,命令调用
语法:返回值 命令名称(入口数据类型1 入口数据1, 入口数据类型2 入口数据2,....)
返回值为执行完命令后返回的一个值,可以使字符串、数值、真假、日期任一类型
入口数据为执行命令时传入给命令的数据,按照其顺序可以有多个入口数据,目前系统只支持最多6个入口数据,其如附图6所示;
四、系统命令
系统命令均是由系统本身自带完成部分系统处理或者辅助规则语言系统所做的执行命令集合,此系统命令均为可扩展的,目前定义的系统命令如下:
1、取字符串的左边n个字符
命令定义:字符串 取左边字符串(字符串 源字符串, 数值 取的长度)
入口数据说明:源字符串为待取的源串,并为字符串类型;取的长度为取多少个字符(自动自动根据结尾是否为汉字来调整其数值);
返回数据说明:返回取到的子字符串;
2、取字符串的右边n个字符
命令定义:字符串 取右边字符串(字符串 源字符串, int 取的长度)
入口数据说明:源字符串为待取的源串,并为字符串类型;取的长度为取多少个字符(自动自动根据结尾是否为汉字来调整其数值);
返回数据说明:返回取到的子字符串;
3、将字符串类型的一系列数值变成数值类型的数值
命令定义:数值 字符串变数值(字符串 待转换字符串)
入口数据说明:待转换字符串为数字序列组成的字符串,如果其有非数字字符,则转换就在出现非数字位置结束;
返回数据说明:返回转变后的数值;
4、将数值类型的数据转换成字符串序列
命令定义:字符串 数值变字符串(数值 值)
入口数据说明:值为待转换的数值;
返回数据说明:返回转换后的字符串序列;
5、向虚拟机控制台输出结果
命令定义:数值 输出结果(字符串 输出信息)
入口数据说明:输出信息为向控制台输出的信息;
返回数据说明:返回执行是否成功,0表示成功,非0表示失败;
此命令用于调试规则之用;
6、将数值计算器反正切值
命令定义:数值 反正切(数值 计算值)
入口数据说明:计算值为待计算的值;
返回数据说明:返回计算后的结果;
五、规则入口数据定义
对每个规则的执行,系统都会根据其规则执行的条件向规则中传入相应的入口数据,在规则中可以使用这些入口数据分别作不同的处理等,其具体定义如下:
消息为系统或者设备等产生的各类事件,也是触发规则执行的条件,其编号7章中有定义;
1、数值 入口消息号
此入口数据表示产生此规则执行时所标示的消息编号
2、字符串 入口数据1
产生相应的消息时,传入的数据1
3、字符串 入口数据2
如果某消息有两个传入数据,则此标示第二个传入的数据
六、系统设备命令
系统设备命令就是每个设备所能完成或者是所具备的功能,他是通过“设备名称.设备命令名”来标示的,设备命令有多个入口数据,同时也会有执行功能后返回的结果;不同的设备具备不同的命令,命令的命名也是有设备自身来决定,系统在加载其数据之时,会自动识别;其特征如附图7所示(一个设备例子);
七、设备的消息、缓冲值及命令编号的定义
设备的消息、命令及其缓冲值采用统一的编号方式进行,其定义如下:
1~399为系统指定的,400~1023为具体设备定义的,1024以后为硬件厂商自定义;
八、规则描述例程
假设环境:
1、一台智能集控路由器,同一产品的两个室内智能温度器(一个在厨房,名为厨房温度计;一个在客厅,名为客厅温度计),同一产品的两台空调(位置和上述温度器一样安排),一个报警器(命名为:厨房报警器),一个加入系统远程通知设备(皆为一手机,命名为房主手机),一台红外学习接受发送器(假设空调的红外指令已经学习好了,并命名为厨房空调,客厅空调);
2、智能集控路由器起到中心控制及智能处理功能;
3、报警器根据集控器发来的命令,发出相应时长的告警;
其命令定义如下:
数值 告警(数值 时长)
4、远程通知设备为一手机,接受来自系统中的处理通知,其命令定义如下:
数值 短信通知(字符串 通知内容)
5、室内智能温度器为检测相应位置的温度情况,并产生相应的消息
其命令:
数值 设置告警下限值(数值 告警值)
数值 设置告警上限值(数值 告警值)
数值 设置危机下限值(数值 危机值)
数值 设置危机上限值(数值 危机值)
其消息:
低值告警消息(数值 消息编号=1028)
高值告警消息(数值 消息编号=1029)
低值危机消息(数值 消息编号=1030)
高值危机消息(数值 消息编号=1031)
6、空调为普通空调
其命令:
数值 制冷(数值 温度, 数值 时长(分钟), 数值 风速)
数值 制热(数值 温度, 数值 时长(分钟), 数值 风速)
现在假设用户需要在自己出门之时系统能够根据家里发生的情况,自动做出不同的处理,并告知自己;如果专门用空调方式进行调整温度又太耗电,且自己不能知道其实际情况;
以上环境及要求可以建立一个系统启动处理规则、一个客厅智能温度器处理规则和一个厨房智能温度器处理规则,具体如下:
系统启动处理规则:
选择系统启动触发条件,并编辑如下规则:
厨房温度计.设置告警下限值(-5)
厨房温度计.设置告警上限值(40)
厨房温度计.设置危机下限值(-10)
厨房温度计.设置危机上限值(50)
客厅温度计.设置告警下限值(0)
客厅温度计.设置告警上限值(30)
客厅温度计.设置危机下限值(-10)
客厅温度计.设置危机上限值(-40)
客厅智能温度器处理规则:
选择“客厅温度计”,并选择器设备消息为触发条件,并编辑如下规则:
数值 低值告警=1028;
数值 高值告警=1029;
数值 低值危机=1030;
数值 高值危机=1031;
如果 消息编号==低值告警 就执行
{
客厅空调.制热(25, 60, 1);
}
如果 消息编号==高值告警 就执行
{
客厅空调.制冷(12, 60, 1);
}
如果 消息编号==低值危机 就执行
{
客厅空调.制热(25,120, 2);
房主手机.短信通知("客厅温度低值危机报警");
}
如果 消息编号==高值危机 就执行
{
客厅空调.制冷(5, 120, 2);
房主手机.短信通知("客厅温度高值危机报警");
}
厨房智能温度器处理规则:
选择“厨房温度计”,并选择器设备消息为触发条件,并编辑如下规则:
数值 低值告警=1028;
数值 高值告警=1029;
数值 低值危机=1030;
数值 高值危机=1031;
如果 消息编号==低值告警 就执行
{
客厅空调.制热(30, 60, 1);
}
如果 消息编号==高值告警 就执行
{
客厅空调.制冷(10, 60, 1);
}
如果 消息编号==低值危机 就执行
{
客厅空调.制热(35,90, 2);
房主手机.短信通知("厨房温度低值危机报警");
厨房报警器.告警(60000); // 一分钟,单位为毫秒
}
如果 消息编号==高值危机 就执行
{
客厅空调.制冷(0, 60, 2);
房主手机.短信通知("厨房温度高值危机报警");
厨房报警器.告警(600000); // 十分钟,单位为毫秒
}
// 。
规则虚拟机指令的定义:
一、规则虚拟机定义
规则虚拟机是整个规则系统的核心,他将规则生成系统生成的规则执行码、按照其意图进行执行,并对整个环境中的设备进行控制等,其框架图如附图8所示;
二、规则系统执行文件的定义
其格式如附图9所示,部分名词解释如下:
全局用户编号:本系统给所有被控设备及其所有能够控制的元素赋予的8位字节的唯一标示;
规则所属设备类型:各控制设备的全局类型的定义,比如:冰箱、微波炉,路由器,...
是否为系统规则:标示此规则是否为系统执行类型;
规则产生类型:系统定义的规则触发条件,即启动,关闭,周期,定时,错误,属性改变,属性获取,设备消息等
规则产生子类型:为某些消息需要定义其子类型;比如周期和定时执行消息有,每年月日等发生什么事件,在定时和周期事件中起作用等;
规则适应的区域:这是为规则系统自动学习而定义的内部标示,此区域标示编号为国家行政区域的编号;
三、虚拟机执行指令表
指令ID | 标示 | 指令格式 | 解释 |
0x01 | + | add oper1,oper2 | 加法指令,实现两数据的相加或者两字符串连接,同时将结果保存到操作数1中,除了整型和浮点型数据可以混加外,其他均需同类型运算 |
0x02 | - | sub oper1,oper2 | 减法指令,实现两数据的相减,同时将结果保存到操作数1中,除了整型和浮点型数据可以混加外,其他均无此操作; |
0x03 | * | Mul oper1,oper2 | 乘法指令,实现两数据的相乘,同时将结果保存到操作数1中,除了整型和浮点型数据可以混加外,其他均无此操作; |
0x04 | / | div oper1,oper2 | 除法运算,实现两数据的除法,同时将结果保存到操作数1中,除了整型和浮点型数据可以混加外,其他均无此操作,0不能为除数; |
0x05 | % | mod oper1,oper2 | 取模运算,实现两个数据的取模,同时将结果保存到操作数1中,除了整型和浮点型数据可以混加外,其他均无此操作,0不能为除数; |
0x06 | & | and oper1,oper2 | 与指令,实现两个操作数的与逻辑运算,同时将结果保存到操作数1中,同时影响程序状态寄存器的执行状态标示,即只有两个操作数都非0时返回1值; |
0x07 | | | Or oper1,oper2 | 或指令,实现两个操作数的或逻辑运算,同时将结果保存到操作数1中,同时影响程序状态寄存器的执行状态标示,即只有两个操作数都非真时返回0值; |
0x08 | ! | not oper1 | 非指令,实现1个操作数的非逻辑运算,同时将结果保存到操作数1中,同时影响程序状态寄存器的执行状态标示,即当操作数为1时,返回0值,否则返回真值; |
0x09 | = | eva oper1,oper2 | 赋值指令,将右边的操作数的值赋给左边的操作数;左边不能为常量; |
0x0A | == | equ oper1,oper2 | 相等指令,如果两边的操作数相等则返回真值,同时将结果保存到操作数1中,同时影响程序状态寄存器的执行状态标示,否则为0; |
0x0B | > | dayu oper1,oper2 | 大于指令,如果左边操作数大于右边则返回真值,同时将结果保存到操作数1中,同时影响程序状态寄存器的执行状态标示,否则为假; |
0x0C | >= | dadengyu oper1,oper2 | 大于等于指令,如果左边操作数大于或者等于右边则返回真值,同时将结果保存到操作数1中,同时影响程序状态寄存器的执行状态标示,否则为假; |
0x0D | < | xiaoyu oper1,oper2 | 小于指令,如果左边操作数小于右边则返回真值,同时将结果保存到操作数1中,同时影响程序状态寄存器的执行状态标示,否则为假; |
0x0E | <= | xiaodengyu oper1,oper2 | 小于等于指令,如果左边操作数小于或者等于右边则返回真值,同时将结果保存到操作数1中,同时影响程序状态寄存器的执行状态标示,否则为假; |
0x0F | != | noequ oper1,oper2 | 不等于指令,两边的操作数不相等时返回真,同时将结果保存到操作数1中,同时影响程序状态寄存器的执行状态标示,否则假; |
0x10 | Jmpt | Jmpt oper1 | 转移指令,执行到此命令时,根据执行状态标示为真时将执行指令的顺序转移到它所指向的指令位置; |
0x11 | Jmpf | Jmpf oper1 | 转移指令,执行到此命令时,根据执行状态标示为假时将执行指令的顺序转移到它所指向的指令位置; |
0x12 | Jmpn | Jmpn oper1 | 转移指令,执行到此命令时,无条件的将执行指令的顺序转移到它所指向的指令位置; |
0x13 | Return | Return | 退出指令,执行到此指令时,退出规则的执行; |
0x14 | Exit | Exit | 退出系统指令,执行到此命令时整个系统将退出,返回到操作系统; |
0x15 | Call | Call oper1,parposi | 命令调用指令,oper1为命令地址,parposi为实参的起始标示,实参个数在命令定义结构中可以得到 |
0x16 | IN_MEM | IN_MEM oper1 | 将操作数1赋值给程序状态字中的规则执行返回值字段 |
0x17 | OUT_MEM | OUT_MEM oper1 | 将程序状态字中的规则执行返回值字段值赋值给操作数1 |
Claims (19)
1.一种跨平台的智能规则多语言类型解释系统及其创建方法,其特征是在于系统包括:规则语言定义规范、虚拟机指令定义集、规则编辑器、规则词法检查、规则语法检查、中间代码生成、执行代码生成、可执行代码文件管理、规则调试、虚拟器执行环境等部分;其创建方法为将以上部分有机的结合在一起形成一个集成化的智能规则语言解释系统,使每个部分能够有很好的协调工作,完成既定的功能;本系统支持组件式的规则语言定义规范,可以通过组件接口规范扩展新的规则语言定义;规则语言的定义是遵循自然语言及人的正常思维和逻辑而设计,简单易学,可读性非常强,无需专业的知识并可写出复杂的过程(只要按照自己正常的逻辑思维去写就行);同时不同的智能设备只需要根据规范嵌入扩展中间件及扩展其的功能,就能够很好的融入系统,从而达到设备实时在线扩展及系统"海纳百川"的功能;此解释系统运行效率高,对资源要非常低,非常适合嵌入式设备的部署。
2.根据权利要求1所述的系统及其创建方法,其特征在于系统部署框架包括:规则编辑终端(RET) 、智能集控路由器(CCR)、规则控制终端(RCT)、规则控制增值服务/增值服务器集群(RCVS),其总体工作流程为用户通过RET设备登录系统,然后根据自己的情况选择执行规则的事件并编辑自己的规则,然后对规则进行检查,如果没问题则生成CCR能够解释执行的中间代码;用户编辑规则完毕后向CCR提交生成的中间代码;CCR根据事件条件触发规则的执行,然后根据规则执行要求等来综合控制RCT中的设备和控制RCVS中的服务等。
3.根据权利要求1所述的系统及其创建方法,其特征在于将规则语言定义规范、虚拟机指令定义集、规则编辑器、规则词法检查、规则语法检查、中间代码生成、执行代码生成、可执行代码文件管理、规则调试、虚拟器执行环境等部分有机的结合在一起形成了一体化系统,并可跨平台的使用及调试(目前流行的操作系统及硬件平台上均没有问题)。
4.根据权利要求1所述的系统及其创建方法,其特征在于被控智能终端只需遵循系统的扩展规范就能够很好的融入系统,从而达到通过语言解释系统有效综合管理功能;同时通过此技术使得语言解释系统能够兼容所有的智能终端。
5.根据权利要求1和3所述的系统和创建方法,其特征在于系统能够部署到各类家庭信息化产品及PC机等之上,是独立于计算机体系结构的系统,完全可以适应不同类型的计算机体系,同时也还适应将来的网络体系等。
6.根据权利要求1和3所述的系统和创建方法,其特征在于:规则编辑器及规则语言定义规范统一采用UTF8字符编码,并兼容ASCII;同时给出了统一的规则语言定义规范(比如:关键字、运算符、数据类型、表达式、分隔符、语句等),虚拟机执行的指令集,规则解释系统的触发条件及设备命令的定义,最后还给出了其规则语言的例程作为参考等。
7.其特征在于系统的每部分都采用组件的方式融入/嵌入主系统中,从而形成一个集成化的系统;整个安装文件都封装在目标硬件计算机的存储介质中,运行时系统文件常驻内存(组件文件都不大)。
8.根据权利要求1所述的系统及其创建方法,其特征在于此系统不仅适应于目前的智能家居领域,同时也适应于其他领域,比如:物联网,金融证劵,工业自动化控制等领域。
9.根据权利要求1和6所述的系统及其创建方法,规则语言定义规范部分其特征在于根据不同的自然语言(汉语、藏语、蒙语...)特征,依照人的正常思维和交流说话的方式组织语法规范,其定义的内容简洁、易懂,符合大众的说话习惯和命令的方式;通过其能够很好达到用户与系统交流的目的,也就是用户安排系统做事的目的。
10.根据权利要求1和5所述的系统及其创建方法,虚拟机指令定义集部分其特征在于根据目前主流计算机体系结构特征而定义的机器命令集,通过其定义能够达到很好的运行效率,同时也为将来硬件实现打好基础。
11.根据权利要求1所述的系统及其创建方法,规则编辑器部分其特征在于利用其完成用户任务的安排(规则的编辑),并对用户的任务(规则)进行检查、修改、添加、删除、调试等操作;同时此部分也完成引导用户编辑规则功能,从而促使新用户迅速接受系统;此部分的UI界面具有简洁易懂,操作方便等特征。
12.根据权利要求1、3、6和11所述的系统及其创建方法,规则词法检查部分其特征在于对用户编辑好的语言规则进行词法检查,词法检查包括:关键字、运算符、分隔符、设备名称、命令名称、设备命令分隔符等的检查;整个规则都必须通过词法的有效性检查,才能进入到下个阶段的处理;如果检查正确按照规范生成词法文件,并进行下阶段的检查。
13.根据权利要求12所述的系统及其创建方法,规则语法检查部分其特征在于对规则词法检查阶段产生的中间文件(词法文件)进行语法检查,语法检查包括:表达式、简单语句,符合语句、"如果"类型的条件语句、"当"类型的分支语句、"从"类型的循环语句、"当"类型的循环语句、返回语句、继续循环语句、命令调用等;同时还包括操作数之间的数据类型检查及其强制转换的合法性检查等;整个词法文件必须经过语法检查无误,方能进入到中间代码生成阶段,此阶段不生成中间文件;如果检查错误系统返回所有错误信息,并自动删除词法文件。
14.根据权利要求1、12和13所述的系统及其创建方法,中间代码生成部分其特征在于将通过语法阶段检查的词法文件翻译成统一的中间代码,为下步可执行代码的生成做好基础;此阶段也是所有的规则语言定义统一成一种中代码的阶段,通过此阶段来达到权利要求8中所述的功能;中间代码统一为简体语言规范而生成的中间代码;经过此阶段后生成中间代码文件,并删除词法文件。
15.根据权利要求1和14所述的系统及其创建方法,执行代码生成部分其特征在于依据中间代码生成阶段生成的中间代码文件进行可执行代码生成,并返回二进制执行代码串给规则编辑器;规则编辑器收到执行代码后,连同所有的规则信息及其源码发给虚拟机执行环境,所有智能规则的管理统一由其进行管理。
16.根据权利要求1、11和15所述的系统及其创建方法,可执行代码文件管理部分其特征在于完成所有规则的统一管理,并对规则中的中间变量、全局用户编号映射等进行管理等;并为虚拟机执行环境提供规则缓冲管理功能,对规则的各种操作进行响应。
17.根据权利要求1、15和16所述的系统及其创建方法,虚拟器执行环境部分其特征在于根据系统产生事件的实际情况,找到相应的规则之后,对其指令进行执行,并起到对所有智能终端进行综合管理功能;同时协调远程的规则编辑器完成规则调试功能。
18.根据权利要求1、11和17所述的系统及其创建方法,规则调试部分其特征在于利用在规则源码中加入相应的调试输出命令、调试停止命令、调试返回命令等命令语句,从而达到规则远程调试功能;虚拟机执行环境每执行到相应的调试命令位置时根据命令的不同做出不同的响应。
19.根据权利要求1、9、11、12和13所述的系统及其创建方法,多语言类型的语言解释系统其特征在于通过规则编辑阶段、规则词法检查阶段、规则语法检查阶段、中间代码生成阶段来达到统一中间语言的目的,届时生成统一的中间代码等。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510151147.5A CN104778071A (zh) | 2015-04-02 | 2015-04-02 | 智能规则多语言类型解释系统及其创建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510151147.5A CN104778071A (zh) | 2015-04-02 | 2015-04-02 | 智能规则多语言类型解释系统及其创建方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104778071A true CN104778071A (zh) | 2015-07-15 |
Family
ID=53619556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510151147.5A Pending CN104778071A (zh) | 2015-04-02 | 2015-04-02 | 智能规则多语言类型解释系统及其创建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104778071A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105701242A (zh) * | 2016-02-26 | 2016-06-22 | 浪潮通信信息系统有限公司 | 一种可扩展的智能移动终端动态规则检测引擎 |
CN105975261A (zh) * | 2016-04-28 | 2016-09-28 | 南开大学 | 一种面向统一接口调用的运行时系统及运行方法 |
CN109871284A (zh) * | 2017-12-05 | 2019-06-11 | 北京元比特科技有限责任公司 | 一种应用程序跨语言运行时环境执行的虚拟化技术及方法 |
CN112631210A (zh) * | 2019-09-24 | 2021-04-09 | 罗克韦尔自动化技术公司 | 用于开发工业控制程序的系统、编程方法及计算机介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1493980A (zh) * | 2002-10-28 | 2004-05-05 | 伟 王 | 人工智能机及其实现自然语言理解的方法 |
CN1889043A (zh) * | 2006-07-17 | 2007-01-03 | 大连大有吴涛易语言软件开发有限公司 | 计算机编程中使用人类自然语言的方法 |
CN203386053U (zh) * | 2013-06-28 | 2014-01-08 | 深圳市科道智能产品有限公司 | 智能家居系统 |
US20140214178A1 (en) * | 2013-01-31 | 2014-07-31 | Jean-Luc Bettiol | Control device for an automation system |
CN104125125A (zh) * | 2014-08-06 | 2014-10-29 | 桂林电子科技大学 | 一种智能家居系统和控制方法 |
CN104468779A (zh) * | 2014-12-08 | 2015-03-25 | 乐视致新电子科技(天津)有限公司 | 智能设备的监控方法和装置、路由器 |
-
2015
- 2015-04-02 CN CN201510151147.5A patent/CN104778071A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1493980A (zh) * | 2002-10-28 | 2004-05-05 | 伟 王 | 人工智能机及其实现自然语言理解的方法 |
CN1889043A (zh) * | 2006-07-17 | 2007-01-03 | 大连大有吴涛易语言软件开发有限公司 | 计算机编程中使用人类自然语言的方法 |
US20140214178A1 (en) * | 2013-01-31 | 2014-07-31 | Jean-Luc Bettiol | Control device for an automation system |
CN203386053U (zh) * | 2013-06-28 | 2014-01-08 | 深圳市科道智能产品有限公司 | 智能家居系统 |
CN104125125A (zh) * | 2014-08-06 | 2014-10-29 | 桂林电子科技大学 | 一种智能家居系统和控制方法 |
CN104468779A (zh) * | 2014-12-08 | 2015-03-25 | 乐视致新电子科技(天津)有限公司 | 智能设备的监控方法和装置、路由器 |
Non-Patent Citations (2)
Title |
---|
霍玲玲: "《易语言入门和提高》", 30 April 2012, 国防工业出版社 * |
高勇: "语言解释器的面向对象构造模式", 《计算机应用》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105701242A (zh) * | 2016-02-26 | 2016-06-22 | 浪潮通信信息系统有限公司 | 一种可扩展的智能移动终端动态规则检测引擎 |
CN105975261A (zh) * | 2016-04-28 | 2016-09-28 | 南开大学 | 一种面向统一接口调用的运行时系统及运行方法 |
CN105975261B (zh) * | 2016-04-28 | 2018-12-18 | 南开大学 | 一种面向统一接口调用的运行时系统及运行方法 |
CN109871284A (zh) * | 2017-12-05 | 2019-06-11 | 北京元比特科技有限责任公司 | 一种应用程序跨语言运行时环境执行的虚拟化技术及方法 |
CN112631210A (zh) * | 2019-09-24 | 2021-04-09 | 罗克韦尔自动化技术公司 | 用于开发工业控制程序的系统、编程方法及计算机介质 |
CN112631210B (zh) * | 2019-09-24 | 2024-01-30 | 罗克韦尔自动化技术公司 | 用于开发工业控制程序的系统、编程方法及计算机介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105739983B (zh) | 脚本程序编辑装置及其实现方法 | |
US10198422B2 (en) | Information-processing equipment based on a spreadsheet | |
CN101763280B (zh) | 用于生成控制系统可执行代码的系统、方法和计算机实施系统 | |
US9182755B2 (en) | Automated operator interface generation in a control system | |
CN107844299A (zh) | 一种Web应用开发工具的实现方法 | |
US10592211B2 (en) | Generation of application behaviors | |
CN102087597A (zh) | 一种基于j2ee和构件集的可视化开发平台 | |
CN104778071A (zh) | 智能规则多语言类型解释系统及其创建方法 | |
CN103714492A (zh) | 符合配电网管理特定数据标准的自动报告生成方法 | |
US11126938B2 (en) | Targeted data element detection for crowd sourced projects with machine learning | |
CN107179910A (zh) | 一种在线编辑即时生效的逻辑组态方法 | |
CN107360265B (zh) | 一种设备唯一标识码获取方法、装置及移动终端 | |
CN106909656A (zh) | 获取文本提取模型的方法及装置 | |
CN110865806B (zh) | 代码处理方法、装置、服务器及存储介质 | |
CN115080016A (zh) | 基于ue编辑器的扩展功能实现方法、装置、设备及介质 | |
CN113919158A (zh) | 一种用于飞行控制面板的仿真方法、装置及存储介质 | |
US9665668B2 (en) | Configuring a dispatching rule for execution in a simulation | |
CN105917307A (zh) | 用户界面框架 | |
CN102393820A (zh) | 一种楼宇监控系统控制逻辑的实现方法 | |
CN113434798B (zh) | 一种无代码rpa自动化流程文件的生成方法和系统 | |
CN106250147A (zh) | 应用程序开发管理方法和装置 | |
CN116360735A (zh) | 一种表单生成方法、装置、设备和介质 | |
CN105117227A (zh) | 自动生成代码的方法及装置 | |
CN108897535A (zh) | 一次编译生成多张组态图的方法 | |
CN111126012B (zh) | 定制生成表达式方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150715 |