Talk:Expert system

Too many wikis?
It might be just me, but I personally don't see the point wikifying every third word, simply because there's a wikipedia entry for it.. Maybe toning this down a bit would make the article a bit more readable as well as ease the search for relevant links... Just a sugestion (I'd do it myself, but I'm still on my wiki training-wheels)


 * Agreed. Many of the links are not relevant and cause much distraction. Maybe we should use an expert system to write about expert systems. --68.100.104.193 02:36, 12 Jul 2004 (UTC)

I think that is a perfect idea! But i think that just because the links are not relevant to you does'nt mean that we should lose them because they could be useful/relevant to other people ... Kizza06 21:40, 10 October 2006 (UTC)
 * Do people have any specific examples of words that are wikified but don't need to be? I agree with the general point that often technical articles like this get wikified to death but IMO it's sort of a trade off. On the one hand there are a lot of fairly deep concepts that need to get introduced into an article like this and especially in the intro we don't want to discuss all of them so links make a lot of sense. One thing I noticed is that the link to if-then-else in the intro links to the wrong thing. It should be linking to an article on rule-based or production systems not just if-then-else statements in code as it currently does, they are similar but there is a significant difference. I'm pretty sure there is an article on rule systems. I think I'm going to change or remove that link and will review the article in general to see if anything jumps out at me as overkill. BTW, this article was heavily edited a while back by an undergrad class so I suspect that might be part of the issue. In my experience students and new editors tend to over link. --MadScientistX11 (talk) 22:26, 17 April 2014 (UTC)
 * So I changed that one link at the start to if-then so that it points to a better article. Nothing else really jumped out at me. I could see making a case that neither if-then or conditional logic need to be links but I left them for now. In my opinion there is enough justification for them. A real novice may have no idea what expert systems are all about and that distinction, using an inference engine rather than direct programmatic control of logic flow, to me that's the essence. Then again, there is a link to inference engine later in the intro so I could see a case that we don't need the first two. I'll leave it for now but interested if other people have feedback on specific links that don't belong, or anything else for that matter. --MadScientistX11 (talk) 23:05, 17 April 2014 (UTC)

Limitations
The article has a paragraph on "Software Architecture", but I do not really see a software architecture desribed (not talking about the usual association of architecture with "lines and boxes"). This is rather a description of "how" the software performs things than an architectural overview.
 * What else do you want to see considering this is a high level overview article? Or what would you call that section other than "architecture". To me that section absolutely IS about the architecture and I'm puzzled by your statement about "the usual association... with lines and boxes". "Lines and boxes" are exactly what I mean by architecture. What is the big picture I would draw for a team if we had to build an expert system shell from scratch? Granted it would need to go a lot deeper than drawing two boxes for KB and Inference Engine but that would definitely be the starting point and IMO that is a very rational way to define a high level software architecture for any expert system. --MadScientistX11 (talk) 13:49, 17 November 2014 (UTC)

The article seems rather too upbeat. Something about inherent limitations? Charles Matthews 15:05, 20 Mar 2005 (UTC)


 * Agreed, the 'Benefits of expert systems' reads like an advertisement. Maybe that should be dumped altogether? (It adds no information.) 131.174.206.242 10:21, 30 May 2005 (UTC)


 * Strongly agree. It seems quite non-NPOV to me. --81.178.104.80 23:30, 30 May 2005 (UTC)

Under the 'Procedure node interface' header, the article mentions 'cross-referenced applications'. Sounds like the entire text is taken from a textbook on the subject, but I am unsure if it is okay to edit it. --Sarnholm 10:50, 25 July 2006 (UTC)

I strongly agree! Kizza06 21:41, 10 October 2006 (UTC)

Much of the text of this article comes from United States Patent 4763277, assigned to IBM. It very likely contains proprietary IBM IP, and on that basis probably isn't suitable for an encyclopedia entry.
 * Just want to document the stuff about "proprietary IBM IP" is NOT the case anymore, the article has been virtually completely re-written since most of these comments were made. --MadScientistX11 (talk) 13:52, 17 November 2014 (UTC)

Cleanup
I put the cleanup template at the top of this page because it has been two years and there is still egregious and/or poor wiki-linking on this page. See for instance the use of the word analysis or problem in the introduction. These terms are used in, arguably, the most important part of the article but link to non-specific pages. The page on problem is so general as to be meaningless for the purposes of a discussion about expert systems. It would probably be a good idea if someone who has a solid interest in this topic were to go through and do some wide-ranging edits on this page, take out poor wiki-links, and make sure the article hangs together as a whole. Kaimiddleton 02:44, 25 July 2006 (UTC)


 * I have a problem with this sentence: 'Other "Wizards" are a sequence of online forms that guide users through a series of choices, such as the ones which manage the installation of new software on computers' <- this "example" is not an instance of online forms (at least in Windows environment an installation wizard and online form are quite different things)! --194.251.240.116 18:29, 8 September 2006 (UTC)

Rearrangement of the article
I made a rearragement of the article to a more stadard stucture. I hereby wanted to create space for further development. I think this article can be improved on multiple point: Maybe some further rearragement is necessarily. Good luck - Mdd 12:57, 28 August 2007 (UTC)
 * More general overview
 * A separate history section
 * More about study of expert systems
 * The topics should be compressed or placed in separate articles
 * The article needs references
 * And maybe some motre literature


 * Please consider separating the list of Expert Systems such as Mycin, Prospector, etc. from Expert System Shells such as CLIPS and Jess and Computer programming languages that can be used to create Expert Systems and Expert System Shells such as Prolog, Lisp etc. —Preceding unsigned comment added by 68.145.96.22 (talk) 17:05, 26 September 2008 (UTC)


 * Agree that it's not optimally organized. I'll see what I can do. Mikael Häggström (talk) 17:43, 15 March 2011 (UTC)

Is there a problem in section 3.3?
The text below 3: Expert Systems Topics, 3.2: End user refers to a missing response in the dialog preceding it and also to a 'Why' question. Neither one of these appear in the article at this time. Is this an error? Sorry, I don't have time to investigate or rewrite the article myself.

-Kevinz 20:39, 19 October 2007 (UTC)

Responses and offer to help. The introduction needs a rewrite
The definition starts out by describing an expert system as a computer program. Although this is where I think the article should lead the reader; as computer programs are the colloquial usage, as a systems theorist I find that this description jumps ahead of itself. A description of a system and an expert might be a better place to start.

And I agree with Mdd that the article needs to be either cleaned up or re-written. I would be willing to give it a try. I agree with Kizza06 on the wiki links. If I write it we won't need to worry about copyrights or intellectual property. The bulk of the article will come straight from my cerebral cortex; no plagiarism. And I will use appoprate citations as needed. I may need to practice with the sandbox but the template is workable.

Also the History and general theory need added. Everything can be defined as a system. The study of systems provides an understanding of the differences and similarities among all known systems. Specialization in certain types of systems is requisite to being an expert in any field.

Experts systems are systems and thus can not deviate from systems theory which is very expansive. Experts are the boundaries of the system. So, if you add more experts, including the results of the current system, the expertise grows producing a compound system. Wikipedia is an example of an expert system. A search (query, question) is input and the result set is expert knowledge. If you click on a wiki (Hyperlink) you will branch to another topic (drill down), which is an example of functional expertise that is programed into the system. Because the branch is programed by an expert in programing, that functional logic (hperlink) is a subset of the set of experts who are the boundaries. Knowledge based systems are another subset or type of expert system and should NOT be included in an introduction.

To begin I might expand on some of the table of contents and delete others or replace them with wikis.

--jtp15 (talk) 12:40, 10 April 2008 (UTC)


 * I cleaned up the intro. The rest is still pretty bad too but someone else will have to address. Lycurgus (talk) 01:13, 24 April 2008 (UTC)


 * Good article but yes, needs cleanup and also needs inline references (move bibliography to be inline refs). Anyone willing to take a first attempt; else I suppose I'll have to visit back here another day and spend a while... Harvey the rabbit (talk) 02:26, 12 November 2008 (UTC)

--Section 1.2 is titled Certainty factors. From the context it would seem more approproate to call them Uncertainty factors. Then it would fit better within general statistical usage.Parveson (talk) 00:16, 26 July 2009 (UTC)

--Also, how about some references and software sources?Parveson (talk) 00:18, 26 July 2009 (UTC)

--I am no expert on this topic or on editing wikis, but it seems to me that statements like "can only be understood by mathematicians, logicians or computer scientists" don't have any place in an article that should be as close to publishable quality as possible. I feel that if someone rewrote those statements the article would be better for it. Oran0007 (talk) 06:31, 25 December 2012 (UTC)

