0 0

drools急救15

最近由于项目的需要,简单学习了drools,但是编写规则文件时,不知道如何引用事实对象中的变量,可能是我的事实对象太复杂了吧,大家帮忙看一下阿:)
程序功能:根据用户的相关信息,以及相关的传感器获得的数据,编写规则文件,判断出用户身体状况是否良好。定义的数据类型及所有程序如下:
数据类型:HealthFact类——〉Person类、SensorInfo类,即HealthFact类型的数据有两个字类型Person、SensorInfo组合而成。下面是具体的实现:
package com.gao;
import com.gao.Person;
import com.gao.SensorInfo;
public class HealthFact {
private Person p;
private SensorInfo sensorInfo;
public HealthFact(Person p,SensorInfo sensorInfo){
this.p=p;
this.sensorInfo=sensorInfo;
}
public void setP(Person p){
this.p=p;
}
public Person getP(){
return this.p;
}
public void setSensorInfo(SensorInfo sensorInfo){
this.sensorInfo=sensorInfo;
}
public SensorInfo getSensorInfo(){
return this.sensorInfo;
}
public void printHealthInfo(HealthFact hi){
p.printPerson(p);
sensorInfo.printSensorInfo(sensorInfo);
}
}


package com.gao;


public class Person{
public final static boolean T=true;
public final static boolean F=false;
public final static String M="male";
public final static String FM="female";
private String name=null;
private boolean elder ;
private boolean chronic;
private String location = null;
private String sex;
private int age;
         private String address;
         private String e_mail;
         private String phone;
         private Person friend;
//下面是一些基本的方法,此地略去!
}


下面定义了一个传感器信息类
package com.gao;

public class SensorInfo {
private double temperature;
private double spo2;
private int pulse;
public SensorInfo(double temp,double spo2,int pulse){
this.temperature=temp;
this.spo2=spo2;
this.pulse=pulse;
}
public double getTemperature(){
return this.temperature;
}
public double getSPO2(){
return this.spo2;
}
public int getPulse(){
return this.pulse;
}
public void printSensorInfo(SensorInfo sensorInfo){
System.out.println("temperature:"+temperature
           +"\n spo2:"+spo2
           +"\n pulse:"+pulse);
}
}

事实:package com.gao;

import com.gao.Person;
import com.gao.SensorInfo;
import com.gao.HealthFact;


public class HealthService {
public static void main(String[] args) throws Exception {
         Person p=new Person("James",60, Person.T,"Home");
SensorInfo sensorInfo=new SensorInfo(38.5,97.3,130);
HealthFact[] fact={new HealthFact(p,sensorInfo)};
new RuleRunner().runRules( new String[] { "HealthServices.drl" },fact );
}
}


规则文件如下:
package com.gao

#list any import classes here.


import com.gao.Person;
import com.gao.SensorInfo;
import com.gao.HealthFact;
#declare any global variables here




rule "HealthInfer"
dialect "java"
when
#conditions
        fact:HealthFact(p.chronic==Person.T,p.age>55,sensorInfo.temperature>37.5,sensorInfo.spo2>95.0,sensorInfo.pulse>75)

此时出现:p can't be resolved!
小妹想问问:此种情况下,如何引用fact中的对象?
2008年10月20日 11:21

1个答案 按时间排序 按投票排序

0 0

如果要使用p的属性,必须存在p才行,应该前面再加一行.
p:Person()
s : SensorInfo()
表示首先存在p和s,然后才能引用其属性.

2012年8月29日 23:55

