Semantic Networks: The Meaning of A Concept Is Defined by Its Relationship To Other Concepts
Semantic Networks: The Meaning of A Concept Is Defined by Its Relationship To Other Concepts
Semantic Networks: The Meaning of A Concept Is Defined by Its Relationship To Other Concepts
The idea behind a semantic network is that knowledge is often best understood as a set of concepts that are related to one another.
The meaning of a concept is defined by its relationship to other concepts. A semantic network consists of a set of nodes that are connected by labeled arcs. The nodes represent concepts and the arcs represent relations between concepts.
HASPART: X HASPART Y if the concept Y is a part of the concept X. (Or this can be any other property) Example: sparrow HASPART tail
Inheritance
Inheritance is a key concept in semantic networks and can be represented naturally by following ISA links. In general, if concept X has property P, then all concepts that are a subset of X should also have property P. But exceptions are pervasive in the real world! In practice, inherited properties are usually treated as default values. If a node has a direct link that contradicts an inherited property, then the default is overridden.
Multiple Inheritance
Multiple inheritance allows an object to inherit properties from multiple concepts. Multiple inheritance can sometimes allow an object to inherit conflicting properties. Conflicts are potentially unavoidable, so conflict resolution strategies are needed.
ANIMAL dog
d o g
My-Friends
Representing Events
Jack kidnapped Billy on August 5
Kidnapping Event Kidnap1 perpetrator: Jack victim: Billy date: August 5
Representing predicates
score(Mavs, Bulls, 120-101)
Game Instance: Game17 hometeam: Mavs Visiting team: Bulls Score: 120-121
Representing Relations
Karl
height Height1 greater-than
John
height height2
Frames
A frame represents an entity as a set of slots (attributes) and associated values. Each slot may have constraints that describe legal values that the slot can take. A frame can represent a specific entity, or a general concept. Frames are implicitly associated with one another because the value of a slot can be another frame.
NBA_BASKETBALL_PLAYER isa: ADULTMALE cardinality: 400 *height: > 6' *salary: > $200,000
HUMAN isa: MAMMAL cardinality: 6 million *haspart: LEGS(2) ADULTMALE isa: HUMAN cardinality: 2 million *gender: male
Demons
One of the main advantages of frames is the ability to include demons to compute slot values. A demon is a function that computes the value of a slot on demand.
HUMAN isa: (MAMMAL) mortal: (yes :inheritable yes) cardinality: (6 million :inheritable no) age: (:inheritable yes :demon compute_age) MARY instance: HUMAN gender: FEMALE birthday: 11/04/60 int Compute_Age (frame) return(today- (query birthday slot));
The semantics behind a knowledge representation model depends on the way that it is used (implemented). Notation is irrelevant!
Whether a statement is written in logic or as a semantic network is not important -- what matters is whether the knowledge is used in the same manner.
Most knowledge representation models can be made to be functionally equivalent. It is a useful exercise to try converting knowledge in one form to another form. From a practical perspective, the most important consideration usually is whether the KR model allows the knowledge to be encoded and manipulated in a natural fashion.
Inheritance
As we stated before, semantic networks and frames are often used because inheritance is represented so naturally. But rule based systems can also be used to do inheritance! How?
Semantic networks (and frames) have an implementation advantage for inheritance because special-purpose algorithms can be used to follow the ISA links.
Comparative Summary
Rules are appropriate for some types of knowledge, but do not easily map to others. Semantic nets can easily represent inheritance and exceptions, but are not wellsuited for representing negation, disjunction, preferences, conditionals, and cause/effect relationships. Frames allow arbitrary functions (demons) and typed inheritance. Implementation is a bit more cumbersome.
And just when you thought it was safe to go out.Networks cont. (implementation)
We see hierarchical organizations in the real world all the time. They may not be "pure" hierarchies, but they're hierarchical in spirit at least. It might be easier to think of these things as "networks" instead of hierarchies. Take for example the common dictionary. At first glance, it looks like a very linear organization of the words in our language. But what a dictionary really specifies is a very complex and somewhat hierarchical map of the relationships between the words in our language. Here are some sample definitions:
dog: any of a large and varied group of domesticated animals related to the fox, wolf, and jackal chihuahua: any of an ancient Mexican breed of very small dog with large, pointed ears bird: any of a class of warm-blooded, two-legged, egg-laying vertebrates with feathers and wings penguin: any of an order of flight-less birds found in the Southern Hemisphere, having webbed feet and paddle-like flippers for swimming and diving ostrich: a large, swift-running bird of Africa and the Near East; the largest and most powerful of living birds; it has a long neck, long legs, two toes on each foot, and small useless wings canary: a small yellow songbird of the finch family, native to the Canary Islands
Notice that these definitions all relate the thing being defined to some larger class of things, and then goes on to try to distinguish that thing from other similar things. Note also that as the things being described stray further and further from what we might think of as being norms or stereotypes, the definitions get longer and more detailed. For example, compare the canary (a stereotypical bird) to an ostrich (an extremely non-stereotypical bird). When we take the time to look at the dictionary in this way, we uncover what is essentially a bunch of pointers from one word to others.
In any case, we can use our high-level data abstraction, the directed graph, to make these relationships a bit more visual. For example, from the bird definitions, we can construct the following abstraction:
vertebrate ^ | is-a has-part /------------- wings / reproduction | /--------------- egg-laying | / body-temp | /----------------- warm-blooded bird--< no. of legs ^ ^ ^ \----------------- 2 / | \ \ covering is-a / | \ \--------------- feathers / | \ \ movement color / | \ \------------- flight yellow ------canary size / | is-a \ is-a small -----/ | \ movement | ostrich---------- run movement | \ size swim ----------penguin \--------- big |
You'd use the "assoc" function with a key of "canary" to extract all the information about the "canary" type.