Hacker News new | past | comments | ask | show | jobs | submit login

Prolog is a standardized programming language for doing backward chaining with multiple mature implementations eg. you can ask for solutions to discrete graph search and other predicate logic problems as described in TAOP book. Prolog is also used for implementing more advanced/complete logics than just resolution with negation-as-failure such as various description logics. "Business rule management system" such as Drools do multiple things, but are understood to perform mostly forward chaining based on RETE where you assert some facts and rules and the BRMS evaluates all logical consequences (unlike Prolog where you ask for a particular goal). BRMSs aren't standardized; the closest to a standard would be IF ... THEN ... rules using OPS5-heritage syntax (OPS5 was an "expert system" during the original AI spring followed by the infamous "AI Winter" around 1988). But the matter of the fact is Drools and other BRMs don't use interchangeable syntax and engines. Drools in particular is a Java-/maven-/XML-heavy solution sold to enterprises so that "business can define accounting/rating or other business rules" themselves. If that sounds like too good to be true, you're right. The Drools-based apps I've encountered are usually written and maintained by developers rather than mythical "business users", and apart from being in need of maintenance because no-one wants to develop using Drools also lack basic testing and other engineering discipline so become a PITA in any modern test-driven environment.

TLDR: learn Prolog




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: