ACTL Semantics: Compositionality and Morphosemantics:
I: Syntactic and semantic assumptions: compositionality

Emmon Bach, SOAS, UMass(Amherst)
Times: I: 26 January: 1330 - 1500
II: 23 February: 1100 - 1230
Place: UCL Department of Phonetics and Linguistics:
Room 5 (20 Gordon Square)
Copyright Emmon Bach 2007. All rights reserved.


We will not presuppose anything in the way of previous knowledge of model-theoretic semantics. Hence a significant part of the first lecture and tutorial will be devoted to an informal exposition of this way of doing semantics. I will also use a mildly categorial but constructive approach to syntax.


A crucial part of the approach used here is the mathematical concept of function. (Note words such as "function, functional" are used in many other ways in linguistics and elsewhere.):
Given two sets M and N, a function f from M -- the domain -- to N -- the range -- is a relation or mapping that associates at most one member -- f(a) of N with a given member a of M.
There are many ways to say this in a precise way. You can think of functions in a basically static way as simply sets of ordered pairs, or more dynamically as procedures or mappings. What is crucial is the uniqueness property. Writing f(a) for the second member of the ordered pair we have:

If f(a) = b and f(a) = c, then b = c.

We will continue to explore functions throughout these two sessions. In anticipation of next time: a standard way of giving names for functions is the lambda-notation, often used in linguistics for naming predicates, but much more general in application:

λx[x ∊ M ∧ x ∊ N]

