Expert system: Difference between revisions
(using an external editor) |
|||
(24 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{Incomplete}} | |||
== Definition == | == Definition == | ||
Line 5: | Line 5: | ||
'''Expert systems''' are a kind of computer software that is able to solve certain kinds of problems. | '''Expert systems''' are a kind of computer software that is able to solve certain kinds of problems. | ||
In education, '''expert systems''' are used in [[intelligent tutoring system]]s, [[intelligent learning environment]]s, [[ | In education, '''expert systems''' are used in various kinds of [[artificial intelligence and education]] projects, e.g. [[intelligent tutoring system]]s, [[intelligent learning environment]]s, [[adaptive hypertext]] systems. They are also in use as a kind of [[simulation]]. | ||
See also: [[artificial intelligence]] (expert systems are one of its subfields) | |||
== Definition by an example == | == Definition by an example == | ||
Most expert systems are rule based. Let's explain how this works with an example taken from a [http://tecfa.unige.ch/tecfa/publicat/dil-papers/CBT-UK.pdf text] by young Pierre Dillenbourg (1994). | Most expert systems are [[production system|rule based]]. Let's explain how this works with an example taken from a [http://tecfa.unige.ch/tecfa/publicat/dil-papers/CBT-UK.pdf text] by young Pierre Dillenbourg (1994). | ||
Let us imagine that the travel agency trainee has to solve the following problem: | Let us imagine that the travel agency trainee has to solve the following problem: | ||
Problem 22 | |||
Mr Hubert wants to go from Geneva to Igloolik, Canada. | |||
His is member of the frequent flyer programme of Swissair | |||
Departure: 1.04.95 Return: 10.05.95 | |||
The standard way to do support interactions about this problem would be to store the solution: | The standard way to do support interactions about this problem would be to store the solution: | ||
Solution 22 | |||
Flight SR434 Geneva - Zurich 1.04.94 9 H 40 | |||
Flight SR121 Zurich - Ottawa 1.04.94 11 H 45 | |||
Flight AC101 Ottawa - Frobisher 2.04.94 9 H 30 | |||
Flight AC123 Frobisher-Igloolik 2.04.94 16 H 20 | |||
... | |||
Another approach is to AI techniques to model the reasoning process which led to that solution. Knowledge modelling techniques decompose the reasoning process into numerous intermediate steps or decisions. The knowledge necessary for each step or decision is generally expressed as an 'IF-THEN' rule. Here are a few examples of rules that could be used for solving the problem presented above: | Another approach is to AI techniques to model the reasoning process which led to that solution. Knowledge modelling techniques decompose the reasoning process into numerous intermediate steps or decisions. The knowledge necessary for each step or decision is generally expressed as an 'IF-THEN' rule. Here are a few examples of rules that could be used for solving the problem presented above: | ||
Line 42: | Line 44: | ||
By decomposing the expertise into fragments, we also decompose the reasoning into intermediate steps. These steps constitute the 'solution path'. The main advantage is that the system can interact about any of these steps: Zurich - Ottawa - Frobisher. For instance, if the learner selects Toronto instead of Ottawa, the system may ask the learner to justify his choice or may present the reasons why it selected Ottawa. | By decomposing the expertise into fragments, we also decompose the reasoning into intermediate steps. These steps constitute the 'solution path'. The main advantage is that the system can interact about any of these steps: Zurich - Ottawa - Frobisher. For instance, if the learner selects Toronto instead of Ottawa, the system may ask the learner to justify his choice or may present the reasons why it selected Ottawa. | ||
The second advantage of AI techniques is that the system can explain its solution. In general, the explanation is the sequence of rules which have been used by the expert to reach the solution (the 'trace' of its reasoning). | The second advantage of AI techniques is that the system can explain its solution. In general, the explanation is the sequence of rules which have been used by the expert to reach the solution (the 'trace' of its reasoning). | ||
== Software and Formats == | |||
Expert systems can be built with special purpose software kits, or embedded libraries or (rarely) from scratch. Many systems existed in the late eighties and early nineties. Today there seems to be less variety. | |||
=== Expert system shells === | |||
* [http://clipsrules.sourceforge.net/ CLIPS] A popular tool for building expert systems (Unix, PC, Mac). | |||
** {{quotation|CLIPS is a productive development and delivery expert system tool which provides a complete environment for the construction of rule and/or object based expert systems. Created in 1985, CLIPS is now widely used throughout the government, industry, and academia.}} ([http://clipsrules.sourceforge.net/WhatIsCLIPS.html]) | |||
** CLIPS is written in C and can be embedded within procedural code, called as a subroutine, and integrated with languages such as C, Java, FORTRAN and ADA. There exist several related systems, e.g. JESS or [http://en.wikipedia.org/wiki/D3web D3web] | |||
** [http://en.wikipedia.org/wiki/CLIPS CLIPS] (Wikipedia) | |||
* [http://www.jessrules.com/ JESS] is a rule engine for the Java platform derived from CLIPS. The project is well alive and popular. JESS has been interfaced to web applications. Free for academic use. | |||
** [http://en.wikipedia.org/wiki/Jess_programming_language Jess] (Wikipedia) | |||
* [http://d3web.sourceforge.net/ d3web] is a Java-based prototyping and development toolkit for distributed knowledge systems. It includes the knowledge modelling environment KnowME, a visual knowledge acquisition, evaluation, and management tool. Claims are made that this system could be used for [[problem-based learning]] (last updated 2008). | |||
** [http://www.is.informatik.uni-wuerzburg.de/forschung/anwendungen/d3web/ d3web], home page Universität Würzburg | |||
* [http://lisa.sourceforge.net/ The Lisa Project] is a platform for the development of Lisp-based Intelligent Software Agents. Lisa is a production-rule system implemented in the Common [[LISP]] Object System (CLOS), and is heavily influenced by CLIPS and the Java Expert System Shell (JESS). | |||
* [http://earnestai.sourceforge.net/ Earnest AI] is a simple PHP-MYSQL expert system, seems to make use of three SQL tables that you will have to populate. (Alpha in June 2010, not tested). | |||
* [http://www.jboss.org/drools/ Drools 5 - The Business Logic integration Platform] provides a unified and integrated platform for Rules, Workflow and Event Processing. | |||
** [http://www.jboss.org/drools/drools-expert.html Drools Expert] (code examples) | |||
** [http://www.jboss.com/products/platforms/brms/ JBoss Enterprise BRMS] | |||
** [http://en.wikipedia.org/wiki/Drools Drools] (Wikipedia) | |||
** JBoss Rules is a reasoning engine that includes a forward chaining rule engine based on Drools | |||
* [http://www-01.ibm.com/software/websphere/products/business-rule-management/ WebSphere ILOG Business Rule Management Systems] (IBM) | |||
** [http://www-01.ibm.com/software/websphere/products/business-rule-management/whatis/ What is a BRMS?] (IBM) | |||
* [http://www.cs.umd.edu/projects/shop/ Simple Hierarchical Ordered Planner] (SHOP, JSHOP,SHOP2, JSHOP2). are domain-independent automated-planning systems. They are based on ordered task decomposition, which is a type of Hierarchical Task Network (HTN) planning. | |||
=== Standards === | |||
Most expert systems are implemented with a [[production system]]. Generally, these rule-based systems don't use standardized rule and data formats. However, this may change with the ambitious [[semantic web]] project(s). | |||
* [[Rule Interchange Format]] | |||
* [http://www.omg.org/spec/PRR/index.htm Production Rule Representation (PRR)], V1.0 2009 by the OMG group | |||
== Links == | |||
* [http://en.wikipedia.org/wiki/Expert_system Expert system] (Wikipedia) | |||
* [http://www.aaai.org/AITopics/pmwiki/pmwiki.php/AITopics/ExpertSystems AITopics/ExpertSystems] (Association for the | |||
Advancement of Artificial Intelligence, btw. a good resource site with other AI resources) | |||
** * [http://www.aaai.org/AITopics/pmwiki/pmwiki.php/AITopics/ExpertSystems Expert Systems Technology and Applications] (AAAI.org)] | |||
* [http://www.cs.cmu.edu/afs/cs.cmu.edu/project/ai-repository/ai/html/faqs/ai/expert/part1/faq.html ai-faq/expert/part 1] (as of 2010, last updated 2007). | |||
== References == | == References == | ||
Dillenbourg, P. (1994). The role of artificial intelligence techniques in training software, Paper presented at LEARNTEC 1994. | * Burton, R.R. & Brown, J.S. (1982) An investigation of computer coaching for informal learning activities. In D. Sleeman & J.S. Brown (Eds), Intelligent Tutoring Systems (pp. 201-225). New York: Academic Press. | ||
[http://tecfa.unige.ch/tecfa/publicat/dil-papers/CBT-UK.pdf]. | |||
* Clancey, W.J. (1987) Knowledge-based tutoring: the Guidon Program. Cambridge, Massachusetts: MIT Press. | |||
* Dillenbourg, P. (1994). The role of artificial intelligence techniques in training software, Paper presented at LEARNTEC 1994. [http://tecfa.unige.ch/tecfa/publicat/dil-papers/CBT-UK.pdf PDF]. | |||
* Steels L (1990) Components of Expertise. AI Magazine, vol.11, 2,pp. 28-49. | |||
* Wenger, E. (1987). Artificial Intelligence and Tutoring Systems, Los Altos: Morgan Kaufmann. | |||
[[Category: | [[Category: Artificial intelligence]] |
Latest revision as of 18:42, 10 May 2011
Definition
Expert systems are a kind of computer software that is able to solve certain kinds of problems.
In education, expert systems are used in various kinds of artificial intelligence and education projects, e.g. intelligent tutoring systems, intelligent learning environments, adaptive hypertext systems. They are also in use as a kind of simulation.
See also: artificial intelligence (expert systems are one of its subfields)
Definition by an example
Most expert systems are rule based. Let's explain how this works with an example taken from a text by young Pierre Dillenbourg (1994).
Let us imagine that the travel agency trainee has to solve the following problem:
Problem 22 Mr Hubert wants to go from Geneva to Igloolik, Canada. His is member of the frequent flyer programme of Swissair Departure: 1.04.95 Return: 10.05.95
The standard way to do support interactions about this problem would be to store the solution:
Solution 22 Flight SR434 Geneva - Zurich 1.04.94 9 H 40 Flight SR121 Zurich - Ottawa 1.04.94 11 H 45 Flight AC101 Ottawa - Frobisher 2.04.94 9 H 30 Flight AC123 Frobisher-Igloolik 2.04.94 16 H 20 ...
Another approach is to AI techniques to model the reasoning process which led to that solution. Knowledge modelling techniques decompose the reasoning process into numerous intermediate steps or decisions. The knowledge necessary for each step or decision is generally expressed as an 'IF-THEN' rule. Here are a few examples of rules that could be used for solving the problem presented above:
Rule 12 IF the destination is a remote and unknown place, THEN plan the trip via a major city in the area
Rule 33 IF the local flight is done by a company THEN plan the international flight with this company
Rule 122 IF the customer is part of the frequent flyer programme of a company and if this company has a flight to the customer's destination THEN select a flight with this company
Each of these rules encodes a fragment of expertise. The system reasons by checking the 'IF' part of each rule. If the conditions described in the 'IF' part are matched, the system activates the 'THEN' part of the rules. The rules are general: the term 'a company', 'destination' or 'customer' are instantiated by the data of this problem. Some of these rules may be contradictory for some cases, as the 33 and the 122. The system selects the rules and activates them until the problem is solved. In real systems, the rule syntax is of course more formal than the examples above. The systems based on such a set of rules are generally named, knowledge-based, rule-based systems or expert systems. The system component which selects rules, makes the deductions and updates the problem state is called the inference engine.
By decomposing the expertise into fragments, we also decompose the reasoning into intermediate steps. These steps constitute the 'solution path'. The main advantage is that the system can interact about any of these steps: Zurich - Ottawa - Frobisher. For instance, if the learner selects Toronto instead of Ottawa, the system may ask the learner to justify his choice or may present the reasons why it selected Ottawa.
The second advantage of AI techniques is that the system can explain its solution. In general, the explanation is the sequence of rules which have been used by the expert to reach the solution (the 'trace' of its reasoning).
Software and Formats
Expert systems can be built with special purpose software kits, or embedded libraries or (rarely) from scratch. Many systems existed in the late eighties and early nineties. Today there seems to be less variety.
Expert system shells
- CLIPS A popular tool for building expert systems (Unix, PC, Mac).
- “CLIPS is a productive development and delivery expert system tool which provides a complete environment for the construction of rule and/or object based expert systems. Created in 1985, CLIPS is now widely used throughout the government, industry, and academia.” ([1])
- CLIPS is written in C and can be embedded within procedural code, called as a subroutine, and integrated with languages such as C, Java, FORTRAN and ADA. There exist several related systems, e.g. JESS or D3web
- CLIPS (Wikipedia)
- JESS is a rule engine for the Java platform derived from CLIPS. The project is well alive and popular. JESS has been interfaced to web applications. Free for academic use.
- Jess (Wikipedia)
- d3web is a Java-based prototyping and development toolkit for distributed knowledge systems. It includes the knowledge modelling environment KnowME, a visual knowledge acquisition, evaluation, and management tool. Claims are made that this system could be used for problem-based learning (last updated 2008).
- d3web, home page Universität Würzburg
- The Lisa Project is a platform for the development of Lisp-based Intelligent Software Agents. Lisa is a production-rule system implemented in the Common LISP Object System (CLOS), and is heavily influenced by CLIPS and the Java Expert System Shell (JESS).
- Earnest AI is a simple PHP-MYSQL expert system, seems to make use of three SQL tables that you will have to populate. (Alpha in June 2010, not tested).
- Drools 5 - The Business Logic integration Platform provides a unified and integrated platform for Rules, Workflow and Event Processing.
- Drools Expert (code examples)
- JBoss Enterprise BRMS
- Drools (Wikipedia)
- JBoss Rules is a reasoning engine that includes a forward chaining rule engine based on Drools
- Simple Hierarchical Ordered Planner (SHOP, JSHOP,SHOP2, JSHOP2). are domain-independent automated-planning systems. They are based on ordered task decomposition, which is a type of Hierarchical Task Network (HTN) planning.
Standards
Most expert systems are implemented with a production system. Generally, these rule-based systems don't use standardized rule and data formats. However, this may change with the ambitious semantic web project(s).
- Rule Interchange Format
- Production Rule Representation (PRR), V1.0 2009 by the OMG group
Links
- Expert system (Wikipedia)
- AITopics/ExpertSystems (Association for the
Advancement of Artificial Intelligence, btw. a good resource site with other AI resources)
- * Expert Systems Technology and Applications (AAAI.org)]
- ai-faq/expert/part 1 (as of 2010, last updated 2007).
References
- Burton, R.R. & Brown, J.S. (1982) An investigation of computer coaching for informal learning activities. In D. Sleeman & J.S. Brown (Eds), Intelligent Tutoring Systems (pp. 201-225). New York: Academic Press.
- Clancey, W.J. (1987) Knowledge-based tutoring: the Guidon Program. Cambridge, Massachusetts: MIT Press.
- Dillenbourg, P. (1994). The role of artificial intelligence techniques in training software, Paper presented at LEARNTEC 1994. PDF.
- Steels L (1990) Components of Expertise. AI Magazine, vol.11, 2,pp. 28-49.
- Wenger, E. (1987). Artificial Intelligence and Tutoring Systems, Los Altos: Morgan Kaufmann.