Skip to content

Instantly share code, notes, and snippets.

@robintown
Created July 17, 2022 18:08
Show Gist options
  • Save robintown/9053f7c148aadf84a72993988fa20bdd to your computer and use it in GitHub Desktop.
Save robintown/9053f7c148aadf84a72993988fa20bdd to your computer and use it in GitHub Desktop.
Notes on interpreting t5

For a sentence like "Kủq rào kôı jí na ru kảqsı jí bũ", I'd ideally like to assign it something like the following interpretation (with some details removed for simplicity):

∃e. kuq(e) ∧ (∃e1. koı(e1, J) ∧ rao(e, e1)) ∧ (¬∃e1. kaqsı(e1, J) ∧ rao(e, e1))

But there are a couple of big disconnects between this and the actual structure of the Toaq sentence. First, the rao seems to have been split in two by the presence of ru inside the t5 clause, and it's also been pushed underneath the bu in the second conjunct. It has to be this way though - if the rao were placed outside the existential quantifiers, it would not be able to access the event variables that it's supposed to operate on, and if the negation were moved under the quantifier, it just wouldn't have the right meaning.

Just looking at the Toaq though, it would be really nice if the sentence could turn out to have the form

∃e. kuq(e) ∧ rao*(e, ???)

where ??? is some neatly packaged up term that directly corresponds to the t5 clause.

So, given the differences in structure, is it possible to pick a meaning for rao* and a value for ??? that makes this sentence logically equivalent to the one above? For a long time I didn't think so, because I was stuck on thinking that the t5 clause would have to be interpreted as a proposition or a property, making the internal structure opaque to rao, but then I figured out a trick: if you represent the t5 clause as a 'split up' version of the clause that encodes all the event predicates, conjunction, negation, etc. as separate components, predicates can use that information to reconstruct the original clause, but with their own custom logic inserted in there (such as putting the rao predicate in the right place, as in this example).

Let's say that <a, b, c> is how you'd write a tuple. Then, if you were to split up "Hîo na ru fả" in this way, you could represent it as <λj, j1. jeo(j) ∧ jeo(j1), λe1. hıo(e1, J), λe1. fa(e1, J)>, where the tail of the tuple represents the constituent event predicates of the clause, and the head of the tuple represents a 'transformation' into which you'd plug all of the constituent event claims to reconstruct the full clause. What's important about this is that it gives predicates access to the underlying event predicates in a t5 clause.

To break apart "Kôı jí na ru kảqsı jí bũ" you'd need to nest these tuples, resulting in a tree of sorts where the head/root is ru, the first child is koı, and the second child is bu, which itself has kaqsı as a child. Here's an demonstration of an expansion of rao* that would connect that ∃e. kuq(e) ∧ rao*(e, ???) form back to the intended event semantics:

Kủq rào kôı jí na ru kảqsı jí bũ

∃e. kuq(e) ∧ rao*(e, <λj, j1. jeo(j) ∧ jeo(j1), λe1. koı(e1, J), <λb. bu(b), λe1. kaqsı(e1, J)>>)

∃e. kuq(e) ∧ jeo(λ. ∃e1. jeo(e1, λe2. koı(e2, J)) ∧ rao(e, e1), λ. jeo(λ. ∃e1. jeo(e1, λe2. kaqsı(e2, J)) ∧ rao(e, e1), λb. bu(b)), λj, j1. jeo(j) ∧ jeo(j1))

∃e. kuq(e) ∧ jeo(λ. ∃e1. koı(e1, J) ∧ rao(e, e1), λ. jeo(λ. ∃e1. kaqsı(e1, J) ∧ rao(e, e1), λb. bu(b)), λj, j1. jeo(j) ∧ jeo(j1))

∃e. kuq(e) ∧ jeo(λ. ∃e1. koı(e1, J) ∧ rao(e, e1), λ. ¬∃e1. kaqsı(e1, J) ∧ rao(e, e1), λj, j1. jeo(j) ∧ jeo(j1))

∃e. kuq(e) ∧ (∃e1. koı(e1, J) ∧ rao(e, e1)) ∧ (¬∃e1. kaqsı(e1, J) ∧ rao(e, e1))

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment