# Debugging a lost slash constraint

**URL:** <https://delphinqa.ling.washington.edu/t/debugging-a-lost-slash-constraint/322>\
**Category:** Grammar Matrix\
**Created:** [June 13, 2019, 6:17pm UTC](https://delphinqa.ling.washington.edu/t/debugging-a-lost-slash-constraint/322 "2019-06-13T18:17:20Z")\
**Posts on this page:** 16\
**Page:** 1

<div class="post-metadata">

**Author:** ![olzama](https://delphinqa.ling.washington.edu/user_avatar/delphinqa.ling.washington.edu/olzama/32/6_2.png) [@olzama](https://delphinqa.ling.washington.edu/u/olzama)\
**Post date:** [June 13, 2019, 6:17pm UTC](https://delphinqa.ling.washington.edu/t/debugging-a-lost-slash-constraint/322/1 "2019-06-13T18:17:20Z")

</div>

I seem to have lost a constraint somewhere and I can’t immediately figure out what happened. Is there any systematic way of debugging these?

Here’s what is happening in the picture below. The top S is licensed by the wh-question phrase which is fine. However, the wh-rule requires a slashed head daughter, and in this case, there should not be one because no extraction rule has applied (a separate question is why the extraction rule hasn’t applied). If no extraction rule has applied, then there should be nothing on this S’s slash list, and so the wh-rule should not apply. I must have lost something pretty deep on the clause-level constraints. For some reason the grammar is happy to just assign the non-empty slash value to the S. I have looked at the relevant types (Head-Comp rule, Head-Subj rule, wh-rule, and their supertypes) but cannot yet spot what is it that I removed…

Posting in the hopes that someone just knows which type should be responsible for keeping track of the slash values here…

 ![42%20AM](https://delphinqa.ling.washington.edu/uploads/default/original/1X/03f5705428c184273baf8e176b3b3af6d65cf1f8.jpeg)

---

<div class="post-metadata">

**Author:** ![olzama](https://delphinqa.ling.washington.edu/user_avatar/delphinqa.ling.washington.edu/olzama/32/6_2.png) [@olzama](https://delphinqa.ling.washington.edu/u/olzama)\
**Post date:** [June 13, 2019, 6:28pm UTC](https://delphinqa.ling.washington.edu/t/debugging-a-lost-slash-constraint/322/2 "2019-06-13T18:28:17Z")

</div>

It seems that the SLASH value is copied from the head daughter to the mother by the type called _head-valence-phrase_. I haven’t touched that type, and my head-subject rule inherits from it. In the local AVM for the head-daugher S (_the cat sees what_), the slash list appears empty.

Why then does the wh-rule fire here?..

---

<div class="post-metadata">

**Author:** ![ebender](https://delphinqa.ling.washington.edu/letter_avatar_proxy/v4/letter/e/34f0e0/32.png) [@ebender](https://delphinqa.ling.washington.edu/u/ebender)\
**Post date:** [June 13, 2019, 6:39pm UTC](https://delphinqa.ling.washington.edu/t/debugging-a-lost-slash-constraint/322/3 "2019-06-13T18:39:34Z")

</div>

This is symptomatic of an underspecified diff-list value somewhere which breaks the diff-list append. The trick to debugging these is to look for the lowest constituent in the tree that has the problem and then look within it for the element that is leaving its SLASH value underspecified. Pay attention to the lexical amalgamation stuff: the basic-\*-arg types build this in. Perhaps you have something that’s not inheriting from one of those?

---

<div class="post-metadata">

**Author:** ![olzama](https://delphinqa.ling.washington.edu/user_avatar/delphinqa.ling.washington.edu/olzama/32/6_2.png) [@olzama](https://delphinqa.ling.washington.edu/u/olzama)\
**Post date:** [June 13, 2019, 7:33pm UTC](https://delphinqa.ling.washington.edu/t/debugging-a-lost-slash-constraint/322/4 "2019-06-13T19:33:43Z")

</div>

Right…

So, I look at the AVM (not the local AVM though) for _what_ (the NP), and it has a non-empty slash list. Would we call that the lowest problematic thing then? (Except it isn’t a true constituent, it is a subterminal…)

---

<div class="post-metadata">

**Author:** ![ebender](https://delphinqa.ling.washington.edu/letter_avatar_proxy/v4/letter/e/34f0e0/32.png) [@ebender](https://delphinqa.ling.washington.edu/u/ebender)\
**Post date:** [June 13, 2019, 9:35pm UTC](https://delphinqa.ling.washington.edu/t/debugging-a-lost-slash-constraint/322/5 "2019-06-13T21:35:09Z")

</div>

You _definitely_ want to look at the local AVM–selecting AVM will give you unified in constraints which are confusing as all get out in this case.

---

<div class="post-metadata">

**Author:** ![olzama](https://delphinqa.ling.washington.edu/user_avatar/delphinqa.ling.washington.edu/olzama/32/6_2.png) [@olzama](https://delphinqa.ling.washington.edu/u/olzama)\
**Post date:** [June 13, 2019, 10:03pm UTC](https://delphinqa.ling.washington.edu/t/debugging-a-lost-slash-constraint/322/6 "2019-06-13T22:03:12Z")

</div>

Right. In that case, the first node where things look wrong is actually the top one… The local AVM for _the cat sees what_ has an empty slash list. Does this mean the problem must be in the wh-question phrase itself, or not necessarily?

---

<div class="post-metadata">

**Author:** ![ebender](https://delphinqa.ling.washington.edu/letter_avatar_proxy/v4/letter/e/34f0e0/32.png) [@ebender](https://delphinqa.ling.washington.edu/u/ebender)\
**Post date:** [June 13, 2019, 10:08pm UTC](https://delphinqa.ling.washington.edu/t/debugging-a-lost-slash-constraint/322/7 "2019-06-13T22:08:27Z")

</div>

Really empty, or just underspecified? An “unhealthy” SLASH list doesn’t have the LAST identified with anything on the LIST.

---

<div class="post-metadata">

**Author:** ![olzama](https://delphinqa.ling.washington.edu/user_avatar/delphinqa.ling.washington.edu/olzama/32/6_2.png) [@olzama](https://delphinqa.ling.washington.edu/u/olzama)\
**Post date:** [June 13, 2019, 10:42pm UTC](https://delphinqa.ling.washington.edu/t/debugging-a-lost-slash-constraint/322/8 "2019-06-13T22:42:31Z")

</div>

Aha! Indeed, here’s what I have on the _the cat sees what_ S:

![25%20PM](https://delphinqa.ling.washington.edu/uploads/default/original/1X/c1038af12453c7d292b94379dff9f35f1950ca00.png)

So, the real empty SLASH should look like REL, then.

Trying to track it down, the VP _sees what_ looks like this:

![15%20PM](https://delphinqa.ling.washington.edu/uploads/default/original/1X/83cb6d7e17d5ee20821c59860ec7e0d6fd81abb9.png)

Are both SLASH and REL healthy or unhealthy here? And QUE, for that matter?They identify their LAST with something but there is no connection to the LIST?

And then finally, should I only be checking this on the constituent and not lextype level?

---

<div class="post-metadata">

**Author:** ![ebender](https://delphinqa.ling.washington.edu/letter_avatar_proxy/v4/letter/e/34f0e0/32.png) [@ebender](https://delphinqa.ling.washington.edu/u/ebender)\
**Post date:** [June 13, 2019, 11:01pm UTC](https://delphinqa.ling.washington.edu/t/debugging-a-lost-slash-constraint/322/9 "2019-06-13T23:01:46Z")

</div>

All three of SLASH, QUE and REL look unhealthy there — I’m guessing that you didn’t constrain these appropriately on the lexical type for _what_, which in turn is breaking the diff-list append with _see_.

Eventually, yes, you want to go look at lexical types in the tdl. But the methods for finding the culprit starts with the trees…

---

<div class="post-metadata">

**Author:** ![olzama](https://delphinqa.ling.washington.edu/user_avatar/delphinqa.ling.washington.edu/olzama/32/6_2.png) [@olzama](https://delphinqa.ling.washington.edu/u/olzama)\
**Post date:** [June 13, 2019, 11:57pm UTC](https://delphinqa.ling.washington.edu/t/debugging-a-lost-slash-constraint/322/10 "2019-06-13T23:57:00Z")

</div>

Alright. And on the Head-Subj-licensed node, REL and QUE look fine, yes?

Aha. The _basic-one-arg_ supertype was missing from my definition of the wh-word! Unfortunately, adding it did not help. Here’s what it looks like now:

```auto
wh-word-lex := norm-hook-lex-item & basic-icons-lex-item & basic-one-arg & 
  [ SYNSEM [ LOCAL [ CAT.VAL [ SPR < >,
                               SUBJ < >,
                               COMPS < >,
                               SPEC < > ],
                     CONT [ RELS <! [ LBL #larg,
                                      ARG0 #arg0 ], [ PRED "which_q_rel",
                                                      ARG0 #arg0,
                                                      RSTR #harg ] !>,
                            HCONS <! [ HARG #harg,
                                       LARG #larg ] !> ] ],
             NON-LOCAL.QUE <! #arg0 !> ] ].

wh-pronoun-noun-lex := wh-word-lex & non-mod-lex-item &
  [ SYNSEM.LOCAL [ CAT.HEAD noun,
                   CONT.RELS <! [ARG0 ref-ind], [] !> ] ].

```

Who should be saying something about this item’s SLASH list? _basic-one-arg_ links it to the ARGS. What is missing?

---

<div class="post-metadata">

**Author:** ![ebender](https://delphinqa.ling.washington.edu/letter_avatar_proxy/v4/letter/e/34f0e0/32.png) [@ebender](https://delphinqa.ling.washington.edu/u/ebender)\
**Post date:** [June 14, 2019, 12:31am UTC](https://delphinqa.ling.washington.edu/t/debugging-a-lost-slash-constraint/322/11 "2019-06-14T00:31:41Z")

</div>

Why would wh-word-lex be basic-one-arg? That type is for words with an ARG-ST of length one. I think you want something like basic-zero-arg, but not quite, because the QUE value there is wrong… so probably just borrow the SLASH and REL constraints from basic-zero-arg.

---

<div class="post-metadata">

**Author:** ![olzama](https://delphinqa.ling.washington.edu/user_avatar/delphinqa.ling.washington.edu/olzama/32/6_2.png) [@olzama](https://delphinqa.ling.washington.edu/u/olzama)\
**Post date:** [June 14, 2019, 1:15am UTC](https://delphinqa.ling.washington.edu/t/debugging-a-lost-slash-constraint/322/12 "2019-06-14T01:15:56Z")

</div>

> [@ebender](#):
>
> Why would wh-word-lex be basic-one-arg?

Hmm, my noun-lex is basic-one-arg, and that comes from the GM, I am fairly sure. What’s on the noun’s ARG-ST?

---

<div class="post-metadata">

**Author:** ![olzama](https://delphinqa.ling.washington.edu/user_avatar/delphinqa.ling.washington.edu/olzama/32/6_2.png) [@olzama](https://delphinqa.ling.washington.edu/u/olzama)\
**Post date:** [June 14, 2019, 1:19am UTC](https://delphinqa.ling.washington.edu/t/debugging-a-lost-slash-constraint/322/13 "2019-06-14T01:19:08Z")

</div>

> [@ebender](#):
>
> just borrow the SLASH and REL constraints from basic-zero-arg.

But basic-zero-arg looks like this:

basic-zero-arg := lex-item &  
[ARG-ST \< \>].

– and there doesn’t seem to be anything useful in the lex-item…

---

<div class="post-metadata">

**Author:** ![olzama](https://delphinqa.ling.washington.edu/user_avatar/delphinqa.ling.washington.edu/olzama/32/6_2.png) [@olzama](https://delphinqa.ling.washington.edu/u/olzama)\
**Post date:** [June 14, 2019, 2:05am UTC](https://delphinqa.ling.washington.edu/t/debugging-a-lost-slash-constraint/322/14 "2019-06-14T02:05:44Z")

</div>

Aha!

This seems to have done the right thing:

```auto
             NON-LOCAL [ QUE <! #arg0 !>, 
			 SLASH 0-1-dlist & [LIST #list, LAST #list], 
			 REL 0-1-dlist & [LIST #list, LAST #list] ] ] ].

```

- the last two lines were not there. (They aren’t on the basic-zero-arg either though; should they be?)

---

<div class="post-metadata">

**Author:** ![ebender](https://delphinqa.ling.washington.edu/letter_avatar_proxy/v4/letter/e/34f0e0/32.png) [@ebender](https://delphinqa.ling.washington.edu/u/ebender)\
**Post date:** [June 14, 2019, 1:37pm UTC](https://delphinqa.ling.washington.edu/t/debugging-a-lost-slash-constraint/322/15 "2019-06-14T13:37:02Z")

</div>

Oh, I see – the existing type that you want is _zero-arg-que := zero-arg-nonslash & zero-arg-nonrel._

Nouns have a non-empty ARG-ST because they take a SPR (and amalgamate non-local features from it, crucially in this case QUE for pied-piping).

---

<div class="post-metadata">

**Author:** ![olzama](https://delphinqa.ling.washington.edu/user_avatar/delphinqa.ling.washington.edu/olzama/32/6_2.png) [@olzama](https://delphinqa.ling.washington.edu/u/olzama)\
**Post date:** [June 14, 2019, 3:53pm UTC](https://delphinqa.ling.washington.edu/t/debugging-a-lost-slash-constraint/322/16 "2019-06-14T15:53:42Z")

</div>

Oh right!! I don’t need 0-1-dlists here; that’s (possibly) for the phrase structure rules which allow more than one question. But not for the wh-words themselves; why would they need a non-emtpy slash list. I think this issue is now resolved, thank you so much :).