Definition
"An expert system is software that attempts to reproduce the performance of one or more human experts". This definition needs improving because the present definition includes violin recitals by a maestro, penalty shots by a professional footballer and acting by Brad Pitt. Hope you get the drift :-) pgr94 (talk) 22:29, 16 November 2008 (UTC)
 * Agree. Also, does it also need to be related to human experts? And why reproduce? Expert system should be about artificial systems implemeting expertise. Nabeth (talk) 20:28, 22 February 2009 (UTC)
 * Agree An expert system does not necessarily mean that is it "reproducing" or it is of "human experts", it could be any human decision making, and doesn't reproduce it, maybe mimicking IMBlackMath (talk) 04:26, 30 March 2009 (UTC)
 * Agree with above. The "human expert" criteria is simply one comparison benchmark, but not necessarily the goal. (Achieving the capability of, say, a cockroach may adequate -- that's better than we can do now in remote roving applications, for instance. In other cases, you may want to do much better than humans, certainly in speed if not in quality of the results.)  The same certainly applies to "reproducing" -- that's just a benchmark, and shouldn't be considered the goal.  You really hope to do better on average.  In both cases, this "benchmark" is hard to quantify.  And even when you do the comparison with human experts, you really mean achieving the best results of the best experts, all of the time, as fast as possible.  That's a major incentive in online industrial applications, for instance, where there's a major problem is detecting and diagnosing faults right away, rather than waiting a long time for someone to even notice a problem at all, and then waste a lot of time trying to figure out what the problem is. Gmstanley (talk) 18:20, 16 December 2010 (UTC)

The article is terrible
Part of the problem is that the topic is damn near long dead. Neural networks, or flat decision trees are often used where expert systems would once have been used.

The basic ideas are still valid. An expert provides relationships and certainties, which are encoded in some computer readable format, and questions are asked, with potentially uncertain responses, preferably with some effort being expended in attempting to ask questions likely to eliminate or greatly reduce the confidence of many choices.

20q.net is an example of a fairly nonstandard expert system, since it attempts to self update by asking questions it is uncertain about the answer to for the object in question after becoming fairly certain it has found the correct object. But had the learning not been enabled, and a hand produced data set been given, it would definitely be a standard expert system.

But 20q.net is the only expert system I'm aware of using, except for trivial decision trees like many troubleshooters.

I suspect a large part of why expert systems fell out of favor is that creating a good dataset for some topic is very difficult and time consuming. A simple animal identification expert system is not really useful unless it has thousands of animals perhaps even tens of thousands, and many questions. As far as I can tell this is just too much work. 74.5.162.102 (talk) 04:14, 20 October 2009 (UTC)

Plagiarism from patent
Part of the problem is that large chunks of this article were plagiarised in 2003 by a Wikipedia editor who is no longer active, from a US patent filed in 1986! (The patent is not copyrighted so that's not a legal problem, but it is unethical to fail to attribute it.) I attributed some of those chunks, but then I reached the section called "Procedure node interface" and I'm not sure if that section should even be in this article - it's still written like it was part of a patent. Can an "expert" take a look at this section (no pun intended)? Also, it occurs to me that someone should check the other passages added at around the same time, to see if they were plagiarised from somewhere else.--greenrd (talk) 19:07, 23 October 2010 (UTC)

Copy-paste registration
In this edit text is copy/paste from the Knowledge representation article. -- Mdd (talk) 21:40, 27 October 2009 (UTC)

We should delete the "Procedure node interface" section
Gmstanley (talk) 18:00, 16 December 2010 (UTC) In my opinion (as someone who has implemented expert system solutions and built products), the entire "Procedure node interface" section is just clutter adding no value, and should be removed. It appears to be the details of one particular implementation. I presume it's just copied text from the patent application referred to in the other discussion topics. Even if it were useful (which I don't think is the case), it is providing a level of detail that is of little interest. The other sections explain general principles, limitations, etc., at an appropriate level of detail.

I'd just remove it, but thought it would be a better idea to first open it for discussion. Does anyone think that section is of any use?

{{hidden|The section "Procedure node interface", hidden, viewable by clicking "show" at right|

Procedure node interface
The function of the procedure node interface is to receive information from the procedures coordinator and create the appropriate procedure call. The ability to call a procedure and receive information from that procedure can be viewed as simply a generalization of input from the external world. In some earlier expert systems external information could only be obtained in a predetermined manner, which only allowed certain information to be acquired. Through the knowledge base, this expert system disclosed in the cross-referenced application can invoke any procedure allowed on its host system. This makes the expert system useful in a much wider class of knowledge domains than if it had no external access or only limited external access.

In the area of machine diagnostics using expert systems, particularly self-diagnostic applications, it is not possible to conclude the current state of "health" of a machine without some information. The best source of information is the machine itself, for it contains much detailed information that could not reasonably be provided by the operator.

The knowledge that is represented in the system appears in the rulebase. In the rulebase described in the cross-referenced applications, there are basically four different types of objects, with the associated information:


 * 1) Classes: Questions asked to the user.
 * 2) Parameters: Place holders for character strings which may be variables that can be inserted into a class question at the point in the question where the parameter is positioned.
 * 3) Procedures: Definitions of calls to external procedures.
 * 4) Rule nodes: Inferences in the system are made by a tree structure which indicates the rules or logic mimicking human reasoning. The nodes of these trees are called rule nodes. There are several different types of rule nodes.

The rulebase echoes a forest of many trees. The top node of the tree is called the goal node, in that it contains the conclusion. Each tree in the forest has a different goal node. The leaves of the tree are also referred to as rule nodes, or one of the types of rule nodes. A leaf may be an evidence node, an external node, or a reference node.

An evidence node functions to obtain information from the operator by asking a specific question. In responding to a question presented by an evidence node, the operator is generally instructed to answer "yes" or "no" represented by the numeric values 1 and 0 or provide a value between 0 and 1, representing a "maybe". Questions which require a response from the operator other than yes or no or a value between 0 and 1 are handled in a different manner.

A leaf that is an external node indicates that the data which will be used was obtained from a procedure call.

A reference node functions to refer to another tree or subtree.

A tree may also contain intermediate or minor nodes between the goal node and the leaf node. An intermediate node can represent logical operations like "And" or "Or".

The inference logic has two functions. It selects a tree to trace and then it traces that tree. Once a tree has been selected, that tree is traced, depth-first, left to right.

The word "tracing" refers to the action the system takes as it traverses the tree, asking classes (questions), calling procedures, and calculating confidences as it proceeds.

As explained in the cross-referenced applications, the selection of a tree depends on the ordering of the trees. The original ordering of the trees is the order in which they appear in the rulebase. This order can be changed, however, by assigning an evidence node an attribute "initial" which is described in detail in these applications. The first action taken is to obtain values for all evidence nodes which have been assigned an "initial" attribute. Using only the answers to these initial evidences, the rules are ordered so that the most likely to succeed is evaluated first. The trees can be further re-ordered because they are constantly being updated as a selected tree is being traced.

The type of information solicited by the system from the user by means of questions or classes should be tailored to the level of knowledge of the user. In many applications, the group of prospective uses is well-defined and the knowledge level can be estimated so that the questions can be presented at a level which corresponds generally to the average user. However, in other applications, knowledge of the specific domain of the expert system might vary considerably among the group of prospective users.

One application where this is particularly true involves the use of an expert system, operating in a self-diagnostic mode on a personal computer to assist the operator of the personal computer to diagnose the cause of a fault or error in either the hardware or software. In general, asking the operator for information is the most straightforward way for the expert system to gather information, assuming that the information is or should be within the operator's understanding. For example, in diagnosing a personal computer, the expert system must know the major functional components of the system. It could ask the operator, for instance, if the display is a monochrome or color display. The operator should, in all probability, be able to provide the correct answer. The expert system could, on the other hand, cause a test unit to be run to determine the type of display. The accuracy of the data collected by either approach in this instance probably would not be that different so the knowledge engineer could employ either approach without affecting the accuracy of the diagnosis. However, in many instances, because of the nature of the information being solicited, it is better to obtain the information from the system rather than asking the operator, because the accuracy of the data supplied by the operator is so low that the system could not effectively process it to a meaningful conclusion.

In many situations the information is already in the system, in a form that permits the correct answer to a question to be obtained through a process of inductive or deductive reasoning. The data previously collected by the system could include answers provided by the user to less complex questions previously asked for a different reason or results returned from test units that were previously run. }}


 * Frankly, I found that section hard to understand. It needs at least an introduction "for dummies", without terms such as procedures coordinator (which is currently red linked). Also, a reference wouldn't harm. I moved the text to a hidden template above until fit for reinsertion. Mikael Häggström (talk) 15:15, 19 March 2011 (UTC)

Can someone fix the first 7 references?
The first 6 references are useless as currently presented. I take it these were part of the copied patent application, too? They show up as live links (rather than plain text) in the reference section, but clicking on them does nothing. Furthermore, the titles aren't long enough to give anyone enough information to find them. So, anyone wanting to read those references will fail. For instance, ACM 1998? The ACM publishes a huge number of things in any year - this reference is completely useless. The others are probably texbooks or academic papers, but you can't tell from just the author, date, and page number. A title is needed. People who publish textbooks also write academic papers, and some journals get into those high page numbers as well. Having the references would be a very good thing, but the ones that are there are useless.

Can anyone provide the titles for the references?

Maybe this information could be found in the patent, but the misleadingly-live link to the patent in reference 7 doesn't do anything either. Gmstanley (talk) 19:50, 16 December 2010 (UTC)
 * The refs were added here. Did the editor make a typo in the template and get a different one, or has the template changed? --Ronz (talk) 20:26, 16 December 2010 (UTC)

Shortened section on relevant inquiries
I shortened down the length of the section on "Ability to make relevant inquiries" while preserving the point, I think - please correct if some point is missing now. Also, I'm a little bit uncertain about the role of control flow systems in this, but I integrated the link as I thought was accurate. Mikael Häggström (talk) 15:40, 19 March 2011 (UTC)

