Shouldn't "card(cex)" and "ord(cex)" be shaped more like a quantifier?

This is a case that has always vexed me and that I finally need to address now that I’m trying to write up some documentation that touches on it.

All of the parses for “There are two rocks” include card(cex), _rock_n_1(x) in conjunction in various forms. The first reading seems like the most obvious interpretation so I’ll include it here:

[ TOP: h0
RELS: < 
[ udef_q LBL: h5 ARG0: x4 [ x PERS: 3 NUM: pl IND: + ] RSTR: h6 BODY: h7 ]
[ card LBL: h8 CARG: "2" ARG0: e10 [ e SF: prop TENSE: untensed MOOD: indicative PROG: - PERF: - ] ARG1: x4 ]
[ _rock_n_1 LBL: h8 ARG0: x4 [ x PERS: 3 NUM: pl IND: + ] ]
[ _be_v_there LBL: h1 ARG0: e2 [ e SF: prop TENSE: pres MOOD: indicative PROG: - PERF: - ] ARG1: x4 ]
HCONS: < h0 qeq h1 h6 qeq h8 > ]

                            ┌─ card__cex:2,e10,x4
                 ┌───── and:0,1
                 │            └_rock_n_1__x:x4
                      └ _be_v_there__ex:e2,x4

It seems like card is acting more like a quantifier in this phrase, just like “some” does in “there are some rocks”, and thus should be taking at least one scopal argument like this:

[ TOP: h0
RELS: < 
[ udef_q LBL: h5 ARG0: x4 [ x PERS: 3 NUM: pl IND: + ] RSTR: h6 BODY: h7 ]
[ card LBL: h8 CARG: "2" ARG0: e10 [ e SF: prop TENSE: untensed MOOD: indicative PROG: - PERF: - ] ARG1: x4 ARG2: h9001 ]
[ _rock_n_1 LBL: h8 ARG0: x4 [ x PERS: 3 NUM: pl IND: + ] ]
[ _be_v_there LBL: h1 ARG0: e2 [ e SF: prop TENSE: pres MOOD: indicative PROG: - PERF: - ] ARG1: x4 ]
HCONS: < h0 qeq h1 h6 qeq h8 > ]

                                              ┌ _rock_n_1__x:x4
                 ┌───── card__cexh:2,e10,x4,ARG2
                      └ _be_v_there__ex:e2,x4

(And this is in fact what I convert it to in order to “solve” the tree logically, but it has always bothered me that I have to do that).

This is the only case of a predicate behaving like this besides ord that I’ve seen (and admittedly I’ve not fully explored all MRS predicates) and it breaks at least my mental model of how things should work.

Can anyone explain that semantic of this predicate? It and ord definitely behave very differently than other non-scopal predicates I’ve encountered…

Why? What makes you think like that? I really see it as a modifier, like an adjective modifying the noun and normalizing the surface form of numerals. As far as I know, different syntactic theories differ on the criteria to make numerals more like adjectives or quantifiers/determinants.

To me, It seems exactly analogous to “There are some rocks” in that it is quantifying how many. It isn’t operating at the level of individuals like blue_a_1(e,x) or other adjective-like predications, it is operating on the set of individuals under discussion, and limiting how many of them there are.

Another way of saying this is: It isn’t each individual rock that has the property “2 of them”, it is a property of the set of rocks that make the sentence true. Just like the quantifier “some” doesn’t apply to every one of the rocks, it applies to the set that makes the sentence true.

I obviously could have this all wrong, of course :slight_smile:

These cardinal numbers do very often appear without an overt quantifier, but because they can co-occur with a quantifier, the grammar treats them as (non-scopal) modifiers like other attributive adjectives. Consider “no two cats” or “those two cats” or “any two cats” or “the only two cats”. Since these examples show that we need an analysis where the cardinal is an adjective, and we already have a rule for making bare plural nominal phrases such as “large cats” into bare-NPs, we use that same rule to construct the NP “two cats”.

1 Like

OK, just saying this all back to see if I’ve got it straight:

I think my misunderstanding is due to forgetting the fact that there really are two ways that limiting and declaring of sets of things happen in an MRS: through (big q) quantifiers like “some” and through plurality expressed as a property on variables.

For “only two cats”: because big q quantifiers like (“some”) don’t have an event tied to them, there is no way for them to be modified with adjectives like _only_a_1. Since cardinality like “two cats” allows constructs like “only two cats” then it must be modeled by going down the plurality path, not the “big q” quantification path.

“any/no/those two cats” confuses me a bit because those are quantifiers (“no” has a reading with a scopal argument too but since it is scopal, I’ll treat it similarly) don’t require an event, so in theory modeling them as:

_any_q(x1, card(2, e1, x1, _cat_1(x1)), BODY)

