Thursday, December 4, 2014

Rework the Network: Semantic Networks

It's all about the Semantics



In a previous post, we talked about the power of the Associative Network. It explains several interesting cognitive phenomena, such as reminding, creative thinking, and priming. That's pretty powerful; however, there was a weakness in the Associative Network as a way of representing knowledge. It didn't quite capture the interesting differences between the links. In my previous example, I drew a link from whale to mammal and a second link from mammal to three inner-ear bones. Should we treat these links as the same? Maybe not. 

I was purposefully sloppy in the way I presented the whale/fish example. The nodes themselves came in two flavors. The first type of nodes were concepts (i.e., nouns). They included entities like whale, fish, dog, and cat. Then there was a different breed of nodes that described those concepts (e.g., adjectives). They included such modifiers as 3 inner-ear bones, fur, nurse young, and give birth to live young. The network would be so much more useful if the links between these two types nodes were labeled differently. Why is that the case? 





One reason why is that we can use the network to make some pretty interesting inferences. Going back to our whale example, if I know that a whale is-a mammal, and I also know that a mammal has three inner-ear bones, then I can infer the following fact: "A whale has three inner-ear bones." Nobody has to tell me that fact directly. Instead, I can use the labeled relationships in my network to derive or infer these facts. Thus, a Semantic Network is a node-link representation of knowledge where the links have meaningful labels.



A STEM Example



This is a pretty powerful idea for education because it means (at least) two things: 


Number 1: You don't have to tell your students every little fact. Instead, you can let them discover these facts for themselves. Not only is the process of discovery more enjoyable for the learner, it also leads to more robust learning (a topic for another time!). 


Number 2: Thinking in terms of a Semantic Network might also help structure the presentation of ideas in class. For example, it might help map out all of the relations between geometric objects: 


  • A square has four equal sides. 
  • A rhombus has four equal sides. 
  • Therefore, a square is-a rhombus. 

Mapping out these relationships explicitly can help students visualize and understand the distinguishing characteristics between different entities. It also (implicitly) teaches a meta-cognitive strategy of mapping out information in a hierarchical manner, which is easier to memorize. 



Share and Enjoy! 


Dr. Bob



For More Information

Setting up and maintaining a Semantic Network can be an actual career! I like to refer to this as "knowledge engineering." As a knowledge engineer, you get to think about and explore the various types of objects in the world (e.g., the nodes) and their properties (e.g. has and is-a relationships). The ultimate goal of doing this is to either create a system that can either teach existing knowledge or make new discoveries.

The hard part is figuring out a way to represent the nodes and (labeled) links in a way that a machine can read and understand. We call these "propositions," which can take pretty much any format. Here's an example of a format that I made up:


WHALE [ has("blowhole"), has("fins"), is-a("mammal") ]
MAMMAL [ has("3 inner-ear bones"), has("fur"), has("live birth"), is-a("animal") ]

Once you figure out the machine-readable representation, you can then develop a reasoning engine (also, not a trivial task) that you feed in the propositions. Viola! The reasoning engine can spit out conjectures that you never before considered because it uses chains of logic to derive new concepts and ideas. 

There are several projects that are attempting to make this happen. Check them out:

  1. Viv
  2. Cyc
  3. WordNet
  4. The Semantic Web