Wednesday, October 24, 2012

Drools 5.5.0.CR1 released

We're happy to announce the release of Drools (Expert, Fusion, Planner, Guvnor) 5.5.0.CR1.

Documentation, Release Notes and Downloads are detailed below:
  • Download the zips from the bottom of the Drools download page
  • To try out the examples, just unzip one and run the runExamples.sh or runExamples.bat script.
Try it out and give us some feed-back (user list, issue tracker).

[* Note: At the time of posting Maven Central has not been synchronized]

Saturday, October 20, 2012

Scorecards and PMML4.1 support for Drools 5.5

Thanks to our super star community contributor, Vinod Kiran, score cards are coming to Drools 5.5. Initially the PMML4.1 standard is embedded for the Scorecards module. We have a full standalone PMML implementation coming for 6.0, being worked on by Dr Davide Sottara. I hope that Vinod will write a full tutorial in this blog soon, explaining the feature in more detail.

If you don't know what a Scorecard is, here is a tutorial I found on google:
http://www.primatek.ca/blog/2010/08/16/a-quick-introduction-to-scorecards/

Below is a text and image excerpt  from the New and Noteworthy docs for the up coming Drools 5.5 release:

A scorecard is a graphical representation of a formula used to calculate an overall score. A scorecard can be used to predict the likelihood or probability of a certain outcome. Drools now supports additive scorecards. An additive scorecard calculates an overall score by adding all partial scores assigned to individual rule conditions.


Additionally, Drools Scorecards will allows for reason codes to be set, which help in identifying the specific rules (buckets) that have contributed to the overall score. Drools Scorecards will be based on the PMML 4.1 Standard.  
   

Friday, October 19, 2012

Last Chance for Intellifest - Register to learn about Drools & jBPM

IntelliFest 2012 starts NEXT week, in San Diego, Monday 22nd of October.

Program Overview ( detailed agenda for Monday and Tuesday below ):
Monday - Healthcare focus for Rules, Workflow, Ontologies and Events (Free)
Tuesday - General Drools&jBPM session (Free)
Tuesday - Rule Design Patterns in Production Rule Systems
Wed - Fri - General IntelliFest Sessions

There are limited spaces, so register soon here.



Monday - Healthcare focus for Rules, Workflow, Ontologies and Events (free)


0830-0920 Captain Emory Fry, MD
Socratic Grid : Open Source Distributed Decision Support for Healthcare

0930-1020  Dr Robert Greenes, Department of Biomedical Informatics, Arizona State University
Key Note : Embedding Decision Support in Clinical Systems

1030-1120 Dr Aziz Boxwala, Division of Biomedical Informatics, University of California
Clinical Decision Support Consortium

1130-1200 Dr Seong Ki Mun, President and CEO of OSEHRA
Open Source Electronic Health Record Agent 

1200:1300 Lunch

1300-1350  Dr Davide Sottara, Department of Biomedical Informatics, Arizona State University
Knowledge Representation Standards For Building Executable Clinical Processes Models

1400-1450 David Shields, Health ITS, University of Utah
OpenCDS: a Clinical Decision Support Infrastructure Based on Drools

1500-1520 Harold Solbring, Division of Biomedical Informatics, Mayo Clinic
Semantic Wiki

1530-1655 Conor Dowling, Caregraf
Semantic Terminology Services

1600-1620 Dr Xiao Hu, Department of Neurosurgery, University of California
Clinical Decision Support Driven Alarms

1630-1700
Panel Discussion - Collaboration Opportunities


Tuesday - General Drools&jBPM Workshop (free)


8.00 AM: Breakfast Social – pre-laptop setup, and QA time with solution Architects. 
-Key will be provided to setup your laptop, so you can view and run the examples used during the talks.

9.00 BRMS Product Overview (Prakash Aradhya 15min) 
How we turn the Drools and jBPM communtiy parts into a world class product. Supporting and harvesting all the innovation done in the open community, Red Hat delivers reliable, dependable and integrated solutions for enterprise customers.

9.15 Introduction to Drools Expert (Mark Proctor 45min) 
Drools Expert covers the business rule engine. A gentle, example driven, dive into the Drools technical rule language and engine features.

