Re: Various questions regarding PowerLoom
Hans Chalupsky <[email protected]> Mon, 25 Feb 2013 12:59:44 -0800
| Newsgroups | gmane.comp.ai.powerloom |
|---|---|
| Message-ID | <[email protected]> |
Hi Philippe, the answer to this question is "it depends". Expert system languages such as CLIPS or JESS (I haven't really worked with SOAR or ACT-R, but the basic concepts are similar) use condition-action rules as their basic modeling construct. This means the IF-part of such a rule specifies some complex condition in the current working memory, and the THEN part specifies an action that should be carried out if that condition is true (e.g., add or retract something from the working memory). This means that the resulting systems very much become programs that change from one complex state to another controlled by the various condition-action rules. That paradigm gives you a very high degree of freedom of how to formulate your model (you can program pretty much anything you can do in a regular programming language), it makes it easier for novices to build such systems, but it also makes it easy to build systems that become unwieldy and difficult to maintain once these rules start to interact in unexpected ways. A logic-based KR system such as PowerLoom allows you to formulate generic rules about your domain and then have the system's inference engine figure out automatically how they chain and interact and apply to individual instances. You also have a query language and interface that allows you to query for instances that satisfy complex descriptions and the background knowledge you put into the system. This will generally allow you to build large knowledge bases and ontologies that are well modularized, consistent and extensible. However, it is often difficult for novices to build such knowledge bases, and it is difficult to impossible to do certain things in logic that are easy to do in a programming language (such as updating state or preferring one rule over another). So, there is no easy clear-cut answer, and the issue is not unlike deciding whether you should use Lisp or Java to write your program. The example you sketched out could be easily handled in PowerLoom, but there might be aspects of that expert knowledge base that could be difficult to formulate, I don't know. I often build systems that use PowerLoom to represent data and background knowledge, but that handle non-logical aspects programmatically. It might matter how the resulting system can interact with other software you build around it, or what type of people are expected to build and maintain the system, or whether you need commercial support from the tool vendor, etc. If you are really serious about this, the best strategy is to build a small prototype system using some of the different tool kits you are considering and see what works well (for you) and what doesn't. Hans On 02/24/2013 03:00 AM, [email protected] wrote: > > Hello, > > is PowerLoom the appropriate language to program question-answer expert systems? > > > For instance, > > "Please input the client's honorific" > > Mr > Mrs > Ms > >> Mr > "Please input the client's name" > > Paul Johnson > > "Please input the client's age" > >> 45 > "Please enter the client's occupational status" > > unemployed > student > employee > manager > >> employee > "Please input his country" > >> GB > "Please select the client's subscription period" > > 6-month > 12-month > 24-month > >> 12-month > [Searching the best deal for Mr. Paul Johnson and for the newspaper] > > "You should offer Mr. Paul Johnson who's 45, is an employee, and lives in GB, a 12-month subscription at EUR 400". > > > > How does it compare with other expert-system languages such as SOAR, ACT-R and Drools, for such purposes? > > Many thanks. > > Philippe > > > > _______________________________________________ > powerloom-forum mailing list > [email protected] > http://mailman.isi.edu/mailman/listinfo/powerloom-forum