Improvement of the article
Hi, I'm a french contributor : Jean-Philippe de Lespinay (en), [|Jean-Philippe de Lespinay (fr)] et La Maieutique. The articles about Artificial Intelligence and expert system forget one major innovation in technology expert system: "La Maieutique" associated with zero-order logic. Yet it is the only innovation in AI history that allowed the expert systems to be developed without any computer knowledge, in natural language. This also is the only one that gave the IA the famous reasoning capacity required by Minsky forty years ago. With the reasoning, expert system, in my opinion, is the only technology which deserves to be called "Artificial Intelligence". In Larousse Encyclopedia, there are two good articles about expert system and AI (unfortunatly in French) which we could learn. What do you think ? Pat grenier (talk) 14:26, 2 September 2011 (UTC)


 * OK, I see I have no response. In that case, I start modifying the article. We'll see this time if there are reactions. I do it with Jean-Philippe de Lespinay, who knows the subject well. But we do not speak English well. I hope other contributors will enhance the English form of the text. Pat grenier (talk) 09:28, 7 September 2011 (UTC)

Changes by User Pat Grenier
There have been a number of changes by Pat Grenier that have Pat Grenier, your contributions are welcome, but basic familiarity with the above three Wikipedia guidelines is essential to avoid having your edits reverted. pgr94 (talk) 09:22, 8 September 2011 (UTC)
 * 1) removed reliable sources  Sources should only be removed if they are replaced with better sources.
 * 2) added unacceptable sources (Citing a French wikipedia article)  Please see WP:RS
 * 3) unsourced statements: "Expert system offers many advantages for users compared to traditional programs because it operates like a human brain". Please see WP:V
 * 4) added non neutral point of view.  "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."  Please see WP:NPOV


 * Thank you pgr94 but your recommendations ("three Wikipedia guidelines") are too vague for me, especially because I speak little English. I treat the substance of the article so that it becomes finally clear, and not of the form. If no one wants to help me I invite you to revert my edits. Sorry. Pat grenier (talk) 10:49, 8 September 2011 (UTC)
 * Personally, I don't think your English is bad. But if language is a barrier to understanding the guidelines (WP:NPOV, WP:V, WP:RS), may I suggest visiting the French Wikipedia which has similar guidelines  They are not so much about form, but about content. pgr94 (talk) 11:22, 8 September 2011 (UTC)


 * OK, that's more clear for me. You want me neutrality, I remove french Wikipedia article and I source my comments. No problem. I take care of it. 90.54.117.217 (talk) 11:33, 8 September 2011 (UTC)


 * And now, what do you think ? After, I have to write a chapter about history of expert system, then delete the old chapters (if you agree...). Pat grenier (talk) 14:33, 8 September 2011 (UTC)


 * NOTE: Pat grenier has been blocked indefinitely for abuse of multiple accounts, and has a clear WP:COI regarding any material concerning Jean-Philippe de Lespinay. Given this, it would seem wise to revert all grenier's edits - but perhaps someone more familiar with the subject might like to ensure that nothing useful is removed in the process. AndyTheGrump (talk) 22:50, 6 October 2011 (UTC)


 * Comparing before vs. after, it looks like a lot of material has been removed from the article as well. —Ruud 12:14, 10 October 2011 (UTC)
 * Ruud, I have no objection to going back. I introduced some references and a little material after Grenier started, perhaps they could be recovered as they were from expert system textbooks.  Also, Grenier did remove a lot of material that was pretty poor.  There'd be a case for stripping much of that material again after a revert.  Anyway, be bold, there is plenty of scope for improvement. pgr94 (talk) 15:06, 11 October 2011 (UTC)

The history section is just a mess after the 1981 sentence. It is pretty bad. It i snot on my pathnow to fix it, but is just irrelevant PC material etc. and has missed the key architectural milestones and issues. I would just delete the post 1981 items and start again. But I am not watching this page, just driving by. History2007 (talk) 14:53, 23 December 2011 (UTC)

Added to disadvantages
I added the following paragraph to disadvantages: Depending on implementation, the inference engine may perform an action analogus to depth search in a graph, which is known to be an exponential time algorithm. The way rules are formulated and/or the order in which concurrent rules are processed may, in speciffic and important cases, reduce this aspect into practically effective limits, however, at least breaf understanding about the inference engine's implemented algorithm and/or algorithmics and data structure theory is necessary, which may apear difficult to the expert. Sometimes it can be the case that, for example, by chance or when the greedy algorithm may suffice, without any knowledge the expert to produce at least sufficient or optimum aplications. The converse (i.e. no set of rules to allow a non-exponential execution time) may also be the case, when, in practice, there is known at least a non-exponential execution time algorithm for particular problems or for the information provided by any formulation of the set of rules that may solve the problem an be specified. This second statement is true in theory, but in practice it may not be adressed at all, due to the fact that expert systems are not dedicated to such types of problems.

I wanted to be bold, but I might be wrong. Please review it and edit/modify/remove it, as to be correct. — Preceding unsigned comment added by 79.119.8.190 (talk) 09:12, 23 October 2011 (UTC)

Article quality
I would say this article is 50% correct, at best, 30% redundant and 20% flatly incorrect. And it lacks coverage of say 50% of the field. Overall a pretty low quality item. I do not have time to work on it, but really needs to get tagged as unreliable. History2007 (talk) 14:51, 23 December 2011 (UTC)
 * Definitely agree. pgr94 (talk) 12:30, 1 February 2012 (UTC)
 * Definitely agree. The article wasn't very good before the Pat Grenier changes, and in some ways got worse after the Pat Grenier changes, turning into a sales document for his research group.   For instance, he added nonsense about scalability being an advantage, when actually that's a major (but solvable) concern both from the knowledge engineering view (finding all the appropriate rules to change when making modifications), and from a computing efficiency view at runtime (leading to approaches like the Rete algorithm to avoid the otherwise exponential computing complexity.).  His changes to the definition of forward and backward chaining area were almost useless, and confused the applications with the basic mechanics.  (For example, fault diagnosis can be done via forward or backward chaining depending on what the rules represent.  If the IF/THEN rules represent cause in the antecedent leading to symptom effects in the THEN portion, the user might enter the symptoms, and backward chaining would be used to find the causes.  But if the IF/THEN rules represent patterns of known symptoms in the antecedent leading to causes in the THEN portion, the user might enter the symptoms and forward chaining would be used .  If no one objects, I'll probably try to partly replace the definitions of forward and backward chaining with some of the earlier pre-Grenier material as it existed at the time.  Whoever wrote that original section on chaining did a good job, although it may be more detailed than really needed.   Gmstanley (talk) 00:23, 6 October 2012 (UTC)
 * I've started editing the article and have already fixed some of the mistakes. Just wanted to document a real whopper I hadn't noticed until now (finished history moving on to architecture). It says that rules are specified in "natural language"! What? Abso-fucking-lutely they are not! I mean I know people who spent a lot of DARPA money on research into how to do that, to be able to take natural language and recognize rules from it but there is no way that is what an expert system shell does. Saying that betrays a fundamantal misconception of the term "natural language" as used by AI people. I probably don't even need to document this, it's so bad I could just remove it but forgive me I just feel like venting for a bit. I'm amazed that has been here so long. It won't be much longer :) RedDog (talk) 18:58, 29 November 2013 (UTC)

What is an "IA"?
This abbreviation occurs several times in the article as well as in this talk page. As far as I can see, there is no hint about what it means. Is it a typo or something different than AI? I looked at http://en.wikipedia.org/wiki/Ia#Internet_and_information_technology, but no luck there. with no success
 * Fixed. It's the French acronym for AI, added by a french-speaking editor.  pgr94 (talk) 12:29, 1 February 2012 (UTC)

Restoring the "Real Time Adaption" section
The article up to Sept 8, 2011, had a section called "Real Time Adaption", mostly written by me. This got deleted without justification by Pat Grenier on Sept 9, 2011. I propose restoring it, as shown in my proposed revision of Oct. 5, 2012 (removed on October 6). There's really two separate questions: (1) is this topic appropriate, and (2), am I the right person to write it. AndyTheGrump pointed out that the text references technical papers for which I am the author or a co-author, so perhaps I have a conflict of interest. He suggested that the appropriate thing to do is highlight this first in the talk page -- so here it is...

(1) I'd say the topic is clearly an appropriate part of expert systems history. It was actually put into large-scale online use in industries such as the process industries and in telecommunications control centers. It could be argued that because real time expert systems were so widely used in industry in the 1990-2000 time period (with some still in use today), they had a bigger economic impact than other applications that were sometimes just interesting demonstrations.

(2) As to conflict of interest, I see how that could be a concern, but I don't believe it should be considered significant. The only people who are likely to fix up a flawed article for an out-of-favor topic like this one are going to be the ones who were intimately involved in it. From 1987 to 2001, I played a major role for the most popular provider of real time expert systems shells for the process industries (Gensym), also building add-on products for specific applications and other industries, and implementing applications for end users as well. But expert system products are not popular any more. I don't work for Gensym, don't get any payments from them, and don't have friends who still work there (everyone originally working for the company before its acquisition was laid off). I've occasionally done consulting for people still using these tools. But that's mainly because of contacts already established, and would happen whether that section exists or not.

I do cite technical papers for which I was a co-author or author. It's hard to avoid the first one, because it was the first paper summarizing the needs and a practical solution to the process control audience (the major yearly conference of IFAC - International Federation of Automatic Control, so it was widely noticed). The second one is a summary of numerous actual, installed industrial applications and lessons learned. Summaries are hard to find elsewhere. This was presented as the plenary paper at another IFAC conference (so again, getting widespread notice). The fourth reference is to an entire conference proceedings, not to my own publication.

In short, 3 of 4 references are technical papers I co-authored. There is a general need in Wikipedia to cite references to support the text. Given my heavy involvement in this field from its early days, these are very appropriate references, and presented at technical conferences attended by both academics and industrial people who demand high-quality presentations. The first defines the ideas, the second shows the applications and lessons learned, and the third amplifies some more lessons learned from more years of experience.

