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
Symbolic artificial intelligence
(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!
=== Knowledge representation and reasoning === {{Main|Knowledge representation and reasoning}} Multiple different approaches to represent knowledge and then reason with those representations have been investigated. Below is a quick overview of approaches to knowledge representation and automated reasoning. ==== Knowledge representation ==== {{Main|Knowledge Representation}} [[Semantic networks]], [[conceptual graphs]], [[Frame (artificial intelligence)|frames]], and [[formal logic|logic]] are all approaches to modeling knowledge such as domain knowledge, problem-solving knowledge, and the semantic meaning of language. [[Ontologies]] model key concepts and their relationships in a domain. Example ontologies are [[YAGO (database)|YAGO]], [[WordNet]], and [[Upper ontology#DOLCE|DOLCE]]. [[Upper ontology#DOLCE|DOLCE]] is an example of an [[upper ontology]] that can be used for any domain while WordNet is a lexical resource that can also be viewed as an [[upper ontology#WordNet|ontology]]. YAGO incorporates WordNet as part of its ontology, to align facts extracted from [[Wikipedia]] with WordNet [[synsets]]. The [[Disease Ontology]] is an example of a medical ontology currently being used. [[Description logic]] is a logic for automated classification of ontologies and for detecting inconsistent classification data. [[Web Ontology Language|OWL]] is a language used to represent ontologies with [[description logic]]. [[Protégé (software)|Protégé]] is an ontology editor that can read in [[Web Ontology Language|OWL]] ontologies and then check consistency with [[deductive classifier]]s such as such as HermiT.<ref name="HermiT">{{Cite journal| doi = 10.1613/jair.2811| issn = 1076-9757| volume = 36| pages = 165–228| last1 = Motik| first1 = Boris| last2 = Shearer| first2 = Rob| last3 = Horrocks| first3 = Ian| title = Hypertableau Reasoning for Description Logics| journal = Journal of Artificial Intelligence Research| date = 2009-10-28| arxiv = 1401.3485| s2cid = 190609}}</ref> First-order logic is more general than description logic. The automated theorem provers discussed below can prove theorems in first-order logic. [[Horn clause]] logic is more restricted than first-order logic and is used in logic programming languages such as Prolog. Extensions to first-order logic include [[temporal logic]], to handle time; [[epistemic logic]], to reason about agent knowledge; [[modal logic]], to handle possibility and necessity; and [[probabilistic logic]]s to handle logic and probability together. ==== Automatic theorem proving ==== {{Main|Automated theorem proving}} Examples of automated theorem provers for first-order logic are: * [[Prover9]] * [[ACL2]] * [[Vampire (theorem prover)|Vampire]] [[Prover9]] can be used in conjunction with the [[Mace4]] [[Model checking|model checker]]. [[ACL2]] is a theorem prover that can handle proofs by induction and is a descendant of the Boyer-Moore Theorem Prover, also known as [[Nqthm]]. ==== Reasoning in knowledge-based systems ==== {{Main|Reasoning system}} Knowledge-based systems have an explicit [[knowledge base]], typically of rules, to enhance reusability across domains by separating procedural code and domain knowledge. A separate [[inference engine]] processes rules and adds, deletes, or modifies a knowledge store. [[Forward chaining]] inference engines are the most common, and are seen in [[CLIPS]] and [[OPS5]]. [[Backward chaining]] occurs in Prolog, where a more limited logical representation is used, [[Horn clause|Horn Clauses]]. Pattern-matching, specifically [[unification (computer science)|unification]], is used in Prolog. A more flexible kind of problem-solving occurs when reasoning about what to do next occurs, rather than simply choosing one of the available actions. This kind of meta-level reasoning is used in Soar and in the BB1 blackboard architecture. Cognitive architectures such as ACT-R may have additional capabilities, such as the ability to compile frequently used knowledge into higher-level [[Chunking (psychology)|chunks]]. ==== Commonsense reasoning ==== {{Main|Commonsense reasoning}} [[Marvin Minsky]] first proposed frames as a way of interpreting common visual situations, such as an office, and Roger Schank extended this idea to [[Script theory|scripts]] for common routines, such as dining out. [[Cyc]] has attempted to capture useful common-sense knowledge and has "micro-theories" to handle particular kinds of domain-specific reasoning. Qualitative simulation, such as [[Benjamin Kuipers]]'s QSIM,<ref name="QSIM">{{Cite book| publisher = MIT Press| isbn = 978-0-262-51540-5| last = Kuipers| first = Benjamin| title = Qualitative Reasoning: Modeling and Simulation with Incomplete Knowledge| date = 1994}}</ref> approximates human reasoning about naive physics, such as what happens when we heat a liquid in a pot on the stove. We expect it to heat and possibly boil over, even though we may not know its temperature, its boiling point, or other details, such as atmospheric pressure. Similarly, [[James F. Allen (computer scientist)|Allen]]'s [[Allen's interval algebra|temporal interval algebra]] is a simplification of reasoning about time and [[Region Connection Calculus]] is a simplification of reasoning about spatial relationships. Both can be solved with [[constraint programming|constraint solvers]]. ==== Constraints and constraint-based reasoning ==== {{Main|Constraint programming|Spatial–temporal reasoning}} Constraint solvers perform a more limited kind of inference than first-order logic. They can simplify sets of spatiotemporal constraints, such as those for [[Region connection calculus|RCC]] or [[Allen's interval algebra|Temporal Algebra]], along with solving other kinds of puzzle problems, such as [[Wordle]], [[Sudoku]], [[verbal arithmetic|cryptarithmetic problems]], and so on. [[Constraint logic programming]] can be used to solve scheduling problems, for example with [[constraint handling rules]] (CHR).
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)