相关推荐

    drools drools drools drools drools

    drools 是一个强大的规则引擎和业务规则管理系统,用于在Java应用程序中实现复杂的业务逻辑。它基于规则推理,允许用户以声明式的方式定义规则,并在运行时执行这些规则。drools 提供了一个高效的决策自动化框架,...

    drools7.25中文文档+drools技术指南.zip

    Drools是一款强大的业务规则管理系统(BRMS),它基于Java平台,主要用于实现复杂业务规则的管理和执行。Drools7.25是该系统的一个重要版本,提供了许多新特性和性能改进,使得开发者能够更高效地处理和执行业务规则...

    Drools

    Drools是一款强大的Java规则引擎,它为业务规则管理提供了高效、灵活且可扩展的解决方案。作为基于模型的决策自动化工具,Drools允许开发者将复杂的业务逻辑编码为一系列易于理解和维护的规则,这些规则可以独立于...

    Drools6.5 部署Drools Workbench和Kie Server笔记

    在本文中,我们将深入探讨如何部署Drools Workbench和Kie Server,这两个组件是Drools6.5——一个强大的规则引擎平台的关键部分。Drools Workbench提供了一个直观的用户界面,用于创建、测试和管理业务规则,而Kie ...

    规则引擎Drools.NET移植版

    **规则引擎Drools.NET移植版** Drools是一款强大的业务规则管理系统,源自Java社区,以其灵活、高效和可扩展的特性而广受赞誉。它允许开发者将业务逻辑以规则的形式编写,使得业务规则可以独立于应用程序代码进行...

    Drools6 和 Drools7技术指南-中文文档.zip

    Drools开发最全中文版技术指南。 Drools开发最全中文版技术指南,介绍了常见的drools如何进行开发,注意是:中文版中文版中文版! drools 中文文档 规则引擎 drools6 drools7 Java

    Drools workbench文件及DEMO项目代码

    Drools工作台(Drools Workbench)是一款基于规则引擎Drools的集成开发环境,主要用于创建、测试和管理业务规则。它提供了一个图形化的用户界面,使得业务分析师和开发人员可以方便地进行规则的编写和管理。在这个...

    droolsdroolsdrools

    《 Drools 深度探索:实例代码解析与实践指南》 Drools,作为一款强大的规则引擎,广泛应用于业务逻辑复杂、决策流程多变的IT系统中。它基于Java平台,采用领域特定语言(DSL)来编写业务规则,使得业务人员也能...

    5.6drools基础包

    这个"5.6drools基础包"包含了Drools的核心组件——drools-distribution-5.6.0.Final.zip和Drools的开发工具集——droolsjbpm-tools-distribution-5.6.0.Final.zip。尽管由于文件大小限制,可能缺少了一些额外的包,...

    Drools规则引擎使用demo

    Drools是一款强大的规则引擎,由Red Hat公司开发并维护,它主要用于实现业务规则的管理和执行。Drools提供了一种声明式的方式来定义业务规则,使得非技术人员也能理解和修改规则,从而降低了业务逻辑与代码的耦合度...

    springboot+drools动态模板引擎

    SpringBoot和Drools的整合应用为业务规则的管理和执行提供了强大的灵活性。SpringBoot作为一个轻量级的Java开发框架,简化了Spring应用的初始化和配置,使得开发过程更加高效。而Drools则是一个强大的规则引擎,它...

    drools动态生成规则文件

    drools动态生成规则文件是基于Java的业务规则管理系统,它允许开发者在运行时创建、修改和执行业务规则。 Drools是Red Hat JBoss BRMS(Business Rules Management System)的一部分,它提供了一种强大的规则引擎,...

    Drools7 + Springboot2 动态更新规则

    在本文中,我们将深入探讨如何将Drools 7与Spring Boot 2集成,实现动态更新规则的功能。Drools是一款强大的业务规则管理系统,而Spring Boot是Java领域广泛使用的微服务开发框架。通过结合这两者,我们可以构建一个...

    Drools_规则引擎详解

    Drools 规则引擎详解 Drools 规则引擎是基于 Java 的开源规则引擎,由 JBoss 发布。作为一个业务规则管理系统(BRMS),Drools 提供了一个基于规则的系统,用于定义、执行和管理业务规则。Drools 的主要功能是将...

    Drools5.3官网手册

    ### Drools 5.3 官方手册知识点总结 #### 一、Apache Camel 集成 ##### 1.1 Camel Camel 提供了一个轻量级的消息总线框架,用于将信息输入到 Drools 中并从中输出。为了简化集成过程,Drools 引入了两个关键组件...

    Drools规则执行顺序

    标题 "Drools 规则执行顺序" 涉及的是一个业务规则引擎——Drools 的核心概念。Drools 是一个开源的Java决策管理平台,它允许开发者使用规则语言来编写业务逻辑,这些规则可以按特定顺序执行,以处理复杂的业务场景...

    drools flow分析报告

    **Drools Flow 分析报告** **第一章 Drools Flow 简介** Drools Flow 是 Drools 项目的一部分,它提供了一套完整的业务流程管理(BPM)和工作流解决方案。Drools 是一个开源的规则引擎,主要用于决策管理和业务...

    Drools规则引擎从入门到精通

    【Drools规则引擎从入门到精通】 Drools是一个强大的业务规则管理系统,它提供了业务规则引擎、Web创作工具(Drools Workbench)以及决策模型符号(DMN)的支持。作为一个开源项目,Drools使用Java编写,遵循Apache...

    Drools7.25中文文档.7z

    《Drools 7.25中文文档》是针对Java开发者的重要参考资料,它详细阐述了Drools这一强大规则引擎的使用方法。Drools是一个开源的业务规则管理系统,它基于Java平台,允许开发者轻松地在应用程序中实现复杂的业务规则...

Global site tag (gtag.js) - Google Analytics