Some comments on the third day of the October Rules Fest:
We started the day with David Butler of Countrywide, discussing the system they have built. Cheers to David for showing actual code – not many companies would do that.
Next up was Dr. Rick Hicks (EZ-Xpert). Dr. Hicks has a nice tool for addressing certain types of problems. A representative quote: “We don’t need an inference engine, it becomes a conflict resolution problem that we solve sequentially.” He performs conflict resolution up front during design type. Both James Owen and Daniel Selman asked if this tool is doing the same thing as Corticon’s tools. Unfortunately, no one from Corticon was present to address the question. Dr. Hicks is a brave man to come preach his “inference without the engine” gospel to this audience. I like having tools of other types and perspectives represented and hope to see him present again at future ORFs. In addition, Rick made a point of tracking me down in the men’s room to give me his business card so I would have a story to tell.
Next up, was Gary Riley the developer and maintainer of CLIPS. Gary has worked on CLIPS for about 23 years, and brings a longer term perspective to his presentation. Gary spoke about some of the issues he encounters maintaining a freely available tool, and some recent performance improvements that he has made. Gary described a part of his customer base as “The niche of people who don’t have any money. They don’t have money, but they have people.” Gary stated that he is continually pushing user questions into improvements to the documentation and the examples, in order to ease the customer-service portion of his labors. In general, it sounds as if Gary suffers from the same issues as most free tools – he doesn’t have a lot of data about who is using the tool, and most of the customers who contact him are the ones who are having problems. Gary also touched on the topic of CLIPS having features that go back to ART, but that are no longer commonly used (like the hypothetical reasoning features). Gary spoke about the need to move CLIPS away from some of the ART heritage that is no longer used. There was also coverage of the issues involved in making CLIPS available in a useful way in most modern programming languages and environments. Gary then moved into a discussion of benchmarking. CLIPS has seen some nice performance gains recently. Gary showed a slide comparing CLIPS performance from 1986 with the performance of today. Regarding the old performance numbers, he said: “Either people were lying, or there actually was a class of problems that could be solved with that performance.” This is an interesting statement, and goes well with something Dr. Forgy would say later during the Q&A. Gary touched on existing benchmarks and the struggle to define portable benchmarks that also realistically represent real-world problems. On the Waltz benchmark: “It’s an esoteric program, I have no idea what it’s doing.” Gary has done some nice work here, and I know it will be taken into account as we move towards better benchmarks.
With finished the morning with Mark Proctor (Drools). The Drools engine has come a long way since the original 1.0 version, and it is always a pleasure to see what they are doing. They are adding new language keywords and increasing the expressiveness of their tools. There was some more on CEP, of course. It also sounded like Mark was touching on a tight integration between rules and workflow, but I need to check the video.
As we headed towards the end, James Owen talked about Dr. Forgy’s thesis in which the Rete algorithm is defined. James touched a bit on backward chaining, but there is clearly a need to spend more time on the topic. I hope James will include more on this topic at future ORFs. James had some good comments on priority and conflict resolution that I’ll probably blog further upon later. Dr. Forgy stepped in at one point to reinforce some points. He credited them to Allen Newell, saying: “He [Newell] detested using rule order – it means ‘this rule is true and everything above it is false’.”
The last talk was Dr. Charles Forgy on the subject of parallel implementations of the Rete algorithm. Dr. Forgy started by saying that Rete readily lends itself to parallel implementations because the algorithm is “agents (or nodes) passing messages to each other”. His focus on improving performance to date has been in the area of the Match cycle. Dr. Forgy talked about the clock ticks involved in distributing the alpha and beta nodes across multiple processors and other associated context-switch overhead. He couldn’t say much about the current application except that it is correlation and aggregation of computer security alerts, and that he needs to process 50,000 events per second on 4 CPU cores. Dr. Forgy then proceeded to advocate a move towards rules that are more set-oriented than tuple-oriented, emphasizing readability and maintainability. There were questions about this as it runs a bit counter to some of the traditional wisdom. A few other quotes from Dr. Forgy – On the subject of the Waltz benchmark: “Some people here are probably kind of sick of it, I know I am. It’s not terribly important what it does…it just does constraint propagation.”. On the subject of Rete II: “Rete II is aggressively sequential, so I had to back off and use a simpler algorithm.” On event processing: “I don’t think that the rule languages we have now are really appropriate for event processing. However with the appropriate features rules could be very suitable.”
We finished the conference with a question and answer session with all the speakers. This discussion ran quite long and covered a range of topics. It touched on a number of areas – such as a desire for new books on the topic. I heard one or two people afterward refer to the discussion with some cynicism, and I can certainly understand their perspective having been in this space for awhile. This discussion wasn’t a transformative moment for the community – but it might have helped sow the seeds for one. I’ll finish with a few quotes. On the subject of whether interest in rules is increasing or decreasing – Dr. Charles Forgy: “Increasing interest. The first derivative is definitely positive.” On the subject of improving performance – Dr. Forgy: “People ask [me] ‘Why are you worried about algorithms?’ [My answer is] When the speed is there, the applications will come.” (Remember the Gary Riley quote I gave above?) And finally, on the current ubiquity of Java – Daniel Selman: “Java is the COBOL of programming languages.” Gary Riley: “COBOL is the COBOL of COBOL.”