These comments are already longer than the proposed section itself. Comments? Gmstanley (talk) 04:43, 6 October 2012 (UTC)

French bias?
This article has a decidedly French bias to it, citing a lot of projects done in France and not enough elsewhere. I am French and I was involved in some of this work and some of the conferences, so I can see a lot of names that are familiar to people in France, but less to people elsewhere. Feraudyh (talk) 12:43, 8 May 2013 (UTC)

Systems in health and healthcare
I'm a student and currently studying masters level health informatics with an information systems undergraduate. As part of one of my assessments, I'm to contribute to the world knowledge base, known as wikipedia. I've selected this article to be one that I will help to contribute and improve. As I'm studying health informatics, I thought I'd include information about how expert systems exists in the healthcare sector of Australia, (particularly Victoria), and their influences.

Note: that some countries may have already adopted and electronic health record, so my writing may seem a bit "hopeful"; in a sense that we're looking toward the future when some countries ARE already in the future (in terms of health technology). Please leave critique if you find it my additions unacceptable.Vsikiric (talk) 04:55, 12 May 2013 (UTC)

Peer Review
Reviewing for Health Informatics C

The article has:
 * Provided a clear and concise introduction to Expert Systems
 * Various in-depth information to the various sections realted to expert system, espicially the history section
 * Logical structure

Suggestion
 * Provide more detail information in the advantages section, this could include adding examples

Disadvantages of Expert Systems
Just to establish my credentials, I worked for several years in the AI group of a Big 5 Consulting firm. I agree with the general critique above on the overall quality of the article. To start with IMO the disadvantages section is just wrong. It's sort of the traditional academic argument about expert systems, that knowledge-engineering is hard. I don't really disagree with anything said, knowledge-engineering is hard, but getting ANY expert's dedicated time to develop and maintain a system is one of the hardest tasks. IMO the main disadvantage with expert systems is that the whole idea never made sense except for research prototypes to prove ideas. The idea of expert systems is to replace an expert with software. That idea never caught on. It's not that expert level knowledge isn't included in systems, it definitely is, it's just that having that knowledge be a stand alone rule-based system doesn't work well. The non-functional requirements for a system: the UI, ease of learning and use, and especially integration with other systems and access to large legacy databases, those are the things that make or break a system and by the time you are done with all that stuff you no longer have an "expert system" you just have yet another computer system that has some deep knowledge in one of it's sub-systems. I ended up making this a lot longer than I intended. Anyway, that's my 2 cents, interested what others think, I'm going to see if I can find articles or papers that support what I just said and if I can I will edit the article a bit. RedDog (talk) 23:18, 12 November 2013 (UTC)

No professional developers?
Several times in the current article it states that a defining feature of Expert Systems is that they can be built without professional developers. Nonsense. Total nonsense. It's true that many tool vendors claimed this could be done but I don't know of a single deployed system that was built without professional developers. If anyone has some examples please speak up. Domain experts can build prototypes. Domain experts sometimes (not often) can write rules using the tool rather than in English or a spec language but never, ever have I heard of an actual deployed system that went beyond the prototype stage without developers. For one thing debugging an expert system can be very difficult. The fact that it's not a procedural system is a double edged sword. As the rule base gets complex there can be unforseen and unwanted interactions between various rules that are hard to understand and fix. Also, as I stated in another Talk section, some of the most important issues for expert systems turn out to be the same issues for any other system: integration with other systems, access to large legacy databases, training, etc. All those things require software pros. RedDog (talk) 22:27, 13 November 2013 (UTC)

Text in Introduction was plagiarized
I just edited the introduction text. Several sections were simply pasted in from one of the references, a paper on Nigerian expert systems. That actually wasn't the main reason I was editing the text actually, it read more like a hype article from an expert system vendor than an actual assessment of the technology, I tried to make it more realistic but wanted to document that the text I replaced was in part plagiarized, I'm worried that more of the text of the current article may be as well. RedDog (talk) 23:07, 13 November 2013 (UTC)


 * That is worrying - though it is worth bearing in mind that sometimes the copy-pasting turns out to have gone the other way, from our article to a later source. Figuring out what came first isn't always easy. If phrases have been copied directly, rather than paraphrased, it is a copyright issue, rather than just plagiarism, and should probably be raised at the Copyright problems noticeboard. Regulars there are probably the best people to figure out what exactly has gone on. AndyTheGrump (talk) 23:25, 13 November 2013 (UTC)
 * I sincerely apologize. I was going to follow up on your suggestion but before I did I wanted to double check that it was plagiarized. The sequence of events was I made a change, then was double checking the refs and I could have sworn I came across two sentences in a paper that were identical to ones I had re-written. At that point it didn't occur to me to double check using the history, I just thought "better document this". When I double checked (which I obviously should have done before writing the comment above) while the wording was similar, it wasn't identical and definitely wasn't plagiarism. I apologize for making such a dumb mistake, I know plagiarizing is serious and I shouldn't have written anything before double checking and I will remember in the future never to trust my memory. I think I've handled it appropriately by using the strikethrough text but if there is something different I should do, let me know, it didn't seem right to just delete the initial comment, I felt I should be honest about documenting my stupid mistake.  RedDog (talk) 13:45, 14 November 2013 (UTC)

Challenging Statements in History
Currently the history says the following: "The French Prolog computer language, designed in 1972, marks a real advance over expert systems like Dendral or Mycin: it is a shell" IMO this is totally innacurate. Comparing Prolog and Expert systems is like comparing LISP and Expert Systems, it's apples and oranges. Prolog is similar to LISP or Smalltalk. All three are high level interpreted programming languages that are usually found with powerful development environments. Expert system shells are a step up. They are less general purpose but more focused on a specific domain of problems. Prolog is no more an "advance" on expert systems than Smalltalk or Objective C. Also, I spent a significant time in the 80's working with clients in many different industries to build expert systems. I can remember one project where Prolog was on the short list of possible tools and not selected but that was the only time I remember it even coming up. Rule based shells from Aion, Exsys, Art, Intellicorp were the dominant tools in the US at least. I plan to change this section but wanted to document it here in case anyone wants to discuss it first. RedDog (talk) 15:12, 29 November 2013 (UTC)

