Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Expert system
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Software architecture == [[File:BackwardChaining David C England 1990 p21.gif|thumb|450px|Illustrating example of ''backward chaining'' from a 1990 Master's Thesis<ref>{{cite thesis |type=MSc |url=https://commons.wikimedia.org/wiki/File:An_expert_system_for_the_management_of_hazardous_materials_at_a_Naval_Supply_Center_(IA_anexpertsystemfo1094530640).pdf |last1=England |first1=David C. |date=June 1990 |title=An Expert System for the Management of Hazardous Materials at a Naval Supply Center |publisher=Naval Postgraduate School Monterey/CA |page=21}}</ref>]] An expert system is an example of a [[knowledge-based system]]. Expert systems were the first commercial systems to use a knowledge-based architecture. In general view, an expert system includes the following components: a [[knowledge base]], an [[inference engine]], an explanation facility, a knowledge acquisition facility, and a user interface.<ref name=":0">{{Cite journal |last=Kiryanov |first=Denis Aleksandrovich|date=2021-12-21 |title=Hybrid categorical expert system for use in content aggregation |journal=Software Systems and Computational Methods |issue=4 |pages=1β22|doi=10.7256/2454-0714.2021.4.37019 |s2cid=245498498 |issn=2454-0714|doi-access=free}}</ref><ref>{{cite web |last=Smith |first=Reid|date=May 8, 1985 |title=Knowledge-Based Systems Concepts, Techniques, Examples|url=http://www.reidgsmith.com/Knowledge-Based_Systems_-_Concepts_Techniques_Examples_08-May-1985.pdf|access-date=9 November 2013|website=Reid G. Smith}}</ref> The knowledge base represents facts about the world. In early expert systems such as Mycin and Dendral, these facts were represented mainly as flat assertions about variables. In later expert systems developed with commercial shells, the knowledge base took on more structure and used concepts from [[object-oriented programming]]. The world was represented as [[Class (computer programming)|classes, subclasses]], and [[Instance (computer science)|instances]] and [[Assertion (software development)|assertions]] were replaced by values of object instances. The rules worked by querying and asserting values of the objects. The inference engine is an [[automated reasoning system]] that evaluates the current state of the knowledge-base, applies relevant rules, and then asserts new knowledge into the knowledge base. The inference engine may also include abilities for explanation, so that it can explain to a user the chain of reasoning used to arrive at a particular conclusion by tracing back over the firing of rules that resulted in the assertion.<ref name="Hayes-Roth 1983">{{cite book |last1=Hayes-Roth |first1=Frederick |last2=Waterman |first2=Donald |last3=Lenat |first3=Douglas |author3-link=Douglas Lenat |year=1983 |title=Building Expert Systems |publisher=Addison-Wesley |isbn=978-0-201-10686-2 |url=https://archive.org/details/buildingexpertsy00temd}}</ref> There are mainly two modes for an inference engine: [[forward chaining]] and [[backward chaining]]. The different approaches are dictated by whether the inference engine is being driven by the antecedent (left hand side) or the consequent (right hand side) of the rule. In forward chaining an antecedent fires and asserts the consequent. For example, consider the following rule: <math display="block">R1: \mathit{Man}(x) \implies \mathit{Mortal}(x)</math> A simple example of forward chaining would be to assert Man(Socrates) to the system and then trigger the inference engine. It would match R1 and assert Mortal(Socrates) into the knowledge base. Backward chaining is a bit less straight forward. In backward chaining the system looks at possible conclusions and works backward to see if they might be true. So if the system was trying to determine if Mortal(Socrates) is true it would find R1 and query the knowledge base to see if Man(Socrates) is true. One of the early innovations of expert systems shells was to integrate inference engines with a user interface. This could be especially powerful with backward chaining. If the system needs to know a particular fact but does not, then it can simply generate an input screen and ask the user if the information is known. So in this example, it could use R1 to ask the user if Socrates was a Man and then use that new information accordingly. The use of rules to explicitly represent knowledge also enabled explanation abilities. In the simple example above if the system had used R1 to assert that Socrates was Mortal and a user wished to understand why Socrates was mortal they could query the system and the system would look back at the rules which fired to cause the assertion and present those rules to the user as an explanation. In English, if the user asked "Why is Socrates Mortal?" the system would reply "Because all men are mortal and Socrates is a man". A significant area for research was the generation of explanations from the knowledge base in natural English rather than simply by showing the more formal but less intuitive rules.<ref>[http://www.ccis2k.org/iajit/PDF/vol.4,no.1/9-Nabil.pdf Nabil Arman], Polytechnic University of Palestine, January 2007, Fault Detection in Dynamic Rule Bases Using Spanning Trees and Disjoin Sets: ""</ref> As expert systems evolved, many new techniques were incorporated into various types of inference engines.<ref>{{cite journal |last=Mettrey |first=William |title=An Assessment of Tools for Building Large Knowledge-Based Systems |journal=AI Magazine |year=1987 |volume=8 |issue=4|url=http://www.aaai.org/ojs/index.php/aimagazine/article/viewArticle/625|access-date=2013-11-29 |archive-url=https://web.archive.org/web/20131110022104/http://www.aaai.org/ojs/index.php/aimagazine/article/viewArticle/625 |archive-date=2013-11-10|url-status=dead}}</ref> Some of the most important of these were: * Truth maintenance. These systems record the dependencies in a knowledge-base so that when facts are altered, dependent knowledge can be altered accordingly. For example, if the system learns that Socrates is no longer known to be a man it will revoke the assertion that Socrates is mortal. * Hypothetical reasoning. In this, the knowledge base can be divided up into many possible views, a.k.a. worlds. This allows the inference engine to explore multiple possibilities in parallel. For example, the system may want to explore the consequences of both assertions, what will be true if Socrates is a Man and what will be true if he is not? * Uncertainty systems. One of the first extensions of simply using rules to represent knowledge was also to associate a probability with each rule. So, not to assert that Socrates is mortal, but to assert Socrates ''may'' be mortal with some probability value. Simple probabilities were extended in some systems with sophisticated mechanisms for uncertain reasoning, such as [[fuzzy logic]], and combination of probabilities. * [[Ontology (information science)|Ontology]] classification. With the addition of object classes to the knowledge base, a new type of reasoning was possible. Along with reasoning simply about object values, the system could also reason about object structures. In this simple example, Man can represent an object class and R1 can be redefined as a rule that defines the class of all men. These types of special purpose inference engines are termed [[Deductive classifier|classifiers]]. Although they were not highly used in expert systems, classifiers are very powerful for unstructured volatile domains, and are a key technology for the Internet and the emerging [[Semantic Web]].<ref>{{cite journal |last1=MacGregor |first1=Robert |date=June 1991 |title=Using a description classifier to enhance knowledge representation |journal=IEEE Expert |volume=6 |issue=3 |doi=10.1109/64.87683 |pages=41β46 |s2cid=29575443}}</ref><ref>{{cite journal |last1=Berners-Lee |first1=Tim |last2=Hendler |first2=James |last3=Lassila |first3=Ora |date=May 17, 2001 |title=The Semantic Web A new form of Web content that is meaningful to computers will unleash a revolution of new possibilities |journal=Scientific American |url=http://www.cs.umd.edu/~golbeck/LBSC690/SemanticWeb.html |doi=10.1038/scientificamerican0501-34 |volume=284 |issue=5 |pages=34β43 |url-status=dead |archive-url=https://web.archive.org/web/20130424071228/http://www.cs.umd.edu/~golbeck/LBSC690/SemanticWeb.html |archive-date=April 24, 2013 |url-access=subscription}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)