8.1 Concept types

What is a type hierarchy of concept types?

A type hierarchy T of concept types is a type hierarchy as defined in the section above. It only uses two methods of definition, detailed below.

Significance of type hierarchies

Every knowledge base must have a type hierarchy T, and every conceptual graph must have an associated type hierarchy T. Thus type hierarchies are quite important.

Two kinds of type labels

A type hierarchy T is a lattice (or 'network') of type labels. A type label in T can be one of two kinds:

  • primitive or
  • defined.

A primitive type label is just a name in T that is placed somewhere in the type hierarchy using the subtype operator ("≤").

A defined type label is defined in terms of a monadic lambda expression.

Entity and absurdity

Every type hierarchy contains two primitive type labels, Entity and Absurdity. These have been explained above.

Defined type labels and their lambda expressions

A defined type label (defined in terms of a monadic lambda expression) is interchangeable with its definition. Thus, wherever you can write the type label of a defined type, you can substitute its lambda expression, and vice versa.

Concept types need not be type labels

Here is an important definition:

All concepts have a concept type. For any concept, its concept type is either a type label in T or a monadic lambda expression.

What we just said was a bit subtle. Notice that a concept type need not be a type label. It can also be a lambda expression which is not placed in the type hierarchy.

For example, the following conceptual graph is a concept whose type is not a type label:

  [ [PartyLight: ?x]->(Attr)->[Blue] : Blinky ]
  "Blinky, the blue partylight"

This means that we need not define all of our types in a type hierarchy: We can make ad-hoc types if necessary by inventing a monadic lambda expression.

However, giving a name to the monadic lambda expression and placing it in the type hiearchy can be a help if we are going to use the type more than once.

Why can't concept types be blank?

Notice also that now we have the explanation for what we said earlier, that while the referent of a concept can be blank, its type cannot be blank. For example, the following is not a well-formed concept:

   [ : John]

A concept type cannot be blank because a concept type must be either:

  1. a type label in T (in which case it is not blank), or
  2. a monadic lambda expression (in which case it cannot be blank because the blank conceptual graph is not a monadic lambda expression).


Prev: 8 Ontology in conceptual graphs
Up: 8 Ontology in conceptual graphs
Next: 8.2 Examples of type labels