expert system development tools sean lydon daniel nelson emily schwarz
TRANSCRIPT
Expert System Expert System Development ToolsDevelopment Tools
Sean LydonSean Lydon
Daniel NelsonDaniel Nelson
Emily SchwarzEmily Schwarz
OverviewOverview
MotivationMotivation DeliverablesDeliverables MethodologyMethodology ResultsResults SOARSOAR PrologProlog DemoDemo Final ConclusionsFinal Conclusions QuestionsQuestions
MotivationMotivation
JESS and CLIPS unsupportedJESS and CLIPS unsupported Cool idea to present new materialCool idea to present new material General interestGeneral interest
DeliverablesDeliverables
Big DocumentBig Document PresentationsPresentations Example Assignment (tutorial)Example Assignment (tutorial)
MethodologyMethodology
Massive searchMassive search Evaluate with basic criteriaEvaluate with basic criteria Pick better and evaluate morePick better and evaluate more Pick best and try assignmentsPick best and try assignments Generate materialsGenerate materials
MethodologyMethodology
Initial criteriaInitial criteria– Availability, Cost, Install Docs, Availability, Cost, Install Docs,
Tutorials, CommunityTutorials, Community Secondary criteriaSecondary criteria
– Usability, Installation Process, Usability, Installation Process, ApplicabilityApplicability
ResultsResults
Tons of initial results (32)!Tons of initial results (32)! Narrowed down to 10Narrowed down to 10 Finial testing of SOAR and PrologFinial testing of SOAR and Prolog
ResultsResults
ESDT Usability Installation Process ApplicabilityAlgernon-J 2 2 2
DEC Reasoner 2 2 1Drools 3 3 3E2glite 3 2 1
n/a n/a n/an/a n/a n/a5 5 53 4 22 1 3
Soar 4 5 4
JeopsOpenCyc
PrologRulebySnePS
SoarSoar
MotivationMotivation
Soar is a unified architecture for Soar is a unified architecture for developing intelligent systemsdeveloping intelligent systems
Soar’s purpose is to be an Soar’s purpose is to be an architecture that supports all the architecture that supports all the capabilities required of a general capabilities required of a general intelligent agentintelligent agent
First developed in 1987 at First developed in 1987 at Carnegie MellonCarnegie Mellon– Now on version 9.0Now on version 9.0
FunctionalityFunctionality
Represents knowledge as objects (structures with Represents knowledge as objects (structures with multiple attributes)multiple attributes)
Goal orientedGoal oriented Production rules can be stated explicitly, but are most Production rules can be stated explicitly, but are most
often broken down into often broken down into propose rulespropose rules and and operator operator rulesrules– Propose rules state when an operator should be usedPropose rules state when an operator should be used– Operator rules perform actions (like modifying working Operator rules perform actions (like modifying working
memory)memory)– Operations can be proposed by multiple rulesOperations can be proposed by multiple rules– Eliminates duplication of the RHS of rules.Eliminates duplication of the RHS of rules.
Comes with an editor and a debuggerComes with an editor and a debugger– Both are well fleshed out with a lot of functionalityBoth are well fleshed out with a lot of functionality
Represents the working memory in a hierarchical Represents the working memory in a hierarchical manner (as a tree structure)manner (as a tree structure)
Multiple mechanisms for learningMultiple mechanisms for learning
Example of a production Example of a production rulerule
General FormatGeneral Formatsp {rule*namesp {rule*name
(condition-1)(condition-1)(condition-2)(condition-2)……(condition-n)(condition-n)-->-->(action-1)(action-1)(action-2)(action-2)……(action-n) (action-n) }}
Example of the corresponding Example of the corresponding propose and operator rulespropose and operator rules
Strengths and Strengths and WeaknessesWeaknesses StrengthsStrengths
– Can be used for production systems and Can be used for production systems and has learning functionality built inhas learning functionality built in
– Mature applicationMature application Constant developmentConstant development Committed usersCommitted users
WeaknessesWeaknesses– Lacks a simple way to interact with the Lacks a simple way to interact with the
user. No “(read)” functionuser. No “(read)” function– Lack of documentation on how to build Lack of documentation on how to build
expert systems with itexpert systems with it
Evaluation for use in CSC/CPE Evaluation for use in CSC/CPE 481481
While there is quite a bit of documentation, it While there is quite a bit of documentation, it mostly covers more complex topics like mostly covers more complex topics like learninglearning– Might be suitable for a high level general ai classMight be suitable for a high level general ai class– No resources online from other institutions that No resources online from other institutions that
have tried teaching Soarhave tried teaching Soar Lacks simple console based i/o and would Lacks simple console based i/o and would
therefore be unsuitable for most of our therefore be unsuitable for most of our homework assignmentshomework assignments
Steep learning curve, compounded by the Steep learning curve, compounded by the lack of simple exampleslack of simple examples
While Soar is extremely powerful, it is not While Soar is extremely powerful, it is not suitable for the purpose of teaching suitable for the purpose of teaching knowledge based systemsknowledge based systems
PrologProlog
OverviewOverview
OverviewOverview HistoryHistory What is Prolog?What is Prolog? Language StructureLanguage Structure How to get startedHow to get started ConclusionConclusion
HistoryHistory
Research began in the late 60s/early 70sResearch began in the late 60s/early 70s Created by scholarsCreated by scholars
– Alain Colmerauer – University of Aix-MarseilleAlain Colmerauer – University of Aix-Marseille– Phillipe Roussel – University of Aix-MarseillePhillipe Roussel – University of Aix-Marseille– Robert Kowalski – University of EdinburghRobert Kowalski – University of Edinburgh
Both interpreted and compiledBoth interpreted and compiled Very popular in Europe and JapanVery popular in Europe and Japan
– Used in ICOT Fifth Generation Computer Used in ICOT Fifth Generation Computer Systems InitiativeSystems Initiative
What is Prolog?What is Prolog?
Short for Programmable LogicShort for Programmable Logic A kind of theorem proving frameworkA kind of theorem proving framework
– Allows functions and procedures as wellAllows functions and procedures as well– Performs deductions in a goal-oriented mannerPerforms deductions in a goal-oriented manner
An alternative to Lisp-based languagesAn alternative to Lisp-based languages– JessJess– CLIPSCLIPS
Very versatileVery versatile
Language StructureLanguage Structure
Composed of facts, rules, and queriesComposed of facts, rules, and queries– Facts and rules are specified in an input fileFacts and rules are specified in an input file– Facts can take a variety of formsFacts can take a variety of forms
true.true. male('Brett').male('Brett'). parent('Brett','Daniel').parent('Brett','Daniel').
– Rules are similar to Jess/CLIPS rulesRules are similar to Jess/CLIPS rules ancestor(Anc, Child) :- parent(Anc, Child).ancestor(Anc, Child) :- parent(Anc, Child). father(Anc,Child) :- parent(Anc, Child),father(Anc,Child) :- parent(Anc, Child),
male(Anc). male(Anc).
Language StructureLanguage Structure
Composed of facts, rules and queriesComposed of facts, rules and queries– Queries are run through an interpreterQueries are run through an interpreter– Given above rule/fact base, we can execute Given above rule/fact base, we can execute
queriesqueries ?- father('Brett','Daniel'). //Is Brett the father of Daniel??- father('Brett','Daniel'). //Is Brett the father of Daniel?
– YesYes ?- father('Daniel','Brett'). //Is Daniel the father of Brett??- father('Daniel','Brett'). //Is Daniel the father of Brett?
– NoNo ?- father('Brett',X). //Of who is Brett the father??- father('Brett',X). //Of who is Brett the father?
X = 'Daniel'.X = 'Daniel'. ?- father(X,Y). //List all the father relationships here?- father(X,Y). //List all the father relationships here
X = 'Brett',X = 'Brett',Y = 'Daniel'.Y = 'Daniel'.
Getting StartedGetting Started
Many public implementationsMany public implementations– SWI-Prolog (interpreted)SWI-Prolog (interpreted)– gprolog (compiled)gprolog (compiled)
SWI-Prolog is well supported across multiple SWI-Prolog is well supported across multiple platformsplatforms– Windows and Linux versions work wellWindows and Linux versions work well
Write a rule file, load it in, and start Write a rule file, load it in, and start querying!querying!– [filename] //loads a rule file[filename] //loads a rule file– halt. //exitshalt. //exits
ConclusionConclusion
Prolog is a well-supported alternative to Prolog is a well-supported alternative to CLIPS/JessCLIPS/Jess
Capable of complex problem solvingCapable of complex problem solving– Queries provide goal-based deductionQueries provide goal-based deduction
Structure may be more familiar to those Structure may be more familiar to those not familiar with LISPnot familiar with LISP
Would be a great alternative for CLIPS or Would be a great alternative for CLIPS or Jess for classroom assignmentsJess for classroom assignments– Family Tree, etc.Family Tree, etc.
DemoDemo
Project ConclusionsProject Conclusions
There are many expert system tools availableThere are many expert system tools available– Very few are of high qualityVery few are of high quality
The most important thing for learning is a wide variety The most important thing for learning is a wide variety of web recourses of web recourses – Functionality is not as important as good supportFunctionality is not as important as good support
We recommend Prolog be introduced in classWe recommend Prolog be introduced in class– We found that Prolog is suitable to be used for 481 We found that Prolog is suitable to be used for 481
assignmentsassignments We hope that our documentation will be used by We hope that our documentation will be used by
others that are interested in this topicothers that are interested in this topic– Power point presentations could be incorporated into Power point presentations could be incorporated into
existing lecturesexisting lectures– Prolog family knowledge base could be used as an Prolog family knowledge base could be used as an
example for students learning Prologexample for students learning Prolog
Questions?Questions?