Chapter 4. Drools Flow API

Table of Contents

Knowledge Base
Session
Events

Knowledge Base

Our knowledge-based API allows you to first create a Knowledge Base that contains all the necessary knowledge. This includes all the relevant process definitions and other knowledge types like rules. The following code snippet shows how to create a Knowledge Base consisting of only one process definition, using a Knowledge Builder to add a resource, checking for errors and, finally, creating the Knowledge Base.

KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add(ResourceFactory.newClassPathResource("ruleflow.rf"), ResourceType.DRF);
KnowledgeBuilderErrors errors = kbuilder.getErrors();
if (errors.size() > 0) {
  for (KnowledgeBuilderError error: errors) {
    System.err.println(error);
  }
  throw new IllegalArgumentException("Could not parse knowledge.");
}
KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());

Note that the knowledge-based API allows users to add different types of resources, such as rules and processes, in almost identical ways into the same Knowledge Base. This enables a user who knows how to use Drools Flow to start using Drools Fusion almost instantaneously, and even to integrate these different types of Knowledge.