7.4.5 Signature

Setting the stage for the definition

A lambda expression is, as we have seen, a conceptual graph where zero or more concepts have had their referents replaced by lambdas. Let us assume that we are dealing with a particular lambda expression e. Let us further assume that e has n concepts whose referents have been replaced by lambdas. Finally, let us call these concepts c1, c2, ..., cn.

Definition of signature

n-adic lambda expressions

If:

  1. the type of c1 is t1,
  2. the type of c2 is t2,
  3. ...,
  4. and the type of cn is tn,

then the signature of e is:

   <t1,t2, ..., tn>

. This is simply a list of the types of the formal parameters.

Special case: 0-adic lambda expressions

Since a 0-adic lambda expression has no formal parameters, it has an empty signature, denoted by:

   <>

.

Examples

We have seen two examples of lambda expressions. Both can be used to define new relation types:

   relation GoingTo(*x,*y) is
     [Person: ?x]<-(Agnt)<-[Go]->(Dest)->[City: ?y]
   relation GoingToAalborg(*x) is
     [Person: ?x]<-(Agnt)<-[Go]->(Dest)->[City: Aalborg]

Note how the second one can be defined in terms of the first:

   relation GoingToAalborg(*x) is
     [Person: ?x]->(GoingTo)->[City: Aalborg]

The first lambda expression is a dyadic lambda expression with the signature <Person, City>. The second lambda expression is a monadic lambda expression with the signature <Person>.

Exercise: Can you explain why the arrows in this last definition of GoingToAalborg point the way they do?

Next

Finally, we have a short quiz on the main points in this chapter.


Prev: 7.4.4 Formal parameters
Up: 7.4 Lambda expressions (optional)
Next: 7.4.6 Quiz: Lambda expressions (optional)