I'm looking for feedback, I'll develop a Semantic Web Drools Module that
will be the subject of my Master Degree Tesis.
The idea is to use Eclipse Modelling Framework (EMF) for prototyping and
follow a Model Driven Architecture (MDA) where the source language is
Semantic of Business Vocabularies and Business Rules (SBVR) and the target
language is Drools DRL.
The mapping could be (PIM level):
- Semantic Web Rule Language (SWRL)
- Ontology Web Language (OWL)
- Rule Interchange Format (RIF)
- REWERSE Rule Markup Language (R2ML)
It could be added to the module at the source UML or Entity Relationship
like models to transform the models into SBVR.
For various reasons I'm trying out the Guided Editor for Business Rules in
the Guvnor Version 5 (Snapshot of 26 June from Hudson, deployed on JBoss App
I've created the Package / Category and uploaded a simple fact model (as
works in BRMS version 4). I create a new business rule using the guided
editor and the screen shows successfully with both 'When' and 'Then'
parts.Assume the next question is due to me missing something, but wanted to
When I press the green '+' to the right of the screen I am shown the message
/ dialog layer saying '
*Add a condition to the rule... *or* Add an action to the rule.
*Problem is that there doesn't appear to be a way of adding a condition or
action. The only thing I'm seeing in the logs is
* (Contexts.java:flushAndDestroyContexts:335) could not discover
*Am I missing something or should I come back to Guvnor later in the
drools prompt me to contact the development team. the following error apears, whithout stacktrace, while developing
a rule. maybe the error is known to you?!
thanks for a little statement
Are there any plans to have Spring support in drools-api? The last mail that
I saw in searching the topic is dated last year, and there are no new
postings related to this.
Does anyone have any success in injecting KnowledgeBase into their apps
using Spring? Is there any examples out there that I can refer to?
I'm using the Drools 5.0.0 M5, with Guvnor, when I tried to save and
validate my configuration, I got this error:
[ERR 102] Line 5:63 mismatched input '-'
It's pointing to this line:
import <my pachage path>.package-info
Does drools support package with "-" characters? The package is part of
jaxws generated artifacts.
Are there any plans to tweak Drools to allow it to run in a security
constrained environment such as Google App Engine or Applets? I know some of
the other JBoss.org projects have this on the 'todo' list.
When I try to load a simple web application using drools into the Google App
Engine, I get the error below.The app itself is the sample 8 from the
following web page, but tweaked according to the Google 'howto' to get it up
and running in the app engine; http://code.google.com/p/red-piranha/
My understanding of the problem is that drools is using File access to check
if the configuration file exists the first time it is run. This is
constrained in App Engine - just like the J2EE spec says it should be
(although most other app servers allow you to get away with this!). I know
that if I tweak the source code there will be other points where similar
file access is required.
While not trivial, would it be possible to add a one-line check for that the
user has permission to do file.io before calling File.Exists (the
alternative , of catching and ignoring the AccessControlException is ugly!).
The hardest part of this is that the check would need to be added at
multiple points in the Drools source code.
Any thoughts / comments/ suggestions?
WARNING: java.security.AccessControlException: access denied
(java.io.FilePermission /home/paul/drools.rulebase.conf read)
13-May-2009 09:04:16 com.google.apphosting.utils.jetty.JettyLogger warn
WARNING: Nested in javax.servlet.ServletException:
java.security.AccessControlException: access denied (java.io.FilePermission
java.security.AccessControlException: access denied (java.io.FilePermission
are there any unintrusive (without recompiling in drools-core ;)) ways
to plug own implementation of TimerService?
Currently configuration is based on enumeration ClockType, which is
It would be nice to be able to pass any object implementing
TimerService, or some factory class.
One of the reasons is that I'd like to have more control over thread
pool used by JdkTimerService. Current implementation allows for
unlimited number of threads, it's also not possible to share thread pool
between different KnowledgeSessions
thx for reply & br
Looking at a refactoring of the Guvnor Editor stuff to make it more
"pluggable" so others can more easily create and reuse editors for
given artifact types (file types).
Really in principle is is simple, and close to what we have now:
* An editor is responsible for showing a given artifact type.
* An editor will be launched by guvnor when someone wants to view that file type
* An editor can implement certain interfaces in which case it can be
injected with events/other things it may need automatically
* All editors will subclass GuvnorEditor
* An editor registry (currently EditorLauncher which is hardcoded)
will not what opens what etc...
See attached sketch on how this may work...
The benefits mean that editors can be very loosely coupled.
Michael D Neale
well actually people were asking about it. The requirement isn't to
allow 3rd parties to build something, its more a routine refactoring
to allow the complex bits (the editors) to be developed if needed in
isolation of others.
As for a meta editor - not relevant to this discussion.
On Fri, Oct 30, 2009 at 11:57 AM, Steve Nunez
> This path has been down before by others. In practice the problem is the
> limitations imposed by resources -- few will plug in editors or build new
> Now what I think would be interesting, and in the past there were a few
> attempts (maybe the time is right -- Blaze is partially doing this), is a
> 'meta editor'. Basically a GUI builder for rule maintenance applications.
> ART Enterprise had one of these years ago, but it was ahead of it's time and
> the technology wasn't ready.
> Being able to rapidly put together an rule maintenance application for
> business users would be a great tool for promoting adoption. Perhaps this
> architectural approach is a first step, but by itself I fear it will have
> little effect on overall uptake of drools.
> Just my $0.02
> - Steve
> Quoting Michael Neale <michael.neale(a)gmail.com>:
>> Hi All.
>> Looking at a refactoring of the Guvnor Editor stuff to make it more
>> "pluggable" so others can more easily create and reuse editors for
>> given artifact types (file types).
>> Really in principle is is simple, and close to what we have now:
>> * An editor is responsible for showing a given artifact type.
>> * An editor will be launched by guvnor when someone wants to view that
>> file type
>> * An editor can implement certain interfaces in which case it can be
>> injected with events/other things it may need automatically
>> * All editors will subclass GuvnorEditor
>> * An editor registry (currently EditorLauncher which is hardcoded)
>> will not what opens what etc...
>> See attached sketch on how this may work...
>> The benefits mean that editors can be very loosely coupled.
>> Thoughts ?
>> Michael D Neale
>> home: www.michaelneale.net
>> blog: michaelneale.blogspot.com
> This message was sent using IMP, the Internet Messaging Program.
Michael D Neale
Has anybody an idea whats these problems? I didnt find any test cases,
are there any test cases for serializing the PKG files? What am I doing
[mailto:email@example.com] Im Auftrag von Bernd Rücker
Gesendet: Dienstag, 1. September 2009 17:26
Betreff: [rules-users] WG: Serialization of packages:
InvalidClassException / serialVersionUID
The exception of the KnowledgePackage serialization (by the way, this is
described in the docs, that you can serialize the KnowledgePackages!):
Exception in thread "main" java.io.NotSerializableException:
So this doesnt work either
3.2.4. Building and Deployment in Separate Processes
Both the KnowledgeBase and the KnowledgePackage are units of deployment
and serializable. This means you can have one machine do any necessary
building, requiring drools-compiler.jar, and have another machine deploy
and execute everything, needing only drools-core.jar.
Although serialization is standard Java, we present an example of how one
machine might write out the deployment unit and how another machine might
read in and use that deployment unit.
Example 3.15. Writing the KnowledgePackage to an OutputStream
ObjectOutputStream out = new ObjectOutputStream( new FileOutputStream(
fileName ) );
out.writeObject( kpkgs );
Example 3.16. Reading the KnowledgePackage from an InputStream
ObjectInputStream in = new ObjectInputStream( new FileInputStream(
fileName ) );
// The input stream might contain an individual
// package or a collection.
@SuppressWarnings( "unchecked" )
Collection<KnowledgePackage> kpkgs =
()in.readObject( Collection<KnowledgePackage> );
KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages( kpkgs );
The KnowledgeBase is also serializable and some people may prefer to build
and then store the KnowledgeBase itself, instead of the Knowledge
Drools Guvnor, our server side management system, uses this deployment
approach. After Guvnor has compiled and published serialized Knowledge
Packages on a URL, Drools can use the URL resource type to load them.
Von: Bernd Rücker [mailto:firstname.lastname@example.org]
Gesendet: Dienstag, 1. September 2009 17:21
Betreff: Serialization of packages: InvalidClassException /
I really struggled some time with serialization issues: I want to create a
pkg and package that with the jar. >From there I want to read it during
Easy I thought. Drools 5 way should be to serialize the KnowledgeBase,
right? At least, this is what the AntTask does.
If I try to serialize the KnowledgePackage I get an excpetion anyway:
Okay. Back to the KnowledgeBase. Serialized with Drools 5.0.0.M4 and try
to read it with 5.0.0.M5:
Caused by: java.io.InvalidClassException:
local class incompatible: stream classdesc serialVersionUID =
local class serialVersionUID = -3186110098262381425
So it seems Drools Packages are NOT compatible between minor versions?
This would be a disaster for deployment. Or do I serialize the wrong
thing? Unfortunately I didnt find anything in the docs about it.
Then I tried to do it the old Drools 4 way and serialize Package
objects, but same problem with a different serialVersionUID!
Why do these important classes dont have a serialVersionUID? Or how
should that be loaded? Must be a big issue with Govner, so I think there
must be a solution already?
Thanks for any help!