If every member a of the first set (M above) has a correspondent f(a in the second set, then f is total, otherwise partial. If f(a) does not exist for some a we say that f(a) is undefined. Note that a partial function f can be extended to a total function f' by adding a new element, say zilch to N, making N', and letting f'(a) = zilch.

More generally, functions can be defined over more than one set as the domain: a n-place function is an n+1-place relation between sequences of n arguments chosen from the n sets and such that the n+1-th element is unique.

  • Which of the following are functions? Discuss why or why not. Name the domains and ranges of the functions. For those that are not functions think of a closely related function that is a function. For example, "brother-of" is not a function from individuals to individuals, as I can several brothers, but there is a function "brothers-of" that goes from individuals to sets of individuals.
    1. mother-of
    2. biological mother-of
    3. child-of
    4. Mathematical examples:

    5. square-of
    6. successor-of
    7. (on natural numbers)
    8. square-root of
    9. Syntactic examples:

    10. immediately dominated by
    11. (normal phrase markers)
    12. commands
    13. precedes
    14. immediately precedes

    Some Notations and Operations on Functions

    1. Function spaces:The set of all functions from a domain A to a range B can be notated in several different ways:
    2. (a) A ↦ B
      (b) BA

    3. The Cartesian product of two sets A and B:

      A X B

      this is the set of all ordered pairs (a, b) such that a is a member of A and b is a member of B

    4. : { (a,b) | a ∊ A ∧ b ∊ B }

    5. currying
    6. Given a binary function f in (A X B) ↦ C there is always a unary function g in B ↦ (A ↦ C) such that [g(b)](a) (= g(b)(a)) = f(a,b).

      Example: transitive verbs can be taken to be two-place functions on pairs of individuals to truth-values, but they can be curried into one place functions from individuals to functions from individuals to truth values:

      love2(a,b) (= [love1(b)](a)) = love1(b)(a)

      Note: as is usual in such notations we associate to the left so brackets or parentheses can be dropped: a(b)(c) = (a(b))(c). (We can save even more ink if not tempers if when there is no internal structure to confuse things we write simply abc! I generally use plenty of technically eliminable brackets and parentheses.)

      To uncurry a unary function we do just the opposite of currying changing a unary function from B ↦ (A ↦ C) to a function from (A X B) ↦ C.

      The example using English transitive verbs is exactly what is done to interpret the traditional structure of sentences with transitive verbs as consisting of a subject DP and predicate VP, the latter consisting of (transitive) verb and an object DP.

    7. function composition
    8. Suppose we have two functions f and g where the range (result set) of g is the domain (argument set) of f, then we can compose f and g into a new function h -- notated as f ∘ g -- from the domain of g to the range of f: so that h(x) = f∘g(x) = f(g(x)).
  • type lifting
  • Given any type a we can interpret expressions of that type as functions from functions on that type to any type b to b. That is:

    a ==> << a, b >, b>

    For example, setting a as e and b as t we have:

    e ==> << e, t>, t >

    So we can interpret John as denoting the set of sets that have John as a member.

    This is the basis for the well-known interpretation of Term Phrases (DP') as generalized quantifiers in Montague's PTQ (Montague 1973).

    lambda expressions

    : The lambda notation and calculus were invented by the logician Alonzo Church to give a clear method for giving names for functions. The basic idea goes back to Frege. Take any wellformed expression φ and variable such as x write "λx[φ]". This is now the name for the function f from things of the type of the variable x to things of the type of φ. The full definition of what this new function is requires reference to assignments of values to variables. So we will defer a more careful exposition until we have gone into assignments more closely. For now this will do:

    The denotation of an expression of the form λx[φ] at a world w on assignment g is that function f from things of the type of x to things of the type of φ such that for any thing a of the type of x, f(a) is the denotation of φ at world w and assignment g' where g' differs at most from g in that g'(x) = a.
    If you haven't seen something like this before, expect that it will take a while to sink in. In practice, φ will normally be an expression with x occurring as a free (unbound) variable, and the result of applying the lambda-expression to some argument will be what we get if we fill in the expression for the argument in the place(s) of the free variable.

    Examples for now (more examples for practice in >Exercises 1: functions and lambdas):

      let k, p denote Kim and Pat respectively.
    1. λx[see'(x)(k)]
    2. The type of x is e, the type of individuals, the type of [see'(x)(j)] is t, the type of truth values, so the type of the whole lambda expression is . This is the type for characteristic functions or equivalently sets: so the whole lambda expression could be read as "the set of things that Kim sees." If we apply the function to p we have λx[see'(x)(k)](p) --> see'(p)(k) which is true at a world w iff Kim sees Pat in that world.
    3. λx[see'(p)(x)]
    4. : the set of things that see Pat
    5. λx[λy[see'(y)(x)]
    6. : Explain.
    7. λy[λx[see'(y)(x)]]
    8. : Explain.
    9. λx[see'(x)(x)]
    10. : Paraphrase in English.

    Syntax and Semantics

    A syntactic function or functor is an expression that takes an expression of a certain class and by combining with it by some operation yields an expression of another class.

    So a functor specifies an argument category, a result category, and an operation. More generally, n argument categories, a result category and an n-place operation. We restrict our attention here to 2-place functors. In the familiar categorial notation we use categories like this:

    (More on this below. )The rule-to-rule assumption about the relation between syntax and semantics requires that every syntactic rule specifies the interpretation of the result of the rule as a function of the interpretation of the inputs to the rule. So the syntax and semantics operate in parallel. This is our implementation of the Fregean principle of compositionality:

    The interpretation of the result of a syntactic rule is a function of the interpretation of the expressions combined and the manner of their combination.
    A good general discussion of compositionality online in the Stanford Encyclopedia of Philosophy

    Model theoretic semantics

    A common sense view: when we talk about things, people, states of affairs, abstract entities like prime numbers, our talk refers to things, people, states of affairs, abstract entities like prime numbers. This is the intuitive starting point of model-theoretic semantics. Model theoretic semantics: basic assumption:

    The meaning of a linguistic expression is something that is in general* not a linguistic expression. When we want to be careful we will call this meaning of meaning a denotation or semantic value.

    *Why "in general"? Because linguistic expressions can refer to linguistic expressions. Compare (i) above: "Caesar" is a four-letter word. Caesar is not a four-letter word. Caesar was stabbed by Brutus. "Caesar" was not stabbed by Brutus. Caesar said: "Et tu, Brute."

    A trap for linguists: linguists are very good at manipulating symbols. So it is generally easy for them to learn to translate expressions of some language into expressions of some other language, for example, logical form. We will try to avoid this trap by focussing as much as we can on the things that language refers to.

    A Simple Model-structure

    A model structure is a collection of sets, functions, and so on, that provides a frame for interpreting a language. One basic model structure is this:

    1. A: a set of individuals
    2. BOOL: the set of truth-values {0, 1} interpreted as the True and False
    3. W: a set of possible worlds
    4. F: a family of functions built up from the elements of the model structure (including F itself)
    We build up recursively the types of interpretations like this:

    Definition of Type:

    1. e, t, w are members of Type
    2. (individuals, truth-values, worlds respectively)
    3. if a and b are members of Type, then so is < a, b >
    4. (functions from a-type things to b-type things)
    5. that's all!
    6. (nothing else is in Type)

    An interpretation for a language adds a method of associating expressions of the language with interpretations and assignments of values to variables (for standard treatments of quantification). We do the first that here by using a denotation function D, so we will write things like Dg(x) to mean "the denotation of x on the assignment g of values to variables." (A frequently encountered alternative notation for semantic values uses doubled square brackets: [[x]]g.) We won't be concerned with quantification here, so we will generally use simplified notations leaving out the reference to assignments D(x) and the like.

    Excursus: think of the assignment of values to variable like this. We can't judge the truth of a sentence like She left without knowing who "she" is supposed to refer to. But relative to an assignment g of values to variable and thinking of "she" as a variable we can think about the truth of the formula when the g(she) left or didn't leave. Sentences like Everyone left can now be interpreted by thinking about the truth of she left under every assignment of values to variables, and so on. Tenses are often treated as involving variables over times or intervals, thus dependent on assignments.

    Examples: Here are some examples of possible Types for some common kinds of expressions: What we have so far is essentially the same setup that is used by Montague in his most famous paper on natural language (PTQ = Montague 1973), except that that paper uses a set of times as well as a set of worlds.

    Thought question: what additional formal machinery can you think of that we would need to give an explicit account of the grammar of a natural language like English?

    Introduction to Oehrle et al. 1988
    Bach 1988, 2005
    Landman 1991
    Steedman 2000.
    Partee 1984