SemanticNetworks are traditionally viewed as tools of calculation, as in “Who are the grandmothers of Jane?”

Here is a semantic network:

 Jane mom Jan
 Jane dad John
 Jan mom Elda
 John mom Freya

The graph of relationships that Jane, Jan, John, Elda, and Freya belong to, is called a “Semantic Network.”

It has nodes (“Jane”, “Jan”, “John”, “Elda”, “Freya,”) and connections between them (“mom,” “dad.”)

You can make up whatever nodes and connections you want, and you can even use connections as nodes. (“mom” “is-a” “familyrelationship” would be an example.)

This example is fairly stereotypical of presentations of semantic networks.

Now, we said these are traditionally viewed as tools of calculation.: “Who is a grandmother of Jane?”

The computer needs some help to figure it out, so we present: rules.


 (?x mom ?y) => (?x parent ?y)
 (?x dad ?y) => (?x parent ?y)
 (?x parent ?y), (?y mom ?z) => (?x grandmother ?z)
 (?x parent ?y), (?y dad ?z) => (?x grandfather ?z)

Now, you feed the semantic network and the rules into a “reasoner,” and give it a query.

 evaluate: (Jane grandmother ?x)

The reasoner will evaluate out:

 (Jane grandmother Elda)
 (Jane grandmother Freya)


If you read Computer Science stuff, you’ve seen a million papers like this.

This is a fairly pedestrian presentation of semantic networks:

See Also


 (None yet!)