seems like it would express the right semantic in the abstract, but because we’re already expressing (little q) quantification for the “only” case, we reuse it here?

Am I on the right track?

Am I also right in interpreting “but because they can co-occur with a quantifier, the grammar treats them as (non-scopal) modifiers” to mean: “they should be treated as a kind of modifier for the quantifier that immediately scopes them”. I.e. the phenomena generated by “any two” which is any_a with card in the RSTR should be treated as a kind of combined Quantifier that is effectively any_card_q? Or am I reading too much into that?

Side note: Looking at my code I’m realizing that this same issue came up with “there are many cats” for me in the past, where much-many_a is doing (little q) quantification like card and ord do. I’m guessing there must be many analogs to the big q quantifiers like this. I’ve been calling these “adjective quantifiers”, but I’d love to know the real linguistic term for them.

Adding to Dan’s comments about the syntax of cardinals, I thought I would add a few things on the semantic side:

Firstly, yes, it is helpful to compare cardinals with plurality and much/many. In these cases, an influential approach, due to Link (1983), is to say that a set of entities can itself be treated as an entity. So the semantics of “there are two rocks” is something like: there is an entity x such that x is a plurality of rocks with cardinality 2. (Whether you want to represent pluralities in this way in your game is another question.)

Secondly, plural nouns have both collective and distributive readings. For example, consider “four children ate three pizzas”. The collective reading is that three pizzas were eaten in total. The distributive reading is that each child ate three pizzas, so twelve pizzas were eaten in total.

A collective reading makes a cardinal look very much like a modifier.

A distributive reading makes a cardinal look more like a quantifier, but we can actually see the same effect with group nouns. For example: “The school thought that one pizza would be enough for each child, but a group of the oldest children actually ate three pizzas!”

Link, Godehard. 1983. “The logical analysis of plurals and mass terms: A lattice-theoretical approach.”

1 Like

