8.2 Examples of type labels

Example defining a new type label

An example of a type label that is defined in terms of a monadic lambda expression could be:

   type AAUStudent(*x) is
       [Student: ?x]<-(Agnt)<-[Attend]->(Thme)->[University: AAU]

This defines a new type in the type hierarchy. It can be used as a concept type like this:

   [AAUStudent: Romeo]
   "Romeo is an AAUStudent"

When expanding the lamda expression, the referent of the concept, Romeo, is put into the lambda expression in place of ?x. Thus, the above concept is equivalent to:

   [Student: Romeo]<-(Agnt)<-[Attend]->(Thme)->[University: AAU]
   "Romeo is a student who attends the university AAU"

Example not defining a new type label

Another example, which does not involve defining a new type label, is the following:

   [[Donkey: ?x]->(Agnt)->[Graze]: Benjamin]
   "Some donkey, ?x, is the agent of Graze.  ?x is Benjamin."

This is equivalent to:

   [Donkey: Benjamin]->(Agnt)->[Graze]
   "A donkey, Benjamin, is grazing."

A wonder for the interested

The very astute reader will have noticed that there is a conundrum here: If the formal parameter to the monadic lambda expression (in this example, "[Donkey: ?x]") has both a type and a referent, and if the actual parameter is "Benjamin", where does the actual parameter get its type from? It seems that the actual parameter only has a referent (or is a referent), an individual. So where does the type of the actual parameter come from?

The answer is that "Benjamin" is an individual in our catalog of individuals that is carried along in the implicit knowledge-base of which this conceptual graph is a part. In this catalog of individuals, "Benjamin" has been given a type. Thus the type of the actual parameter is implicit in the name (or locator) "Benjamin".


Prev: 8.1 Concept types
Up: 8 Ontology in conceptual graphs
Next: 8.3 Quiz: Concept types