Concurrent rule fire
by Zhuo Li
Hi, folks,
My project will handle about 1.5 M transactions per hour using Drools and
the rules' fire are scheduled based on business operation cycle which might
happen a few times a day. Say if I need to fire the same rule set twice at
10:00 PM and midnight. What will happen if the first execution has not
completed till midnight? Will the 2nd execution be held up till the 1st is
completed? I would assume there might still be transactions inserted into
working memory between 10:00 PM and midnight although it is very few.
My understanding is Drools will enforce only one active thread is working
for the same "then" section for data consistency. Any thoughts?
Best
Abe
14 years, 3 months
Guvnor utility to update packages and models
by Dean Whisnant
We are using Drool and Guvnor 5.1.1 and have approximately 150 rule packages (different rules for different customers, ...). Has anyone written a utility or do you have a suggestion for updating POJO models within each of these that doesn't involve me going to each package within guvnor?
As an example, 50 of my packages might all use the same POJO, we'll call it transactionAv10.jar, and when I go to v11 I currently have to go back into each package in guvnor and archive v10 and then upload v11.
I'm looking for a way that I could do this outside of guvnor. Whether it be doing the updates at the webdav level, or even calling some guvnor functions that do these tasks. For reference, I am using Apache Tomcat to host Guvnor and am using the default database structure.
Any thoughts?
Thank you!
Dean Whisnant
basys, inc.
14 years, 3 months
i want to user drools/Guvnor
by Rule Guy
Hi
I am newbie in Drools, I got an assignment and I found Drools / Guvnor
could be the perfect match for this requirements.
I have a huge database in mySQL in a school (where it has data from kinder
garden kids to PhD students). Management hired a sport medical doctor to
check the health of existing students to prepare a good soccer team. The
teacher want to find these kind of students.
a) students who are within age of 18-21 years old (sample only), parents
allowed to play soccer (let say the targeted population)
b) Among these population he want to screen who has encounter with minor
diseases and visited hospital in last year.
c) in that medical visits he want:
1. student more than 2 visits with chest or leg pain
or
2. under medication with (drug1, drug3, drug7, drug 11).
or
3. student lab test result show nicotine level (smoking) >48
or
4. student lab test result show alcohol level >=1.8
or
5. any chest pain (while running) or leg fracture.
These are the criteria he decided to pull from another software but I can
get XML file, which is infact a rule. He want me to write a rule, where he
can apply same pattern but for another game in future i.e. volleyball
players (where hand fracture is major determinant). and return result in a
format which has been written in Java script.
after studying Drools, I decided Guvnor would be the best tools to apply.
Now my problem is:
a) How can I map xml criteria to Drools.
b) How can I access Guvnor UI (for rule writing by non IT guy) with
Existing school's Software.
c) How can I visualize the results in Java script (already written). so I
don't have to work hard for visualization.
Any suggestion / ideas / steps are welcome.
DG
14 years, 3 months
Last Chance - Drools & jBPM at ICAART (Portugal) 4th International Conference on Agents and Artificial Intelligence
by Mark Proctor
The event is just one week away from being cancelled if we don't get
more attendance. So if you are thinking of going, better sign up now,
before it's too late.
Mark
---------------
<http://4.bp.blogspot.com/-_b77C8kLxEk/TuDUJkn_TlI/AAAAAAAAAnY/_QPFAuMEdOo...>
Droosl & jBPM @ ICAART 2012 is now confirmed, and myself (Mark Proctor)
and Dr Davide Sottara will be there. If you have any interesting
research on or with Drools & jBPM that you would like to present on the
day, let us konw.
6-8 Febuary 2012
Vilamoura, Algarve, Portugal
http://www.icaart.org/tutorials.asp
The day is a tutorial day aimed at all levels. It will start with
general introductions to the technology but will slant off to more of
our research based projects such as Drools Semantics and Chance, as it's
part of an academic conference. We would also like to give an
opportunity for the people to present their own research, slots can be
anything from 20minutes to 60 - contact me if you are interested
mproctor at codehaus d0t org.
There will also be plenty of time for discussions and help with your own
projects.
*Abstract*
Drools is the leading open source, industry focused, rule engine. While
Drools started life as a Rete based forward chaining engine, it has
since transcended. It's ongoing mission is to explore declarative
paradigms from a practical and industrial perspective, to boldly go
where no engine has gone before.
The tutorial will start with a gentle introduction, suitable for all
level of expertise, covering the core language and functionality slowly
expanding into more complex areas. The topics covered include, but are
not limited to:
Basic Concepts:
* Patterns, Constraints and Unification
* Data Driven and Goal Oriented Inference using Forward Chaining and
(Opportunistic) Backward Chaining
* Truth Maintenance
* Temporal Reasoning and Complex Event Processing
* Functional Programming
* Traits and Declarative Models
Advanced Topics:
* Decision Tables
* Rule and Workflow Integration
* Hybrid Rule-Based Systems
* Agents and Services
* Unified Testing
*Brief biography of Mark Proctor*
Mark Proctor received his B.Eng in Engineer Science and Technology and
then his M.Sc. in Business and Information Systems; both from Brunel
University, West London. His M.Sc. thesis was in the field of Genetic
Algorithms; which is where he discovered his interest for anything AI
related.
Mark became involved in the Drools expert system project at an early
stage and soon became its project lead. Mark then joined JBoss (later
acquired by Red Hat) as an employee when the Drools project was
federated into the JBoss middleware stack.
Mark now leads the effort at Red Hat for a unified platform for
declarative technologies; with a focus on rules, event processing,
workflow, semantics, distributed agents and governance.
*Brief biography of Davide Sottara*
Davide Sottara received his Ms. Degree in Computer Science(2006) and his
Ph.D (2010) in Computer Science, Electronics and Telecommunications from
the University of Bologna.
His research and development interests include Artificial Intelligence
in general and Decision Support Systems in particular, focusing on
hybrid systems combining predictive models and rule-based systems.
Since 2006, he has been working on the development of intelligent DSSs
in the environmental and medical field. He is a member of the Drools
open source Community, leading a sub-project on the extension of
production rule engines to support hybrid and uncertain reasoning, and
he's also involved in the RuleML rule language standardization
initiative. He is currently working on remote health-care systems
enhanced with AI-based predictive, diagnostic and planning features.
*Contacts*
e-mail: icaart.secretariat(a)insticc.org
<mailto:icaart.secretariat@insticc.org>
14 years, 3 months
Questions regarding Guvnor
by Harshit Bapna
Hello All,
Few questions:
1. What is the release date of Guvnor 5.2 ? (Couldn't find it from the site
of the documentation)
I am interested in the functionality to add the guvnor editors in
another app for rule editing. i.e. StandaloneEditorServlet
2. Which SVN TAG of the Guvnor (which has standalone editor functionality)
should I use ?
Note: On trunk I have observed that the war contains a folder *guvnor* where
as guvnor 5.1 war contained folder *org.drools.guvnor.Guvnor*
Also the web.xml in the trunk has the following url pattern <url-pattern>/*
org.drools.guvnor.Guvnor*/feed/*</url-pattern>
This url pattern would never be matched as the Guvnor.html is under
guvnor/Guvnor.html. To make it work I had to update the url patterns in the
web.xml
Is there anything that I am doing wrong ? (mvn clean install
-Dmaven.test.failure.ignore=true)
IMO, the trunk has partial changes checked in. Hence it is not stable.
Thanks
14 years, 3 months
Error in MVEL execution (optimization?)
by ronalbury
I hardly got any viewers (and no responses) when I posted this just as "MVEL
Optimization" ... so I have changed the subject and re-posted (my apologies
if I just broke protocol).
I'm not sure how to explain this, other than it appears that MVEL is trying
to optimize the When conditions in my rules.
I have a utility class, Test, with a number of methods on it (including null
protected versions of Drools "in" and "matches"). Note that the valueInList
method can return null (e.g. if the product code is null), and the
getAgeAsInt method can also return null (if the age is null). I don't like
having to test if the result of the method is true, but I kept running into
null pointer errors in the Drools expression evaluation code and had to
adopt this convention.
Here are two example rules (one in Java dialect and one in MVEL dialect). I
realize that a list of one is a degenerate case for using 'inList', but it
should still work.
rule "Term 15Plus Max Age - Washington"
dialect "java"
when
$ea : EasyApp(
Test.valueInList($ea.getEaProductCode(),
"L15P")==true
&& Test.valueInList($ea.getEaIssueState(), "WA")==true
&& $ea.getPriIns_xmPerson().getAgeAsInt() > 65
)
then
$ea.addError(drools.getRule().getName());
end
rule "Term 20 Max Age - New Jersey"
when
$ea : EasyApp(
Test.valueInList(eaProductCode, "L20")==true
&& Test.valueInList(eaIssueState, "NJ")==true
&& priIns_xmPerson.ageAsInt > 64
)
then
$ea.addError(drools.getRule().getName());
end
I have approximately 30 different rules similar to those above. When I have
the rules written in MVEL, it appears to be only be evaluating one rule per
EasyApp injection (I have a log message when ever valueInList is called),
and I get bogus results. However, when I shift to java dialect then it
appears that the methods are called for each rule I have defined (as I would
have expected).
Can anyone tell me if I am doing something wrong, and explain why Drools is
behaving as it is?
Thanks
--
View this message in context: http://drools.46999.n3.nabble.com/Error-in-MVEL-execution-optimization-tp...
Sent from the Drools: User forum mailing list archive at Nabble.com.
14 years, 3 months