This is wonderful background, thanks for the reference to Link (1983). I found at least one summary of it that I’ll read through: (

I did try to explore a path like this previously but it forced everything in the system to have to have two implementations: one for the singular and one for the “set based entity” case. If that turns out to be the answer, so be it, but I’m still hopeful that my current approach works just as well: effectively treat these mass terms as “modifying” the quantifier they are scoped under. Kind of like how adverbs “modify” verbs.

For example, one scope-resolved tree for “four children ate three pizzas” is:

                         ┌── card(3,e16,x10)
             ┌────── and(0,1)
             │             └ _pizza_n_1(x10)
                  │                          ┌── card(4,e9,x3)
                  │              ┌────── and(0,1)
                  │              │             └ _child_n_1(x3)
                  └─ udef_q(x3,RSTR,BODY)
                                      └─ _eat_v_1(e2,x3,x10)

In the approach I’m exploring, this gets converted such that its quantifiers take the mass terms as a special argument that changes how their quantification works. In the case of udef_q, the modification is just to run the output of the quantifier through the mass term after the quantifier is done.

It looks kind of like the below scoped-resolved tree and operates like this:

  1. The first udef_q iterates through every pizza and passes each to the second udef_q
  2. The second udef_q collects every child that is eating that pizza and then performs the card(4) operation on that set, returning 4 of the children that are eating that pizza.
  3. After the first udef_q collects every pizza that has (at least) 4 children eating it, that set gets passed to through card(3) and 3 pizzas that each have 4 (potentially different for each pizza) children eating them are returned (or we fail)

This is the collective reading (I think). To get the distributive reading you use the scope-resolved tree where pizza and child are reversed. I believe this hits all the cases we’re describing here, at least.

I may be latching onto a pattern that really doesn’t work but in my (minimal) tests so far, the mass nouns like “several”, “cardinal”, etc seem to always show up in the RSTR of the quantifier that scopes them and that is why the approach seems to be working: they are very easy to detect and “fish out” so the quantifier can manipulate them.

The group noun example where the speaker explicitly groups things using a term like “group” or “set” (“a group of the oldest children”) is a little more vexing since the MRS gets more complicated and I’m not sure it will be as easy to “fish out” the “groupification” and implement it as a detail of quantification as easily. Still thinking through that one.

                             ┌────── pizza_n_1(x10)
                                  │                            ┌────── _child_n_1(x3)
                                  │                            │             
                                  └─ udef_q(x3,card(4,e9,x3),RSTR,BODY)
                                                                    └─ _eat_v_1(e2,x3,x10)

If there are 3 pizzas and 12 children, this is the distributive reading with inverse scope (inverse with respect to the surface word order) – I didn’t mention this one because I didn’t think it was salient! The collective reading has exactly 4 children and 3 pizzas, in total: the children are collectively doing the eating, and the pizzas are collectively being eaten.

This sounds reasonable. But “mass noun” is not the right term – a mass noun is a noun like “rice” that can’t be directly counted (you have to say “two grains of rice”, etc.).

If a cardinal (or vague cardinal like “several”) appears attributively (i.e. modifying a noun), then it would appear in the restriction, as you point out. They can also appear predicatively (e.g. “the reasons are several, namely…”), but this sounds very formal to me, and might be rare in the kind of sentences you’re considering. In any case, it looks like the ERG analyses the predicative case with _be_v_id and generic_entity, so it still appears under a restriction (of a different quantifier).

1 Like

Thanks for looping back on that. I’ll check to make sure I can generate the other variants as well.

Is there a term for these types of words? (my summary of) Link (1983) seems to call them “mass terms” or “mass enties” or sometimes “plurals” (which doesn’t seem right).

Good to know that my approach to pulling them from the RSTR might be pretty widely applicable.

1 Like

I’m now not sure what words you’re referring to. We have so far been talking about cardinals (including vague cardinals like “several”). Is “cardinal” not an appropriate term? Are there some other words you are thinking about?

Link’s point was that plural nouns and mass nouns share some important semantic properties. But cardinals are not nouns (except maybe in a mathematical context). And entities are not words/terms.

For the record, I did find a case where card(c,e,x) is licensed for the body of a quantifier in a fully resolved tree, which means my approach here is not going to work (unless this is just an invalid parse, but it doesn’t seem like it…). Is this the “predicative” case you mentioned?

“which 2 files in this folder together are 2 megabytes”

[ "which 2 files in this folder together are 2 megabytes"
  TOP: h0
  INDEX: e2 [ e SF: ques TENSE: pres MOOD: indicative PROG: - PERF: - ]
  RELS: < [ _which_q<0:5> LBL: h4 ARG0: x3 [ x PERS: 3 NUM: pl IND: + ] RSTR: h5 BODY: h6 ]
          [ card<6:7> LBL: h7 ARG0: e9 [ e SF: prop TENSE: untensed MOOD: indicative PROG: bool PERF: - ] ARG1: x3 CARG: "2" ]
          [ _file_n_of<8:13> LBL: h7 ARG0: x3 ARG1: i10 ]
          [ _in_p_loc<14:16> LBL: h7 ARG0: e11 [ e SF: prop TENSE: untensed MOOD: indicative PROG: - PERF: - ] ARG1: x3 ARG2: x12 [ x PERS: 3 NUM: sg IND: + ] ]
          [ _this_q_dem<17:21> LBL: h13 ARG0: x12 RSTR: h14 BODY: h15 ]
          [ _folder_n_of<22:28> LBL: h16 ARG0: x12 ARG1: i17 ]
          [ _together_p_state<29:37> LBL: h7 ARG0: e18 [ e SF: prop TENSE: untensed MOOD: indicative PROG: - PERF: - ] ARG1: e11 ]
          [ loc_nonsp<42:53> LBL: h1 ARG0: e2 ARG1: x3 ARG2: x19 [ x PERS: 3 NUM: pl IND: + ] ]
          [ udef_q<42:53> LBL: h20 ARG0: x19 RSTR: h21 BODY: h22 ]
          [ card<42:43> LBL: h23 ARG0: e25 [ e SF: prop TENSE: untensed MOOD: indicative PROG: - PERF: - ] ARG1: x19 CARG: "2" ]
          [ _megabyte_n_1<44:53> LBL: h23 ARG0: x19 ARG1: u26 ] >
  HCONS: < h0 qeq h1 h5 qeq h7 h14 qeq h16 h21 qeq h23 > ]

This tree, which has card(c,e,x) in the body of _this_q_dem(x12,RSTR,BODY), is licensed by the MRS:

                         ┌── _megabyte_n_1(x19,u26)
             ┌────── and(0,1)
             │             └ card(2,e25,x19)
             │                                                           ┌────── _together_p_state(e18,e11)
udef_q(x19,RSTR,BODY)                                                    │
                  │                                          ┌────── _fol│er_n_of(x12,i17)
                  │                ┌────── _this_q_dem(x12,RSTR,BODY)    │ ┌──── _in_p_loc(e11,x3,x12)
                  │                │                              └─ and(0,1,2,3)
                  │                │                                         └─│ _file_n_of(x3,i10)
                  └─ _which_q(x3,RSTR,BODY)                                    │
                                        │                                      └ card(2,e9,x3)
                                        └─ loc_nonsp(e2,x3,x19)

In that example, there are two card rels, both of which appear in the restriction of the quantifier for their ARG1.

As for “attributive” vs. “predicative”, it’s easiest to explain with an example: in the sentence “the happy dog is fluffy”, “happy” is attributive and “fluffy” is predicative. A predicative cardinal would be something like: “the happy dogs are three” (which sounds very weird to my ears, even though the intended meaning is not weird).

1 Like

Got it. Thanks for the explanation.