10.10 Introduction to Drools Fusion (Edson Tirelli 45min) 
Learn how Drools does CEP differently. Our unified approach extends Drools Expert with a series of language and sub-engine extensions to provide temporal reasoning and event correlation.

11.05 Introduction to jBPM and BPMN2 (Tihomir Surdilovic 45min) 
jBPM is a BPM engine designed for flexible processes, implementing and extending the BPMN2 spec. Built form the ground up to be part of a unified strategy for business automation and decision management. jBPM fully integrates with Drools Expert and Fusion.

11.45 Decision Modelling with Graphical Editors (Edson Tirelli 30min) 
Drools Expert provides sophisticated web based tooling, around decision tables, guided editors and templates. Our decision modelling approach draws from the very best research found at Dr Jan Vanthienien school of Decision Modelling.

12.30 Working Lunch – Experience Drools and jBPM – Hands on labs (Optional) (1hour)

13.30 Human Tasks up Close and Personal (Tihomir Surdilovic 40min) 
Human tasks are a central component of BPM. This example driven talk will build an example live, demonstrating what jBPM’s Human Task technology can do for you.

14.20 Building Games with Drools – Pong, Snake and Wumpus (Mark Proctor 40min) 
Time for some hard play, learn how to build classic computer games with Drools. These also provide interesting exercises in BA requirements gathering.

15.10 Drools Planner a Quick Overview (Geoffrey De Smet 40min) 
Whether it’s employee rostering, task scheduling, vehicle routing, bin packing or another planning problem: all organizations try to optimize their limited resources under constraints. Drools Planner optimizes business resources for normal Java programmers.

15.50 Drools Chance for Imperfect Reasoning (Davide Sottara 40min) 
Sometimes data quality is not perfect, so facts may not be known with precision and certainty. Likewise, crisp constraints such as hard thresholds might not be able to capture the complexity of a business policy. Drools Chance allows to apply gradual and/or probabilistic constraints to uncertain or vague data.

16.40 UberFire – Drools&jBPM Workbench framework (Mark Proctor 30min) 
UberFire is a new project that forms the foundation of our 6.0 web tooling. It’s standalone framework that provides a sophisticated workbench framework for the web; where everything is a plugin. Come learn about the Uberfire, and how you can use the workbench to build your own web applications.

17.10 Drools&jBPM 6.0 and Beyond (Optional : open as long as people remain) 
An open presentation and discussion about the design ideas, principles and goals that are driving the development of Drools & jBPM version 6.0. This will be an optional and informal session where attendees will have the opportunity to learn about what is coming, contribute ideas and provide feedback that will be taken in consideration by the development team.

17.10 Hands on Lab 
Run at the same time as "Drools&jBPM and Beyond" and Beyond. Solution Architects are on hand to help you with your coding problems, and running examples.


