Examine individual changes
Appearance
This page allows you to examine the variables generated by the Edit Filter for an individual change.
Variables generated for this change
Variable | Value |
---|---|
Edit count of the user (user_editcount ) | null |
Name of the user account (user_name ) | '103.28.241.114' |
Age of the user account (user_age ) | 0 |
Groups (including implicit) the user is in (user_groups ) | [
0 => '*'
] |
Page ID (page_id ) | 10136 |
Page namespace (page_namespace ) | 0 |
Page title without namespace (page_title ) | 'Expert system' |
Full page title (page_prefixedtitle ) | 'Expert system' |
Last ten users to contribute to the page (page_recent_contributors ) | [
0 => 'Mild Bill Hiccup',
1 => 'Fraggle81',
2 => '58.69.184.173',
3 => 'Rjwilmsi',
4 => 'Pine',
5 => '124.43.218.58',
6 => '165.230.129.44',
7 => 'Pinethicket',
8 => '85.247.232.175',
9 => '134.220.84.46'
] |
Action (action ) | 'edit' |
Edit summary/reason (summary ) | '' |
Whether or not the edit is marked as minor (no longer in use) (minor_edit ) | false |
Old page wikitext, before the edit (old_wikitext ) | 'In [[artificial intelligence]], an '''expert system''' is a computer system that emulates the decision-making ability of a human expert.<ref name="Jackson1998">{{Citation
| title = Introduction To Expert Systems
| year = 1998
| publisher = Addison Wesley
| edition = 3
| author = Jackson, Peter
| isbn = 978-0-201-87686-4
| page = 2
}}</ref> Expert systems are designed to solve complex problems by reasoning about knowledge, like an expert, and not by following the [[Procedural programming|procedure]] of a [[Developer (software)|developer]] as is the case in conventional programming.<ref>[http://www.hrmars.com/admin/pics/261.pdf Nwigbo Stella and Agbo Okechuku Chuks], School of Science Education, Expert system: a catalyst in educational development in Nigeria: "''The ability of this system to explain the reasoning process through back-traces (...) provides an additional feature that conventional programming does not handle''"</ref><ref>[http://www.cogentex.com/papers/explanation-iwnlg98.pdf Regina Barzilay, Daryl McCullough, Owen Rambow, Jonathan DeCristofaro, Tanya Korelsky, Benoit Lavoie]: "A new approach to expert system explanations"</ref><ref>[http://www.pcmag.com/encyclopedia_term/0,2542,t=conventional+programming&i=40325,00.asp Conventional programming]</ref> The first expert systems were created in the 1970s and then proliferated in the 1980s.<ref name="durkinhistory">{{cite book| author = Cornelius T. Leondes| title = Expert systems: the technology of knowledge management and decision making for the 21st century| year = 2002| isbn = 978-0-12-443880-4| pages = 1–22 }}</ref> Expert systems were among the first truly successful forms of [[Artificial Intelligence|AI]] software.{{Sfn|ACM|1998|loc=I.2.1}}{{sfn|Russell|Norvig|2003|pp=22−24}}{{sfn|Luger|Stubblefield|2004|pp=227–331}}{{sfn|Nilsson|1998|loc=chpt. 17.4}}{{sfn|McCorduck|2004|pp=327–335, 434–435}}{{sfn|Crevier|1993|pp=145–62, 197−203}}
An expert system has a unique structure, different from traditional [[computer programming]]. It is divided into two parts, one fixed, independent of the expert system: the inference engine, and one variable: the knowledge base. To run an expert system, the engine reasons about the knowledge base like a human.<ref>[http://www.hrmars.com/admin/pics/261.pdf Nwigbo Stella and Agbo Okechuku Chuks], School of Science Education, Expert system: a catalyst in educational development in Nigeria: "''Knowledge-based systems collect the small fragments of human know-how into a knowledge-base which is used to reason through a problem, using the knowledge that is appropriated''"</ref> In the 80s a third part appeared: a dialog [[Interface (computing)|interface]] to communicate with users.<ref>{{cite doi|10.1109/60.4202}}</ref> This ability to conduct a conversation with users was later called "[[Conversational Programming System|conversational]]".<ref>{{Cite doi|10.1145/505282.505285}}</ref><ref>{{cite doi|10.1109/64.153464}}</ref>
==History==
Expert systems were introduced by researchers in the [[Stanford Heuristic Programming Project]], including the "father of expert systems" with the [[Dendral]] and [[Mycin]] systems. Principal contributors to the technology were [[Bruce Buchanan]], [[Edward Shortliffe]], [[Randall Davis]], [[William vanMelle]], [[Carli Scott]] and others at [[Stanford]]. Expert systems were among the first truly successful forms of [[Artificial Intelligence|AI]] software.{{Sfn|ACM|1998|loc=I.2.1}}{{sfn|Russell|Norvig|2003|pp=22−24}}{{sfn|Luger|Stubblefield|2004|pp=227–331}}{{sfn|Nilsson|1998|loc=chpt. 17.4}}{{sfn|McCorduck|2004|pp=327–335, 434–435}}{{sfn|Crevier|1993|pp=145–62, 197−203}}
Research is also very active in France, where researchers focused on the automation of reasoning and logic engines. The French [[Prolog]] computer language, designed in 1972, marks a real advance over expert systems like Dendral or Mycin: it is a [[Shell (computing)|shell]],<ref>George F. Luger and William A. Stubblefield, Benjamin/Cummings Publishers, Rule Based Expert System Shell: example of code using the Prolog rule based expert system shell</ref> that is to say, a software structure ready to receive any expert system and to run it. Prolog has an integrated inference engine using [[First-order logic|First-Order logic]], with rules and facts. Prolog is a tool for mass production of expert systems and was the first operational [[declarative language]],<ref>[http://promethee.philo.ulg.ac.be/engdep1/download/prolog/htm_docs/prolog.htm A. MICHIELS], Université de Liège, Belgique: "PROLOG, the first declarative language</ref> later becoming the best selling AI language in the world.<ref>[http://www.prenhall.com/divisions/bp/app/turban/dss/html/chap16.html Carnegie Mellon University's AI Web Site]: "Prolog was the most popular AI language in Japan and probably in Europe"</ref> However Prolog is not particularly user friendly and incorporates [[Horn Logic]], which is an order of logic away from human logic.<ref>[http://www.proceedings2007.imcsit.org/pliks/33.pdf Ivana Berković, Biljana Radulović and Petar Hotomski], University of Novi Sad, 2007, Extensions of Deductive Concept in Logic Programing and Some Applications: "''the defects of PROLOG-system: the expansion concerning Horn clauses, escaping negation treatment as definite failure''"</ref><ref>"Software developed in Prolog has been criticized for having a high performance penalty compared to conventional programming languages"</ref><ref>[http://www.softpanorama.org/Lang/prolog.shtml Dr. Nikolai Bezroukov], Softpanorama: "I think that most people exposed to Prolog remember strongly the initial disappointment. Language was/is so hyped but all you can see initially are pretty trivial examples that are solved by complex, obscure notation that lacks real expressive power: some of simple examples can be expressed no less concisely is many other languages"</ref>
In the 1980s, expert systems proliferated as they were recognized as practical tools for solving real-world problems. Universities offered expert system courses and two thirds of the [[Fortune 1000]] companies applied the technology in daily business activities.<ref name=durkinhistory/><ref>Durkin, J. Expert Systems: Catalog of Applications. Intelligent Computer Systems, Inc., Akron, OH, 1993.</ref> Interest was international with the [[Fifth Generation Computer Systems project]] in Japan and increased research funding in Europe. Growth in the field continued into the 1990s.
In 1981 the first [[IBM PC]] was introduced, with [[MS-DOS]] operating system. Its low price started to multiply users and opened a new market for computing and expert systems. In the 80's the image of AI was very good and people believed it would succeed within a short time.
The development of expert systems was aided by the development of the symbolic processing languages [[Lisp (programming language)|Lisp]] and [[Prolog]]. To avoid [[re-inventing the wheel]], expert system shells were created that had more specialized features for building large expert systems.<ref>page 21. Giarratano & Riley, 3rd ed.</ref>
Many companies began to market expert systems shells, some commercial developments of tools from universities, others written by venture capital backed startup companies. These claimed to allow rules to be written in plain language and thus, theoretically, allowed expert systems to be written without programming language expertise. The best known tools were Guru (USA inspired by Emycin), Personal Consultant Plus (USA), Nexpert Object (developed by Neuron Data, company founded in California by three French), Genesia (developed by French public company Electricité de France and marketed by Steria), VP Expert (USA), Xi (developed by Expertech, UK) and Crystal (developed by Intelligent Environments, UK).
Some of these included rule induction tools which they called 'generators', which theoretically allowed the production of rules by no experts based on raw data.
But eventually the tools were only used in research projects and feasibility studies. They did not show commercial value in the business market, showing that AI technology was not mature.
In 1986, a new expert system generator for PCs appeared on the market, derived from the French academic research: Intelligence Service,<ref>[http://cat.inist.fr/?aModele=afficheN&cpsidt=7001328 Flamant B. and Girard G]., GSI-TECSI, Intelligence Service: build your own expert system : "''Intelligence Service is a development environment for expert systems that requires no experience of classic programming that offers to everyone the opportunity to develop its own expert system''"</ref><ref>[http://www.tree-logic.com/Articles/01,%20seul%20IS%20fait%20de%20l'IA,%20par%20un%20universitaire.jpg Bertrand Savatier], Le Monde Informatique, November 23, 1987: "Expert systems accessible to all"</ref> sold by GSI-TECSI software company. This software had a radical innovation: it used [[propositional logic]] ("[[Zeroth order logic]]") to execute expert systems, reasoning on a [[knowledge base]] written with everyday language rules, producing explanations and detecting logic contradictions between the facts. It was the first tool showing the AI defined by Edward Feigenbaum in his book about the Japanese [[Fifth Generation Project]], [http://www.atarimagazines.com/creative/v10n8/103_The_fifth_generation_Jap.php Artificial Intelligence and Japan's Computer Challenge to the World] (1983): "''The machines will have reasoning power: they will automatically engineer vast amounts of knowledge to serve whatever purpose humans propose, from medical diagnosis to product design, from management decisions to education''", "''The reasoning animal has, perhaps inevitably, fashioned the reasoning machine''", "''the reasoning power of these machines matches or exceeds the reasoning power of the humans who instructed them and, in some cases, the reasoning power of any human performing such tasks''". Intelligence Service was in fact "Pandora" (1985),<ref>[http://www.tree-logic.com/scienceetvie.htm Jean-Philippe de Lespinay], Science et Vie, "From total zero to Zero Plus [logic]", May 1991</ref> a software system developed for their thesis by two academic students of Jean-Louis Laurière,<ref>[http://www.lip6.fr/actualite/information-fiche.php?RECORD_KEY(informations)=id&id(informations)=18 Death of Jean-Louis Laurière]</ref> one of the most famous and prolific French AI researchers.<ref>Journey "[http://www.lip6.fr/Laboratoire/2006-03-22/2006-03-22-Affiche.pdf In honor of Jean-Louis Laurière]", Université Pierre et Marie Curie in Paris (March 22, 2006)</ref> Unfortunately, as this software was not developed by its own IT developers, GSI-TECSI was unable to make it evolve. Sales became scarce and marketing stopped after a few years.
== Software architecture ==
=== The rule base or knowledge base ===
In expert system technology, the knowledge base is expressed with [[natural language]] rules IF ... THEN ... For examples :
* "IF it is living THEN it is mortal"
* "IF his age = known THEN his year of birth = current year - his age in years"
* "''IF the identity of the germ is not known with certainty AND the germ is gram-positive AND the morphology of the organism is "rod" AND the germ is aerobic THEN there is a strong probability (0.8) that germ is of type enterobacteriacae''"<ref>[[Mycin]] rule</ref>
This formulation has the advantage of speaking in everyday language which is very rare in [[computer science]] (a classic program is coded). Rules express the knowledge to be exploited by the expert system. There exist other formulations of rules, which are not in everyday language, understandable only to computer scientists. Each rule style is adapted to an engine style.
=== The inference engine ===
The inference engine is a computer program designed to produce a reasoning on rules. In order to produce a reasoning, it should be based on [[logic]]. There are several kinds of logic: [[propositional logic]], [[Predicate logic|predicates of order 1]] or more, [[epistemic logic]], [[modal logic]], [[temporal logic]], [[fuzzy logic]], [[probabilistic logic]] (implemented in a [[Bayesian network]]), etc. Propositional logic is the basic human logic, that is expressed in [[syllogism]]s. The expert system that uses that logic is also called a [[Zeroth-order logic|zeroth-order]] expert system. With logic, the engine is able to generate new information from the knowledge contained in the rule base and data to be processed.
The engine has two ways to run: batch or conversational. In batch, the expert system has all the necessary data to process from the beginning. For the user, the program works as a classical program: he provides data and receives results immediately. Reasoning is invisible. The conversational method becomes necessary when the developer knows he cannot ask the user for all the necessary data at the start, the problem being too complex. The software must "invent" the way to solve the problem, request the missing data from the user, gradually approaching the goal as quickly as possible. The result gives the impression of a dialogue led by an expert. To guide a dialogue, the engine may have several levels of sophistication: "[[forward chaining]]", "[[backward chaining]]" and "[[mixed chaining]]". Forward chaining is the questioning of an expert who has no idea of the solution and investigates progressively (e.g. fault diagnosis). In backward chaining, the engine has an idea of the target (e.g. is it okay or not? Or: there is danger but what is the level?). It starts from the goal in hopes of finding the solution as soon as possible. In mixed chaining the engine has an idea of the goal but it is not enough: it deduces in forward chaining from previous user responses all that is possible before asking the next question. So quite often he deduces the answer to the next question before asking it.
A strong interest in using logic is that this kind of software is able to give the user clear explanation of what it is doing (the "Why?") and what it has deduced (the "How?" ). Better yet, thanks to logic, the most sophisticated expert systems are able to detect contradictions<ref>[http://www.ccis2k.org/iajit/PDF/vol.4,no.1/9-Nabil.pdf Nabil Arman], Polytechnic University of Palestine, January 2007, Fault Detection in Dynamic Rule Bases Using Spanning Trees and Disjoin Sets: ""</ref> in user information or in the knowledge and can explain them clearly, revealing at the same time the expert's knowledge and way of thinking.
== Advantages ==
{{unreferenced section|date=November 2011}}
{{cleanup-rewrite|section|date=December 2011}}
===Quick availability and opportunity to program itself===
As the rule base is in everyday language (the engine is untouchable), expert system can be written much faster than a conventional program, by users or experts, bypassing professional developers and avoiding the need to explain the subject.
=== Ability to exploit a considerable amount of knowledge ===
The expert system uses a rule base, unlike conventional programs, which means that the volume of knowledge to program is not a major concern. Whether the rule base has 10 rules or 10 000, the engine operation is the same.
=== Reliability ===
The [[:wikt:reliability|reliability]] of an expert system is the same as the reliability of a database, i.e. good, higher than that of a classical program. It also depends on the size of knowledge base.
===Scalability===
Evolving an expert system is to add, modify or delete rules. Since the rules are written in plain language, it is easy to identify those to be removed or modified.
=== Pedagogy ===
The engines that are run by a true logic are able to explain to the user in plain language why they ask a question and how they arrived at each deduction. In doing so, they show knowledge of the expert contained in the expert system. So, user can learn this knowledge in its context. Moreover, they can communicate their deductions step by step. So, the user has information about their problem even before the final answer of the expert system.
=== Preservation and improvement of knowledge ===
Valuable knowledge can disappear with the death, resignation or retirement of an expert. Recorded in an expert system, it becomes eternal. To develop an expert system is to interview an expert and make the system aware of their knowledge. In doing so, it reflects and enhances it.
=== New areas neglected by conventional computing ===
Automating a vast knowledge, the developer may meet a classic problem: "[[combinatorial explosion]]" commonly known as "information overload" that greatly complicates his work and results in a complex and time consuming program. The reasoning expert system does not encounter that problem since the engine automatically loads [[combinatorics]] between rules. This ability can address areas where combinatorics are enormous: highly interactive or conversational applications, fault diagnosis, decision support in complex systems, educational software, logic simulation of machines or systems, constantly changing software.
== Disadvantages ==
{{Refimprove section|date=May 2012}}
Every expert system has a major flaw, which explains its low success despite the principles that it is based upon having existed for 70 years: knowledge collection and its interpretation into rules, or [[knowledge engineering]]. Most developers have no automated method to perform this task; instead they work manually, increasing the likelihood of errors. Expert knowledge is generally not well understood; for example, rules may not exist, be contradictory, or be poorly written and unusable. Worse still, most expert systems use a computational engine incapable of reasoning. As a result, an expert system will often work poorly, and the project will be abandoned.<ref>Kenneth Laudon, Jane Laudon, Eric Fimbel, "Management Information Systems: Managing the Digital Firm", Business & Economics, 2010 edition, chapter 11-3.5: The implementation of a large number of expert systems requires the deployment of considerable development efforts, lengthy and expensive. Hiring and training a larger number of experts may be less expensive than building an expert system .(...) Some expert systems, particularly the largest, are so complex that over years, the costs of curative and adaptive maintenance become as high as the cost of development.</ref> Correct development methodology can mitigate these problems. There exists software capable of interviewing a true expert on a subject and automatically writing the rule base, or knowledge base, from the answers. The expert system can then be simultaneously run before the true expert's eyes, performing a [[Consistency (knowledge bases)|consistency of rules]] check.<ref>Systèmes Experts, April 15, 1990, Miao, authentic expert system generator of fault diagnosis: "''MIAO can explain, again in [plain] language, all of his logical approach: why he is asking such a question and how it came to such a conclusion. And that because he is constantly reasoning and not because an IT developer programmed in advance all the possible explanations.''"</ref><ref>[http://www.tree-logic.com/Articles/LMI%202001%20cf%20Maieutique.jpg Olivier Rafal], Le Monde Informatique, Programming for all (T.Rex generator): "''This software allows to develop a conversational application (...) leading to a self-learning''" (i.e. thanks to the automatic explanations)</ref><ref>[http://www.tree-logic.com/Articles/Ma%C3%AFeutica%20par%20FTS%20(91).jpg French Technology Survey], MAIEUTICA, An Expert System Generator which writes its own rules, July 1991: "''checking the coherence of the knowledge''", "''it can detect contradictions''", "''it react appropriately to changes of minds''"</ref> Experts and users can check the quality of the software before it is finished.
Many expert systems are also penalized by the logic used. Most formal systems of logic operate on [[Variable (computer science)|variable]] facts, i.e. facts the value of which changes several times during one reasoning. This is considered a property belonging to more powerful logic. This is the case of the [[Mycin]] and [[Dendral]] expert systems, and of, for example, [[fuzzy logic]], [[predicate logic]] (Prolog), [[symbolic logic]] and [[mathematical logic]]. [[Propositional logic]] uses only invariant facts.<ref>[http://www.comp.rgu.ac.uk/docs/info/index.php RGU: School of Computing], More Complex Inference: "''propositional logic, where variables are not allowed''".</ref> In the human mind, the facts used must remain invariable as long as the brain reasons with them. This makes possible two ways of controlling the consistency of the knowledge: detection of contradictions and production of explanations.<ref>Ong K. and Lee R.M, Texas University-Austin, A logic model for maintaining consistency of bureaucratic policies, 1993: "''Inconsistencies can be detected if any of the integrity constraints is proven false, and an explanation can be provided based on the proof tree. A more general inference mechanism is presented based on the theory of abduction for checking potential inconsistency of policies''"</ref><ref>[http://people.cohums.ohio-state.edu/tennant9/hempel_oppenheim_PS1948.pdf Carl G. Hempel and Paul Oppenheim], Philosophy of Science, Studies in the Logic of Explanation, 1948: "''The sentences constituting the explanans must be true''"</ref> That is why expert systems using variable facts, which are more understandable to developers creating such systems and hence more common, are less easy to develop, less clear to users, less reliable, and why they don't produce explanations of their reasoning, or contradiction detection.
== Application field ==
Expert systems address areas where [[combinatorics]] is enormous:
* highly interactive or conversational applications, [[IVR]], voice server, [[chatterbot]]
* [[fault diagnosis]], [[medical diagnosis]]
* decision support in complex systems, [[process control]], interactive [[user guide]]
* educational and [[Tutorial system|tutorial software]]
* [[logic simulation]] of machines or systems
* [[knowledge management]]
* constantly changing software.
They can also be used in software engineering for rapid prototyping applications ([[Rapid application development|RAD]]). Indeed, the expert system quickly developed in front of the expert shows him if the future application should be programmed.
Indeed, any program contains expert knowledge and classic programming always begins with an expert interview. A program written in the form of expert system receives all the specific benefits of expert system, among others things it can be developed by anyone without computer training and without programming languages. But this solution has a defect: expert system runs slower than a traditional program because he consistently "thinks" when in fact a classic software just follows paths traced by the programmer.
===Health care===
The [[medical record]] is an information system and common tool used widely in health care; the majority of the time it's seen as a dependency, it is required for other systems to perform their operations. Combining this information system with other core hospital systems provides an information-rich system, but it does have its major drawbacks.<ref>{{cite web|last=Wilcox|first=AB|title=Gallagher KD, Boden-Albala B, Bakken SR.|url=http://www.ncbi.nlm.nih.gov/pubmed/22692261|work=Med Care|accessdate=12 May 2013|doi=10.1097/MLR.0b013e318259c1e7|month=July|year=2012}}</ref> The [[electronic health record]] (EHR) is designed to replace the traditional medical record and bring together a more versatile, expansive and robust expert system to provide greater quality care.<ref>{{cite journal|last=Ben-Assuli|first=Ofir|coauthors=Itamar Shabtai, Moshe Leshno|title=The impact of EHR and HIE on reducing avoidable admissions: controlling main differential diagnoses|journal=BMC Medical Informatics and Decision Making|date=17|year=2013|month=April|doi=10.1186/1472-6947-13-49|accessdate=12 May 2013}}</ref><ref>{{cite journal|last=Coma|first=Ermengol|coauthors=Manel Ferran, Leonardo Méndez, Begoña Iglesias, Francesc Fina, Manuel Medina|title=Creation of a synthetic indicator of quality of care as a clinical management standard in primary care|journal=SpringerPlus|date=13|year=2013|month=February|doi=10.1186/2193-1801-2-51|accessdate=12 May 2013}}</ref> Replacing the paper-based medical record with an EHR is the first, massive, step in providing an integrated expert system across a hospital setting.<ref>{{cite journal|last=Ronquillo|first=JG|title=How the electronic health record will change the future of health care|journal=Yale J Biol Med|date=25|year=2012|month=September|pages=379–86|pmid=23012585|url=http://www.ncbi.nlm.nih.gov/pubmed/23012585}}</ref>
The advantage of bringing about this system is providing the possibility to perform rapid searches through the medical record for either practice or audit purposes; these searches can be then pooled from a variety of patients and be used to study the epidemiology of a disease.<ref>Coiera, E. (2003) ''Guide to Health Informatics (2nd Edition)'' Britain: Hodder Arnold</ref> The system (EHR) can be structured so that it monitors itself and the patient, any outlying variables (e.g.: sudden extreme tachycardia) can be monitored and reported immediately, it could in turn report that variable or any other statistic autonomously on a schedule, individually or aggregated.
== Examples of applications ==
Expert systems are designed to facilitate tasks in the fields of [[accounting]], the [[Artificial intelligence and law|law]], medicine, [[process control]], [[financial service]], [[manufacturing|production]], [[human resources]], among others. Typically, the problem area is complex enough that a more simple traditional algorithm cannot provide a proper solution. The foundation of a successful expert system depends on a series of technical procedures and development that may be designed by technicians and related experts. As such, expert systems do not typically provide a definitive answer, but provide probabilistic recommendations.
An example of the application of expert systems in the financial field is [[expert systems for mortgages]]. Loan departments are interested in expert systems for [[mortgages]] because of the growing cost of labour, which makes the handling and acceptance of relatively small loans less profitable. They also see a possibility for standardized, efficient handling of [[mortgage loans|mortgage loan]] by applying expert systems, appreciating that for the acceptance of [[mortgages]] there are hard and fast rules which do not always exist with other types of loans. Another common application in the financial area for expert systems are in trading recommendations in various [[marketplaces]]. These markets involve numerous variables and human emotions which may be impossible to deterministically characterize, thus expert systems based on the [[rule of thumb|rules of thumb]] from experts and simulation data are used. Expert system of this type can range from ones providing regional retail recommendations, like [[Wishabi]], to ones used to assist monetary decisions by financial institutions and governments.
Another 1970s and 1980s application of expert systems, which we today would simply call AI, was in [[Personal computer game|computer games]]. For example, the computer [[baseball]] games [[Earl Weaver Baseball]] and [[Tony La Russa Baseball]] each had highly detailed simulations of the game strategies of those two baseball managers. When a human played the game against the computer, the computer queried the [[Earl Weaver]] or [[Tony La Russa]] Expert System for a decision on what strategy to follow. Even those choices where some randomness was part of the natural system (such as when to throw a surprise pitch-out to try to trick a runner trying to steal a base) were decided based on probabilities supplied by Weaver or La Russa. Today we would simply say that "the game's AI provided the opposing manager's strategy".
A new application for expert systems is automated computer program generation. Funded by a US Air Force grant, an expert system-based application (hprcARCHITECT) that generates computer programs for mixed processor technology (FPGA/GPU/Multicore) systems without a need for technical specialists has recently been commercially introduced.
There is also a large body of contemporary research and development directed toward using expert systems for human behavior modeling and decision support systems. The former is especially important in the area of intercultural relations and the latter in improving management operations in small businesses.
In health and medicine, simple (non-complex) expert systems exist in both large and small health environments (Hospitals and general practitioners [GPs]). For example at a GPs desk, during a patient's visit, the GP could prescribe medication to the patient using his integrated patient manager system (like [http://www.zedmed.com.au/zedmed-clinical.aspx Zedmed Clinical]). The system will check the medication prescribed to the patient and any other data on the patient and use these as inputs, the inputs are processed through the system's knowledge base and it'll processes the result. If the medication prescribed has any adverse effects on the patient it'll be flagged and the clinician will be alerted to this. The system could also supply a list of any alternative medication available for the patient to assist the clinician in creating a decision on a possible effective treatment plan if possible.
== Knowledge engineering ==
{{main|knowledge engineering}}
The building, maintaining and development of expert systems is known as ''knowledge engineering''.<ref>{{citation
| last = Kendal | first = S.L. | last2 = Creen | first2 = M.
| title = An introduction to knowledge engineering | year = 2007 | publisher = Springer
| location = London | isbn = 978-1-84628-475-5 | oclc = 70987401}}</ref> Knowledge engineering is a "discipline that involves integrating [[knowledge]] into [[computer system]]s in order to solve complex problems normally requiring a high level of [[expertise|human expertise]]".<ref name="Feigenbaum1983">{{citation
| last = Feigenbaum | first = Edward A. | last2 = McCorduck | first2 = Pamela | authorlink = Edward Feigenbaum | authorlink2 = Pamela McCorduck
| title = The fifth generation | edition = 1st | year = 1983 | publisher = [[Addison-Wesley]]
| location = [[Reading, MA]] | isbn = 978-0-201-11519-2 | oclc = 9324691}}</ref>
There are generally three individuals having an interaction in an expert system. Primary among these is the [[end-user]], the individual who uses the system for its problem solving assistance. In the construction and maintenance of the system there are two other roles: the [[problem domain expert]] who builds the system and supplies the knowledge base, and a [[knowledge engineers|knowledge engineer]] who assists the experts in determining the [[knowledge representation|representation]] of their knowledge, enters this knowledge into an [[explanation module]] and who defines the [[inference technique]] required to solve the problem. Usually the [[knowledge engineer]] will represent the problem solving activity in the form of [[rule-based programming|rules]]. When these rules are created from domain expertise, the knowledge base stores the rules of the expert system.
==See also==
* [[AI effect]]
* [[Applications of artificial intelligence]]
* [[List of emerging technologies]]
* [[Outline of artificial intelligence]]
==References==
{{reflist}}
== Bibliography ==
===Textbooks===
* {{Cite book | author = Darlington, Keith | title = The Essence of Expert Systems | publisher = [[Pearson Education]] | year = 2000 | isbn = 978-0-13-022774-4}}
* {{cite book| author = Ignizio, James| title = Introduction to Expert Systems| year = 1991| publisher = McGraw-Hill Companies| isbn = 978-0-07-909785-9 }}
* {{cite book| author = Giarratano, Joseph C. and Riley, Gary| coauthors = Gary Riley| title = Expert Systems, Principles and Programming| year = 2005| publisher = Course Technology Ptr| isbn = 978-0-534-38447-0 }}
* {{cite book| author = Jackson, Peter| title = Introduction to Expert Systems| year = 1998| publisher = Addison Wesley| isbn = 978-0-201-87686-4 }}
* {{cite book| author = Walker, Adrian et al.| title = Knowledge Systems and Prolog| year = 1990| publisher = [[Addison-Wesley]]| isbn = 978-0-201-52424-6 }}
* {{cite book| author = Naylor, Chris.| title = Build your own Expert System| year = 1983| publisher = [[Sigma Technical Press]]| isbn = 978-0-905104-41-6 }}
===History of AI===
* {{Crevier 1993}}
* {{McCorduck 2004}}
* {{cite book| author = George F. Luger| last = Luger| first = George| last2 = Stubblefield| first2 = William A.| title = Artificial Intelligence: Structures and Strategies for Complex Problem Solving| url = http://www.cs.unm.edu/~luger/ai-final/tocfull.html| edition = 5th| year = 2004| publisher = The Benjamin/Cummings Publishing Company, Inc.| isbn = 978-0-8053-4780-7| ref = harv }}
* {{cite book| author = Nils J. Nilsson| last = Nilsson| first = Nils| title = Artificial Intelligence: A New Synthesis| date = 1998-04-01| publisher = Morgan Kaufmann Publishers| isbn = 978-1-55860-467-4| ref = harv }}
* {{Russell Norvig 2003}}
* {{cite book| last = Winston| first = Patrick Henry| title = Artificial Intelligence| date = 1984-04| publisher = Addison-Wesley| isbn = 978-0-201-08259-3| ref = harv }}
===Other===
* {{cite web |ref={{SfnRef|ACM|1998}}
| publisher=[[Association of Computing Machinery|ACM]]
| year=1998
| title=ACM Computing Classification System: Artificial intelligence
| url=http://www.acm.org/class/1998/I.2.html | accessdate=2007-08-30
}}
* Jean-Philippe de Lespinay, Admiroutes, December 2008: [http://www.admiroutes.asso.fr/larevue/2008/93/lespinay.htm Reasoning AI]
* Automates Intelligents, 2009: [http://www.automatesintelligents.com/interviews/2009/lespinay.html Conversational and Call centers]
* {{cite patent
| country = US
| number = 4763277
| status = patent
| title = Method for obtaining information in an expert system
| inventor = Ashford, Thomas J. ''et al.''
| pubdate = 1988-08-09
| gdate = 1988-08-09
}}
==External links==
* {{dmoz|Computers/Artificial_Intelligence/|Artificial Intelligence}}
* [http://www.codeproject.com/KB/recipes/ArtificialAdvice-1.aspx Expert System tutorial on Code Project]
{{DEFAULTSORT:Expert System}}
[[Category:Artificial intelligence]]
[[Category:Decision theory]]
[[Category:Expert systems|*]]
[[Category:Information systems]]' |
New page wikitext, after the edit (new_wikitext ) | 'In [[artificial intelligence]], an '''expert system''' is a computer system that emulates the decision-making ability of a human expert.<ref name="Jackson1998">{{Citation
| title = Introduction To Expert Systems
| year = 1998
| publisher = Addison Wesley
| edition = 3
| author = Jackson, Peter
| isbn = 978-0-201-87686-4
| page = 2
}}</ref> shit Expert systems are designed to solve complex problems by reasoning about knowledge, like an expert, and not by following the [[Procedural programming|procedure]] of a [[Developer (software)|developer]] as is the case in conventional programming.<ref>[http://www.hrmars.com/admin/pics/261.pdf Nwigbo Stella and Agbo Okechuku Chuks], School of Science Education, Expert system: a catalyst in educational development in Nigeria: "''The ability of this system to explain the reasoning process through back-traces (...) provides an additional feature that conventional programming does not handle''"</ref><ref>[http://www.cogentex.com/papers/explanation-iwnlg98.pdf Regina Barzilay, Daryl McCullough, Owen Rambow, Jonathan DeCristofaro, Tanya Korelsky, Benoit Lavoie]: "A new approach to expert system explanations"</ref><ref>[http://www.pcmag.com/encyclopedia_term/0,2542,t=conventional+programming&i=40325,00.asp Conventional programming]</ref> The first expert systems were created in the 1970s and then proliferated in the 1980s.<ref name="durkinhistory">{{cite book| author = Cornelius T. Leondes| title = Expert systems: the technology of knowledge management and decision making for the 21st century| year = 2002| isbn = 978-0-12-443880-4| pages = 1–22 }}</ref> Expert systems were among the first truly successful forms of [[Artificial Intelligence|AI]] software.{{Sfn|ACM|1998|loc=I.2.1}}{{sfn|Russell|Norvig|2003|pp=22−24}}{{sfn|Luger|Stubblefield|2004|pp=227–331}}{{sfn|Nilsson|1998|loc=chpt. 17.4}}{{sfn|McCorduck|2004|pp=327–335, 434–435}}{{sfn|Crevier|1993|pp=145–62, 197−203}}
An expert system has a unique structure, different from traditional [[computer programming]]. It is divided into two parts, one fixed, independent of the expert system: the inference engine, and one variable: the knowledge base. To run an expert system, the engine reasons about the knowledge base like a human.<ref>[http://www.hrmars.com/admin/pics/261.pdf Nwigbo Stella and Agbo Okechuku Chuks], School of Science Education, Expert system: a catalyst in educational development in Nigeria: "''Knowledge-based systems collect the small fragments of human know-how into a knowledge-base which is used to reason through a problem, using the knowledge that is appropriated''"</ref> In the 80s a third part appeared: a dialog [[Interface (computing)|interface]] to communicate with users.<ref>{{cite doi|10.1109/60.4202}}</ref> This ability to conduct a conversation with users was later called "[[Conversational Programming System|conversational]]".<ref>{{Cite doi|10.1145/505282.505285}}</ref><ref>{{cite doi|10.1109/64.153464}}</ref>
==History==
Expert systems were introduced by researchers in the [[Stanford Heuristic Programming Project]], including the "father of expert systems" with the [[Dendral]] and [[Mycin]] systems. Principal contributors to the technology were [[Bruce Buchanan]], [[Edward Shortliffe]], [[Randall Davis]], [[William vanMelle]], [[Carli Scott]] and others at [[Stanford]]. Expert systems were among the first truly successful forms of [[Artificial Intelligence|AI]] software.{{Sfn|ACM|1998|loc=I.2.1}}{{sfn|Russell|Norvig|2003|pp=22−24}}{{sfn|Luger|Stubblefield|2004|pp=227–331}}{{sfn|Nilsson|1998|loc=chpt. 17.4}}{{sfn|McCorduck|2004|pp=327–335, 434–435}}{{sfn|Crevier|1993|pp=145–62, 197−203}}
Research is also very active in France, where researchers focused on the automation of reasoning and logic engines. The French [[Prolog]] computer language, designed in 1972, marks a real advance over expert systems like Dendral or Mycin: it is a [[Shell (computing)|shell]],<ref>George F. Luger and William A. Stubblefield, Benjamin/Cummings Publishers, Rule Based Expert System Shell: example of code using the Prolog rule based expert system shell</ref> that is to say, a software structure ready to receive any expert system and to run it. Prolog has an integrated inference engine using [[First-order logic|First-Order logic]], with rules and facts. Prolog is a tool for mass production of expert systems and was the first operational [[declarative language]],<ref>[http://promethee.philo.ulg.ac.be/engdep1/download/prolog/htm_docs/prolog.htm A. MICHIELS], Université de Liège, Belgique: "PROLOG, the first declarative language</ref> later becoming the best selling AI language in the world.<ref>[http://www.prenhall.com/divisions/bp/app/turban/dss/html/chap16.html Carnegie Mellon University's AI Web Site]: "Prolog was the most popular AI language in Japan and probably in Europe"</ref> However Prolog is not particularly user friendly and incorporates [[Horn Logic]], which is an order of logic away from human logic.<ref>[http://www.proceedings2007.imcsit.org/pliks/33.pdf Ivana Berković, Biljana Radulović and Petar Hotomski], University of Novi Sad, 2007, Extensions of Deductive Concept in Logic Programing and Some Applications: "''the defects of PROLOG-system: the expansion concerning Horn clauses, escaping negation treatment as definite failure''"</ref><ref>"Software developed in Prolog has been criticized for having a high performance penalty compared to conventional programming languages"</ref><ref>[http://www.softpanorama.org/Lang/prolog.shtml Dr. Nikolai Bezroukov], Softpanorama: "I think that most people exposed to Prolog remember strongly the initial disappointment. Language was/is so hyped but all you can see initially are pretty trivial examples that are solved by complex, obscure notation that lacks real expressive power: some of simple examples can be expressed no less concisely is many other languages"</ref>
In the 1980s, expert systems proliferated as they were recognized as practical tools for solving real-world problems. Universities offered expert system courses and two thirds of the [[Fortune 1000]] companies applied the technology in daily business activities.<ref name=durkinhistory/><ref>Durkin, J. Expert Systems: Catalog of Applications. Intelligent Computer Systems, Inc., Akron, OH, 1993.</ref> Interest was international with the [[Fifth Generation Computer Systems project]] in Japan and increased research funding in Europe. Growth in the field continued into the 1990s.
In 1981 the first [[IBM PC]] was introduced, with [[MS-DOS]] operating system. Its low price started to multiply users and opened a new market for computing and expert systems. In the 80's the image of AI was very good and people believed it would succeed within a short time.
The development of expert systems was aided by the development of the symbolic processing languages [[Lisp (programming language)|Lisp]] and [[Prolog]]. To avoid [[re-inventing the wheel]], expert system shells were created that had more specialized features for building large expert systems.<ref>page 21. Giarratano & Riley, 3rd ed.</ref>
Many companies began to market expert systems shells, some commercial developments of tools from universities, others written by venture capital backed startup companies. These claimed to allow rules to be written in plain language and thus, theoretically, allowed expert systems to be written without programming language expertise. The best known tools were Guru (USA inspired by Emycin), Personal Consultant Plus (USA), Nexpert Object (developed by Neuron Data, company founded in California by three French), Genesia (developed by French public company Electricité de France and marketed by Steria), VP Expert (USA), Xi (developed by Expertech, UK) and Crystal (developed by Intelligent Environments, UK).
Some of these included rule induction tools which they called 'generators', which theoretically allowed the production of rules by no experts based on raw data.
But eventually the tools were only used in research projects and feasibility studies. They did not show commercial value in the business market, showing that AI technology was not mature.
In 1986, a new expert system generator for PCs appeared on the market, derived from the French academic research: Intelligence Service,<ref>[http://cat.inist.fr/?aModele=afficheN&cpsidt=7001328 Flamant B. and Girard G]., GSI-TECSI, Intelligence Service: build your own expert system : "''Intelligence Service is a development environment for expert systems that requires no experience of classic programming that offers to everyone the opportunity to develop its own expert system''"</ref><ref>[http://www.tree-logic.com/Articles/01,%20seul%20IS%20fait%20de%20l'IA,%20par%20un%20universitaire.jpg Bertrand Savatier], Le Monde Informatique, November 23, 1987: "Expert systems accessible to all"</ref> sold by GSI-TECSI software company. This software had a radical innovation: it used [[propositional logic]] ("[[Zeroth order logic]]") to execute expert systems, reasoning on a [[knowledge base]] written with everyday language rules, producing explanations and detecting logic contradictions between the facts. It was the first tool showing the AI defined by Edward Feigenbaum in his book about the Japanese [[Fifth Generation Project]], [http://www.atarimagazines.com/creative/v10n8/103_The_fifth_generation_Jap.php Artificial Intelligence and Japan's Computer Challenge to the World] (1983): "''The machines will have reasoning power: they will automatically engineer vast amounts of knowledge to serve whatever purpose humans propose, from medical diagnosis to product design, from management decisions to education''", "''The reasoning animal has, perhaps inevitably, fashioned the reasoning machine''", "''the reasoning power of these machines matches or exceeds the reasoning power of the humans who instructed them and, in some cases, the reasoning power of any human performing such tasks''". Intelligence Service was in fact "Pandora" (1985),<ref>[http://www.tree-logic.com/scienceetvie.htm Jean-Philippe de Lespinay], Science et Vie, "From total zero to Zero Plus [logic]", May 1991</ref> a software system developed for their thesis by two academic students of Jean-Louis Laurière,<ref>[http://www.lip6.fr/actualite/information-fiche.php?RECORD_KEY(informations)=id&id(informations)=18 Death of Jean-Louis Laurière]</ref> one of the most famous and prolific French AI researchers.<ref>Journey "[http://www.lip6.fr/Laboratoire/2006-03-22/2006-03-22-Affiche.pdf In honor of Jean-Louis Laurière]", Université Pierre et Marie Curie in Paris (March 22, 2006)</ref> Unfortunately, as this software was not developed by its own IT developers, GSI-TECSI was unable to make it evolve. Sales became scarce and marketing stopped after a few years.
== Software architecture ==
=== The rule base or knowledge base ===
In expert system technology, the knowledge base is expressed with [[natural language]] rules IF ... THEN ... For examples :
* "IF it is living THEN it is mortal"
* "IF his age = known THEN his year of birth = current year - his age in years"
* "''IF the identity of the germ is not known with certainty AND the germ is gram-positive AND the morphology of the organism is "rod" AND the germ is aerobic THEN there is a strong probability (0.8) that germ is of type enterobacteriacae''"<ref>[[Mycin]] rule</ref>
This formulation has the advantage of speaking in everyday language which is very rare in [[computer science]] (a classic program is coded). Rules express the knowledge to be exploited by the expert system. There exist other formulations of rules, which are not in everyday language, understandable only to computer scientists. Each rule style is adapted to an engine style.
=== The inference engine ===
The inference engine is a computer program designed to produce a reasoning on rules. In order to produce a reasoning, it should be based on [[logic]]. There are several kinds of logic: [[propositional logic]], [[Predicate logic|predicates of order 1]] or more, [[epistemic logic]], [[modal logic]], [[temporal logic]], [[fuzzy logic]], [[probabilistic logic]] (implemented in a [[Bayesian network]]), etc. Propositional logic is the basic human logic, that is expressed in [[syllogism]]s. The expert system that uses that logic is also called a [[Zeroth-order logic|zeroth-order]] expert system. With logic, the engine is able to generate new information from the knowledge contained in the rule base and data to be processed.
The engine has two ways to run: batch or conversational. In batch, the expert system has all the necessary data to process from the beginning. For the user, the program works as a classical program: he provides data and receives results immediately. Reasoning is invisible. The conversational method becomes necessary when the developer knows he cannot ask the user for all the necessary data at the start, the problem being too complex. The software must "invent" the way to solve the problem, request the missing data from the user, gradually approaching the goal as quickly as possible. The result gives the impression of a dialogue led by an expert. To guide a dialogue, the engine may have several levels of sophistication: "[[forward chaining]]", "[[backward chaining]]" and "[[mixed chaining]]". Forward chaining is the questioning of an expert who has no idea of the solution and investigates progressively (e.g. fault diagnosis). In backward chaining, the engine has an idea of the target (e.g. is it okay or not? Or: there is danger but what is the level?). It starts from the goal in hopes of finding the solution as soon as possible. In mixed chaining the engine has an idea of the goal but it is not enough: it deduces in forward chaining from previous user responses all that is possible before asking the next question. So quite often he deduces the answer to the next question before asking it.
A strong interest in using logic is that this kind of software is able to give the user clear explanation of what it is doing (the "Why?") and what it has deduced (the "How?" ). Better yet, thanks to logic, the most sophisticated expert systems are able to detect contradictions<ref>[http://www.ccis2k.org/iajit/PDF/vol.4,no.1/9-Nabil.pdf Nabil Arman], Polytechnic University of Palestine, January 2007, Fault Detection in Dynamic Rule Bases Using Spanning Trees and Disjoin Sets: ""</ref> in user information or in the knowledge and can explain them clearly, revealing at the same time the expert's knowledge and way of thinking.
== Advantages ==
{{unreferenced section|date=November 2011}}
{{cleanup-rewrite|section|date=December 2011}}
===Quick availability and opportunity to program itself===
As the rule base is in everyday language (the engine is untouchable), expert system can be written much faster than a conventional program, by users or experts, bypassing professional developers and avoiding the need to explain the subject.
=== Ability to exploit a considerable amount of knowledge ===
The expert system uses a rule base, unlike conventional programs, which means that the volume of knowledge to program is not a major concern. Whether the rule base has 10 rules or 10 000, the engine operation is the same.
=== Reliability ===
The [[:wikt:reliability|reliability]] of an expert system is the same as the reliability of a database, i.e. good, higher than that of a classical program. It also depends on the size of knowledge base.
===Scalability===
Evolving an expert system is to add, modify or delete rules. Since the rules are written in plain language, it is easy to identify those to be removed or modified.
=== Pedagogy ===
The engines that are run by a true logic are able to explain to the user in plain language why they ask a question and how they arrived at each deduction. In doing so, they show knowledge of the expert contained in the expert system. So, user can learn this knowledge in its context. Moreover, they can communicate their deductions step by step. So, the user has information about their problem even before the final answer of the expert system.
=== Preservation and improvement of knowledge ===
Valuable knowledge can disappear with the death, resignation or retirement of an expert. Recorded in an expert system, it becomes eternal. To develop an expert system is to interview an expert and make the system aware of their knowledge. In doing so, it reflects and enhances it.
=== New areas neglected by conventional computing ===
Automating a vast knowledge, the developer may meet a classic problem: "[[combinatorial explosion]]" commonly known as "information overload" that greatly complicates his work and results in a complex and time consuming program. The reasoning expert system does not encounter that problem since the engine automatically loads [[combinatorics]] between rules. This ability can address areas where combinatorics are enormous: highly interactive or conversational applications, fault diagnosis, decision support in complex systems, educational software, logic simulation of machines or systems, constantly changing software.
== Disadvantages ==
{{Refimprove section|date=May 2012}}
Every expert system has a major flaw, which explains its low success despite the principles that it is based upon having existed for 70 years: knowledge collection and its interpretation into rules, or [[knowledge engineering]]. Most developers have no automated method to perform this task; instead they work manually, increasing the likelihood of errors. Expert knowledge is generally not well understood; for example, rules may not exist, be contradictory, or be poorly written and unusable. Worse still, most expert systems use a computational engine incapable of reasoning. As a result, an expert system will often work poorly, and the project will be abandoned.<ref>Kenneth Laudon, Jane Laudon, Eric Fimbel, "Management Information Systems: Managing the Digital Firm", Business & Economics, 2010 edition, chapter 11-3.5: The implementation of a large number of expert systems requires the deployment of considerable development efforts, lengthy and expensive. Hiring and training a larger number of experts may be less expensive than building an expert system .(...) Some expert systems, particularly the largest, are so complex that over years, the costs of curative and adaptive maintenance become as high as the cost of development.</ref> Correct development methodology can mitigate these problems. There exists software capable of interviewing a true expert on a subject and automatically writing the rule base, or knowledge base, from the answers. The expert system can then be simultaneously run before the true expert's eyes, performing a [[Consistency (knowledge bases)|consistency of rules]] check.<ref>Systèmes Experts, April 15, 1990, Miao, authentic expert system generator of fault diagnosis: "''MIAO can explain, again in [plain] language, all of his logical approach: why he is asking such a question and how it came to such a conclusion. And that because he is constantly reasoning and not because an IT developer programmed in advance all the possible explanations.''"</ref><ref>[http://www.tree-logic.com/Articles/LMI%202001%20cf%20Maieutique.jpg Olivier Rafal], Le Monde Informatique, Programming for all (T.Rex generator): "''This software allows to develop a conversational application (...) leading to a self-learning''" (i.e. thanks to the automatic explanations)</ref><ref>[http://www.tree-logic.com/Articles/Ma%C3%AFeutica%20par%20FTS%20(91).jpg French Technology Survey], MAIEUTICA, An Expert System Generator which writes its own rules, July 1991: "''checking the coherence of the knowledge''", "''it can detect contradictions''", "''it react appropriately to changes of minds''"</ref> Experts and users can check the quality of the software before it is finished.
Many expert systems are also penalized by the logic used. Most formal systems of logic operate on [[Variable (computer science)|variable]] facts, i.e. facts the value of which changes several times during one reasoning. This is considered a property belonging to more powerful logic. This is the case of the [[Mycin]] and [[Dendral]] expert systems, and of, for example, [[fuzzy logic]], [[predicate logic]] (Prolog), [[symbolic logic]] and [[mathematical logic]]. [[Propositional logic]] uses only invariant facts.<ref>[http://www.comp.rgu.ac.uk/docs/info/index.php RGU: School of Computing], More Complex Inference: "''propositional logic, where variables are not allowed''".</ref> In the human mind, the facts used must remain invariable as long as the brain reasons with them. This makes possible two ways of controlling the consistency of the knowledge: detection of contradictions and production of explanations.<ref>Ong K. and Lee R.M, Texas University-Austin, A logic model for maintaining consistency of bureaucratic policies, 1993: "''Inconsistencies can be detected if any of the integrity constraints is proven false, and an explanation can be provided based on the proof tree. A more general inference mechanism is presented based on the theory of abduction for checking potential inconsistency of policies''"</ref><ref>[http://people.cohums.ohio-state.edu/tennant9/hempel_oppenheim_PS1948.pdf Carl G. Hempel and Paul Oppenheim], Philosophy of Science, Studies in the Logic of Explanation, 1948: "''The sentences constituting the explanans must be true''"</ref> That is why expert systems using variable facts, which are more understandable to developers creating such systems and hence more common, are less easy to develop, less clear to users, less reliable, and why they don't produce explanations of their reasoning, or contradiction detection.
== Application field ==
Expert systems address areas where [[combinatorics]] is enormous:
* highly interactive or conversational applications, [[IVR]], voice server, [[chatterbot]]
* [[fault diagnosis]], [[medical diagnosis]]
* decision support in complex systems, [[process control]], interactive [[user guide]]
* educational and [[Tutorial system|tutorial software]]
* [[logic simulation]] of machines or systems
* [[knowledge management]]
* constantly changing software.
They can also be used in software engineering for rapid prototyping applications ([[Rapid application development|RAD]]). Indeed, the expert system quickly developed in front of the expert shows him if the future application should be programmed.
Indeed, any program contains expert knowledge and classic programming always begins with an expert interview. A program written in the form of expert system receives all the specific benefits of expert system, among others things it can be developed by anyone without computer training and without programming languages. But this solution has a defect: expert system runs slower than a traditional program because he consistently "thinks" when in fact a classic software just follows paths traced by the programmer.
===Health care===
The [[medical record]] is an information system and common tool used widely in health care; the majority of the time it's seen as a dependency, it is required for other systems to perform their operations. Combining this information system with other core hospital systems provides an information-rich system, but it does have its major drawbacks.<ref>{{cite web|last=Wilcox|first=AB|title=Gallagher KD, Boden-Albala B, Bakken SR.|url=http://www.ncbi.nlm.nih.gov/pubmed/22692261|work=Med Care|accessdate=12 May 2013|doi=10.1097/MLR.0b013e318259c1e7|month=July|year=2012}}</ref> The [[electronic health record]] (EHR) is designed to replace the traditional medical record and bring together a more versatile, expansive and robust expert system to provide greater quality care.<ref>{{cite journal|last=Ben-Assuli|first=Ofir|coauthors=Itamar Shabtai, Moshe Leshno|title=The impact of EHR and HIE on reducing avoidable admissions: controlling main differential diagnoses|journal=BMC Medical Informatics and Decision Making|date=17|year=2013|month=April|doi=10.1186/1472-6947-13-49|accessdate=12 May 2013}}</ref><ref>{{cite journal|last=Coma|first=Ermengol|coauthors=Manel Ferran, Leonardo Méndez, Begoña Iglesias, Francesc Fina, Manuel Medina|title=Creation of a synthetic indicator of quality of care as a clinical management standard in primary care|journal=SpringerPlus|date=13|year=2013|month=February|doi=10.1186/2193-1801-2-51|accessdate=12 May 2013}}</ref> Replacing the paper-based medical record with an EHR is the first, massive, step in providing an integrated expert system across a hospital setting.<ref>{{cite journal|last=Ronquillo|first=JG|title=How the electronic health record will change the future of health care|journal=Yale J Biol Med|date=25|year=2012|month=September|pages=379–86|pmid=23012585|url=http://www.ncbi.nlm.nih.gov/pubmed/23012585}}</ref>
The advantage of bringing about this system is providing the possibility to perform rapid searches through the medical record for either practice or audit purposes; these searches can be then pooled from a variety of patients and be used to study the epidemiology of a disease.<ref>Coiera, E. (2003) ''Guide to Health Informatics (2nd Edition)'' Britain: Hodder Arnold</ref> The system (EHR) can be structured so that it monitors itself and the patient, any outlying variables (e.g.: sudden extreme tachycardia) can be monitored and reported immediately, it could in turn report that variable or any other statistic autonomously on a schedule, individually or aggregated.
== Examples of applications ==
Expert systems are designed to facilitate tasks in the fields of [[accounting]], the [[Artificial intelligence and law|law]], medicine, [[process control]], [[financial service]], [[manufacturing|production]], [[human resources]], among others. Typically, the problem area is complex enough that a more simple traditional algorithm cannot provide a proper solution. The foundation of a successful expert system depends on a series of technical procedures and development that may be designed by technicians and related experts. As such, expert systems do not typically provide a definitive answer, but provide probabilistic recommendations.
An example of the application of expert systems in the financial field is [[expert systems for mortgages]]. Loan departments are interested in expert systems for [[mortgages]] because of the growing cost of labour, which makes the handling and acceptance of relatively small loans less profitable. They also see a possibility for standardized, efficient handling of [[mortgage loans|mortgage loan]] by applying expert systems, appreciating that for the acceptance of [[mortgages]] there are hard and fast rules which do not always exist with other types of loans. Another common application in the financial area for expert systems are in trading recommendations in various [[marketplaces]]. These markets involve numerous variables and human emotions which may be impossible to deterministically characterize, thus expert systems based on the [[rule of thumb|rules of thumb]] from experts and simulation data are used. Expert system of this type can range from ones providing regional retail recommendations, like [[Wishabi]], to ones used to assist monetary decisions by financial institutions and governments.
Another 1970s and 1980s application of expert systems, which we today would simply call AI, was in [[Personal computer game|computer games]]. For example, the computer [[baseball]] games [[Earl Weaver Baseball]] and [[Tony La Russa Baseball]] each had highly detailed simulations of the game strategies of those two baseball managers. When a human played the game against the computer, the computer queried the [[Earl Weaver]] or [[Tony La Russa]] Expert System for a decision on what strategy to follow. Even those choices where some randomness was part of the natural system (such as when to throw a surprise pitch-out to try to trick a runner trying to steal a base) were decided based on probabilities supplied by Weaver or La Russa. Today we would simply say that "the game's AI provided the opposing manager's strategy".
A new application for expert systems is automated computer program generation. Funded by a US Air Force grant, an expert system-based application (hprcARCHITECT) that generates computer programs for mixed processor technology (FPGA/GPU/Multicore) systems without a need for technical specialists has recently been commercially introduced.
There is also a large body of contemporary research and development directed toward using expert systems for human behavior modeling and decision support systems. The former is especially important in the area of intercultural relations and the latter in improving management operations in small businesses.
In health and medicine, simple (non-complex) expert systems exist in both large and small health environments (Hospitals and general practitioners [GPs]). For example at a GPs desk, during a patient's visit, the GP could prescribe medication to the patient using his integrated patient manager system (like [http://www.zedmed.com.au/zedmed-clinical.aspx Zedmed Clinical]). The system will check the medication prescribed to the patient and any other data on the patient and use these as inputs, the inputs are processed through the system's knowledge base and it'll processes the result. If the medication prescribed has any adverse effects on the patient it'll be flagged and the clinician will be alerted to this. The system could also supply a list of any alternative medication available for the patient to assist the clinician in creating a decision on a possible effective treatment plan if possible.
== Knowledge engineering ==
{{main|knowledge engineering}}
The building, maintaining and development of expert systems is known as ''knowledge engineering''.<ref>{{citation
| last = Kendal | first = S.L. | last2 = Creen | first2 = M.
| title = An introduction to knowledge engineering | year = 2007 | publisher = Springer
| location = London | isbn = 978-1-84628-475-5 | oclc = 70987401}}</ref> Knowledge engineering is a "discipline that involves integrating [[knowledge]] into [[computer system]]s in order to solve complex problems normally requiring a high level of [[expertise|human expertise]]".<ref name="Feigenbaum1983">{{citation
| last = Feigenbaum | first = Edward A. | last2 = McCorduck | first2 = Pamela | authorlink = Edward Feigenbaum | authorlink2 = Pamela McCorduck
| title = The fifth generation | edition = 1st | year = 1983 | publisher = [[Addison-Wesley]]
| location = [[Reading, MA]] | isbn = 978-0-201-11519-2 | oclc = 9324691}}</ref>
There are generally three individuals having an interaction in an expert system. Primary among these is the [[end-user]], the individual who uses the system for its problem solving assistance. In the construction and maintenance of the system there are two other roles: the [[problem domain expert]] who builds the system and supplies the knowledge base, and a [[knowledge engineers|knowledge engineer]] who assists the experts in determining the [[knowledge representation|representation]] of their knowledge, enters this knowledge into an [[explanation module]] and who defines the [[inference technique]] required to solve the problem. Usually the [[knowledge engineer]] will represent the problem solving activity in the form of [[rule-based programming|rules]]. When these rules are created from domain expertise, the knowledge base stores the rules of the expert system.
==See also==
* [[AI effect]]
* [[Applications of artificial intelligence]]
* [[List of emerging technologies]]
* [[Outline of artificial intelligence]]
==References==
{{reflist}}
== Bibliography ==
===Textbooks===
* {{Cite book | author = Darlington, Keith | title = The Essence of Expert Systems | publisher = [[Pearson Education]] | year = 2000 | isbn = 978-0-13-022774-4}}
* {{cite book| author = Ignizio, James| title = Introduction to Expert Systems| year = 1991| publisher = McGraw-Hill Companies| isbn = 978-0-07-909785-9 }}
* {{cite book| author = Giarratano, Joseph C. and Riley, Gary| coauthors = Gary Riley| title = Expert Systems, Principles and Programming| year = 2005| publisher = Course Technology Ptr| isbn = 978-0-534-38447-0 }}
* {{cite book| author = Jackson, Peter| title = Introduction to Expert Systems| year = 1998| publisher = Addison Wesley| isbn = 978-0-201-87686-4 }}
* {{cite book| author = Walker, Adrian et al.| title = Knowledge Systems and Prolog| year = 1990| publisher = [[Addison-Wesley]]| isbn = 978-0-201-52424-6 }}
* {{cite book| author = Naylor, Chris.| title = Build your own Expert System| year = 1983| publisher = [[Sigma Technical Press]]| isbn = 978-0-905104-41-6 }}
===History of AI===
* {{Crevier 1993}}
* {{McCorduck 2004}}
* {{cite book| author = George F. Luger| last = Luger| first = George| last2 = Stubblefield| first2 = William A.| title = Artificial Intelligence: Structures and Strategies for Complex Problem Solving| url = http://www.cs.unm.edu/~luger/ai-final/tocfull.html| edition = 5th| year = 2004| publisher = The Benjamin/Cummings Publishing Company, Inc.| isbn = 978-0-8053-4780-7| ref = harv }}
* {{cite book| author = Nils J. Nilsson| last = Nilsson| first = Nils| title = Artificial Intelligence: A New Synthesis| date = 1998-04-01| publisher = Morgan Kaufmann Publishers| isbn = 978-1-55860-467-4| ref = harv }}
* {{Russell Norvig 2003}}
* {{cite book| last = Winston| first = Patrick Henry| title = Artificial Intelligence| date = 1984-04| publisher = Addison-Wesley| isbn = 978-0-201-08259-3| ref = harv }}
===Other===
* {{cite web |ref={{SfnRef|ACM|1998}}
| publisher=[[Association of Computing Machinery|ACM]]
| year=1998
| title=ACM Computing Classification System: Artificial intelligence
| url=http://www.acm.org/class/1998/I.2.html | accessdate=2007-08-30
}}
* Jean-Philippe de Lespinay, Admiroutes, December 2008: [http://www.admiroutes.asso.fr/larevue/2008/93/lespinay.htm Reasoning AI]
* Automates Intelligents, 2009: [http://www.automatesintelligents.com/interviews/2009/lespinay.html Conversational and Call centers]
* {{cite patent
| country = US
| number = 4763277
| status = patent
| title = Method for obtaining information in an expert system
| inventor = Ashford, Thomas J. ''et al.''
| pubdate = 1988-08-09
| gdate = 1988-08-09
}}
==External links==
* {{dmoz|Computers/Artificial_Intelligence/|Artificial Intelligence}}
* [http://www.codeproject.com/KB/recipes/ArtificialAdvice-1.aspx Expert System tutorial on Code Project]
{{DEFAULTSORT:Expert System}}
[[Category:Artificial intelligence]]
[[Category:Decision theory]]
[[Category:Expert systems|*]]
[[Category:Information systems]]' |
Unified diff of changes made by edit (edit_diff ) | '@@ -6,7 +6,7 @@
| author = Jackson, Peter
| isbn = 978-0-201-87686-4
| page = 2
-}}</ref> Expert systems are designed to solve complex problems by reasoning about knowledge, like an expert, and not by following the [[Procedural programming|procedure]] of a [[Developer (software)|developer]] as is the case in conventional programming.<ref>[http://www.hrmars.com/admin/pics/261.pdf Nwigbo Stella and Agbo Okechuku Chuks], School of Science Education, Expert system: a catalyst in educational development in Nigeria: "''The ability of this system to explain the reasoning process through back-traces (...) provides an additional feature that conventional programming does not handle''"</ref><ref>[http://www.cogentex.com/papers/explanation-iwnlg98.pdf Regina Barzilay, Daryl McCullough, Owen Rambow, Jonathan DeCristofaro, Tanya Korelsky, Benoit Lavoie]: "A new approach to expert system explanations"</ref><ref>[http://www.pcmag.com/encyclopedia_term/0,2542,t=conventional+programming&i=40325,00.asp Conventional programming]</ref> The first expert systems were created in the 1970s and then proliferated in the 1980s.<ref name="durkinhistory">{{cite book| author = Cornelius T. Leondes| title = Expert systems: the technology of knowledge management and decision making for the 21st century| year = 2002| isbn = 978-0-12-443880-4| pages = 1–22 }}</ref> Expert systems were among the first truly successful forms of [[Artificial Intelligence|AI]] software.{{Sfn|ACM|1998|loc=I.2.1}}{{sfn|Russell|Norvig|2003|pp=22−24}}{{sfn|Luger|Stubblefield|2004|pp=227–331}}{{sfn|Nilsson|1998|loc=chpt. 17.4}}{{sfn|McCorduck|2004|pp=327–335, 434–435}}{{sfn|Crevier|1993|pp=145–62, 197−203}}
+}}</ref> shit Expert systems are designed to solve complex problems by reasoning about knowledge, like an expert, and not by following the [[Procedural programming|procedure]] of a [[Developer (software)|developer]] as is the case in conventional programming.<ref>[http://www.hrmars.com/admin/pics/261.pdf Nwigbo Stella and Agbo Okechuku Chuks], School of Science Education, Expert system: a catalyst in educational development in Nigeria: "''The ability of this system to explain the reasoning process through back-traces (...) provides an additional feature that conventional programming does not handle''"</ref><ref>[http://www.cogentex.com/papers/explanation-iwnlg98.pdf Regina Barzilay, Daryl McCullough, Owen Rambow, Jonathan DeCristofaro, Tanya Korelsky, Benoit Lavoie]: "A new approach to expert system explanations"</ref><ref>[http://www.pcmag.com/encyclopedia_term/0,2542,t=conventional+programming&i=40325,00.asp Conventional programming]</ref> The first expert systems were created in the 1970s and then proliferated in the 1980s.<ref name="durkinhistory">{{cite book| author = Cornelius T. Leondes| title = Expert systems: the technology of knowledge management and decision making for the 21st century| year = 2002| isbn = 978-0-12-443880-4| pages = 1–22 }}</ref> Expert systems were among the first truly successful forms of [[Artificial Intelligence|AI]] software.{{Sfn|ACM|1998|loc=I.2.1}}{{sfn|Russell|Norvig|2003|pp=22−24}}{{sfn|Luger|Stubblefield|2004|pp=227–331}}{{sfn|Nilsson|1998|loc=chpt. 17.4}}{{sfn|McCorduck|2004|pp=327–335, 434–435}}{{sfn|Crevier|1993|pp=145–62, 197−203}}
An expert system has a unique structure, different from traditional [[computer programming]]. It is divided into two parts, one fixed, independent of the expert system: the inference engine, and one variable: the knowledge base. To run an expert system, the engine reasons about the knowledge base like a human.<ref>[http://www.hrmars.com/admin/pics/261.pdf Nwigbo Stella and Agbo Okechuku Chuks], School of Science Education, Expert system: a catalyst in educational development in Nigeria: "''Knowledge-based systems collect the small fragments of human know-how into a knowledge-base which is used to reason through a problem, using the knowledge that is appropriated''"</ref> In the 80s a third part appeared: a dialog [[Interface (computing)|interface]] to communicate with users.<ref>{{cite doi|10.1109/60.4202}}</ref> This ability to conduct a conversation with users was later called "[[Conversational Programming System|conversational]]".<ref>{{Cite doi|10.1145/505282.505285}}</ref><ref>{{cite doi|10.1109/64.153464}}</ref>
' |
New page size (new_size ) | 34829 |
Old page size (old_size ) | 34824 |
Size change in edit (edit_delta ) | 5 |
Lines added in edit (added_lines ) | [
0 => '}}</ref> shit Expert systems are designed to solve complex problems by reasoning about knowledge, like an expert, and not by following the [[Procedural programming|procedure]] of a [[Developer (software)|developer]] as is the case in conventional programming.<ref>[http://www.hrmars.com/admin/pics/261.pdf Nwigbo Stella and Agbo Okechuku Chuks], School of Science Education, Expert system: a catalyst in educational development in Nigeria: "''The ability of this system to explain the reasoning process through back-traces (...) provides an additional feature that conventional programming does not handle''"</ref><ref>[http://www.cogentex.com/papers/explanation-iwnlg98.pdf Regina Barzilay, Daryl McCullough, Owen Rambow, Jonathan DeCristofaro, Tanya Korelsky, Benoit Lavoie]: "A new approach to expert system explanations"</ref><ref>[http://www.pcmag.com/encyclopedia_term/0,2542,t=conventional+programming&i=40325,00.asp Conventional programming]</ref> The first expert systems were created in the 1970s and then proliferated in the 1980s.<ref name="durkinhistory">{{cite book| author = Cornelius T. Leondes| title = Expert systems: the technology of knowledge management and decision making for the 21st century| year = 2002| isbn = 978-0-12-443880-4| pages = 1–22 }}</ref> Expert systems were among the first truly successful forms of [[Artificial Intelligence|AI]] software.{{Sfn|ACM|1998|loc=I.2.1}}{{sfn|Russell|Norvig|2003|pp=22−24}}{{sfn|Luger|Stubblefield|2004|pp=227–331}}{{sfn|Nilsson|1998|loc=chpt. 17.4}}{{sfn|McCorduck|2004|pp=327–335, 434–435}}{{sfn|Crevier|1993|pp=145–62, 197−203}}'
] |
Lines removed in edit (removed_lines ) | [
0 => '}}</ref> Expert systems are designed to solve complex problems by reasoning about knowledge, like an expert, and not by following the [[Procedural programming|procedure]] of a [[Developer (software)|developer]] as is the case in conventional programming.<ref>[http://www.hrmars.com/admin/pics/261.pdf Nwigbo Stella and Agbo Okechuku Chuks], School of Science Education, Expert system: a catalyst in educational development in Nigeria: "''The ability of this system to explain the reasoning process through back-traces (...) provides an additional feature that conventional programming does not handle''"</ref><ref>[http://www.cogentex.com/papers/explanation-iwnlg98.pdf Regina Barzilay, Daryl McCullough, Owen Rambow, Jonathan DeCristofaro, Tanya Korelsky, Benoit Lavoie]: "A new approach to expert system explanations"</ref><ref>[http://www.pcmag.com/encyclopedia_term/0,2542,t=conventional+programming&i=40325,00.asp Conventional programming]</ref> The first expert systems were created in the 1970s and then proliferated in the 1980s.<ref name="durkinhistory">{{cite book| author = Cornelius T. Leondes| title = Expert systems: the technology of knowledge management and decision making for the 21st century| year = 2002| isbn = 978-0-12-443880-4| pages = 1–22 }}</ref> Expert systems were among the first truly successful forms of [[Artificial Intelligence|AI]] software.{{Sfn|ACM|1998|loc=I.2.1}}{{sfn|Russell|Norvig|2003|pp=22−24}}{{sfn|Luger|Stubblefield|2004|pp=227–331}}{{sfn|Nilsson|1998|loc=chpt. 17.4}}{{sfn|McCorduck|2004|pp=327–335, 434–435}}{{sfn|Crevier|1993|pp=145–62, 197−203}}'
] |
Whether or not the change was made through a Tor exit node (tor_exit_node ) | 0 |
Unix timestamp of change (timestamp ) | 1374056577 |