The Essence of Artificial Intelligence

Chapter 2.2: Semantic Networks and Frames

Top Ten Salient Sentences:

1. "Semantic networks and frames provide a simple and intuitive way of representing
facts about objects. Both schemes allow you to represent classes (or categories) of
objects and relations between objects, and draw simple inferences based on this knowledge."

2. "In a semantic network knowledge is represented as a graph, where the nodes in the
graph represent concepts, and the links represent relations between concepts. The most
important relations between concepts are subclass relations between classes, and
instance relations between particular object instances and their parent class."

3. "Semantic networks allow us to represent knowledge about objects and relations between
objects in a fairly intuitive way. The conventional graphical notation allows us to
quickly see how the knowledge is organized. The sort of inferences that are normally
supported is very restricted - just inheritance of properties - but this means that it
is very easy to work out what is going on. So, while the notation may be ill suited
where very complex knowledge representation and reasoning is required, it may be a
good choice for certain problems."

4. "Frames are a variant of semantic networks, and a popular way to represent facts
in an expert system. All the information relevant to a particular concept is stored in
a single complex entity (called a frame)."

5. "It is straightforward to translate between semantic network and frame based
representations. Nodes in the semantic network become objects in the frame system,
links become slots, and the node the other end of the link becomes the slot value."

6. "Most frame systems allow you to state which properties (i.e. slots) are just
typical of a class, with exceptions allowed and which must be true of all instances.
The value of a property that is only typical of a class is referred to as a default
value, and can be overridden by giving a different value for an instance or subclass."

7. "Inheritance is simple where each object and class has a single parent class.
However, many systems allow multiple inheritance, which means that more than one
parent class is allowed, and an object or class may inherit from all its parents.
This makes inheritance somewhat more complex."

8. "Many systems allow slots to include procedures. The term procedural attachment
is used for this. An arbitrary piece of program code may be placed in a slot, which
is run whenever the value for that slot is needed. We may also allow pieces of code
that are run whenever a value is added, perhaps to do consistency checks or to
propagate results to other slots."

9. "With all these features, plus multiple inheritance, it may be hard to predict
exactly what will be inferred about a given object just by looking at the set of
frames. You’s have to know something about how the underlying frame system is
implemented, such as the system has a procedural rather than a declarative semantics,
as the precise meaning of a set of frames depends on how the inferences are done.
This is theoretically undesirable, but for practical systems it may be worth
sacrificing a clean semantics for additional features and flexibility."

10. "There are many things that cannot easily be represented using frames. For
example, it is hard to express negation (i.e., the fact that something is NOT true),
disjunction (i.e., the fact that either one thing OR another is true), or certain
types of quantification (i.e., the fact that something is true for ALL or SOME of a
set of objects). If these things are needed then using a logic, described next, may
be more appropriate. However, frame and semantic network systems still have their
place where relatively simple kinds of knowledge need to be represented."