Tuesday - Rule Design Patterns in Production Systems




  • Rule Design Patterns
  • What is a “Rule Design Pattern”?
  • Basic Rule Formats
  • Fact Classification
  • Handling Failure to Match
  • Extending Rules
  • Reasoning with Interfaces
  • Active Facts
  • Marker Facts
  • Fact Proxies
  • Application Design Patterns
  • Short-Term Sessions
  • Permanent Sessions


  • Fun UI Projects we need help with


    We are now very close to an alpha release of our UberFire workbench. Uberfire is an Eclipse like workbench, built with of GWT, Errai and CDI. UF provides a clean and simple extension model for custom panels as plugins. I previously mentioned it in this list post,  found here, which has some screenshots and towards the end a link to an older video.

    UberFire will form the foundations for all our web based tooling in the 6.0 series. However it's a separate standalone project, useful to others, Drools&jBPM will provide all functionality through plugins.

    So if you were looking for a fun project, to get involved with some cool tech. It doesn't get much better than this :) So here are some projects we could do with some help with.


    • Errai JSON Tree Editor
      • "data driven" by the provided domain class model. Domain model drives "suggestion" lists for allowed keys and values, as well as client side validation. Additional annotations might be needed to further constrain the authoring view - i.e. choice, sequence, max/min occurs.
      • Here is a simple JSon tree view that works well. Port this idea to pure GWT as a UF component. Make it easier to add/remove entries and provide type safe entries for keys and values, based on the provided domain model. http://braincast.nl/samples/jsoneditor/
      • Errai JSon provides seamless client and server side marshalling of json strings, back into pojo models. http://docs.jboss.org/errai/2.0.0.Final/errai/reference/html/sid-5931328.html
    • Audit Viewer
      • Migrate to support ErraiJSon, instead of our XStream dump, for seamless client and server marshalling. This way the  client view can load and display any data file, without needing a server component. Bonus points if you can update this to support some sort of "streaming" continuous update of data.
    • Rete Viewer
      • The ReteViewer should be ported to svg/gwt, again using ErraiJSon to provide the tree format.
    • Grid/Tile layout manager for panels.
      • This would be a UF workbench part, which displays the attached panels in a grid/tile layout, allowing vertical/horizontal merging, so one area can be larger than another, and also support DnD. This is instead of current default, where attached panels are displayed in a tab format, where only one tab is visible at a time.

    Until we push out the alpha release, you are best placed to contact us via IRC, where we'll talk you through code, and get you started. Just make sure to use our nicks when asking Qs, so we get notified - ask for porcelli, manstis, salaboy or conan on the #droolsdev channel.
    http://www.jboss.org/drools/irc

    Tuesday, October 16, 2012

    1 Week Until Intellifest - Register soon to learn about Drools & jBPM.

    Only 1 week to go for IntelliFest 2012, in San Diego, start Monday 22nd of October.

    Program Overview ( detailed agenda for Monday and Tuesday below ):
    Monday - Healthcare focus for Rules, Workflow, Ontologies and Events (Free)
    Tuesday - General Drools&jBPM session (Free)
    Tuesday - Rule Design Patterns in Production Rule Systems
    Wed - Fri - General IntelliFest Sessions

    There are limited spaces, so register soon here.



    Monday - Healthcare focus for Rules, Workflow, Ontologies and Events (free)


    0830-0920 Captain Emory Fry, MD
    Socratic Grid : Open Source Distributed Decision Support for Healthcare

    0930-1020  Dr Robert Greenes, Department of Biomedical Informatics, Arizona State University
    Key Note : Embedding Decision Support in Clinical Systems

    1030-1120 Dr Aziz Boxwala, Division of Biomedical Informatics, University of California
    Clinical Decision Support Consortium

    1130-1200 Dr Seong Ki Mun, President and CEO of OSEHRA
    Open Source Electronic Health Record Agent 

    1200:1300 Lunch

    1300-1350  Dr Davide Sottara, Department of Biomedical Informatics, Arizona State University
    Knowledge Representation Standards For Building Executable Clinical Processes Models

    1400-1450 David Shields, Health ITS, University of Utah
    OpenCDS: a Clinical Decision Support Infrastructure Based on Drools

    1500-1520 Harold Solbring, Division of Biomedical Informatics, Mayo Clinic
    Semantic Wiki

    1530-1655 Conor Dowling, Caregraf
    Semantic Terminology Services

    1600-1620 Dr Xiao Hu, Department of Neurosurgery, University of California
    Clinical Decision Support Driven Alarms

    1630-1700
    Panel Discussion - Collaboration Opportunities


    Tuesday - General Drools&jBPM Workshop (free)


    8.00 AM: Breakfast Social – pre-laptop setup, and QA time with solution Architects. 
    -Key will be provided to setup your laptop, so you can view and run the examples used during the talks.

    9.00 BRMS Product Overview (Prakash Aradhya 15min) 
    How we turn the Drools and jBPM communtiy parts into a world class product. Supporting and harvesting all the innovation done in the open community, Red Hat delivers reliable, dependable and integrated solutions for enterprise customers.

    9.15 Introduction to Drools Expert (Mark Proctor 45min) 
    Drools Expert covers the business rule engine. A gentle, example driven, dive into the Drools technical rule language and engine features.

    10.10 Introduction to Drools Fusion (Edson Tirelli 45min) 
    Learn how Drools does CEP differently. Our unified approach extends Drools Expert with a series of language and sub-engine extensions to provide temporal reasoning and event correlation.

    11.05 Introduction to jBPM and BPMN2 (Tihomir Surdilovic 45min) 
    jBPM is a BPM engine designed for flexible processes, implementing and extending the BPMN2 spec. Built form the ground up to be part of a unified strategy for business automation and decision management. jBPM fully integrates with Drools Expert and Fusion.

    11.45 Decision Modelling with Graphical Editors (Edson Tirelli 30min) 
    Drools Expert provides sophisticated web based tooling, around decision tables, guided editors and templates. Our decision modelling approach draws from the very best research found at Dr Jan Vanthienien school of Decision Modelling.

    12.30 Working Lunch – Experience Drools and jBPM – Hands on labs (Optional) (1hour)

    13.30 Human Tasks up Close and Personal (Tihomir Surdilovic 40min) 
    Human tasks are a central component of BPM. This example driven talk will build an example live, demonstrating what jBPM’s Human Task technology can do for you.

    14.20 Building Games with Drools – Pong, Snake and Wumpus (Mark Proctor 40min) 
    Time for some hard play, learn how to build classic computer games with Drools. These also provide interesting exercises in BA requirements gathering.

    15.10 Drools Planner a Quick Overview (Geoffrey De Smet 40min) 
    Whether it’s employee rostering, task scheduling, vehicle routing, bin packing or another planning problem: all organizations try to optimize their limited resources under constraints. Drools Planner optimizes business resources for normal Java programmers.

    15.50 Drools Chance for Imperfect Reasoning (Davide Sottara 40min) 
    Sometimes data quality is not perfect, so facts may not be known with precision and certainty. Likewise, crisp constraints such as hard thresholds might not be able to capture the complexity of a business policy. Drools Chance allows to apply gradual and/or probabilistic constraints to uncertain or vague data.

    16.40 UberFire – Drools&jBPM Workbench framework (Mark Proctor 30min) 
    UberFire is a new project that forms the foundation of our 6.0 web tooling. It’s standalone framework that provides a sophisticated workbench framework for the web; where everything is a plugin. Come learn about the Uberfire, and how you can use the workbench to build your own web applications.

    17.10 Drools&jBPM 6.0 and Beyond (Optional : open as long as people remain) 
    An open presentation and discussion about the design ideas, principles and goals that are driving the development of Drools & jBPM version 6.0. This will be an optional and informal session where attendees will have the opportunity to learn about what is coming, contribute ideas and provide feedback that will be taken in consideration by the development team.

    17.10 Hands on Lab 
    Run at the same time as "Drools&jBPM and Beyond" and Beyond. Solution Architects are on hand to help you with your coding problems, and running examples.


    Tuesday - Rule Design Patterns in Production Systems


  • Rule Design Patterns
  • What is a “Rule Design Pattern”?
  • Basic Rule Formats
  • Fact Classification
  • Handling Failure to Match
  • Extending Rules
  • Reasoning with Interfaces
  • Active Facts
  • Marker Facts
  • Fact Proxies
  • Application Design Patterns
  • Short-Term Sessions
  • Permanent Sessions


  • Tuesday, October 02, 2012

    Knowledge Based Runtime UIs Requirements


    Drools and jBPM5 conform a Business Logic Integration Platform. This means that the Rules & the Process Engines will share their runtime. If you take a look at the Knowledge Based APIs that the platform provides you will see that the StatefulKnowledgeSession interface is the main entry point to access both engines.  For this reason a need for a unified Assets Repository and a unified set of Runtime UIs is required. This posts describe from a very high level perspective, what in my opinion is a set of Panels (UI Screens) that allows us interact with our session runtimes, no matter where they are located. This post is a follow up to my previous post about Human Task Interactions that you can find here.

    Introduction


    Our analysis will start with the assumption that there will be a set of User Interface that will allows us to model/design our Knowledge Assets. We will also asume that we have a centralized repository that allows us to store and organize our Knowledge Assets. Topics like how the assets are organized, stored, indexed and maintained inside the repository are out of the scope for this post.
    I will be describing each block of functionality as a decoupled entity, how we mix and match these blocks will depend on the Users needs and requirements. I will provide a default set of perspectives (set of panels together with a predefined layout) just to demonstrate how the usage could be. Several perspective and more use case specific panels can be defined for different scenarios, the important thing here is to understand what information is available and how it can be organized.

    Key Concepts


    Before starting with the UIs let's review quickly the main concepts that we want to expose via the application screens:
    • Knowledge Assets: each piece of Business Knowledge that we can model and store inside our business repository. Common examples about Knowledge Assets are: Rules, Processes, Models, Decision Tables, Ontologies, etc
    • Knowledge Base: Selecting a group of Knowledge Assets we can conform a Knowledge Base which will contain all the knowledge required to support a business situation. Usually we will create a Knowledge Base with a well scoped set of Assets (that can be organized in packages or any other logical structure) to solve specific topics. Depending on the business requirements we will decide how many Knowledge Based do we need per Business Unit or Department in our organization.
    • Knowledge Runtime / Session: From one defined Knowledge Base we can create multiple Knowledge Runtimes. Depending on the problem that we are trying to solve and how the knowledge was modeled and designed is how many runtimes we will need to spawn.
    • Knowledge Project: a set of Knowledge Sessions that conforms a logical group of functionality.


    Defining Our Runtimes


    Based on the previous concepts we can start defining our UI from the Knowledge Project concept:
    Knowledge Projects List
    As starting point we will have a list of the current projects that we have. This list can be filtered by the status of the project, the period when the project is relevant and also by a higher level concept, like for example the Organization that is running the project.
    When we want to start a new project we will need to define the Knowledge Assets and the Runtimes that will be used:
    Project Configuration
    The Knowledge Bases will be defined based on the content of the repository and it will be composed by Rules, Processes, Models, Etc.
    In order to add more assets to a Knowledge Base we will need to upload the assets to a certain path into the repository. The Knowledge Asset explorer reflects the content of the repository and it allows us to access to the Assets Modeling Tools like: The Process Designer, The Guided Rule Editor, The Decision Tables Editor, etc.
    Knowledge Asset Explorer
    Once we have our Knowledge Base defined, we can quickly create new Runtimes/Sessions to use that Knowledge Base.
    From both Knowledge Bases and Knowledge Runtimes we wil have their own Configuration Panels:
    KBase & KRuntime Configurations
    The following mock up shows the Session Runtime Details view which gives us some statistics about the internal data of the selected session.
    Knowledge Runtime Details
    Once we have our Sessions defined and running we will need a different set of views to interact with them. The different views will be defined based on the end users roles interested in interacting with them.

    Process Views


    From the process perspective we will want to create new Process Instances and browse the current ones.
    Global Process Instances Explorer
    Because now we can have multiple Sessions running different Process Instances, we will need to filter and select the sessions in which are we interested. If we really don't care where our process instances are running we can just select all the available sessions and hide the Ksession filter.
    We can drill down into a selected Process Instance to see in detail what's the status of that specific instance:
    Process Runtime Detail
    As you can see, in the previous figure, a set of specific views can be created to interact and browse the Process Instance Details. All these views will include links to the authoring tools, like for example the Process Designer.
    A similar set of panels should be also provided for the user that wants to instantiate a fresh process instance. A set of filters based on the available Knowledge Bases should be provided for the user to Select the specific process and the Runtime where it should be instantiated.
    Process Definition Explorer & Instantiation


    Get Involved


    As usual, this is a proposal trying to cover most of the aspect required to interact with Knowledge Runtimes and with a set of views oriented to Business Processes. In the same way, we can provide a different set of panels to handle all the interactions with Rules and Events.
    If you think that all the features described here are important, or if you are planning to adopt a solution like the one described in this post please get involved and share your thoughts and extra requirements that you may need. I will start sharing my personal experiments on the basic components exposed in this post. This is a very good opportunity to join forces and help in the creation of these components. If you wanna help and learn in the process please write a comment here or contact me via the public jBPM5 channels. The more requirements that we can gather, more re-usable will be the end results.

    Summary


    This post cover what I believe are the most important bits that Knowledge Based Platform UI should provide. I’m not saying that these features are enough but this post will serve as the starting point for more advanced mechanisms to improve how the work is being done. I’ve intentionally left out of this post several important topics like: the BAM module, The Knowledge Authoring Tools Task Statistics, the Knowledge Repository Organization and Reporting. All these topics will be covered in future posts. Now that you reach the end of the post please read again the“Get Involved” section and drop us a line with your comments/suggestions.