[rules-users] Hold the Beans!

Wolfgang Laun wolfgang.laun at gmail.com
Fri Sep 10 11:18:53 EDT 2010


So everthing is String or list of String? (What if your data contains
numbers, where you'd like to use > in patterns?)

Is there a stable relationship between key/slot and its type, i.e., scalar
String or list of String?

You realize that a record of untyped fields (slots) is fundamentally
different from an approach where data is bound to be stored in (necessarily)
strongly typed fields of an object. There's no difficulty with writing
similar code for storing values from a Map into an object of some class, but
class fields must have fixed types.

-W


2010/9/10 Donald Winston <satchwinston at yahoo.com>

> This is what I'm doing:
>
> /* Assert unordered facts from the request parameter map. A deftemplate
> with matching id and
>  * slots should already exist.
>  */
> public void assertParameterMap(String id, Map map, Rete engine) throwsJessException {
> Fact fact = new Fact(id, engine);
> Iterator keys = map.keySet().iterator();
> while (keys.hasNext() == true) {
> String key = (String)keys.next();
> if (ID.equals(key) == true) continue;
> String[] paramValues = (String[])map.get(key);
> if (paramValues.length > 1) {
> ValueVector values = new ValueVector();
> for(String value : paramValues)
> values.add(new Value(value, RU.STRING));
> fact.setSlotValue(key, new Value(values, RU.LIST));
> }
> else
> fact.setSlotValue(key, new Value(paramValues[0], RU.STRING));
> }
> engine.assertFact(fact);
> }
>
> I'm working on something similar for a jdom document object. I'm not using
> POJOs. I'm using a data structure. (technically they're objects because java
> is object oriented, but they're not "problem domain objects").
>
> On Sep 10, 2010, at 10:12 AM, Wolfgang Laun wrote:
>
> If you insert POJOs as facts in Jess, you'll have to write a
>    (deftemplace X (declare (from-class X)))
> and the fields available for pattern matching in rules rely on the
> JavaBeans convention.
>
> I have (quite successfully) used POJOs resulting from unmarshalling an XML
> document (via JAXB) as facts, both in Drools and in Jess; most certainly
> without writing any "copycat" fact classes and tedious transformations.
>
> As for globals: They play the same role in Drools as in Jess; in neither
> system are they part of the working memory.
>
> I don't know what you could mean by a "standard fact class".
>
> As for iterating over all fact objects in Drools' WM, Drools provides
> getObjects() in WorkingMemory; or you could set up a query and run this.
>
> -W
>
>
> On 10 September 2010 14:54, Donald Winston <satchwinston at yahoo.com> wrote:
>
>> I'm reviewing JBoss Rules (Drools) for an application I'm starting to
>> build. It appears that the only way to assert facts is to use the
>> insert(Object) method where the object is a bean using the proper naming
>> conventions for it's properties. There also appears to be a way to use
>> arbitrary objects using globals but do these end up in the fact base? It's
>> disturbing to me that I have to create a bunch of classes whose sole purpose
>> in life is to support the rule base. This is similar to using java server
>> pages and having to create a bunch of classes just to support each page.
>> That's why I don't use java server pages and use xsl transformations
>> instead. I want to use my xml jdom document to represent my data and not
>> have to create a bunch of beans. I can't seem to find anything in the api
>> where I can assert facts without creating my own custom classes. There's no
>> standard Fact class?
>>
>> I've been also experimenting with Jess and it provides an easy way for me
>> to do this. I just iterate through my jdom document and create Fact objects
>> and assert them. I can then execute the rules and then iterate through the
>> updated fact base using engine.listFacts() and update my jdom document. It
>> couldn't be easier or more natural. Is there an analogous way to do this in
>> Drools?
>>
>>
>> Thank you very much.
>> _______________________________________________
>> rules-users mailing list
>> rules-users at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-users
>>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20100910/9f6ccc4e/attachment.html 


More information about the rules-users mailing list