(Agree strongly. Good luck -- this article is so bad that it's daunting to even begin to fix it.) Gmstanley (talk) 16:04, 29 November 2013 (UTC)
 * Thanks! There are other statements in the history I'm going to prune back or just eliminate. There are several statements such as "Prolog was the most popular AI language in the world" and "In the 80's everyone thought AI would succeed". IMO this kind of language is the superficial kind of analysis you get in bad trade magazines and vendor promotional materials. Most of these statements are either not really true, vacuous, or not all that important. The claim about Prolog is I think almost certainly false because US systems were so prevalent but the bottom line is it's pointless to make claims or even argue if Prolog is "better" than rules. What mattered then and even more so in retrospect is to understand what the strengths and weaknesses of the various environments were not which one was the "best". RedDog (talk) 16:25, 29 November 2013 (UTC)

Looking for good refs on AI in the Real World
The current article really has an academic feel to it. This is kind of frustrating because unlike when I usually write an article I have no problem figuring out what to say. I know what happened I was there. But it's odd that when you are in the trenches you don't spend much time reading about it you are too busy doing it. I've tried some online searches and will try again with more parameters but I thought I would document here, if anyone has some good references to journal articles, trade articles, or books on the actual applications of expert systems in the real world please let me know. I've looked at many of the refs here and often when people talk about "real world application" what they really mean is research software that never got beyond the prototype phase. There were real actual expert systems deployed in the real world with training, db integration, etc. I want to emphasize that side more. thanks in advance for any ideas. RedDog (talk) 16:47, 29 November 2013 (UTC)

Plan To Delete Entire Bibliography
There is currently an additional Bibliography section in addition to the actual references. Many of the references were unfamiliar to me and I've read most of the major "classic" AI books and papers by Feigenbaum, Winston, Hayes-Roth, etc. Last night I went through most of the unfamiliar references and most of them should not be there. Mostly they are what I think are "vanity" links. Someone put a link to a paper, presentation, web site, they were responsible for or of a friend. There is one link to a web site that is all in French but the actual links on the site just point back to more Wikipedia AI articles. The few things in the bibliography that are worth keeping are just references to a few moderately good books like Winston. But there are many other classic books (e.g. the Hayes-Roth expert system book, the Feigenbaum Handbook of AI) that aren't included. I plan to just delete this entire additional bibliography. By now I've beefed up the actual references so that many of the best books actually are used as references. That wasn't the case before, many of the references were to obscure French papers by people I never heard of. And I plan to do more work on the references as I'm in the process of getting some more books and (re)reading them and then will update the actual bibliography as appropriate. So I think the whole additional list can and should just be deleted which I plan to do shortly but just wanted to document why here in case anyone wants to discuss first. RedDog (talk) 14:40, 30 November 2013 (UTC)

Starting Over as of Now
So at this point in time I have essentially rewritten the whole article. The last thing I did was to rewrite everything that was written about applications. None of it had a reference, some of it was clearly wrong, it was all hard to read. What I have now is not great, mostly from the Hayes-Roth book that I'm amazed I still have and even more amazed I knew where it was at home. It's funny, I planned to only make a few minor changes to address things that were clearly wrong (see my other comments on talk page) but once I got going and the more I read what was there the more I realized I had to fix it. Essentially (assuming none of my changes get reverted) we could delete everything on this Talk page before this comment because it refers to content that is no longer there. I won't do that of course for historical reasons just making it clear, all the nasty things people quite rightly said about the previous article no longer apply. (I'm sure there are many nasty things that could and will be said about this version as well :) There is a lot more I could say about expert systems applications. I have a few books reserved at my library that should help and once I review those I plan to flesh out the applications section. Also, there are some refs that are probably a bit sketchy. There were a few cases where I rewrote something to make it intelligible and I just kept the existing reference even though it's a paper or book I can't get and that I have doubts is a good reference for the information communicated. In all those cases I know the information is true but I'm just not certain about the reference. I also plan to rework those references and rewrite as appropriate as I get my hands on some of those books from the library. RedDog (talk) 18:04, 30 November 2013 (UTC)
 * One last minor thing. In the applications section I included Skynet -- yes the one from Terminator -- as an example of a control system. When you read the Hayes-Roth book the description of this class of systems is essentially Skynet (the pre self aware version of course). At first I didn't plan to use that as an example but the more I thought about it the more I came to think it's something that a lot of people will know and why not use it, if this was an academic encyclopedia an example from fiction would be out of place but for a general audience I think it shows the overlap between real AI and the public imagination. And I made it clear in the note that this was a fictitous example application. That was my thinking anyway, if it bothers anyone and someone can come up with more real examples I'm not averse to changing it. RedDog (talk) 18:13, 30 November 2013 (UTC)


 * re- Skynet. While it's a fun reference, it might apply better on a more general AI page. After all, as you noted, the key distinguishing characteristic of Skynet, differing from all previous systems,  was that it "became self aware".  Basic expert systems are way too brittle to do that -- at a minimum, they'd have to add in some automated machine learning component (for "unsupervised learning" at that) to rewrite their own rules and add facts, which isn't a part of basic expert systems or mentioned in this article.  The "becoming self-aware" was tied in with the general, vague notion that as network complexity and power increases, intelligence arises bottom-up, an emergent phenomenon. This is more of a "connectionist" viewpoint, more typically associated with neural nets (although in reality neural training is also too rigid for this).  This bottom-up emergence of intelligence all by itself is the antithesis of the top-down rule definition by experts.  And neural net fans will point out that the terminators themselves (as I recall) were explicitly said to be running neural nets - one might assume that Skynet would use its own proven technology when constructing terminators. BTW, Skynet was way more than a control system. It really set its own goals, and invented its own innovative strategies, tactics, and technologies -- way beyond any present-day control system definition.  Maybe we need to consult Ahnold on this one...   Gmstanley (talk) 20:06, 2 December 2013 (UTC)
 * I agree. Now that I have the references from the previous version and also some books that have application examples, I'll get rid of the Skynet exacmple. RedDog (talk) 00:07, 3 December 2013 (UTC)


 * After just a quick skimming, it is obvious that the rewrite is a massive improvement! You deserve thanks for taking what was obviously a significant amount of effort to produce a high quality product, including not only the text but working through the references.  There could always be room for enhancements, of course, but the previous article was so bad that it never seemed worth the trouble of trying to fix it incrementally.  Gmstanley (talk) 23:27, 1 December 2013 (UTC)


 * I'd still say that there needs to be a section on real time expert systems. See my earlier comments in the "real time adaption" section of this talk page.  By looking back at the history, you can see the text and references for this that once existed in the article. Real time expert systems had unique characteristics. The real time systems were commercially very significant - with economic benefits possibly exceeding those in any other area of expert systems.  They were implemented in real applications in hundreds of companies.  One measure was that the lead software company in the area(Gensym)was successful for many years, selling many millions of dollars of their products and services, and at one time employing over 300 people.  Gmstanley (talk) 23:27, 1 December 2013 (UTC)
 * Thanks. I will definitely look back at that Real Time Expert systems stuff. I always want to add more real world examples. I saw that in one comment you were the author of some papers. Feel free to leave the refs (especially a URL if available) for those papers here in the Talk page. I should be able to find them using the History but if there are better links now or whatever. Don't worry about any bias, as long as you aren't writing the part of the article that references your papers it's fine otherwise for you to make other editors aware of papers you have written, that isn't a COI at all IMO, on the contrary it's the proper way to do it. Thanks again for the feedback. RedDog (talk) 14:40, 2 December 2013 (UTC)


 * Three of the four references in the "real time adaption" section as of October 5, 2012 (after I had temporarily re-inserted the section) are available at URLS. I'd start with the applications summary "experiences using knowledge-based reasoning in online control systems", available at http://gregstanleyandassociates.com/IFAC91objectPaper.pdf .  This paper has lots of references to applications, as well as "lessons learned" sorts of material that should help.  Maybe then, read the paper explaining some of the fundamental issues, at http://gregstanleyandassociates.com/IFAC_Estonia_1990_Paper_Reformatted.pdf .  The third reference has more recent applications, although you might feel that it depends on more than just the rule-oriented basic expert system ideas (as do most real systems -- pure rule representation just wasn't that convenient or maintainable -- it was almost always better to represent a lot of declarative knowledge explicitly in objects and relationships, and have more generic sorts of rules reference that representation.)  The fourth reference is a conference proceedings, not available in its entirety online as far as I know, although some of the individual papers in it might be found online.    Although I'm not suggesting referencing it, for ideas, you also might want to take a look at my short summary on rule-based systems at http://gregstanleyandassociates.com/whitepapers/FaultDiagnosis/Rules/rules.htm . Note the commercial and open source products, using rule-based systems as a implementation platform for other standard techniques,  a little bit more explanation of forward and backward chaining, and more mention of performance issues, including solutions such as RETE (which has a section in Wikipedia) and others that cached pointers.   Gmstanley (talk) 17:13, 2 December 2013 (UTC)
 * Fantastic. Thanks for all that. It will probably take me some time to look through them but even from a brief glimpse the papers seem very relevant and I'm almost certain it will make sense to add more info about real time systems and use some of those papers as references. RedDog (talk) 17:53, 2 December 2013 (UTC)
 * GmStanley, if you get a chance please take a quick look at my Sandbox: https://en.wikipedia.org/wiki/User:Mdebellis/sandbox As of now (11am PST 12/2) I put what I think was the most recent version of the real time expert systems stuff from the old article. I haven't read it at all, I'm just multitasking here and when I get bored with my actual work coming back here to do a thing or two so I have no idea how much if any of that I will re-use but wanted to make sure I was starting from the best version. Thanks. RedDog (talk) 18:50, 2 December 2013 (UTC)
 * Yes, that short paragraph with its four references was it!  Thanks.   Gmstanley (talk) 19:32, 2 December 2013 (UTC)
 * So this is just a quick reaction based on a very brief look. There are two issues I expected to see emphasized a lot that didn't seem very prominent and I'm wondering am I understanding something wrong or is it just not discussed much in the papers or previous version or maybe it is and I just missed it in my quick look. The two issues are performance and fault tolerance. The company I worked for never did any serious real time expert systems work precisely because we assumed it required different skills than our average consultants had. The shells we used (at least the early one) were based on interpreted environments. That meant they were slow (compared to custom coding in C) and also less reliable (compiled vs. interpreted code). I would think that would be a critical issue for real time. If my doctor takes a few seconds longer to give me a diagnosis no big deal. If my expert system takes too long to figure out what to do with the plane or the power plant it could be literally a disaster. The same with reliability, you can always reboot a doctor advisor system rebooting may not be an option with real time control. As to the issues that were discussed, I see the relevance but some of it, e.g. what seemed to me to be essentially a discussion about truth maintenance seemed as if it applied to all kinds of systems not just real time. Keep in mind I'm just throwing this out for discussion, I've only skimmed the papers so far. RedDog (talk) 00:07, 3 December 2013 (UTC)


 * Yes, performance and reliability were very important. It's just that the referenced papers were written more for an engineering or operations-oriented audience.  The audience needed to know how such applications might work, and needed that explanation before they worried about the nitty-gritty details of implementation.   Unfortunately, at least in the case of G2, I don't think there was ever a published paper explaining the performance issues.   I'll do some inquiries on that.   In the meantime, I'll highlight a few approaches built into the tools, that quickly come to mind.  Most of this was automatic, with optional tweaking by application developers:


 * While the tool source code was written in LISP, it was translated into C and compiled by the time application developers saw it
 * Options for compilation of the knowledge bases, in small chunks if needed
 * In-memory operation (there were standard interfaces to databases, process control systems, etc., but by default, everything was then kept in memory until no longer needed, including real-time data history.)
 * Special real-time garbage collection algorithms
 * Minimizing of garbage collection in the first place, by automatic recycling of application objects of various sizes (since object creation and deletion is very CPU-intensive)
 * Client-server architecture, with a process to run each user's interface, offloading the central server
 * A lot of caching (some of which got backed out in later versions, because it introduced some unreliability in systems with a lot of object creation & deletion)
 * Reducing the load on rule processing by representing a lot of knowledge directly as objects (with a class hierarchy) and relationships (such as connections by pipe or wire, part-of relationships, etc.), rather than using rules to represent everything
 * Simplified real-time truth maintenance by propagating expiration times for changes in data and conclusions
 * Making use of rules that referenced (and communicated through) objects and variables, in a way that relationships between rules could always be cached, so the performance usually scaled linearly with respect to problem size (by number of objects or rule base size). That contrasts with exponential scaling of the original rule-based systems, and worked both for forward chaining and backward chaining (unlike the RETE algorithm).
 * Ability to dynamically turn on and off whole groups of objects and groups of rules, and focus just on the set that was relevant at the time
 * When representing uncertainty for logical variables, simplified fuzzy values and operations as the default case (AND as a minimization of values, OR as a maximum value), rather than more complex certainty factors.
 * Application developer prioritization of activities at run time, at the level of individual rules, methods, etc.
 * When lists of objects were (optionally) used in applications, hashing was specifiable by the application developer, for quick retrieval by attribute values
 * The ability for application developers to program there own procedural algorithms in methods, including the ability to specify maximum execution times and break points where other processing was allowed (so that one method couldn't hog CPU resources too long)
 * Performance analysis tools were built in, so people could do their own performance troubleshooting and optimization
 * This was a quick first pass, probably not at all complete.

For high reliability systems, from a hardware standpoint, some people bought computers with automatic failover -- the main example at the time being some models of computers from DEC. The software could run a long time without rebooting, unless it happened to have uncovered a bug that led to memory leakage (which became rare in later versions). In general, all application errors and exceptions were caught and logged automatically, so that the overall system continued running. For example, if an application developer wrote particular rules or methods that happened to hit an infinite loop or infinite recursion, that rule or method would hit a specifiable maximum time limit, and the rest of the system still continued running. If desired, the application software could be modified without rebooting. This sounds scary from an IT version control and testing standpoint, but actually reflects the way that large-scale process control systems work - it's much scarier (to the point of being impractical) to shut down an entire control system for a portion of a refinery than to just modify one control while everything else keeps running.

Unfortunately, without a suitable reference, you probably can't really include this in Wikipedia.Gmstanley (talk) 06:08, 3 December 2013 (UTC)
 * That's all great info! That is more the kind of things I was thinking about. I definitely hear what you are saying though. I think what we are experiencing here is an example of a general issue with a lot of the published papers on AI and expert systems. The actual issues don't correlate all that well with what get's written up in most academic journals. That's kind of understandable, integrating a rule base with a COBOL system or a huge Oracle database isn't rocket science. There is no major new idea there, it's just the grunt work required to make a successful deployed system. But in my experience those kinds of issues were far, far more important than say having a powerful truth maintenance system or the most sophisticated inference engine. Yet, I experienced the same thing most of the papers talk about how we need things like automated knowledge acquisition, TMS, etc. and very little on what IMO were the really critical application issues of integration. You are right though I don't think we can use much of what you wrote without a better reference but if you do find one let me know. BTW, I made a small change, removed Skynet and added a "Real Time Process Control" with a ref to the overview paper. It's a start at least. RedDog (talk) 15:53, 3 December 2013 (UTC)


 * Yes, integration was often a major issue, although over time it was ameliorated in common cases for selected industries by productized and supported interfaces to standard protocols or products  (e.g., SNMP for network management, OSI PI and OPC for process control, database interfaces, CSV files, etc.). But each time someone tried the products in a new industry, it took a while to get the integration right, with some pain.

Glad to see you found a good reference for process control apps! I have a question on the new formats for the references. It makes sense to list the acquisition date for URLs pointing to web pages, on the assumption they can change. But for URLs retrieving pdf files that are published papers, it seems to me to make more sense to follow traditional academic standards and include the full publication information like the original publication date, location, journal, page numbers, etc. That way people can find the articles if the URLs are ever moved (which will always happen, eventually -- only the original publication information can be guaranteed to remain invariant over time). They can also tell how old the reference actually is.

Another minor comment - the article essentially indicates that the heydey of expert systems was in the 1980's. But the heydey for real time expert systems was really the 1990's (they only got going in the late 1980's with PICON, G2, and a few other products ). It was winding down around 2000 or so, and nearly finished off during the tech crash, but still exists today at a low level. Gmstanley (talk) 21:10, 3 December 2013 (UTC)

I should have added that the people buying and implementing real time systems were typically not in IT, so saying that expert systems dropped off the radar in the 1990's in IT may be true but isn't completely applicable. People in process control, engineering, network management, and other areas, were typically closer to the real time operations, and often didn't hold their IT departments in high regard. (I'm not suggesting that's good -- I'd consider that an organizational problem on their part, but it was real, often with turf battles or even real hostility on both sides.) In the process industries and manufacturing in general, there's now MES software that's supposed to be filling the gap between IT applications and the more real-time control and factory floor applications, but the gap was bigger back then. Gmstanley (talk) 21:37, 3 December 2013 (UTC)
 * On the references: I agree completely. I thought that I had done that for all the references I used but it's possible I was lazy on a few, if I was I apologize. I think there are some references that are the kind you mention that are left over from the article before I started editing it. In some cases I thought what was in the article made sense but was poorly written so I just rewrote it and assumed the existing ref was valid. I will keep it on my to do list to take a look back at the refs at some point. Also, I'm sort of incrementally re-reading stuff on AI and as I find good references I will suplement or replace the existing ones as appropriate.


 * Regarding real time applications and the 90's, I didn't know that but it makes sense. If you have a paper that references some of the things we talked about above let me know. I plan to expand the applications section at some point. FYI, I'm probably not going to do a lot of work in the near future. I just got two books by Feigenbaum that I thought might have some good real world info but so far they look mostly to be more strategy consulting BS jargon then anything really substantial. RedDog (talk) 00:06, 4 December 2013 (UTC)

Real Time Adaptation section from old article
Just wanted to document: I retrieved a section of the old article that was about real time expert systems. You can see the discussion about it above, I thought it was worth preserving for when we expand the section on expert systems applications. I initially had it in my Sandbox but I've moved it here User:Mdebellis/realtimeadaptaton I will leave it there indefinitely. Feel free anyone who wants to expand the article to take a look at that page and use it. I plan to come back to this at some point but not sure when right now. RedDog (talk) 23:32, 4 December 2013 (UTC)

Great Online Resource
I just found a nice online resource. I've been looking for some of my favorite books from the good old days, especially The Handbook of AI which surprisingly my local library (part of a big city) doesn't have. And I found this: https://archive.org/stream/handbookofartific01barr#page/n0/mode/2up  At first I was just thinking I wanted the reference since I remember some things from the book well enough to use without re-reading but that URL has the whole book! It's kind of in a clunky format but beggers, etc. Anyway, wanted to document and share this in case others can use it. RedDog (talk) 16:31, 6 December 2013 (UTC)

Why I changed if-then-else to if-then in Intro
I made a change recently and I want to document the reason why. The beginning of the article said that expert system rules are if-then-else rules. I changed it to if-then. Here is the reason: while many of the shells allowed you to specify an "else" clause for a rule it wasn't common and some systems didn't even include it. Moreover, in general having an "else" for an expert system rule sort of defeats one of the main purpose of an inference engine. What an inference engine does is abstract you away from worrying about control flow. The engine looks at the rule base and decides what rules to fire and in what order rather than the programmer explicitly programming the flow of control. If you add an "else" clause to a rule you are violating that idea because if a rule has an else clause it will always fire, either X or Y but one of them have to be true. Now I'm not saying that was never done or that it was never useful or good design, I'm just saying it gives the wrong idea to describe expert system rules in general as if-then-else rather than just if-then. When you have just if-then rules the inference engine has more control over selecting which rules to fire on each pass. I think whoever added the "else" didn't get that. That is further supported because the link they had for if-then-else was to this article If-then-else which is about conditional code in programs which is not the same as an inference engine. --MadScientistX11 (talk) 18:21, 18 April 2014 (UTC)

Agreed. Gmstanley (talk) 19:19, 18 April 2014 (UTC)

References in Intro
I was just looking at the first references. There are an awful lot of references to document that expert systems were the first business use of AI. But as far as I can see each ref looks fairly decent and I'm usually of the opinion you can't ever really have too many refs if they are good refs and relevant which from what I've seen those are. I wonder if others have any opinion? The other issue is right now the second ref for "conventional programming" may not be very useful. It just links to a PC Magazine site glossary of computer terms and this definition: "Definition of:conventional programming.  Writing a program in a traditional procedural language, such as assembly language or a high-level compiler language (C, Pascal, COBOL, FORTRAN, etc.)." To me that doesn't add much and given that there is a link to a page on procedural programming I'm tempted to just remove it. Anyone have any opinions either way? --MadScientistX11 (talk) 14:06, 21 April 2014 (UTC)

Write the Article First
I'm re-reverting some red links that someone added to this article. Here is an article that explains my position: wp:write the article first I think red links were a good idea when Wikipedia was young but now they are not. A red link is confusing to the average user. It looks like a link but it's not. There is also the question of whether or not the various names that the user has red linked are notable. I think some of them probably are but there is a simple way to tell: write the article! Just going around adding red links to articles is IMO not good editing. Also, as Wikipedia grows the logic of adding red links makes much less sense. It takes a lot longer to write an article then to add a red link. If we go around indiscriminately adding red links eventually the system will be overflowing with red links. I feel strongly about this and if the other user insists on adding the red links without writing the articles first I will take it to arbitration. --MadScientistX11 (talk) 14:54, 4 June 2014 (UTC)


 * Unfortunately, you seem not to understand how Wikipedia grows. Red links are not a bad thing. Only if we add red links for articles that are still needed, they will appear on lists like these. Plus if we add red links for articles that are likely to be created at some point, we avoid the hassle of then having to scan Wikipedia to create inbound links to an article.
 * On a side note, that essay (not policy) your are citing applys to templates, "see also" lists and such, not to the main text body. --bender235 (talk) 15:21, 4 June 2014 (UTC)
 * Not everyone agrees on red links as indicated by the fact that there are contradictory articles. Did you look at wp:write the article first? I don't understand why anyone would still add red links. If you think that someone is notable and deserves an article create a stub. Or there are various projects on computer science, AI, etc. with queues for pending articles. Add the names to those queues and once the article has been created it is trivial to find their names and add the links. Besides AI part of my background is user interface design so I always think of the end user. A red link to me is very confusing to non technical users of Wikipedia, I know it confused me the first time I saw them. Clearly we don't agree and if I revert your edit one more time it will be an edit war so I will submit a dispute resolution request when I have time. --MadScientistX11 (talk) 16:19, 4 June 2014 (UTC)
 * Hi, I'm a regular volunteer at DRN. The request made there has been closed due to insufficient discussion here, but let me point out that the essay being bandied back and forth above is not the official "rule" on redlinks. The rule is Red link, which says at REDNOT: "Red links to personal names should be avoided—particularly when the name is reported in a context which might cause readers to hold a low or critical opinion of the named individual." Note that the "particularly" clause does not diminish the general principle that redlinks to individual's names should be avoided. Regards, TransporterMan  ( TALK ) 17:28, 4 June 2014 (UTC)

So we're looking at: "In addition to Feigenbaum key early contributors were Bruce Buchanan, Edward Shortliffe, Randall Davis, William van Melle, and Carli Scott. Expert systems were among the first truly successful forms of AI software.[4][5][6][7][8][9]"

Could someone please expand those references with full information so others could get involved more easily? I'd hope that most or all are reviews or other well-researched academic publications that look at the complete historical context of the individuals and their works. --Ronz (talk) 18:07, 4 June 2014 (UTC)
 * Reference 4 seems like garbage to me. All it references is ACM and some year. ACM is Association for Computing Machinery and they have some of the best regarded magazines (e.g. Communications of the ACM) in the IT world but a reference to just ACM with a year doesn't refer to anything as far as I can tell. The other McCorduck and Russel & Nordick books are fairly standard texts on AI. I don't have access to them. I worked for many years in AI and frankly I have no use for books like that, they are more for an intro class. I think the ACM ref should just be removed. But getting back to the issue at hand since the official policy is that red links to names should be avoided does anyone have a good reason why the official policy should be ignored in this case? Note that the article had no red links for quite some time and they were just added by bender235. So does anyone have a good reason why we should avoid the official policy and add red links to these personal names in this case when they weren't there before? I was trying to avoid an edit war but if no one has an answer I will revert the edit again. I also plan to remove the ACM reference unless someone objects. As for the people Buchanan definitely is notable. He was one of the leaders at Stanford and is still active. Shortliffe and Davis are also very well known. I would have to check my books (I'm on the road now) but I think they were part of the early Stanford team as well but if not they were definitely well known in AI, household names so to speak. I don't know about van Melle and Scott. Those names aren't familiar to me but I can't claim to know every notable AI researcher. --MadScientistX11 (talk) 18:38, 4 June 2014 (UTC)


 * The names were added 5 December 2009, and without changes or additions of references. --Ronz (talk) 20:17, 4 June 2014 (UTC)
 * The references were copied from Artificial intelligence on 27 October 2009, which explains their being incomplete. --Ronz (talk) 20:19, 4 June 2014 (UTC)
 * I've tagged it as needing a citation. As it is now, the redlinks should be removed. --Ronz (talk) 20:24, 4 June 2014 (UTC)
 * I want to clean up the references a bit. I'm busy in the real world so it may sometimes take me a while to respond or follow up on an action. So as I understand it the ACM reference comes from the Artificial Intelligence article? (BTW, I'm not that experienced an editor so many of you are better than I am at tracing down histories, etc. thanks for that) In the AI article the only ACM reference I found was to this: http://www.acm.org/about/class/1998/ Am I missing something? Was there another ACM article? If not then the current referebce should definitely just be removed. That link is just to a taxonomy of terminology. There are references to that often in IT articles and they seldom add much IMO but they definitely don't add enough to be added to the many references that the ACM ref is one of. If I'm missing some better ACM reference please let me know, it's one of the best sources for these kinds of articles so if there is a good reference want to use it. --MadScientistX11 (talk) 18:23, 9 June 2014 (UTC)
 * The version of Artificial intelligence]] that was used is here. As far as I can tell you're correct that it refers to acm.org/about/class/1998/ . I don't understand why it was added as a reference to this article. I'd say it would be fine to remove it. --Ronz (talk) 19:48, 9 June 2014 (UTC)
 * I appear to be the contributor responsible for that edit, but it's going back some time now. It is quite likely that I sourced from the artificial intelligence article.  The reference is still in use in the artificial intelligence article, here and describes where expert systems fits in the ACM's classification system.  pgr94 (talk) 20:24, 9 June 2014 (UTC)
 * I managed to find an online version of the Russel and Norvig book. I've updated the reference to it in the refs but here is the link, it's a good resource for these kinds of overview AI articles: http://stpk.cs.rtu.lv/sites/all/files/stpk/materiali/MI/Artificial%20Intelligence%20A%20Modern%20Approach.pdf As a result I'm going to remove the "citation needed" on the names of early AI people. Although I'm also going to remove the last two Van Melle and Simon. Neither of those guys is listed in the Russel and Norvig book (the others are) but I did a bit more digging and they were early Mycin team members. But I see no point in listing the entire Mycin team in an overview article of expert systems. Rather it should be for people like Davis, Shortliffe, and Buchanan who went on to make major contributions beyond Mycin. MadScientistX11 (talk) 15:25, 16 June 2014 (UTC)

