my assertDocument method uses all the data types Jess supports. The assertParameters is always just strings or a list of strings
On Sep 10, 2010, at 11:18 AM, Wolfgang Laun wrote: > 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 <[email protected]> > 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) throws > JessException { > 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 <[email protected]> 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 >> [email protected] >> https://lists.jboss.org/mailman/listinfo/rules-users >> >> _______________________________________________ >> rules-users mailing list >> [email protected] >> https://lists.jboss.org/mailman/listinfo/rules-users > > > _______________________________________________ > rules-users mailing list > [email protected] > https://lists.jboss.org/mailman/listinfo/rules-users > > > _______________________________________________ > rules-users mailing list > [email protected] > https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________ rules-users mailing list [email protected] https://lists.jboss.org/mailman/listinfo/rules-users
