Expert System Development Tools Sean Lydon Daniel Nelson Emily Schwarz.

Slides:



Advertisements
Similar presentations
ARTIFICIAL INTELLIGENCE [INTELLIGENT AGENTS PARADIGM] Professor Janis Grundspenkis Riga Technical University Faculty of Computer Science and Information.
Advertisements

Chapter 12: Expert Systems Design Examples
Visual Web Information Extraction With Lixto Robert Baumgartner Sergio Flesca Georg Gottlob.
1 Lecture 1  Getting ready to program  Hardware Model  Software Model  Programming Languages  The C Language  Software Engineering  Programming.
Knowledge Acquisition CIS 479/579 Bruce R. Maxim UM-Dearborn.
Programming Languages Structure
ISBN Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.
SIMULATION. Simulation Definition of Simulation Simulation Methodology Proposing a New Experiment Considerations When Using Computer Models Types of Simulations.
Sadegh Aliakbary Sharif University of Technology Fall 2011.
Introduction COMP104: Fundamentals and Methodology.
Chapter 9 Database Planning, Design, and Administration Sungchul Hong.
CSC300 Visual Programming Dr. Craig Reinhart. Objectives Teach the basics of C++ –You won’t be an expert but hopefully a very good novice –GUI development.
Notes for Chapter 12 Logic Programming The AI War Basic Concepts of Logic Programming Prolog Review questions.
Sadegh Aliakbary Sharif University of Technology Fall 2010.
Database Design - Lecture 2
COSC 2P93 Logic Programming Instructor: Brian Ross Instructor: Brian Ross Texts: Texts: Prolog Programming for Artificial Intelligence,4e, Ivan Bratko,
1 A Simple but Realistic Assembly Language for a Course in Computer Organization Eric Larson Moon Ok Kim Seattle University October 25, 2008.
Chapter 10 Information Systems Analysis and Design
ProLog PROgramming in LOGic. Description of Prolog Prolog stands for PROgramming in LOGic. It is a nonprocedural and declarative language.
Introduction of Geoprocessing Topic 7a 4/10/2007.
CS 390 Unix Programming Summer Unix Programming - CS 3902 Course Details Online Information Please check.
Artificial Intelligence Programming in Prolog Lecture 1: An Introduction 23/09/04.
1 INTEROP WP1: Knowledge Map Michaël Petit (U. of Namur) January 19 th 2004 Updated description of tasks after INTEROP Kickoff Meeting, Bordeaux.
Guide to Programming with Python Chapter One Getting Started: The Game Over Program.
Introduction To PROLOG World view of imperative languages. World view of relational languages. A PROLOG program. Running a PROLOG program. A PROLOG.
P2Pedia A Distributed Wiki Network Management and Artificial Intelligence Laboratory Carleton University Presented by: Alexander Craig May 9 th, 2011.
INTRODUCTION TO COMPUTING CHAPTER NO. 04. Programming Languages Program Algorithms and Pseudo Code Properties and Advantages of Algorithms Flowchart (Symbols.
Control in ATLAS TDAQ Dietrich Liko on behalf of the ATLAS TDAQ Group.
Copyright © 2010 – MICS 2010, Curt Hill Instructor Tools: Test Data Generation Curt Hill Valley City State University.
1 Prolog and Logic Languages Aaron Bloomfield CS 415 Fall 2005.
We will talking about story of JAVA language. By Kristsada Songpartom.
CS4026 Formal Models of Computation Part II The Logic Model Lecture 2 – Prolog: History and Introduction.
Prolog Kyle Marcotte. Outline What is Prolog? Origins of Prolog (History) Basic Tutorial TEST!!! (sort of…actually not really at all) My example Why Prolog?
ES component and structure Dr. Ahmed Elfaig The production system or rule-based system has three main component and subcomponents shown in Figure 1. 1.Knowledge.
JavaScript Defined JavaScript Basics Definitions JavaScript is an object-oriented programming language designed for the world wide web. JavaScript code.
By: Cory Canter CSC 415 Programming Languages. History  Created by Alain Colmerauer, Phillipe Roussel and Robert Kowalski in 1971  Started as a natural.
1 Alex Proctor and Brian Lee for CSCI 431 at UNCA, Fall 2002 ML (Meta Language) a brief introduction Alex Proctor and Brian Lee For CSCI 431 at the University.
WEB 2.0 PATTERNS Carolina Marin. Content  Introduction  The Participation-Collaboration Pattern  The Collaborative Tagging Pattern.
Introduction of Geoprocessing Lecture 9. Geoprocessing  Geoprocessing is any GIS operation used to manipulate data. A typical geoprocessing operation.
CSE 3302 Programming Languages Chengkai Li Spring 2008 Logic Programming: Prolog Lecture 21 – Prolog, Spring CSE3302 Programming Languages, UT-Arlington.
IT System Administration Lesson 3 Dr Jeffrey A Robinson.
Introduction Mehdi Einali Advanced Programming in Java 1.
Logic Programming Dr. Yasser Nada Fall 2010/2011 Lecture 1 1 Logic Programming.
Knowledge Based Information System
Soar Expert System Tools Team W09 Daniel Nelson, Emily Schwarz, and Sean Lydon.
The Prolog Language by Piyabut Thavilthicakul
Introduction of Geoprocessing Lecture 9 3/24/2008.
Knowledge Engineering. Review- Expert System 3 Knowledge Engineering The process of building an expert system: 1.The knowledge engineer establishes a.
Skill Area 311 Part B. Lecture Overview Assembly Code Assembler Format of Assembly Code Advantages Assembly Code Disadvantages Assembly Code High-Level.
Done By :- -Nesreen Basem -Sara nabil -Rawan Prolog Program.
Artificial Intelligence: Applications
Mind Mapping Software: Uses and Benefits for Education.
Prolog CSC 481 Team Project Winter 2009 ES-Tools Team.
INTRO. To I.T Razan N. AlShihabi
PROGRAMMING LANGUAGES
2009: Topics Covered in COSC 6368
PROLOG.
Jeliot 3 Spring 2004 Andrés Moreno García Niko Myller
CSCI/CMPE 3334 Systems Programming
Programming COMP104: Fundamentals and Methodology Introduction.
Computer Programming.
Advanced Programming Fall 2017.
Programming Language Design
Programming Languages 2nd edition Tucker and Noonan
Dr. Yasser Nada Fall 2010/2011 Lecture 1
Von Neumann Architecture
2004: Topics Covered in COSC 6368
BlueJ: a very quick introduction
Programming Languages, Preliminaries, History & Evolution
Chapter 2: Prolog (Introduction and Basic Concepts)
Presentation transcript:

Expert System Development Tools Sean Lydon Daniel Nelson Emily Schwarz

Overview Motivation Motivation Deliverables Deliverables Methodology Methodology Results Results SOAR SOAR Prolog Prolog Demo Demo Final Conclusions Final Conclusions Questions Questions

Motivation JESS and CLIPS unsupported JESS and CLIPS unsupported Cool idea to present new material Cool idea to present new material General interest General interest

Deliverables Big Document Big Document Presentations Presentations Example Assignment (tutorial)‏ Example Assignment (tutorial)‏

Methodology Massive search Massive search Evaluate with basic criteria Evaluate with basic criteria Pick better and evaluate more Pick better and evaluate more Pick best and try assignments Pick best and try assignments Generate materials Generate materials

Methodology Initial criteria Initial criteria –Availability, Cost, Install Docs, Tutorials, Community Secondary criteria Secondary criteria –Usability, Installation Process, Applicability

Results Tons of initial results (32)! Tons of initial results (32)! Narrowed down to 10 Narrowed down to 10 Finial testing of SOAR and Prolog Finial testing of SOAR and Prolog

Results

Soar

Motivation Soar is a unified architecture for developing intelligent systems Soar is a unified architecture for developing intelligent systems Soar’s purpose is to be an architecture that supports all the capabilities required of a general intelligent agent Soar’s purpose is to be an architecture that supports all the capabilities required of a general intelligent agent First developed in 1987 at Carnegie Mellon First developed in 1987 at Carnegie Mellon –Now on version 9.0

Functionality Represents knowledge as objects (structures with multiple attributes)‏ Represents knowledge as objects (structures with multiple attributes)‏ Goal oriented Goal oriented Production rules can be stated explicitly, but are most often broken down into propose rules and operator rules Production rules can be stated explicitly, but are most often broken down into propose rules and operator rules –Propose rules state when an operator should be used –Operator rules perform actions (like modifying working memory)‏ –Operations can be proposed by multiple rules –Eliminates duplication of the RHS of rules. Comes with an editor and a debugger Comes with an editor and a debugger –Both are well fleshed out with a lot of functionality Represents the working memory in a hierarchical manner (as a tree structure)‏ Represents the working memory in a hierarchical manner (as a tree structure)‏ Multiple mechanisms for learning Multiple mechanisms for learning

Example of a production rule General Format General Format sp {rule*name (condition-1)‏(condition-2)‏…(condition-n)‏-->(action-1)‏(action-2)‏…(action-n)}

Example of the corresponding propose and operator rules

Strengths and Weaknesses Strengths Strengths –Can be used for production systems and has learning functionality built in –Mature application Constant development Constant development Committed users Committed users Weaknesses Weaknesses –Lacks a simple way to interact with the user. No “(read)” function –Lack of documentation on how to build expert systems with it

Evaluation for use in CSC/CPE 481 While there is quite a bit of documentation, it mostly covers more complex topics like learning While there is quite a bit of documentation, it mostly covers more complex topics like learning –Might be suitable for a high level general ai class –No resources online from other institutions that have tried teaching Soar Lacks simple console based i/o and would therefore be unsuitable for most of our homework assignments Lacks simple console based i/o and would therefore be unsuitable for most of our homework assignments Steep learning curve, compounded by the lack of simple examples Steep learning curve, compounded by the lack of simple examples While Soar is extremely powerful, it is not suitable for the purpose of teaching knowledge based systems While Soar is extremely powerful, it is not suitable for the purpose of teaching knowledge based systems

Prolog

Overview Overview Overview History History What is Prolog? What is Prolog? Language Structure Language Structure How to get started How to get started Conclusion Conclusion

History Research began in the late 60s/early 70s Research began in the late 60s/early 70s Created by scholars Created by scholars –Alain Colmerauer – University of Aix-Marseille –Phillipe Roussel – University of Aix-Marseille –Robert Kowalski – University of Edinburgh Both interpreted and compiled Both interpreted and compiled Very popular in Europe and Japan Very popular in Europe and Japan –Used in ICOT Fifth Generation Computer Systems Initiative

What is Prolog? Short for Programmable Logic Short for Programmable Logic A kind of theorem proving framework A kind of theorem proving framework –Allows functions and procedures as well –Performs deductions in a goal-oriented manner An alternative to Lisp-based languages An alternative to Lisp-based languages –Jess –CLIPS Very versatile Very versatile

Language Structure Composed of facts, rules, and queries Composed of facts, rules, and queries –Facts and rules are specified in an input file –Facts can take a variety of forms true. true. male('Brett'). male('Brett'). parent('Brett','Daniel'). parent('Brett','Daniel'). –Rules are similar to Jess/CLIPS rules ancestor(Anc, Child) :- parent(Anc, Child). ancestor(Anc, Child) :- parent(Anc, Child). father(Anc,Child) :- parent(Anc, Child), male(Anc). father(Anc,Child) :- parent(Anc, Child), male(Anc).

Language Structure Composed of facts, rules and queries Composed of facts, rules and queries –Queries are run through an interpreter –Given above rule/fact base, we can execute queries ?- father('Brett','Daniel'). //Is Brett the father of Daniel? ?- father('Brett','Daniel'). //Is Brett the father of Daniel? –Yes ?- father('Daniel','Brett'). //Is Daniel the father of Brett? ?- father('Daniel','Brett'). //Is Daniel the father of Brett? –No ?- father('Brett',X). //Of who is Brett the father? X = 'Daniel'. ?- father('Brett',X). //Of who is Brett the father? X = 'Daniel'. ?- father(X,Y). //List all the father relationships here X = 'Brett', Y = 'Daniel'. ?- father(X,Y). //List all the father relationships here X = 'Brett', Y = 'Daniel'.

Getting Started Many public implementations Many public implementations –SWI-Prolog (interpreted)‏ –gprolog (compiled)‏ SWI-Prolog is well supported across multiple platforms SWI-Prolog is well supported across multiple platforms –Windows and Linux versions work well Write a rule file, load it in, and start querying! Write a rule file, load it in, and start querying! –[filename] //loads a rule file –halt. //exits

Conclusion Prolog is a well-supported alternative to CLIPS/Jess Prolog is a well-supported alternative to CLIPS/Jess Capable of complex problem solving Capable of complex problem solving –Queries provide goal-based deduction Structure may be more familiar to those not familiar with LISP Structure may be more familiar to those not familiar with LISP Would be a great alternative for CLIPS or Jess for classroom assignments Would be a great alternative for CLIPS or Jess for classroom assignments –Family Tree, etc.

Demo

Project Conclusions There are many expert system tools available There are many expert system tools available –Very few are of high quality The most important thing for learning is a wide variety of web recourses The most important thing for learning is a wide variety of web recourses –Functionality is not as important as good support We recommend Prolog be introduced in class We recommend Prolog be introduced in class –We found that Prolog is suitable to be used for 481 assignments We hope that our documentation will be used by others that are interested in this topic We hope that our documentation will be used by others that are interested in this topic –Power point presentations could be incorporated into existing lectures –Prolog family knowledge base could be used as an example for students learning Prolog

Questions?