DefaultFactHandle.toExternalForm() throws exception java.lang.IncompatibleClassChangeError
by Tom Gonzalez
Still working on converting from Version 3.0.4 to 3.1.M1.
Am seeing the exception below. Modified DefaultFactHandle as follows to
fix it.
public String toExternalForm()
{
if(shadowFact)
{
Object objOut = ((ShadowProxy)object).getShadowedObject();
return "[fid:" + this.id + ":" + this.recency + ":" + objOut
+ "]";
}
else
{
return "[fid:" + this.id + ":" + this.recency + ":" +
this.object + "]";
}
}
Exception in thread "CheckLauncher"
java.lang.IncompatibleClassChangeError
at
com.nortel.connect.model.common.NodeWrapperIfShadowProxy.toString(Unknow
n Source)
at java.lang.String.valueOf(Unknown Source)
at java.lang.StringBuilder.append(Unknown Source)
at
org.drools.common.DefaultFactHandle.toExternalForm(DefaultFactHandle.jav
a:110)
at
com.nortel.connect.rulesengine.inferengine.FactsHandler.addFact(FactsHan
dler.java:149)
at
com.nortel.connect.rulesengine.CheckManager$CheckTask.addTask(CheckManag
er.java:557)
at
com.nortel.connect.rulesengine.CheckManager$CheckTask.doCheck(CheckManag
er.java:540)
at
com.nortel.connect.rulesengine.CheckManager$CheckTask.access$2(CheckMana
ger.java:535)
at
com.nortel.connect.rulesengine.CheckManager.runChecks(CheckManager.java:
368)
at
com.nortel.connect.rulesengine.CheckManager.access$3(CheckManager.java:3
65)
at
com.nortel.connect.rulesengine.CheckManager$Launcher.run(CheckManager.ja
va:462)
at java.lang.Thread.run(Unknown Source)
For some reason I got a ShadowFact in the FactHandle. Only saw one case
of this out of many activation created events.
Can you tell me when this will be the case?
Also had to remove modifyFacts to get activations to be created? Any
idea why?
My concern is that we will miss evaluate (skip rule violations) our
facts since in version 3.0.4 we had to modify facts to get all
evaluations required.
Thanks.
Regards,
Tom G
Tom Gonzalez
NortelNetworks
Cost Improvement Tools
Software Design
tomgon(a)nortel.com
919-905-8656
17 years, 9 months
Reasoning with Uncertainty
by Rich Halsey
I looked at the W3 site to see just what "Reasoning with Uncertainty" entails according to W3C - I never did find any detail.
Is it fuzzy logic or rules with uncertainty ??
"NON ILLEGITAMATES CARBORUNDUM"
....God grant me...
The senility to forget the people I never liked
The good fortune to run into the ones that I do
And the eyesight to tell the difference."
17 years, 9 months
JBoss Rules reading CLIPS files
by Rich Halsey
OUTSTANDING IDEA !!!!!!!!!!!!!!!!!!!!!!
"NON ILLEGITAMATES CARBORUNDUM"
....God grant me...
The senility to forget the people I never liked
The good fortune to run into the ones that I do
And the eyesight to tell the difference."
17 years, 9 months
Mods for package config file.
by Michael Neale
Kris, I updated this JIRA:
http://jira.jboss.com/jira/browse/JBRULES-568
Can you take a look, tell me if it makes sense, and if its doable. Probably
could be split into 2 if you like (one for DroolsBuilder, one for the GUI).
This is critical for BRMS integration, BUT, it is useful even without a BRMS
(eg this GUI coudl provide a hook to fire of the ant task to compile the
rules into a deployable binary package).
17 years, 9 months
[Fwd: Uncertainty Reasoning group]
by Mark Proctor
fyi
-------- Original Message --------
In case you haven't yet seen the announcement:
W3C is pleased to announce the creation of the Uncertainty Reasoning
for the World Wide Web Incubator Group [1] to better define the
challenge of working with incomplete knowledge. The group expects to
identify the elements of uncertainty, produce use cases, and create
the fundamentals of a way to represent and reason when truth or
falsehood is inapplicable or unknown. The group is sponsored by W3C
Members Image, Video and Multimedia Systems Lab, McDonald Bradley,
MITRE, National ICT Australia (NICTA), the University of Amsterdam
and the University of Bristol. W3C Members may use this form to join
the group [2]. Read about the Incubator Activity [3].
-- http://www.w3.org/News/2007#item40
Clearly there is some overlap with RIF, in both membership and subject
matter. The Incubator Group (XG) system can function as a pre-cursor to
a Working Group, so this effort can merge into RIF at some point in the
future when are ready for it, if that seems to be where it fits best.
-- Sandro
[1] http://www.w3.org/2005/Incubator/urw3/
[2] http://www.w3.org/2004/01/pp-impl/40302/join
[3] http://www.w3.org/2005/Incubator/
17 years, 9 months
Clips/Jess Parser
by Mark Proctor
If anyone wants to help I started a Clips parser over the weekend. So
far it can pass multi patters with bound variables, variable
constraint, literal constraint, return value, predicate, as well as
field connectives | and &. What is needed now is to get it working with
'not', 'exists', 'and', and 'or'. So far the following unit test works:
RuleDescr rule = parse("(defrule xxx ?b <- (name (name
\"yyy\"&?bf|~\"zzz\"|~=(ppp)&:(ooo)) )").rule();
I haven't got it parsing functions yet, figured I'd do that later once
its abale to successfully parse the LHS, so it instead it picks up IDS
"ppp" for the return value and "ooo" for the predicate.
Mark
17 years, 9 months
Re: [Fwd: Drools Benchmark]
by Mark Proctor
I wonder if this has to do with the work from the new ruleflow addition,
I'm testing at the moment.
Mark
Edson Tirelli wrote:
>
> Mark,
>
> Bad news. Yesterday when running the benchmarks I noticed we
> suffered a performance hit somewhere in our last few weeks, but as my
> machine is a bit crazy latelly, I couldn't confirm that.
> Fernando ran the tests today in his machine and it is clear now we
> degraded perf for waltz50 in our last changes (although, we improved
> parsing/compiling time).
> See bellow.
>
> PS: OLD LIB is the lib currently commited into the benchmarks
> project... I don't know what version it is.
>
>
> Machine Name: Mac
> Machine Model: MacBookPro2,2
> Processor Name: Intel Core 2 Duo
> Processor Speed: 2.16 GHz
> Number Of Processors: 1
> Total Number Of Cores: 2
> L2 Cache (per processor): 4 MB
> Memory: 1 GB
> Bus Speed: 667 MHz
>
> run-drools-waltz50: OLD LIB
> [java] Using
> [java] engine: drools
> [java] rule file: waltz.drl
> [java] data file: waltz50.dat
>
> [java] RESULTS:
> [java] - Rules parsing time : 4646 ms - Memory used: + 29098
> [java] - Assertion time : 280 ms - Memory used: + 4663
> [java] - Rules firing time : 1135 ms - Memory used: + -2673
> [java]
> ----------------------------------------------------------------
> [java] - Total time : 6061 ms - Total memory: + 31089
> [java] - GC Run time : 206 ms - Mem after GC: + 21584
> ---------------------------------------------------------------------------------------
>
>
> run-drools-waltz50: Trunk
> [java] Using
> [java] engine: drools
> [java] rule file: waltz.drl
> [java] data file: waltz50.dat
>
> [java] RESULTS:
> [java] - Rules parsing time : 2637 ms - Memory used: + 30936
> [java] - Assertion time : 257 ms - Memory used: + 3827
> [java] - Rules firing time : 4294 ms - Memory used: + 27086
> [java]
> ----------------------------------------------------------------
> [java] - Total time : 7188 ms - Total memory: + 61850
> [java] - GC Run time : 234 ms - Mem after GC: + 37624
> ---------------------------------------------------------------------------------------
>
>
> run-jess-waltz50:
> [java] Using
> [java] engine: jess
> [java] rule file: waltz.clp
> [java] data file: waltz50.dat
>
>
> [java] RESULTS:
> [java] - Rules parsing time : 248 ms - Memory used: + -360
> [java] - Assertion time : 482 ms - Memory used: + 12690
> [java] - Rules firing time : 7017 ms - Memory used: + 15883
> [java]
> ----------------------------------------------------------------
> [java] - Total time : 7747 ms - Total memory: + 28213
> [java] - GC Run time : 96 ms - Mem after GC: + 8675
> ----------------------------------------------------------------
>
>
> run-drools-manners128: OLD LIB
> [java] Using
> [java] engine: drools
> [java] rule file: manners.drl
> [java] data file: manners128.dat
> [java] All Done
>
> [java] RESULTS:
> [java] - Rules parsing time : 3823 ms - Memory used: + 32968
> [java] - Assertion time : 88 ms - Memory used: + 0
> [java] - Rules firing time : 6797 ms - Memory used: -27291
> [java]
> ----------------------------------------------------------------
> [java] - Total time : 10708 ms - Total memory: + 5677
> [java] - GC Run time : 55 ms - Mem after GC: + 4201
> ----------------------------------------------------------------
>
> run-drools-manners128: Trunk
> [java] Using
> [java] engine: drools
> [java] rule file: manners.drl
> [java] data file: manners128.dat
> [java] All Done
>
> [java] RESULTS:
> [java] - Rules parsing time : 1599 ms - Memory used: + 23727
> [java] - Assertion time : 57 ms - Memory used: + 932
> [java] - Rules firing time : 6917 ms - Memory used: + 20851
> [java]
> ----------------------------------------------------------------
> [java] - Total time : 8573 ms - Total memory: + 45511
> [java] - GC Run time : 62 ms - Mem after GC: + 4041
> ----------------------------------------------------------------
>
17 years, 9 months
Drools 3.1.0-M1 rules build 3.0.4 compatibility problems with eval statements
by Tom Gonzalez
We are in the process of converting from 3.0.4 to 3.1.0-M1 and having
problems building rules that have eval statements in them that build in
3.0.4 with no problems.
We are getting rules build errors as follows:
[java] Feb 28, 2007 5:55:29 PM
com.nortel.connect.rbuilder.RulePackager build
[java] INFO: ============== Start build RulePackage: [engrules.mss]
=========
[java] Feb 28, 2007 5:55:29 PM
com.nortel.connect.rbuilder.RulePackage addRulesFromDrlFile
[java] INFO: adding Rules from: MG15000Rules.drl (with
associated DSL)
[java] Feb 28, 2007 5:55:29 PM
com.nortel.connect.rbuilder.RulePackage addRulesFromDrlFile
[java] INFO: parsed rules using dsl
[java] org.drools.RuntimeDroolsException: unable to find the
function ','
[java] at
org.drools.semantics.java.StaticMethodFunctionResolver.resolveFunction(S
taticMethodFunctionResolver.java:9)
[java] at
org.drools.semantics.java.FunctionFixer.fix(FunctionFixer.java:132)
[java] at
org.drools.semantics.java.FunctionFixer.fix(FunctionFixer.java:103)
[java] at
org.drools.semantics.java.FunctionFixer.fix(FunctionFixer.java:66)
[java] at
org.drools.semantics.java.builder.EvalBuilder.build(EvalBuilder.java:78)
[java] at
org.drools.semantics.java.builder.GroupElementBuilder.build(GroupElement
Builder.java:63)
[java] at
org.drools.semantics.java.builder.GroupElementBuilder.build(GroupElement
Builder.java:63)
[java] at
org.drools.semantics.java.RuleBuilder.build(RuleBuilder.java:178)
[java] at
org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:381)
[java] at
org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:219)
[java] at
com.nortel.connect.rbuilder.RulePackage.addRulesFromDrlFile(RulePackage.
java:229)
[java] at
com.nortel.connect.rbuilder.RulePackager.build(RulePackager.java:206)
[java] at
com.nortel.connect.rbuilder.RulePackager.buildAll(RulePackager.java:142)
[java] at
com.nortel.connect.rbuilder.RulePackager.main(RulePackager.java:92)
[java] Feb 28, 2007 5:55:30 PM
com.nortel.connect.rbuilder.RulePackage addRulesFromDrlFile
We have a number of rules with eval's in them such as:
eval( !(checkVspToInstanceRatio( (Integer)$vsp3ocount,
(Integer)$vsp4ecount, (Integer)$vsp3count, (Integer)$nstacount)) );
eval ( !(strInStr((String)$shelfsn,(String)$netwksn))
eval( !(checkDlepNumber( (Integer)$dlepkey, (Integer)$nstakey)) ||
!(isEvenInteger((Integer)$nstakey))
The parser has issue with the cast syntax in the eval removing the cast
(like (Integer) ) cleans up the paser issue however this is not a
feasible solution. Casting is required in some cases with out adding a
good bit of extra work.
Can you restore the support we previously had for casting with in an
eval and retain the flexibility of using casts when needed?
Thanks,
Regards,
Tom G
17 years, 10 months