Semantic Network

A semantic Network is a Directed Graph for representing knowledge.

Its nodes represent objects and concepts (which are classes of objects). Its edges (called links) represent relations between the nodes.

Links labeled isa (inclusion, inclusion of concepts) and inst (instance, Concept of membership) have a special meaning as they can propagate properties encoded by other links (see example). We differnetiate between isa and inst to not mix up objects and concepts, which are different things.

However links still dont have any meaning for a machine.

We can use Inference on semantic networks to derive new concepts and relations from the existing ones.

If or then we can derive a relation

We differnetiate between two Subgraphs of a semantic network:

To make semantic networks work in computers we have to get away from the graphical representation and use some kind of linear notation. We could for example use functions (links) with arguments (nodes) to represent a Graph. Can be implemented in ProLog.

Rewriting this a bit more gives something that looks like First-Order Predicate Logic.

First-order deduction as process model, gives inheritenc for free, why??? question

Example

Question one could ask: Does Jack have wings?

We can use Property Inheritence to answer this question:

  • Jack is an instance of a robin
    • robin is a bird
      • bird has wings
  • thus Jack has wings

So we see that semantic networks actually have more implicit knowledge/information in them than explicitely written down.