expert system development tools sean lydon daniel nelson emily schwarz

27
Expert System Expert System Development Tools Development Tools Sean Lydon Sean Lydon Daniel Nelson Daniel Nelson Emily Schwarz Emily Schwarz

Upload: janice-bell

Post on 31-Dec-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Expert System Development Tools Sean Lydon Daniel Nelson Emily Schwarz

Expert System Expert System Development ToolsDevelopment Tools

Sean LydonSean Lydon

Daniel NelsonDaniel Nelson

Emily SchwarzEmily Schwarz

Page 2: Expert System Development Tools Sean Lydon Daniel Nelson Emily Schwarz

OverviewOverview

MotivationMotivation DeliverablesDeliverables MethodologyMethodology ResultsResults SOARSOAR PrologProlog DemoDemo Final ConclusionsFinal Conclusions QuestionsQuestions

Page 3: Expert System Development Tools Sean Lydon Daniel Nelson Emily Schwarz

MotivationMotivation

JESS and CLIPS unsupportedJESS and CLIPS unsupported Cool idea to present new materialCool idea to present new material General interestGeneral interest

Page 4: Expert System Development Tools Sean Lydon Daniel Nelson Emily Schwarz

DeliverablesDeliverables

Big DocumentBig Document PresentationsPresentations Example Assignment (tutorial)Example Assignment (tutorial)

Page 5: Expert System Development Tools Sean Lydon Daniel Nelson Emily Schwarz

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

Page 6: Expert System Development Tools Sean Lydon Daniel Nelson Emily Schwarz

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

Page 7: Expert System Development Tools Sean Lydon Daniel Nelson Emily Schwarz

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

Page 8: Expert System Development Tools Sean Lydon Daniel Nelson Emily Schwarz

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

Page 9: Expert System Development Tools Sean Lydon Daniel Nelson Emily Schwarz

SoarSoar

Page 10: Expert System Development Tools Sean Lydon Daniel Nelson Emily Schwarz

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

Page 11: Expert System Development Tools Sean Lydon Daniel Nelson Emily Schwarz

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

Page 12: Expert System Development Tools Sean Lydon Daniel Nelson Emily Schwarz
Page 13: Expert System Development Tools Sean Lydon Daniel Nelson Emily Schwarz

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) }}

Page 14: Expert System Development Tools Sean Lydon Daniel Nelson Emily Schwarz

Example of the corresponding Example of the corresponding propose and operator rulespropose and operator rules

Page 15: Expert System Development Tools Sean Lydon Daniel Nelson Emily Schwarz

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

Page 16: Expert System Development Tools Sean Lydon Daniel Nelson Emily Schwarz

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

Page 17: Expert System Development Tools Sean Lydon Daniel Nelson Emily Schwarz

PrologProlog

Page 18: Expert System Development Tools Sean Lydon Daniel Nelson Emily Schwarz

OverviewOverview

OverviewOverview HistoryHistory What is Prolog?What is Prolog? Language StructureLanguage Structure How to get startedHow to get started ConclusionConclusion

Page 19: Expert System Development Tools Sean Lydon Daniel Nelson Emily Schwarz

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

Page 20: Expert System Development Tools Sean Lydon Daniel Nelson Emily Schwarz

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

Page 21: Expert System Development Tools Sean Lydon Daniel Nelson Emily Schwarz

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).

Page 22: Expert System Development Tools Sean Lydon Daniel Nelson Emily Schwarz

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'.

Page 23: Expert System Development Tools Sean Lydon Daniel Nelson Emily Schwarz

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

Page 24: Expert System Development Tools Sean Lydon Daniel Nelson Emily Schwarz

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.

Page 25: Expert System Development Tools Sean Lydon Daniel Nelson Emily Schwarz

DemoDemo

Page 26: Expert System Development Tools Sean Lydon Daniel Nelson Emily Schwarz

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

Page 27: Expert System Development Tools Sean Lydon Daniel Nelson Emily Schwarz

Questions?Questions?