Tuesday, August 28, 2007

Top Engine on Amazon's EC2!

That's right, Top Engine demo site is now available on Amazon's Elastic Compute Cloud (EC2)!

This simple demo site aims at showing how Interview Engine can guide users to complete their tasks. A simple knowledge base is provided. You can extend this example and save your own version to your local computer and import it into Interview Engine at a later time.

To access the Health Care Demo, click on the Import Knowledge Base menu item on the left from the main page at http://top.dufresneconsulting.com/topengine. This will present the import page with a button to access the demo directly. In this demo, Interview Engine will provide recommendations based on answers provided by the user on behalf of the Patient (it could have been worded such that the Patient answers directly the interview.)

Five possible recommendations are defined according to information collected in three categories. The categories are:

  • Is the Patient compliant to the therapy?
  • Why is the Patient not compliant? (obviously asked only if the Patient is not compliant.)
  • Is the Patient on brand or generic drugs? If the Patient is taking brand drugs then cheaper generic drugs may be available.
The recommendations are defined in the figure on the right.

Try it by clicking on the Health Care Demo button which is available on the Import Knowledge Base page accessible via the menu on the left. Start the demo by selecting 'Therapy Compliance Assessment' Interview from the table - multiple interviews can be defined within the same Knowledge Base. Once selected, click on the Start/Restart button. Answer the questions any way you like, there is no wrong answers!

Once you are back to the 'Available and Completed Interviews' page, you can view a progress report of in-progress or completed interviews.

Let's say you need to modify the interview and want to add a recommendation:
If the patient is not compliant because of lack of knowledge on how to use injectable drugs, then recommend to view the "How-to inject drugs video" unless the patient also experience drug side-effects preventing from being compliant.
To add this recommendation, you need to perform four simple steps:
  1. Add a Tag called "Lack of Knowledge on Injectable Drugs" to the "Non-Compliance Reasons" Category by clicking on "Tag Categories" menu item on the left. Click on Non-Compliance Reasons and then scroll to the bottom to add a Tag.
  2. Add a Tag called "View How-To Inject Drugs Video" in the "Recommendations" Category.
  3. Add a Rule called "View How-To Inject Drugs Video Rule" by clicking on User Rules menu item on the left. Type the new rule name and click on Add button. Then select the added rule from the table and click on View Details.
  4. On the Rule Details pages, add the rule conditions: Select Drug Type Category and click on Add Category to IF; Select Therapy Compliance Category and then select Non-Compliant Tag and click on Add to IF button; Select Non-Compliance Reasons and then select the newly added Tag and click on Add to IF; Select Recommendations Category and click on the added Tag of this Category and click on Add to THEN button; Select Non-Compliance Reasons Category and select Drug Side Effects Tag and click on Add to UNLESS button. The screen should look like the picture on the right.
Simply try out the modified Interview by clicking on Start Interview Session menu item on the left. The modified Interview can be exported via the Export Knowledge Base menu item. It is exported as a plain text file which can be saved locally and then imported again at a later time.

Enjoy and let me know your thought on this post!

Thursday, July 12, 2007

Top Engine Demo on YouTube!

A screencast presentation of Top Engine and a demo of Interview Engine is now available on YouTube.

This is a 2-part series that shows how Top Engine - The Semantic Web Engine for the Enterprise - aims at making life easier to developers using semantic web technologies in an innovative way.

Also, part 2 demo Interview Engine which extends Top Engine with the capability to define interview-based user interaction with branching logic without any programing. Interview Engine uses techniques from Folksonomy and tagging techniques to extend the vocabulary with user-defined tags.




Please leave us comments if you would like to see more of these. Thanks!

Sunday, July 8, 2007

Interview Engine Released!


We are proud to announce the availability of Interview Engine as an add-on product to our Top Engine Business Rules Engine.

Interview Engine extends Top Engine with the capability to deploy web-based business applications using an interview-style user interaction that can handle from simple to complex branching logic without any programing. An interview-style user interaction is useful in self-service applications where the system guides the user in the completion of a task. In order to avoid asking unnecessary or irrelevant questions, the system takes into consideration the answers of previously asked questions to determine the next set of questions to ask the user. A sample screen is shown, click on the image to enlarge.

The interviews are managed using web-based tools, including the specification of user-defined rules. A screen image is also shown showing the rule editor. A rule is specified using IF, THEN, and UNLESS clauses. In the example shown, the rule specify the recommendation of an investment product and can be read as "If the user desire a strategic alternative to ETF with efficient access to new markets with a risk tolerance of moderate, then recommends Performance Solutions investment product unless a high degree of principal protection is desired." Of course, this is a purely hypothetical situation.

We are in the process of deploying a demonstration site on the Amazon Elastic Compute Cloud (EC2). Deploying Interview Engine-based application on EC2 can be of great benefit to enterprises seeking to have access to turn-key solutions without any capital investment and pay on a usage basis. Dufresne Consulting can provide services to customize a solution deployed on EC2. Please contact us for more information at info@dufresneconsulting.com

Tuesday, July 3, 2007

What do you use Top Engine for?

