Hello all,
I'm trying to add rules through my java code to a KnowledgeBase and I cannot
find any easy way to do so. So far, the only solution I could think of, is
to write the rule as DRL in a file that is "observed" by a KnowledgeAgent
(same with a RuleAgent I suppose). Is it possible to create a new
KnowledgePackage with the same name as the existing one and load it into the
KnowledgeBuilder?
I manage to remove rules using the following code:
statefulKnowledgeSession.getKnowledgeBase().removeRule(knowledgeSetName,
ruleName);
I thought that there would be a addRule method somewhere but not luck so
far.
The code I'm using to create my KnowledgeBase and StatefulKnowledgeSession
is shown below.
All the best,
Pierre
StatefulKnowledgeSession creation code:
StatefulKnowledgeSession ksession;
KnowledgeBuilder kbuilder;
KnowledgeBase kbase;
kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add(ResourceFactory.newFileResource(Demo.class.getResource(Demo.drl
File).getPath()), ResourceType.DRL);
if (kbuilder.hasErrors()) {
System.out.println(kbuilder.getErrors());
}
kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
ksession = kbase.newStatefulKnowledgeSession();
ksession.insert(.);
.
ksession.fireAllRules();