1 / 9

KS BRMS

February 3rd , 2010. KS BRMS. Discalaimer. The GUI for the BRMS is currently not running, and was developed using a outdated framework so fixing is not an option, it will have to be rebuilt

vic
Télécharger la présentation

KS BRMS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. February 3rd, 2010 KS BRMS

  2. Discalaimer • The GUI for the BRMS is currently not running, and was developed using a outdated framework so fixing is not an option, it will have to be rebuilt • Focus has been diverted from creating executable rules to collecting rules. At this time collected rules are stored in a contextual template format (Requirements) and are not compiled into executable rules • Analysis tools have been deferred to a later release • The Dynamic Fact Finder has not yet been implemented • Rules that provide a result (i.e. not boolean) have not been implemented

  3. Overview of KS BRMS Structure Requirements Define a contextual template for entering a rule Statements Creates a container for requirements to build logic trees BRMS Tree Structure Contextually ambiguous atomic storage of rule tree structure BRMS Fact Finder Provides links to runtime data Drools Execution of rules

  4. Requirements (aka Requirement Components) • Provide a highly constrained rule template for ease of entry • Must have a mapping from the Requirement to the BRMS structure (at this time none of these mapping have been created) • Use Velocity templates to provide a natural language representation of the rule (e.g. must have taken $mincredits credits of $courses.toNatLan(“en”)). Additional Velocity templates can be defined to support multiple contexts (e.g. catalog, concise, etc) and multiple languages. Velocity templates can also be used to define UI entry screens • Can represent a single node in a logic tree or a more complex structure

  5. Statements • Statements are a container of logic that contains a single operator (AND or OR) and 2 or more requirement components • Allows for large logic trees e.g. A and B and (C or D) • Statement Types have a list of Requirement Component Types that are allowed. This creates a contextual list of available Requirement Component Types

  6. BRMS Tree Structure • Stores the logic tree (operators and parens), static data (facts), and dynamic data (facts) and allows you to create agendas which are structured groupings of logic trees that together provide a final decision on whether an action is allowed. • Provides a mechanism for backward chaining. Backward chaining provides the ability to find which conditions need to be met in order to achieve a goal. Most rules engines only provide forward chaining which only allows you to determine what goals you’ve met given a set of conditions.Backward chaining will give us the ability to perform complex analysis on the effect of rule or fact changes and best fit analysis (what learning plan will allow me to complete my degree in the fewest semesters).

  7. BRMS Fact Finder • Facts include execution and definition keys. • Execution keys: contextual runtime pieces of data (e.g. the student id of the student attempting to enroll in a course) • Definition keys: values provided when defining the rule (e.g. the minimum grade in the following rule: “must have achieved a C or higher in MATH151”) • Fact types will be tied to either a global search mechanism or a specific service method • Given a fact type, execution and/or definition keys a piece of data can be retrieved from a given service at runtime or when performing an analysis

  8. Drools (aka JBoss Rules) • Open Source rules engine • KS BRMS rules are compiled into drools rules • Compiled drools are stored in a jackrabbit repository (caching of drools may be possible at each domain) • Execution requires a list of facts and an Agenda ID (agendas are ordered lists of rule trees that are used to evaluate a decision or provide a value for a given action like enrolling in a course or calculating GPA)

  9. Issues with current design • We are storing rules in 3 places (Statements, BRMS, and Drools). Why isn’t this a major synchronization problem? These are all one way translations (Statement -> BRMS -> Drools). The developer’s GUI which will interface directly with the BRMS will not allow editing of rules mapped from Statements. • In theory we might be able to eliminate the BRMS Tree Structure. This would require making vast improvements to the Statement/Requirement Component structures

More Related