

|
M |
odern analysis applications require semantic
data and semantic rules. The shift towards semantic solutions comes from the
need for applications to be more readily adaptable to new situations and
problems. Systems built with hard-coded rules operating over engineered
structures of Floats, Integers, and Strings are fading into obsolescence.
Tellilink’s semantic rule engine, rules4J, is the first commercially available product to fully
leverage open-standard semantics (OWL, RDF, SPARQL, etc) and natural language
business rules in a Java rule engine. The product includes a data
transformation API to marshal data (OWL/RDF, XML, relational DBMS) into a
semantic form, a natural language parsing engine, the Java based rule engine
itself, and a client application to author, test, and manage rules and
semantics (ontologies).
It is
easily deployed into a Service Oriented Architecture, web applications, or
stand-alone desktop applications—anywhere Java
is used.
Traditional
rule engines use engineered data structures (i.e., from a programming language
or a database) directly in the logic of the rules. These data structures are tied
directly to specific system behavior and a specific business problem. There is
no real layer of abstraction above raw system code.
Such
systems can exist only as a single, engineered whole. Each part, from the rules
to the data to the system’s capability,
resists change and adaptation to new problems. In such systems, programmers
need subject matter expertise, and real subject matter experts participate only
indirectly in defining how the system works.
Ultimately,
this drives systems to be “hard-wired” for specific, moment-in-time problems with well-known and predefined sources of data.
rules4J,
with its emphasis on semantics, is designed to solve this problem. Semantics
provide a layer of abstraction between the logic of the system and the data it uses.
Data can exist in multiple and varied forms and can change without breaking the
logic—the rules—of the system. Engineers can focus on
building features and capability.
Subject matter experts can focus on defining the rules and semantics.
rules4J enables
rules to be written that use concepts (Types and their Properties) from an ontology. So one might write a rule as:
If this is an IllegalTransport
Then send an
alert.
IllegalTransport is a semantic concept. It is created by a subject matter expert. Sending
an alert is a capability of the system written by an engineer. Rules4J uses
such rules and concepts to classify data and control the system.
The separation of rules, data, and capability
means that a system of very general capability can be tailored for very
specific use, with subject matter experts defining the specifics. To think of it in human terms: a person’s
response to “danger” might always be the same—fight or flee—we are very
general systems in a sense. But the concept of what
danger is changes constantly depending on the situation. What distinguishes us
as a species (and what keeps us alive) is that concepts like danger are not
hard-wired into us. This is also what distinguishes systems built on semantics.
Reducing system complexity is one of the chief goals for rules4J, and it seeks to
do this not only by simplifying and better organizing the rules in a system,
but also by simplifying the creation of semantics.
Rules are simplified by placing them in
rulesets that are managed as concepts. In the example shown at left, all of the
rulesets (HazMatDriver, Medical, IllegalTransport, Waste, etc) are semantic
concepts. This means that they can be organized as a hierarchy and that child
concepts inherit the rules of parent concepts. These concepts can be formed
from concrete types such as Truck, or Waste as well as from business processes
such as TruckInspection or CargoScanning. The behavior of the system can be
changed not only by changing the way a rule is written, but by changing the way
these concepts relate to one another.
Complexity has also traditionally been a
problem in projects that use semantics (and particularly OWL). And most of the
complexity comes from the need to express the logic of the system in the
structure of the semantics. This usually takes the form of anonymous classes
and local restrictions, and what you end up with when you take this design
approach are semantics that apply only to a very narrowly defined problem and
whose meaning can be very subtle and hard to understand. In fact, the behavior
of a system that runs from these semantics can be hard to predict.
Rules4J solves this problem by taking the
logic out of the semantic model altogether. Since rules drive classification,
there is no need for the model to be designed for problem-specific
classification. It can be more general and more reusable; and it can be maintained by a greater number of people with a
greater variety of skills.
This opens up new possibilities for who
modifies and maintains a system and the ease with which the system can be
changed. With rules written in English and semantics maintained in simple,
concrete models, many of the things that had to be done by an IT staff can now
be done by system users.
