Semantic Web Drools Module, Request for Feedbak
by Xavier Breton
Hi,
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)
- RuleML
- 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.
Regards
Xavier Breton
10 years, 10 months
Guided Editor in BRMS / Guvnor Version 5 (Snapshot of 26 June)
by Paul Browne
Folks,
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
Server 4.2.2GA).
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
double check:
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
transaction status
*Am I missing something or should I come back to Guvnor later in the
development Cycle?
Thanks
Paul
12 years, 9 months
Drools on android
by Justin King
Hi All,
I'm wondering if anyone has tried to use drools in a google android
application, and if so what problems did you have? I'd also be interested to
know if its even possible!
Thanks!
--
Regards,
Justin King
PhD Candidate
Faculty of Information and Communication Technologies
Swinburne University of Technology
http://www.ict.swin.edu.au/ictstaff/justinking
--
Regards,
Justin King
PhD Candidate
Faculty of Information and Communication Technologies
Swinburne University of Technology
http://www.ict.swin.edu.au/ictstaff/justinking
13 years
Import of declared type in other drools resources
by stanka
Hi,
I'm using eclipse drools builder to develop my rules, and when I define one
drools declared type in one resource and use it in a different drools
resource, the declared type is not resolved. Even if the resources are in
the same package.
Also, when I include the files in the correct order in the knowledgeBase,
everything starts working in my application.
1)Is there a way to make my eclipse drools builder find the declared type in
the other resources? It shows the following error: Unable to resolve
ObjectType
2)Is there a way to make the files work in any order? Now, my application
works only if the declared types are with resource name alphabetically
preceeding the name of the resource where the types are used.
Please tell me if you need additional information.
--
View this message in context: http://drools-java-rules-engine.46999.n3.nabble.com/Import-of-declared-ty...
Sent from the Drools - Dev mailing list archive at Nabble.com.
14 years
Subject : ClassCastException in MVEL with org.mvel2.util.MethodStub
by brijesh
I have a rule package that has 1000+ rules, these rules are getting executed
for a set of members(more than 1000) on their facts one by one,
in this process a few random rules (one of them is listed below) are
throwing exception at run time as listed below randomly for some members
every time. I checked rules that are working fine in my test. I am not sure
why this is happening, please advice.
I would appreciate your valuable assistence in advance.
============Rule============================
package com.cigna.coderunner.external.rules;
import com.cigna.acme.domains.ccdm._2010._03.CaseManagement;
import com.cigna.coderunner.engine.ccdm.value.ProfileFact;
import com.cigna.coderunner.engine.ccdm.value.ConditionFact;
import com.cigna.acme.domains.ccdm._2010._03.PrePostDischrgManagement;
import com.cigna.coderunner.engine.ccdm.value.Member;
import com.cigna.coderunner.engine.ccdm.value.RiskFact;
import com.cigna.coderunner.engine.ccdm.value.MemberBiometric;
import com.cigna.coderunner.engine.ccdm.value.MemberPreferences;
import com.cigna.coderunner.engine.ccdm.value.Product;
import java.util.List;
import com.cigna.acme.domains.derived.fact._2010._03.DerivedFact;
import com.cigna.acme.domains.derived.fact._2010._03.FactAttributes;
import com.cigna.acme.domains.derived.fact._2010._03.FactCategoryType;
import com.cigna.acme.domains.actions._2010._03.QuestionAnswer;
import com.cigna.acme.domains.actions._2010._03.AutoOutreachActionType;
import com.cigna.acme.domains.actions._2010._03.ActionInfo;
import com.cigna.acme.domains.common._2010._03.FactSourceClassificationType;
import com.cigna.acme.domains.actions._2010._03.FulfillmentActionType;
import com.cigna.coderunner.drools.operators.ValueEvaluatorDefinition;
import com.cigna.acme.domains.actions._2010._03.AssessmentActionType;
import com.cigna.acme.domains.roadmap._2010._03.ServiceRoadMapInfo;
import com.cigna.acme.domains.common._2010._03.Attribute;
import com.cigna.acme.domains.derived.fact._2010._03.FactValueType;
import org.joda.time.DateTime;
global com.cigna.coderunner.drools.util.DrlHelper drlHelper;
rule "derivedFact Rule:59070:0:1292262841194"
salience -0
dialect "mvel"
activation-group "derivedFact Rule:59070:0:1292262841194"
agenda-group "derivedFact"
when
DerivedFact( defId != null , defId == "52600" ,
( factValue == null || factValue.value == null || factValue.value ==
"null" || factValue.value.length == 0 ) )
then
DerivedFact derivedfact = new DerivedFact();
derivedfact.setDefId("59070");
derivedfact.setOrigInferredDt(new DateTime());
derivedfact.setFactSource(FactSourceClassificationType.ACME_DERIVED_FACT);
FactValueType factValueType = new FactValueType();
factValueType.setValue("true");
factValueType.setType("boolean");
derivedfact.setFactValue(factValueType);
insertLogical(derivedfact);
System.out.println("#############################################");
System.out.println("#Rule with Fact Def ID#59070 with Salience 0
Successfully executed#");
System.out.println("#############################################");
end
===============================Execption==============
java.lang.ClassCastException: java.lang.Class incompatible with
org.mvel2.util.MethodStub
at
org.mvel2.ParserConfiguration.getStaticImport(ParserConfiguration.java:71)
at org.mvel2.ParserContext.getStaticImport(ParserContext.java:246)
at org.mvel2.compiler.PropertyVerifier.getMethod(PropertyVerifier.java:324)
at org.mvel2.compiler.PropertyVerifier.analyze(PropertyVerifier.java:106)
at
org.mvel2.compiler.ExpressionCompiler.verify(ExpressionCompiler.java:363)
at
org.mvel2.compiler.ExpressionCompiler._compile(ExpressionCompiler.java:258)
at org.mvel2.util.ParseTools.subCompileExpression(ParseTools.java:1895)
at
org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.getMethod(ReflectiveAccessorOptimizer.java:840)
at
org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.compileGetChain(ReflectiveAccessorOptimizer.java:314)
at
org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.optimizeAccessor(ReflectiveAccessorOptimizer.java:137)
at org.mvel2.ast.ASTNode.getReducedValueAccelerated(ASTNode.java:137)
at org.mvel2.MVELRuntime.execute(MVELRuntime.java:85)
at
org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:104)
at org.mvel2.MVEL.executeExpression(MVEL.java:995)
at org.drools.base.mvel.MVELConsequence.evaluate(MVELConsequence.java:71)
at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:917)
at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:856)
at org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1071)
at
org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:785)
at
org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:751)
at
org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:218)
at
com.cigna.coderunner.drools.session.impl.StatefulKnowledgeSessionWrapper.fireAllRules(StatefulKnowledgeSessionWrapper.java:161)
at
com.cigna.coderunner.service.evaluation.impl.EvaluationServiceImpl.executeDerivedFactProducingRules(EvaluationServiceImpl.java:156)
at
com.cigna.coderunner.service.evaluation.impl.EvaluationServiceImpl.evaluateAtInitialization(EvaluationServiceImpl.java:119)
at
com.cigna.coderunner.service.outreach.impl.OutreachServiceImpl.initializeOutreachState(OutreachServiceImpl.java:149)
at
com.cigna.coderunner.engine.service.impl.OutreachBatchServiceImpl.execute(OutreachBatchServiceImpl.java:27)
at
com.cigna.coderunner.engine.service.impl.OutreachBatchServiceImpl$$FastClassByCGLIB$$d77d8173.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
at
org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:700)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:152)
at
org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:54)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at
org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at
org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:635)
at
com.cigna.coderunner.engine.service.impl.OutreachBatchServiceImpl$$EnhancerByCGLIB$$17882964.execute(<generated>)
at
com.cigna.coderunner.engine.service.impl.MedicalManagementBatchServiceImpl.execute(MedicalManagementBatchServiceImpl.java:39)
at
com.cigna.coderunner.engine.service.impl.MedicalManagementBatchServiceImpl$$FastClassByCGLIB$$beccc87c.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
at
org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:700)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:152)
at
org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:54)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at
org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at
org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:635)
at
com.cigna.coderunner.engine.service.impl.MedicalManagementBatchServiceImpl$$EnhancerByCGLIB$$291a1d07.execute(<generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method...
thx,
Brijesh Singh
--
View this message in context: http://drools-java-rules-engine.46999.n3.nabble.com/Subject-ClassCastExce...
Sent from the Drools - Dev mailing list archive at Nabble.com.
14 years
Spring configuration in Guvnor
by Esteban Aliverti
I was thinking about the possibility to create and maintain spring's context
files inside Guvnor. The initial plan would be to add a text editor with
basic validation and then we could move to a more user-friendly editor.
These files will be stored inside the packages (like regular assets) and
will be exposed through an URL.
What do you think?
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Esteban Aliverti
- Developer @ http://www.plugtree.com
- Blog @ http://ilesteban.wordpress.com
14 years
Commented out tests in all modules: Please make them @Ignore tests or remove them
by Geoffrey De Smet
Hi guys,
Spread over all the modules, there are 63 tests which are commented out.
These tests should probably either be:
- removed (if we don't want to keep them)
- commented in and annotated with @Test @Ignore (if we want to keep them)
- commented in (if they succeed and you got time to check that now)
That way all "ignored" tests will be annotated with @Ignore and easy to
detect (also by hudson).
Also, that code (no longer commented out) will be refactored along
(instead of becoming horribly stale).
Can you take a look at module(s) you work on and clean that up?
(Do a "git pull --rebase" first.)
It shouldn't take long.
I 'll take on drools-repository(2), drools-guvnor(0) and
drools-planner-core(1).
Targets
String '^[ \t]*//[ \t]+public[ \t]+(final[ \t]+)?void[ \t]+test'
Found usages (63 usages)
drools-camel (1 usage)
org.drools.camel.component (1 usage)
JSonBatchExecutionTest.java (1 usage)
(36: 1) // public void testVsmPipeline() throws
Exception {
drools-clips (11 usages)
org.drools.clips (11 usages)
ClipsShellTest.java (1 usage)
(97: 1) // public void test1() {
CompiledFunctionsTest.java (10 usages)
(26: 1) // public void testPrintout() throws
Exception {
(45: 1) // public void testBindAndModify() throws
Exception {
(63: 1) // public void testSimpleCreate$() throws
Exception {
(83: 1) // public void testNestedCreate$() throws
Exception {
(130: 1) // public void testIf() throws Exception {
(168: 1) // public void testWhile() throws Exception {
(199: 1) // public void testForeach() throws Exception {
(215: 1) // public void testSwitch() throws Exception {
(250: 1) // public void testProgn() throws Exception {
(264: 1) // public void testDefTemplate() throws
Exception {
drools-compiler (13 usages)
org.drools.compiler (1 usage)
RuleBaseLoaderTest.java (1 usage)
(33: 1) // public void testEngineType() throws
Exception {
org.drools.integrationtests (9 usages)
CepEspTest.java (1 usage)
(1352: 1) // public void
testTransactionCorrelation() throws Exception {
MultithreadTest.java (5 usages)
(80: 1) // public void
testRuleBaseConcurrentCompilation() {
(176: 1) // public void testExpectedFires() {
(225: 1) // public void
testMultithreadDateStringConstraints() {
(326: 1) // public void
testSharedPackagesThreadDeadLock() throws Exception {
(392: 1) // public void testEventExpiration() {
OutOfMemoryTest.java (1 usage)
(100: 1) // public void testMemoryLeak() {
StatelessSessionTest.java (2 usages)
(259: 1) // public void testInAndOutParams() throws
Exception {
(307: 1) // public void testInOutAndOutParams()
throws Exception {
org.drools.lang (2 usages)
RuleParserTest.java (2 usages)
(776: 1) // public void testFrom() throws Exception {
(1532: 1) // public void
testExpanderUnExpandableErrorLines() throws Exception {
org.drools.rule.builder.dialect (1 usage)
JavaAndMVELCombinedTest.java (1 usage)
(37: 1) // public void testJavaMVELCombination()
throws Exception {
drools-core (8 usages)
org.drools.agent (5 usages)
CompilerIndependenceTest.java (2 usages)
(69: 1) // public void testDRL() throws Exception {
(97: 1) // public void testPKG() throws Exception {
RuleAgentTest.java (2 usages)
(167: 1) // public void testSpaces() throws Exception {
(406: 1) // public void
testPollingFilesRuleBaseReplace2() throws Exception {
URLScannerTest.java (1 usage)
(88: 1) // public void testGetURL() throws Exception {
org.drools.base (1 usage)
EvaluatorFactoryTest.java (1 usage)
(836: 1) // public void testRegexFoo() {
org.drools.event.rule (1 usage)
AgendaEventSupportTest.java (1 usage)
(86: 1) // public void testIsSerializable() {
org.drools.reteoo (1 usage)
SchedulerTest.java (1 usage)
(288: 1) // public void testExceptionHandler()
throws Exception {
drools-decisiontables (1 usage)
org.drools.decisiontable.parser (1 usage)
RuleWorksheetParseTest.java (1 usage)
(132: 1) // public void
testComplexWorksheetMissingConditions() throws Exception {
drools-grid-impl (7 usages)
org.drools.grid.local (1 usage)
LocalGridNodeTest.java (1 usage)
(92: 1) // public void
testWhitePagesAddRemoveAddresss() {
org.drools.grid.time.impl (5 usages)
DistributedSchedulerTest.java (5 usages)
(80: 1) // public void test1() throws Exception {
(119: 1) // public void
testDistributedJobSchedullingLocal() {
(165: 1) // public void
testDistributedJobSchedulingRemote() {
(219: 1) // public void testMultipleSchedulersTest() {
(256: 1) // public void testGetDataFromCoreServices() {
org.drools.io.mina (1 usage)
RegisterServicesTest.java (1 usage)
(76: 1) // public void testRegisterInCoreServices() {
drools-ide-common (5 usages)
org.drools.ide.common.assistant (1 usage)
VariableBindingTest.java (1 usage)
(94: 1) // public void testThisDontWorks() {
org.drools.ide.common.modeldriven.dt (1 usage)
GuidedDecisionTableTest.java (1 usage)
(39: 1) // public void testGetCol() {
org.drools.ide.common.server.util (3 usages)
BRDRLPersistenceTest.java (2 usages)
(181: 1) // public void testRoundTrip() {
(361: 1) // public void testLoadEmpty() {
GuidedDTXMLPersistenceTest.java (1 usage)
(34: 1) // public void testXML() {
drools-jsr94 (1 usage)
org.drools.jsr94.rules.admin (1 usage)
RuleExecutionSetProviderTest.java (1 usage)
(95: 1) // public void testCreateFromElement( )
throws Exception
drools-pipeline (1 usage)
org.drools.runtime.pipeline.impl (1 usage)
JaxbTest.java (1 usage)
(58: 1) // public void testModelLoad() throws
Exception {
drools-planner-core (1 usage)
org.drools.planner.core.localsearch.decider.forager (1 usage)
AcceptedForagerTest.java (1 usage)
(137: 1) // public void testPickMoveRandomly() {
drools-repository (2 usages)
org.drools.repository (2 usages)
PackageItemTest.java (1 usage)
(57: 1) // public void testAddPackageProperties()
throws Exception {
ScalabilityTest.java (1 usage)
(84: 1) // public void testBare() throws Exception {
drools-spring (2 usages)
org.drools.container.spring.beans.persistence (2 usages)
VariablePersistenceStrategyTest.java (2 usages)
(402: 1) // public void
testPersistenceVariablesWithTypeChange() {
(453: 1) // public void
testPersistenceVariablesSubProcess() {
drools-verifier (9 usages)
org.drools.verifier (6 usages)
RangeCheckCleanTest.java (6 usages)
(37: 1) // public void
testUselessIntegerGapsLesser() throws Exception {
(127: 1) // public void
testUselessIntegerGapsGreater() throws Exception {
(222: 1) // public void
testUselessDoubleGapsLesser() throws Exception {
(317: 1) // public void
testUselessDoubleGapsGreater() throws Exception {
(412: 1) // public void testUselessDateGapsLesser()
throws Exception {
(507: 1) // public void testUselessDateGapsGreater()
throws Exception {
org.drools.verifier.subsumption (3 usages)
SubsumptantSubRulesTest.java (3 usages)
(81: 1) // public void testSubpatternSubsumption2()
throws Exception {
(119: 1) // public void testSubpatternSubsumption3()
throws Exception {
(158: 1) // public void testSubpatternSubsumption4()
throws Exception {
org.drools.osgi.test (1 usage)
org.drools.osgi.integrationtests (1 usage)
JpaOsgi.java (1 usage)
(74: 1) // public void
testPersistenceWithUserTransactions() throws Exception {
Note: this list doesn't include drools-eclipse or any of the flow/jBPM
stuff.
--
With kind regards,
Geoffrey De Smet
14 years
Drools- Guvnor Integration problem
by sunkara007
Hi Team,
I am evaluating Drools - Guvnor to use it in BPM suits.
can you explain how the domain objects will be configured in Guvnor to use
it as part of writing Rules ?
If I need to create a Jar using all Domain Objects and upload to Guvnor,
then if any change in those objects in application, how those changes will
be reflected in Guvnor ?
I need Guvnor to be tightly coupled with application, if any change in
application objects, automatically it should reflect in Guvnor.
--
View this message in context: http://drools-java-rules-engine.46999.n3.nabble.com/Drools-Guvnor-Integra...
Sent from the Drools - Dev mailing list archive at Nabble.com.
14 years
another standard CM operation: howto in git?
by Wolfgang Laun
After some useful and not so useful changes: how can I revert the doodles to
their original state without throwing away the useful work?
I've found:
git checkout -f whatever
which is supposed to "throw away local changes", but how can I restrict
this? Or do I have to save everything, reset everything, and copy the
goodies back in?
Any better way?
-W
14 years