This post is the first of a series called What do you use Top Engine for? In this post I'll describe how we use Top Engine for Business Process Automation in a modernization effort.

All enterprises thrive for increased efficiency in their business process through automation and the advent of the web brought a whole new dimension to it. The self-service model is a mini-revolution in it self. There is no need anymore to complete extensive paperwork (often very confusing because you don't know which forms are applicable and which one are not.)

Often, the paperwork end-up on a pile somewhere waiting for someone to enter the data in the system. But wait, didn't you entered the data in the zilion forms already? What's the difference? Well, it's not quite the same thing. The worker (let's call her Jill) who enters the data in the system is in fact an expert. Jill, and almost only Jill, knows how to translate the forms into settings that needs to be set in multiple Legacy Systems that are otherwise not connected. In fact, there about only Jill who can make sense of these forms anyway. Does that make sense? Not at all. Does it sound familiar? Probably yes.


So the huge benefit of the self-service model is to take work out of the system. Ideally, you would go on the web and access a system where you would be able to make whatever change you want in a way that is just as simple as it is to write this blog. The system would only ask the relevant questions to the task at hand (without asking any information that can be inferred or deduced automatically). Here's a picture that shows what I mean:

While this is the ideal system, it may not be the most practical approach. This calls for a complete replacement of the Legacy Systems in order to have the ideal system. From a practical point of view, it is generally almost impossible to completely replace the Legacy System due to the numerous other systems that consume and/or provide information to the Legacy System. Of course, if one is in the position to migrate off the Legacy System to a new platform then this would be the best approach provided the risks are well managed.

Consider an alternative that would preserve the Legacy System, but it is now front-ended with a Knowledge Layer that essentially performs in an automated way what Jill is doing in the good old system. The Knowledge Layer would translate the barely understandable information from/to the Legacy System in a web-based dialog with the user in a language comprehensible to the user for the task at hand. Here's what I mean:

As a benefit of this approach, the Legacy System can be scheduled for retirement while some of the benefits of the new system can be realized early and mitigate the cost and risk of replacement. The Knowledge Layer will in fact be a core component of the replacement system. Since most of the logic will be housed in the Knowledge System, the remnant of the Legacy System could potentially be replaced by a database and an Enterprise Service Bus (ESB) complying to a Service Oriented Architecture (SOA).

The use of Semantic Technologies is evident here and enable the true self service. To achieve this, Top Engine uses an ontology to define the canonical model that map the information from the user's perspective to the bits and fields of the Legacy System. The use of the Web Ontology Language (OWL DL) provides assurance that a consistent model is used as more and more functionality is moved from the Legacy System to the Knowledge layer.

This is a typical use case for Top Engine in the context of a modernization effort. Other usage patterns will be presented shortly. Meanwhile, please leave me your comments.

Monday, July 2, 2007

Top Engine is here! What's that?

Top Engine is here indeed! Top Engine is the Semantic Web Engine for the Enterprise. What does it mean you asked? read on . . .

Top Engine is a business rule engine that use Semantic Web technologies in a innovative ways. In particular, it uses the Web Ontology Language (OWL DL) as a modeling language for specifying the Domain Model of the Business Application. A presentation was made at The New York Semantic Web June Meetup. The slides from the presentation can be found here. I you are in the New York area I would suggest that you join this group.

In upcoming posts I will discuss how Top Engine allows you to write rules on top of ontologies using a fusion between Description Logic and Logic Programs formalisms. A formal presentation on how we can combine Logic Programs with Description Logic is found in the paper of Grosof, B., Horroks, I., Volz, R., Decker, S.: Description logic programs: Combining logic programs with description logics. In: Proc. of WWW 2003, Budapest, Hungary, May 2003, ACM (2003) 48--57. An online version can be found here.

I've made a screencast out of the presentation made to the NY Semantic Web June Meetup, it's available on YouTube in Dufresne Consulting's Channel. WARNING: This presentation is not exciting, if you suffer from insomnia one night, this should take care of it! In the future I'll ask some tips from my friend Dave at excira.com he got from his stand-up comedy class. So stay tuned, I'll get better at this!

Let me conclude this first post by listing the key features of Top Engine:

  • Use OWL DL ontological definitions for vocabulary primitives to write rules.
  • Provide OWL DL reasoning services to compute satisfiability, subsumption, equivalence, and disjointness of the ontology classes. This ensure that the ontology used for vocabulary primitives does not contains contradicting axioms.
  • Generate Logic Programs rules to retain class axioms from ontology so that they can be used to infer information at run time.
  • Ability to write rules on top of ontology with closed-world semantics. This semantics is the one used by relational databases and is familiar to developers of rule-based business applications.
  • Inference engine in C++ using rete-based algorithm with forward, and backward chaining, and querying capability (SPARQL-like syntax).
  • Uses an RDF graph for domain model with generated proxy classes in java and python programing languages.
Best of all, Top Engine is available as Open Source and is released under a "dual licensing" business model. You may choose to use Top Engine under the free software/open source GNU General Public License (commonly known as GPL v2) or under a commercial license. Please contact Dufresne Consulting for more information. The project Top Engine at SourceForge.net is in the process of being setup.

Please feel free to comment on this post!