Linguistics 471: Grammar Engineering

Lab 6 Due 5/23

Read all the way through the assignment once before starting it. Once again I'll be asking for write ups, and basing a significant portion of the grade on the write up. This means that even if you don't get something working, you can get a lot of partial credit for describing the problem and how you attempted to handle it, and you best guess as to why it's not working. Conversely, you could have everything working properly, but if you don't describe the phenomena (with glossed examples) and how you handle them in your write up, you won't get full credit.


This lab has two goals:

Correction: Contrary to what I said in lecture, MSG is not a HOOK feature. Rather, it is a feature parallel to HOOK. This is important, as we want to systematically identify the C-CONT.HOOK (and therefore the SYNSEM..CONT.HOOK) with the CONT.HOOK of the semantic head daughter if there is one. However, in many cases the CONT.MSG of the phrase and the CONT.MSG of the semantic head daughter will be different.

Semantic representations

This section gives example semantic representations (of the form produced by the "Indexed MRS" option) to compare your results to. The focus of this weeks lab is the message relations: getting the proper number of them, and relating them in the right way to the other relations.

Matrix declarative

Things to note: The proposition_m_rel has the same handle as the (local) top, and the single argument of the proposition_m_rel qeqs the handle of the verb.

Matrix interrogative

The main difference between this and the previous mrs is addition of the question_m_rel. The local top handle is now the label of the question_m_rel, which takes the proposition_m_rel's handle directly as its sole argument. The argument of the proposition_m_rel is still related via qeq to the label of the _sleep_v_rel.

Embedded declarative (with matrix declarative)

Now there are two proposition_m_rels, one for the matrix clause and one for the embedded clause. The arguments of the proposition_m_rels qeq the handles of the verbs, but the argument of _know_v_rel takes the handle of the lower proposition_m_rel directly.

Embedded interrogative (with matrix declarative)

This one is just like the preceding one, except there is a question_m_rel in addition to the proposition_m_rel for the embedded clause. Note that _know_v_rel takes the handle of the embedded question_m_rel as its argument directly (no qeq) and the embedded question_m_rel takes the embedded proposition_m_rel as its argument directly (again, no qeq). The next link in the chain (between the argument of the embedded proposition_m_rel and the _sleep_v_rel) does have a qeq.

Once you've got all of these, matrix interrogatives with embedded declaratives or interrogatives should follow!

matrix.tdl patch

There is an updated version of matrix.tdl, which you'll need for this lab. Download it, reload your grammar, and test to make sure your coverage hasn't changed. If it has, talk to me, and I'll help you debug.

Construct a test suite

Syntactic differences between clauses

Your first step in this lab should be to cover the syntax of your clause types. Once that it working, worry about the semantics.

Everyone will need to implement a clause-embedding verb type (another subtype of verb-lex). This one should inherit from clausal-second-arg-trans-lex-item (defined in matrix.tdl) as well as verb-lex (defined in esperanto.tdl), and constrain the CAT value of its complement appropriately.

In addition, you may need to implement one or more of the following:

Think before you code! There's too much variety across languages in this domain for me to sketch out all the relevant possibilities in this lab, so you'll need to plan out what you're going to try. I'm happy to answer questions as you do.

To give you some guidance, I describe below what I did for English while testing out the matrix for this lab.

Semantic differences between clauses

There are two parts to the problem of getting the semantics right for clauses:

  1. Making sure each clause type gets the right message(s) inserted.
  2. Making sure that the syntax and semantics correlate as they are supposed to (e.g., if there is a word order that is particular to interrogative clauses, it shouldn't get a parse with propositional semantics).

The matrix has done most of the work for (1), it's just a matter of hooking it in to your grammar in the right way. Hopefully, the English examples below will be useful in this regard.

What I did for English

The analyses I'm going to describe here cover a lot of the possibilities, although you might find that what's useful for embedded interrogatives in English is actually what you need for matrix polar questions in your language, etc. That isn't to say that everything you need is here. If it doesn't seem to be, talk to me!

Declarative matrix clauses

head-subj-phrase := basic-head-subj-phrase & head-final & declarative-clause &
    C-CONT [ RELS < ! *top* ! >,
             HCONS < ! *top* ! > ]].

Interrogative matrix clauses

Embedded clauses

Test your grammar

Write up

Submit via ESubmit

Back to main course page