Linguistics 567: Knowledge Engineering for NLP

Lab 6 Due 5/5

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:

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 week's 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!

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).

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 (especially when we get to interrogatives next week, but potentially with the declaratives this week) 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.

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.

A sketch of what you need to do

Create a baseline

Create an instance of your test suite, and process it with your 'before' grammar, to have a base line for comparison. Save this testsuite to submit when you're done.

Declarative matrix clauses

Chances are, you've mostly been working with these so far, so the only adjustment you'll need to make is to get the clausal semantics added. We are trying out the strategy of always introducing the message through a non-branching rule.

Clause embedding verb(s)

Embedded clauses: complementizers

If your language marks embedded clauses (optionally or obligatorily) with a complementizer, I recommend the following strategy.

Embedded declaratives: Just like matrix declaratives

If your embedded declaratives have the same form as matrix declaratives, you got lucky this week :).

Embedded declaratives: Other strategies

If your language does something with embedded (finite) declaratives other than the possibilities discussed above, talk with me.

Test your grammar

Write up

Submit via ESubmit

Back to main course page