Knowledge-based systems: Difference between revisions

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
imported>FrescoBot
m Bot: link syntax and minor changes
 
imported>Whatisitlike
Advances driven by enhanced architecture: - added clarification and minsky reference
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
{{short description|Computer program that uses a knowledge base and reasoning to solve problems}}
{{short description|Computer program that uses a knowledge base and reasoning to solve problems}}
{{For|the academic journal|Knowledge-Based Systems (journal)}}
{{multiple issues|
{{multiple issues|
{{more references|date=May 2024}}
{{more references|date=May 2024}}
{{out of date|date=May 2024}}
{{out of date|date=May 2024}}
}}
}}
 
A '''knowledge-based system''' ('''KBS''') is a [[computer program]] that [[automated reasoning|reasons]] and uses a [[knowledge base]] to [[problem solving|solve]] [[complex systems|complex problems]].<ref>{{Cite web |title=What are Knowledge-based Systems (KBSes)? {{!}} Definition from TechTarget |url=https://www.techtarget.com/searchcio/definition/knowledge-based-systems-KBS |access-date=2025-10-23 |website=Search CIO |language=en}}</ref> Knowledge-based systems were the focus of early [[artificial intelligence]] researchers in the 1980s. The term can refer to a broad range of systems. However, all knowledge-based systems have two defining components: an attempt to represent knowledge explicitly, called a [[knowledge base]], and a [[reasoning system]] that allows them to derive new knowledge, known as an [[inference engine]].
{{For|the academic journal|Knowledge-Based Systems (journal)}}
A '''knowledge-based system''' ('''KBS''') is a [[computer program]] that [[automated reasoning|reasons]] and uses a [[knowledge base]] to [[problem solving|solve]] [[complex systems|complex problems]]. Knowledge-based systems were the focus of early [[artificial intelligence]] researchers in the 1980s. The term can refer to a broad range of systems. However, all knowledge-based systems have two defining components: an attempt to represent knowledge explicitly, called a [[knowledge base]], and a [[reasoning system]] that allows them to derive new knowledge, known as an [[inference engine]].


==Components==
==Components==
Line 29: Line 28:
# ''Acquisition and maintenance.'' Using rules meant that domain experts could often define and maintain the rules themselves rather than via a programmer.
# ''Acquisition and maintenance.'' Using rules meant that domain experts could often define and maintain the rules themselves rather than via a programmer.
# ''Explanation.'' Representing knowledge explicitly allowed systems to reason about how they came to a conclusion and use this information to explain results to users. For example, to follow the chain of inferences that led to a diagnosis and use these facts to explain the diagnosis.  
# ''Explanation.'' Representing knowledge explicitly allowed systems to reason about how they came to a conclusion and use this information to explain results to users. For example, to follow the chain of inferences that led to a diagnosis and use these facts to explain the diagnosis.  
# ''Reasoning.'' Decoupling the knowledge from the processing of that knowledge enabled general purpose inference engines to be developed. These systems could develop conclusions that followed from a data set that the initial developers may not have even been aware of.<ref>{{Cite book |last=Hayes-Roth |first=Frederick |url=https://archive.org/details/buildingexpertsy00temd |title=Building Expert Systems |last2=Donald Waterman |last3=Douglas Lenat |publisher=Addison-Wesley |year=1983 |isbn=0-201-10686-8}}</ref>
# ''Reasoning.'' Decoupling the knowledge from the processing of that knowledge enabled general purpose inference engines to be developed. These systems could develop conclusions that followed from a data set that the initial developers may not have even been aware of.<ref>{{Cite book |last1=Hayes-Roth |first1=Frederick |url=https://archive.org/details/buildingexpertsy00temd |title=Building Expert Systems |last2=Donald Waterman |last3=Douglas Lenat |publisher=Addison-Wesley |year=1983 |isbn=0-201-10686-8}}</ref>


===Meta-reasoning===
===Meta-reasoning===
Later{{when?|date=May 2024}} architectures for knowledge-based reasoning, such as the BB1 blackboard architecture (a [[blackboard system]]),<ref>{{Cite book |last=Hayes-Roth |first=Barbara |author-link=Barbara Hayes-Roth |url=https://dl.acm.org/citation.cfm?id=892336 |title=BB1: an Architecture for Blackboard Systems that Control, Explain, and Learn about Their Own Behavior |last2=Department |first2=Stanford University Computer Science |date=1984 |publisher=Department of Computer Science, Stanford University}}</ref> allowed the reasoning process itself to be affected by new inferences, providing meta-level reasoning. BB1 allowed the problem-solving process itself to be monitored. Different kinds of problem-solving (e.g., top-down, bottom-up, and opportunistic problem-solving) could be selectively mixed based on the current state of problem solving. Essentially, the problem-solver was being used both to solve a domain-level problem along with its own control problem, which could depend on the former.  
Later{{when?|date=May 2024}} architectures for knowledge-based reasoning, such as the BB1 blackboard architecture (a [[blackboard system]]),<ref>{{Cite book |last1=Hayes-Roth |first1=Barbara |author-link1=Barbara Hayes-Roth |url=https://dl.acm.org/citation.cfm?id=892336 |title=BB1: an Architecture for Blackboard Systems that Control, Explain, and Learn about Their Own Behavior |last2=Department |first2=Stanford University Computer Science |date=1984 |publisher=Department of Computer Science, Stanford University}}</ref> allowed the reasoning process itself to be affected by new inferences, providing meta-level reasoning. BB1 allowed the problem-solving process itself to be monitored. Different kinds of problem-solving (e.g., top-down, bottom-up, and opportunistic problem-solving) could be selectively mixed based on the current state of problem solving. Essentially, the problem-solver was being used both to solve a domain-level problem along with its own control problem, which could depend on the former.  


Other examples of knowledge-based system architectures supporting meta-level reasoning are MRS<ref>{{Cite journal |last=Genesereth |first=Michael R |title=1983 - An Overview of Meta-Level Architecture |journal=AAAI-83 Proceedings |page=6}}</ref> and [[Soar (cognitive architecture)|SOAR]].
Other examples of knowledge-based system architectures supporting meta-level reasoning are MRS<ref>{{Cite journal |last=Genesereth |first=Michael R |title=1983 - An Overview of Meta-Level Architecture |journal=AAAI-83 Proceedings |page=6}}</ref> and [[Soar (cognitive architecture)|SOAR]].


===Widening of application===
===Widening of application===
In the 1980s and 1990s, in addition to expert systems, other applications of knowledge-based systems included real-time process control,<ref>{{Cite journal |last=Larsson |first=Jan Eric |last2=Hayes-Roth |first2=Barbara |author-link2=Barbara Hayes-Roth |date=1998 |title=Guardian: An Intelligent Autonomous Agent for Medical Monitoring and Diagnosis |url=http://dblp.uni-trier.de/rec/bibtex/journals/expert/LarssonH98 |journal=IEEE Intelligent Systems |volume=13 |issue=1 |access-date=2012-08-11}}</ref> intelligent tutoring systems,<ref>{{Cite book |last=Clancey |first=William |title=Knowledge-Based Tutoring: The GUIDON Program |date=1987 |publisher=The MIT Press |location=Cambridge, Massachusetts}}</ref> and problem-solvers for specific domains such as protein structure analysis,<ref>{{Cite conference |last=Hayes-Roth |first=Barbara |author-link=Barbara Hayes-Roth |last2=Buchanan |first2=Bruce G. |last3=Lichtarge |first3=Olivier |last4=Hewitt |first4=Mike |last5=Altman |first5=Russ B. |last6=Brinkley |first6=James F. |last7=Cornelius |first7=Craig |last8=Duncan |first8=Bruce S. |last9=Jardetzky |first9=Oleg |date=1986 |title=PROTEAN: Deriving Protein Structure from Constraints |url=http://dblp.uni-trier.de/rec/bibtex/conf/aaai/Hayes-RothBLHABCDJ86 |conference=AAAI |pages=904–909 |access-date=2012-08-11}}</ref> construction-site layout,<ref>{{Cite book |editor=Robert Engelmore |display-editors=et al|title=Blackboard Systems |date=1988 |publisher=Addison-Wesley Pub (Sd)}}</ref> and computer system fault diagnosis.<ref>{{Cite conference |last=Bennett |first=James S. |date=1981 |title=DART: An Expert System for Computer Fault Diagnosis |conference=IJCAI}}</ref>
In the 1980s and 1990s, in addition to expert systems, other applications of knowledge-based systems included real-time process control,<ref>{{Cite journal |last1=Larsson |first1=Jan Eric |last2=Hayes-Roth |first2=Barbara |author-link2=Barbara Hayes-Roth |date=1998 |title=Guardian: An Intelligent Autonomous Agent for Medical Monitoring and Diagnosis |url=http://dblp.uni-trier.de/rec/bibtex/journals/expert/LarssonH98 |journal=IEEE Intelligent Systems |volume=13 |issue=1 |page=58 |doi=10.1109/5254.653225 |bibcode=1998IISA...13a..58L |access-date=2012-08-11}}</ref> intelligent tutoring systems,<ref>{{Cite book |last=Clancey |first=William |title=Knowledge-Based Tutoring: The GUIDON Program |date=1987 |publisher=The MIT Press |location=Cambridge, Massachusetts}}</ref> and problem-solvers for specific domains such as protein structure analysis,<ref>{{Cite conference |last1=Hayes-Roth |first1=Barbara |author-link1=Barbara Hayes-Roth |last2=Buchanan |first2=Bruce G. |last3=Lichtarge |first3=Olivier |last4=Hewitt |first4=Mike |last5=Altman |first5=Russ B. |last6=Brinkley |first6=James F. |last7=Cornelius |first7=Craig |last8=Duncan |first8=Bruce S. |last9=Jardetzky |first9=Oleg |date=1986 |title=PROTEAN: Deriving Protein Structure from Constraints |url=http://dblp.uni-trier.de/rec/bibtex/conf/aaai/Hayes-RothBLHABCDJ86 |conference=AAAI |pages=904–909 |access-date=2012-08-11}}</ref> construction-site layout,<ref>{{Cite book |editor=Robert Engelmore |display-editors=et al|title=Blackboard Systems |date=1988 |publisher=Addison-Wesley Pub (Sd)}}</ref> and computer system fault diagnosis.<ref>{{Cite conference |last=Bennett |first=James S. |date=1981 |title=DART: An Expert System for Computer Fault Diagnosis |conference=IJCAI}}</ref>


===Advances driven by enhanced architecture===
===Advances driven by enhanced architecture===
As knowledge-based systems became more complex, the techniques used to represent the knowledge base became more sophisticated and included logic, term-rewriting systems, conceptual graphs, and [[Frame (artificial intelligence)|frames]].  
As knowledge-based systems became more complex, the techniques used to represent the knowledge base became more sophisticated and included logic, term-rewriting systems, conceptual graphs, and [[Frame (artificial intelligence)|frames]].  


Frames, for example, are a way representing world knowledge using techniques that can be seen as analogous to [[object-oriented programming]], specifically classes and subclasses, hierarchies and relations between classes, and behavior{{clarify|date=May 2024}} of objects. With the knowledge base more structured, reasoning could now occur not only by independent rules and logical inference, but also based on interactions within the knowledge base itself. For example, procedures stored as [[Daemon (computing)|daemons]] on{{clarify|date=May 2024}} objects could fire and could replicate the chaining behavior of rules.<ref>{{Cite journal |last=Mettrey |first=William |year=1987 |title=An Assessment of Tools for Building Large Knowledge- BasedSystems |url=http://www.aaai.org/ojs/index.php/aimagazine/article/viewArticle/625 |url-status=dead |journal=AI Magazine |volume=8 |issue=4 |archive-url=https://web.archive.org/web/20131110022104/http://www.aaai.org/ojs/index.php/aimagazine/article/viewArticle/625 |archive-date=2013-11-10 |access-date=2013-11-10}}</ref>
Frames exemplify this architectural evolution. Introduced by [[Marvin Minsky|Minsky]],<ref>{{Cite journal |last=Minsky |first=Marvin |date=1974 |title=A Framework for Representing Knowledge |url=https://dspace.mit.edu/handle/1721.1/6089 |journal=Massachusetts Institute of Technology Technical Report}}</ref> frames provide a structured knowledge representation formalism analogous to object-oriented programming paradigms. They are a way representing world knowledge using techniques that can be seen as analogous to [[object-oriented programming]]: a frame consists of a [[data structure]] with named slots that represent attributes or relations, organized hierarchically through class-subclass relationships. Each slot can contain values, default values, procedural attachments, and constraints that govern permissible values. With the knowledge base more structured, reasoning could now occur not only by independent rules and logical inference, but also based on interactions within the knowledge base itself. For example, procedures stored as [[Daemon (computing)|daemons]] on{{clarify|date=May 2024}} objects could fire and could replicate the chaining behavior of rules.<ref>{{Cite journal |last=Mettrey |first=William |year=1987 |title=An Assessment of Tools for Building Large Knowledge- BasedSystems |url=http://www.aaai.org/ojs/index.php/aimagazine/article/viewArticle/625 |url-status=dead |journal=AI Magazine |volume=8 |issue=4 |archive-url=https://web.archive.org/web/20131110022104/http://www.aaai.org/ojs/index.php/aimagazine/article/viewArticle/625 |archive-date=2013-11-10 |access-date=2013-11-10}}</ref>


===Advances in automated reasoning===
===Advances in automated reasoning===
Another advancement in the 1990s was the development of special purpose automated reasoning systems called [[Deductive classifier|classifiers]]. Rather than statically declare the subsumption relations in a knowledge-base, a classifier allows the developer to simply declare facts about the world and let the classifier deduce the relations. In this way a classifier also can play the role of an inference engine.<ref>{{Cite journal |last=MacGregor |first=Robert |date=June 1991 |title=Using a description classifier to enhance knowledge representation |journal=IEEE Expert |volume=6 |issue=3 |pages=41–46 |doi=10.1109/64.87683 |s2cid=29575443}}</ref>
Another advancement in the 1990s was the development of special purpose automated reasoning systems called [[Deductive classifier|classifiers]]. Rather than statically declare the subsumption relations in a knowledge-base, a classifier allows the developer to simply declare facts about the world and let the classifier deduce the relations. In this way a classifier also can play the role of an inference engine.<ref>{{Cite journal |last=MacGregor |first=Robert |date=June 1991 |title=Using a description classifier to enhance knowledge representation |journal=IEEE Expert |volume=6 |issue=3 |pages=41–46 |doi=10.1109/64.87683 |s2cid=29575443}}</ref>


The most recent{{as of?|date=May 2024}} advancement of knowledge-based systems was to adopt the technologies, especially a kind of logic called [[description logic]], for the development of systems that use the internet. The internet often has to deal with complex, [[unstructured data]] that cannot be relied on to fit a specific data model. The technology of knowledge-based systems, and especially the ability to classify objects on demand, is ideal for such systems. The model for these kinds of knowledge-based internet systems is known as the [[Semantic Web]].<ref>{{Cite journal |last=Berners-Lee |first=Tim |last2=James Hendler |last3=Ora Lassila |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 |url=http://www.cs.umd.edu/~golbeck/LBSC690/SemanticWeb.html |url-status=dead |journal=Scientific American |volume=284 |pages=34–43 |doi=10.1038/scientificamerican0501-34 |archive-url=https://web.archive.org/web/20130424071228/http://www.cs.umd.edu/~golbeck/LBSC690/SemanticWeb.html |archive-date=April 24, 2013}}</ref>
The most recent{{as of?|date=May 2024}} advancement of knowledge-based systems was to adopt the technologies, especially a kind of logic called [[description logic]], for the development of systems that use the internet. The internet often has to deal with complex, [[unstructured data]] that cannot be relied on to fit a specific data model. The technology of knowledge-based systems, and especially the ability to classify objects on demand, is ideal for such systems. The model for these kinds of knowledge-based internet systems is known as the [[Semantic Web]].<ref>{{Cite journal |last1=Berners-Lee |first1=Tim |last2=James Hendler |last3=Ora Lassila |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 |url=http://www.cs.umd.edu/~golbeck/LBSC690/SemanticWeb.html |url-status=dead |journal=Scientific American |volume=284 |pages=34–43 |doi=10.1038/scientificamerican0501-34 |archive-url=https://web.archive.org/web/20130424071228/http://www.cs.umd.edu/~golbeck/LBSC690/SemanticWeb.html |archive-date=April 24, 2013}}</ref>


==See also==
==See also==
Line 63: Line 62:


==Further reading==
==Further reading==
*{{Cite book |last=Rajendra |first=Akerkar |title=Knowledge-Based Systems |last2=Sajja |first2=Priti |publisher=Jones & Bartlett Learning |year=2009 |isbn=9780763776473}}
*{{Cite book |last1=Rajendra |first1=Akerkar |title=Knowledge-Based Systems |last2=Sajja |first2=Priti |publisher=Jones & Bartlett Learning |year=2009 |isbn=9780763776473}}


{{Automated reasoning}}
{{Automated reasoning}}

Latest revision as of 15:46, 12 December 2025

Template:Short description Script error: No such module "For". Script error: No such module "Unsubst". A knowledge-based system (KBS) is a computer program that reasons and uses a knowledge base to solve complex problems.[1] Knowledge-based systems were the focus of early artificial intelligence researchers in the 1980s. The term can refer to a broad range of systems. However, all knowledge-based systems have two defining components: an attempt to represent knowledge explicitly, called a knowledge base, and a reasoning system that allows them to derive new knowledge, known as an inference engine.

Components

The knowledge base contains domain-specific facts and rules[2] about a problem domain (rather than knowledge implicitly embedded in procedural code, as in a conventional computer program). In addition, the knowledge may be structured by means of a subsumption ontology, frames, conceptual graph, or logical assertions.[3]

The inference engine uses general-purpose reasoning methods to infer new knowledge and to solve problems in the problem domain. Most commonly, it employs forward chaining or backward chaining. Other approaches include the use of automated theorem proving, logic programming, blackboard systems, and term rewriting systems such as Constraint Handling Rules (CHR). These more formal approaches are covered in detail in the Wikipedia article on knowledge representation and reasoning.

Aspects and development of early systems

Knowledge-based vs. expert systems

Script error: No such module "Labelled list hatnote". The term "knowledge-based system" was often used interchangeably with "expert system", possibly because almost all of the earliest knowledge-based systems were designed for expert tasks. However, these terms tell us about different aspects of a system:

  • expert: describes only the task the system is designed for – its purpose is to aid replace a human expert in a task typically requiring specialised knowledge
  • knowledge-based: refers only to the system's architecture – it represents knowledge explicitly, rather than as procedural code

Today, virtually all expert systems are knowledge-based, whereas knowledge-based system architecture is used in a wide range of types of system designed for a variety of tasks.

Rule-based systems

Script error: No such module "Labelled list hatnote". The first knowledge-based systems were primarily rule-based expert systems. These represented facts about the world as simple assertions in a flat database and used domain-specific rules to reason about these assertions, and then to add to them. One of the most famous of these early systems was Mycin, a program for medical diagnosis.

Representing knowledge explicitly via rules had several advantages:

  1. Acquisition and maintenance. Using rules meant that domain experts could often define and maintain the rules themselves rather than via a programmer.
  2. Explanation. Representing knowledge explicitly allowed systems to reason about how they came to a conclusion and use this information to explain results to users. For example, to follow the chain of inferences that led to a diagnosis and use these facts to explain the diagnosis.
  3. Reasoning. Decoupling the knowledge from the processing of that knowledge enabled general purpose inference engines to be developed. These systems could develop conclusions that followed from a data set that the initial developers may not have even been aware of.[4]

Meta-reasoning

LaterScript error: No such module "Unsubst". architectures for knowledge-based reasoning, such as the BB1 blackboard architecture (a blackboard system),[5] allowed the reasoning process itself to be affected by new inferences, providing meta-level reasoning. BB1 allowed the problem-solving process itself to be monitored. Different kinds of problem-solving (e.g., top-down, bottom-up, and opportunistic problem-solving) could be selectively mixed based on the current state of problem solving. Essentially, the problem-solver was being used both to solve a domain-level problem along with its own control problem, which could depend on the former.

Other examples of knowledge-based system architectures supporting meta-level reasoning are MRS[6] and SOAR.

Widening of application

In the 1980s and 1990s, in addition to expert systems, other applications of knowledge-based systems included real-time process control,[7] intelligent tutoring systems,[8] and problem-solvers for specific domains such as protein structure analysis,[9] construction-site layout,[10] and computer system fault diagnosis.[11]

Advances driven by enhanced architecture

As knowledge-based systems became more complex, the techniques used to represent the knowledge base became more sophisticated and included logic, term-rewriting systems, conceptual graphs, and frames.

Frames exemplify this architectural evolution. Introduced by Minsky,[12] frames provide a structured knowledge representation formalism analogous to object-oriented programming paradigms. They are a way representing world knowledge using techniques that can be seen as analogous to object-oriented programming: a frame consists of a data structure with named slots that represent attributes or relations, organized hierarchically through class-subclass relationships. Each slot can contain values, default values, procedural attachments, and constraints that govern permissible values. With the knowledge base more structured, reasoning could now occur not only by independent rules and logical inference, but also based on interactions within the knowledge base itself. For example, procedures stored as daemons onScript error: No such module "Unsubst". objects could fire and could replicate the chaining behavior of rules.[13]

Advances in automated reasoning

Another advancement in the 1990s was the development of special purpose automated reasoning systems called classifiers. Rather than statically declare the subsumption relations in a knowledge-base, a classifier allows the developer to simply declare facts about the world and let the classifier deduce the relations. In this way a classifier also can play the role of an inference engine.[14]

The most recentTemplate:As of? advancement of knowledge-based systems was to adopt the technologies, especially a kind of logic called description logic, for the development of systems that use the internet. The internet often has to deal with complex, unstructured data that cannot be relied on to fit a specific data model. The technology of knowledge-based systems, and especially the ability to classify objects on demand, is ideal for such systems. The model for these kinds of knowledge-based internet systems is known as the Semantic Web.[15]

See also

References

<templatestyles src="Reflist/styles.css" />

  1. Script error: No such module "citation/CS1".
  2. Script error: No such module "citation/CS1".
  3. Script error: No such module "citation/CS1".
  4. Script error: No such module "citation/CS1".
  5. Script error: No such module "citation/CS1".
  6. Script error: No such module "Citation/CS1".
  7. Script error: No such module "Citation/CS1".
  8. Script error: No such module "citation/CS1".
  9. Script error: No such module "citation/CS1".
  10. Script error: No such module "citation/CS1".
  11. Script error: No such module "citation/CS1".
  12. Script error: No such module "Citation/CS1".
  13. Script error: No such module "Citation/CS1".
  14. Script error: No such module "Citation/CS1".
  15. Script error: No such module "Citation/CS1".

Script error: No such module "Check for unknown parameters".

Further reading

  • Script error: No such module "citation/CS1".

Template:Automated reasoning Template:Authority control