This overview explores the critical role of knowledge representation in artificial intelligence (AI), emphasizing the necessity of integrating real-world, domain-specific knowledge to create intelligent systems. It details production rules, formal logic, and structured objects like semantic nets, demonstrating how these representations are organized hierarchically to reflect human memory and reasoning. Additionally, the article covers the effectiveness and structure of semantic nets, explaining their operations, inheritance capabilities, and translation into Prolog, thereby highlighting their importance in AI development.
01 / 56Understanding Knowledge Representation in Artificial Intelligence: Semantic Nets and Prolog
1 / 17
Télécharger la présentation
Understanding Knowledge Representation in Artificial Intelligence: Semantic Nets and Prolog
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation
Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement.Téléchargez la présentation en cliquant sur ce lien.Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.
Contrary to the beliefs of early workers in AI, experience has shown that Intelligent Systems cannot achieve anything useful unless they contain a large amount of real-world - probably domain-specific - knowledge. Humans almost always tackle difficult real-world problems by using their resources of knowledge - "experience", "training" etc. The importance of knowledge representation
Production rules • Formal logic, and languages based on it (e.g. PROLOG) • Structured objects: • Semantic nets (or networks) • Frames, and object-orientated programming, which was derived from frames • Other similar objects, such as Scripts Knowledge rep. formalisms
Structured objects are: • knowledge representation formalisms whose components are essentially similar to the nodes and arcs found in graphs. • in contrast to production rules and formal logic. • an attempt to incorporate certain desirable features of human memory organisation into knowledge representations. Knowledge Representation using structured objects
The entities with which we reason can be grouped into categories. Categories may be divided into sub-categories. The hierarchical structure of these categories is called taxonomy. Taxonomic knowledge can be represented by first-order logic, or more conveniently by semantic nets. Taxonomic Knowledge
Devised by Quillian in 1968, as a model of human memory. The technique offered the possibility that computers might be made to use words in something like the way humans did, following the failure of early machine-translators. Organisation of semantic nets. Semantic nets
knowledge is represented as a collection of concepts, represented by nodes (shown as boxes in the diagram), connected together by relationships, represented by arcs (shown as arrows in the diagram). Semantic nets
inheritance provides cognitive economy, but there is a storage-space / processing-time trade-off. • This means that, if you adopt this technique, you will use less storage space than if you don't, but your system will take longer to find the answers to questions. Semantic nets
a semantic net should make a distinction between types and tokens. This is why the diagram above uses “instance_of” arcs as well as “isa” arcs. • Individual instances of objects have a token node. • Categories of objects have a type node. • There is always at least one type node above a token node. The information needed to define an item is (normally) found attached to the type nodes above it. Semantic nets
Semantic Nets to Prolog is_a(sammy,goldfish). is_a(goldfish,freshwater_fish). … has(fish,fins). has(fish,scales). … Etc. Each arrow on the semantic net becomes a Prolog clause.
% defining operators. :- op(500, xfx, isa). :- op(500,xfx, instance_of). :- op(500,xfx, covered_by). :- op(500,xfx, travels_by). :- op(500,xfx, colour). :- op(500,xfx, travels). :- op(500,fx, is). :- op(600,xfx, a). :- op(600,xfx, an). :- op(700, xf, ?). :- op(500,fx, what). :- op(600, xfx, is). A semantic net program written in Prolog
:- op(650, xfx, what). :- op(650, xfx, how). ostrich isa bird. penguin isa bird. canary isa bird. robin isa bird. bird isa animal. fish isa animal. opus instance_of penguin. tweetyinstance_of canary. canary colour yellow. A semantic net program written in Prolog
robin colour red. tweety colour white. penguin travels_by walking. ostrich travels_by walking. bird travels_by flying. fish travels_by swimming. bird covered_by feathers. animal covered_by skin. A semantic net program written in Prolog
inherit(A isa C):- A isa C. inherit(A isa C):- A instance_of D, inherit(D isa C). inherit(A isa C):- A isa D, inherit(D isa C). is X a Y :- inherit(X isa Y). is X an Y:- inherit(X isa Y). A semantic net program written in Prolog
inherit(A colour C):- A colour C. inherit(A colour C):- (A instance_of D ; A isa D), inherit(D colour C). what_colour A :- inherit(A colour C), nl, write(A), write(' is '), write(C). A semantic net program written in Prolog
inherit(A covered_by C):- A covered_by C. inherit(A covered_by C):- (A instance_of D ; A isa D), inherit(D covered_by C). A covers:- inherit(A covered_by C), nl, write(A), write(' is covered by '), write(C). A semantic net program written in Prolog
It can answer questions like is tweety an animal ? (it answers “yes”) what colour is tweety ? (it answers “white”) opus is covered_by what ? (it answers “feathers”) and so on. Semantic nets
Problems with semantic nets • logical inadequacy - vagueness about what types and tokens really mean. • heuristic inadequacy – finding a specific piece of information could be chronically inefficient. • trying to establish negation is likely to lead to a combinatorial explosion. • "spreading activation" search is very inefficient, because it is not knowledge-guided. Semantic nets
Attempted improvements • building search heuristics into the network. • more sophisticated logical structure, involving partitioning. • these improvements meant that the formalism’s original simplicity was lost. Semantic nets
Developments of the semantic nets idea: • psychological research into whether human memory really was organised in this way. • used in the knowledge bases in certain expert systems. • special-purpose languages have been written to express knowledge in semantic nets. Semantic nets
Frames The frame system mimics the human style of knowledge organisation by creating a structure consisting of slots that are filled with specific instances of data. For example we could organise the information about a wooden table as follows: In some cases a slot may hold a default value which will be assumed unless an alternative value is specified. In the Table frame, the default value for the number of legs is 4, but this could be changed (for example a larger table might have 6 legs)
Frame Structure The values stored in slots are often pointers to other frames Frames allow facts to be retrieved directly Frames may be linked to form a hierarchy that allows properties to be inherited
Semantic Net vs Frames Terminology: Subclass and has-part are called slots. Animal and head are the slot values. As Nellie is an instance of elephant, she inherits the properties of elephants, so we can also say that Nellie is large and grey. Elephants, in turn, are a subclass of mammals, so we can say that Nellie has a head, and is an animal, by a process of multiple inheritance. We could represent the same knowledge in the form of frames, as above: (note: these 3 frames represent only parts of the semantic net)
Monotonic logic • Standard logic is monotonic: • onceyou prove something is true, it is true forever • Monotonic Logic is not a good fit to reality • If the wallet is in the purse, and the purse in is the car, we can conclude that the wallet is in the car • But what if we take the purse out of the car?
Monotonic Logic • Given a collection of facts D that entail some sentence s (s is a logical conclusion of D): • For any collection of facts D’ such that DÍ D’ , D’ also entails s. • In other words: s is also a logical conclusion of any superset of D.
Nonmonotonic Logic • In a nonmonotonic system: • the addition of new facts can reduce the set of logical conclusions. • S is a conclusion of D, but is not necessarily a conclusion of D+new fact. • Humans use nonmonotonic reasoning constantly!
What is “Non-monotonic Logic” ? • To understand what nonmonotonic logic means simple consider a popular example: "all birds fly", "Tweety is a bird", "Does Tweet fly?". • The obvious answer is yes, • however what if later you learned that Tweety had a broken wing, then the answer becomes no, • then what if you learned that tweet was an airplane pilot, or had a jet pack, the answer can change again. • The important point is that as new information is added the answers change.
Nonmonotonic logic • Facts and rules can be changed at any time • such facts and rules are said to be dynamic • Prolog uses nonmonotonic logic • assert(...) adds a fact or rule • retract(...) removes a fact or rule • assert and retract are said to be extralogical predicates. • Negation as failure is also non-monotonic.
Intelligent Reasoning • One of the characteristics associated with intelligent systems is adaptability - the ability to deal with a changing environment. • Adaptation requires that a system be capable of adding and retracting beliefs as new information is available. • This requires non-monotonic reasoning.
Uncertainty • Another characteristic of intelligent systems is the ability to reason under conditions of uncertainty. • Another way of saying this: the ability to reason with an incomplete set of facts.
Inheritance • Reasoning about inheritance of properties from one class to another: Bird(x) Flies(x) • Clearly this is not a good rule, since we know there are exceptions. Bird(x) Ù Normal(x) Flies(x) • This provides for exceptions, although we must define the conditions that imply Normal(x).
Normal(x) • Assuming we know that: Ostrich(x) Bird(x) ~Flies(x) • we can derive: Ostrich(x) ~Normal(x) • So an ostrich is not a normal bird. • But what about all the the other things that are birds?
Assumptions and Defaults • If there is no reason to believe otherwise, assume that Normal(x) is TRUE. • The default is that everything is normal. • Now we only need to supply additional information for exceptions.
How to specify defaults • A number of formal systems have been developed to handle defaults. • Nonmonotonic logics formalize unsound but reasonable patterns of reasoning with uncertain, incomplete and inconsistent information • Default Logic: New rule of inference • Abduction: New interpretation of implication.
And More Logics To Think About! • Modal logic is useful for modeling reasoning about knowledge, actions, time (next, eventually, forever, never) or obligations. • Epistemic logics apply the techniques of modal logic to reasoning about knowledge. • Both individual and group knowledge is studied. The study of epistemic logic is relevant to communication protocols and cooperation. • Deontic logic formalizes normative modalities. • Deontic logic can be applied to representation of normative (e.g. legal) knowledge.
Default Reasoning with Nonmonotonic Logic • Predicate logic with an extension: • a modal operator M which means is “consistent with everything we know”. • Example: x,y: Related(x,y) Ù M GetAlong(x,y) WillDefend (x,y)
Default Logic • New rule of inference: A : B C • If A is true and it is consistent to assume B, then C is true. • Same idea, but now used as a rule of inference. The new rule extends the knowledge base to a set of plausible extensions, any new statement that is true in all extensions is added.
Inheritance with Default Logic • Support for inheritance using Default Logic: Mammal(x) : Legs(x,4) Legs(x,4) • In the absence of contradictory information, we can assume anything that is a mammal has 4 legs (also need a rule stating that nothing can have 2 different numbers of legs!) The following statements are consistent in Default Logic: Pat is a Bat. Bats are Mammals. Bats can fly. Bats have 2 legs. Mammals cannot fly. Mammals have 4 legs.
Abduction • Deduction: Given A(x) B(x) and A(x), we assume that B(x) is true. • Similar to forward reasoning • [Cf.] reasoning from the general to the particular (or from cause to effect) • Abduction: Given A(x) B(x) and B(x), we assume that A(x) is true. • Similar to backward reasoning
Inheritance Diagrams • we can also express default reasoning using diagrams. Can Fly Normal Facts Default Ostriches Birds Default Fred Tweety
A Problem with NML • x: Republican(x) Ù M ~ Pacifist(x) ~ Pacifist(x) • x: Quaker(x) Ù M Pacifist(x) Pacifist(x) • Republican(Dick) • Quaker(Dick)
Pacifists Republicans Quakers Dick Not quite this easy • Assuming we have some mechanism for representing defaults, there can still be problems: • Is Dick a pacifist?
NML Dilemma • In general we must be prepared to deal with multiple, possibly conflicting consequences of a set of facts. • One simple idea - rank all the assumptions and use rank to determine which to believe.
Connexion au compte
Connectez-vous pour publier votre contenu sur SlideServe.