Assessment comment
Substituted at 14:51, 29 April 2016 (UTC)

External links modified
Hello fellow Wikipedians,

I have just modified one external link on Expert system. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
 * Added archive https://web.archive.org/web/20130424071228/http://www.cs.umd.edu/~golbeck/LBSC690/SemanticWeb.html to http://www.cs.umd.edu/~golbeck/LBSC690/SemanticWeb.html

When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.

Cheers.— InternetArchiveBot  (Report bug) 09:06, 26 September 2017 (UTC)

Changing the "If-Then" (rule based system) in summary, gross oversimplification and ties to normal procedural codebases
This is a response to MadScientistX11's undo of changes in this revision.

Languages like Prolog don't even have literal "if-then" statements, anyone not aware of Expert Systems might think most they are mostly giant conditional programs rather than automated intelligence and knowledge/diagnostic systems. The argument that this statement is the most "understandable to a general audience" robs the reader of insight into the multitude of techniques used in expert systems, it is thought-terminating.

Rule based systems are not "if-then rules", and Expert Systems are possibly not even best described as completely "rule based systems". Automated reasoning has a wide variety of implementation requirements like goal searching and non-determinism. Chapter 6 of "Principles of Artificial Intelligence and Expert Systems Development" is wholly dedicated to non-determinism and statistical methods used in Expert Systems, which is a large part of their power.

Changing "if-then rules" to something more along the lines of declarative programming statements will help clear this up. Expert Systems are not giant conditional programs, they are a form of Artificial Intelligence guided by a human user, and as such use many of the various AI techniques whether that be neural nets, automated reasoning, symbolic intelligence, goal solving, etc.

My original edit and proposal is to change it to something along the likes of "declarative rules", or "declarative statements", if a reader does not understand declarative vs procedural code they will never understand what make Experts Systems what they are vs normal programs or codebases. — Preceding unsigned comment added by 2601:2C6:380:2DE9:90B6:E063:120A:BA25 (talk) 21:22, 22 November 2017 (UTC)
 * The introduction clearly says "represented mainly as if–then rules rather than through conventional procedural code". It clearly distinguishes between if-then rules rather than conventional procedural code.  Further more this is the introduction we are talking about, meant to give a very high level overview. If you look in the article there is a whole section: Expert_system that talks about inference engines, knowledge bases, forward chaining, and backward chaining. Regarding Prolog this is American Wikipedia. The vast majority of expert systems in the US were built using rule-based systems and all the significant well known early expert systems were built that way: Mycin, Hearsay, Andersen Consulting's Mortgage Loan Advisor, Eliza,  the USAF diagnostic expert system for fighter planes, etc. Prolog was used primarily in Europe and in any case this too is in the article already in History where it talks about Prolog. Also, in the introduction, the if-then rules phrase is linked to the article about Rule-based_systems so again it's very clear for someone who wants more detail that what is being talked about is not the same as if-then statements in procedural code. I stand by the change. The introduction should be brief and in simple terminology that anyone can understand. Adding "declarative" doesn't give any information that is not already available in all the ways I just described and will make it more confusing for people who aren't programmers and won't know what "declarative" means. --MadScientistX11 (talk) 01:07, 2 February 2019 (UTC)
 * Just a couple more points. If you look on this page at this section: Talk:Expert_system you will see that I am sympathetic to your point and that a while ago I changed the article because I thought at that time it did sound to much like standard if-then-else statements in procedural code. Also, I looked through Building Expert Systems by Hayes-Roth, Waterman, and Lenat. I realize it's far from the only book on the topic but I think most people familiar with AI would agree it's one of the definitive books. When I joined Andersen Consulting's AI group it was the first book people told me to read. I looked in the index for the word "declarative". I looked for "Declarative" itself as well as under "Rules", "Knowledge", and "Knowledge base" (all of those other words had many references and sub-topics with references) and the word "declarative" was nowhere to be found. I also realize I never responded to your point that "Automated reasoning has a wide variety of implementation requirements like goal searching and non-determinism". I agree with that point but that is a point for articles about AI or about Automated Reasoning. The majority of Expert Systems, and every expert system that I'm aware of that was used for actual commercial purposes had none of those characteristics. IMO (I wouldn't put this in the article because I don't have a reference for it but I'm just stating my opinion now) that is WHY they were the first applications of AI technology that were actually used for deployed systems and not just research prototypes: because they focused on solving domain specific problems using technology that was revolutionary compared to COBOL or other tools commonly used at the time but that were not overly ambitious and could be easily used and maintained by non-research IT people. Finally, although this isn't relevant to this particular topic I realized I never declared (no pun intended) that I'm the same user as Red_Dog. I changed my account many years ago for privacy reasons. I've never used the two accounts at the same time. Once I created this one I never used the Red_Dog account again but just wanted to be open that Red_Dog and I are the same user. --MadScientistX11 (talk) 19:24, 2 February 2019 (UTC)
 * Calling them "if-then rules" is confusing. Using the terms "declarative" and "inference" will make clear the difference that is desired to be made clear.  I'm not surprised that the the term "declarative" wasn't in common use in 1984 when "Building Expert Systems" was released, but it is a commonly accepted and understood term nowadays (I mean, just go to the wikipedia page on declarative programming and you'll find lisp, prolog, etc). Nathan.s.chappell (talk) 13:21, 16 January 2024 (UTC)

Removing Jairus Lainibo from beginning of History section
I noticed someone added a red linked name (Jairus Lainibo) to the beginning of the history section: "Expert systems were introduced by the Stanford Heuristic Programming Project led by Edward Feigenbaum, who is sometimes termed the "father of expert systems"; other key early contributors were Jairus Lainibo, Bruce Buchanan, and Randall Davis." I've never heard of "Jairus Lainibo" and when I google him he shows up in some online sources but not in any good primary sources. I checked the index of my copy of Building Expert Systems and I searched for his name in Russel and Norvig's book and he didn't show up in either. If someone wants to add him back please provide a good reference. Also, keep in mind that the reference shouldn't say that he was an AI researcher but rather an AI researcher recognized as important as Feigenbaum, Buchanan, and Davis. --MadScientistX11 (talk) 03:19, 16 January 2018 (UTC)

Expert Systems are not AI?
I just noticed this sentence in the introduction: "However, some experts point out that expert systems were not part of true artificial intelligence since they lack the ability to learn autonomously from external data.[9]" I checked the reference and it does indeed say this but I still think this statement should be removed. Not every sentence in every journal article is something that needs to be included in an encyclopedia. People sometimes say wrong and outlandish things even in peer reviewed journals. Also this article is published by the Kelly School of Business in Indiana University, so the peer review on this is not from people with a deep knowledge of AI. I think this is a ludicrous statement. Every major overview book on AI that I'm aware of (Russel and Norveg, The Handbook of AI, Charniak and McDermott's Intro to AI,...) talks in great depth about Expert Systems. Expert systems came from the AI lab at Stanford. If you look in the proceedings of the American (and International) Association for Artificial Intelligence (AAAI) you will find countless articles about expert systems and various research areas for experts systems such as truth maintenance, reasoning with uncertainty, and knowledge acquisition. My guess is that in the early years at least, 20% or more of the articles were on some expert system related topic. And just in general it's ludicrous to say that the only systems that qualify as AI are those that have "the ability to learn autonomously from external data". That not only rules out Expert Systems but huge amounts of work done in Symbolic AI such as theorem proving, frame based languages, ontology languages such as Loom and OWL and classification engines such as Hermit, and on and on. It is accurate to say that the more recent trend in AI with Machine Learning is to emphasize systems that can "learn autonomously from external data." and if someone has a reference to a good source (one published in an AI or Computer Science journal or by someone well known in AI now like Andrew Ng) I think that kind of wording in the intro would be a good idea, to say that expert systems didn't use technology that now dominates AI. But the way the sentence is now I think is just so obviously wrong. If anyone disagrees please explain why. I'm going to delete that sentence after a while if no one else comments. --MadScientistX11 (talk) 20:37, 2 February 2019 (UTC)
 * Just a follow up on the comment above. I went to the AAAI site and found the archives of past conferences. See this link: https://aaai.org/Library/conferences-library.php I also did a search on the AAAI site for "Expert System" and this is what I got: Expert Systems on AAAI web site My estimate of 20% for the conference papers was pretty accurate. In the first years that I looked starting in the 1980's there was a major section (one out of about 6-7) on Expert Systems and some of the papers in other topics also were highly relevant. And as one can see in that search Expert Systems have countless articles in various publications from AAAI besides the conference proceedings. I think this strongly supports my contention that saying Expert Systems were not AI is clearly wrong and the sentence should be removed. I'll hold off a bit longer in case anyone wants to discuss it. --MadScientistX11 (talk) 17:50, 3 February 2019 (UTC)
 * ✅ --MadScientistX11 (talk) 15:08, 4 February 2019 (UTC)
 * I just noticed that this bit somehow got back into the article. I removed it again for all the reasons that I documented above. I also wanted to emphasize that IMO the reference, while it seems to be published in a journal was published in a business journal directly associated with a specific business school (and not one that is at all well known or has a track record for emphasizing technology). With a few exceptions (e.g., HBR) publications like that seldom get serious peer review, they are essentially a way for grad students and professors from the school that publishes to add to their publication count. If someone wants to revert my edit please discuss it here first and respond to my comments above. Thanks. --MadScientistX11 (talk) 22:06, 15 July 2019 (UTC)

Wikipedia Ambassador Program course assignment
This article is the subject of an educational assignment at La Trobe University supported by the Wikipedia Ambassador Program&#32;during the 2013 Q1 term. Further details are available on the course page.

The above message was substituted from by PrimeBOT (talk) on 15:39, 2 January 2023 (UTC)

ChatGPT is an extension of an expert system?
ChatGPT should be mentioned, shouldn't it? And a cross-reference, too, to the Wikipedia article on ChatGPT, wouldn't anyone agree? 46.24.26.231 (talk) 16:31, 25 January 2023 (UTC)


 * No. It is not an expert system at all! 193.166.223.5 (talk) 13:21, 22 February 2023 (UTC)
 * I agree, but a link might be useful nevertheless (saying something link "not to be confused with todays advanced Chatbots"). - Jochen Burghardt (talk) 18:43, 22 February 2023 (UTC)

This article needs a lot of work
I'd start with pointing out that this article gives really no indication of how useful or popular "Expert Systems" are today. Reading this article one can easily get the impression that "Expert Systems" along the lines of those developed in the 80's and 90's are still in use today. The history section merely ends with an alleged "resurgence" in the 21th century.

From reading articles about artificial intelligence over the years I've only ever encountered "Expert System" being referred as a historical phenomenon and not something actual AI researchers and developers are working on today. Arcade222 (talk) 20:36, 21 August 2023 (UTC)


 * I've heard it referenced once in an article about Mark Zuckerberg talking about something or other. I think it is probably more of a marketing term maybe for a particular form of interaction with a computer? Today we would probably call such a system a chatbot or virtual assistant. just a guess. Thedonquixotic (talk) 07:20, 12 January 2024 (UTC)

What's the difference between procedural programs and if-than statements?
In the intro we see this quote "Expert systems are designed to solve complex problems by reasoning through bodies of knowledge, represented mainly as if–then rules rather than through conventional procedural code."

First it's worth noting that the cited source doesn't actually say anything really relevant for supporting this sentence.

Second, it is unclear to me how an expert system using if-then statements differs from a conventional procedural code. Procedural code makes heavy use of if-then statements, no? Thedonquixotic (talk) 07:19, 12 January 2024 (UTC)


 * The article must not be clear enough on the role of an inference engine. One quick test showing the difference is that with a typical inference engine, the order of the if/then statements will generally not affect the result (except for cases like conflicting rules, or where order is used for prioritization), unlike the case with procedural code.  Consider a set of rules ("knowledge base") with a lot of intermediate conclusions.  If a procedural code IF/THEN statement refers to an intermediate conclusion in its "IF" condition whose value is unknown yet, procedural code either breaks or concludes "unknown", NaN, or some default as a value. For a rule-based system, if the needed intermediate conclusion is not yet known, the inference engine can look for another rule with that intermediate conclusion in the "THEN" part of that rule to find the value, and searches "upstream" as far as needed.  Think of a rule as a graph node with a bunch of inputs (the IF conditions) and an output (the THEN result).  Backward chaining looks "upstream" starting with rule inputs when needed.  Forward chaining propagates values "downstream" as needed.  Forward or backward chaining can be started with any new piece of information, or asking for any input or conclusion.
 * For instance, for a diagnostic system, a knowledge base of if/then rules could represent cause & effect. ("If X then Y" means "X causes Y" in this case). To diagnose possible causes of some observed effect like "engine power loss", the inference engine automatically looks through the inputs to rules whose THEN conclusion is "engine power loss", going "upstream" through intermediate conclusions like "inadequate fuel" as far as needed to find root causes such as "fuel injectors clogged" or "fuel pump weak".  Conversely, if you want to use the same knowledge base to predict the effects of a root cause failure like "fuel injectors clogged", the inference engine could look "downstream" to predict all the effects like "engine power loss".
 * It's this automatic seeking of unknown variables "upstream" (starting with inputs to the IF conditions) and automatic propagation of information "downstream" (connecting up of rule "THEN" outputs to the inputs of other rules that differentiates a rule-based expert system from procedural code. This process can be made efficient when the inference engine constructs sets of pointers to link up the rules ahead of time. Gmstanley (talk) 22:35, 12 January 2024 (UTC)

Current approaches to expert systems
This section is not very clear relative to the preceeding section. Some of the writing could use a review. RoslinTollcross (talk) 02:38, 18 May 2024 (UTC)