I’ve been messing around with this, and rolled my ideas into an extension I was using for “infinite” numbers:
eyeballsun.org/i/Approximate%20Numbers.i7x
I borrowed heavily from Plurality, to extend the concept of “ambiguously plural.” Now the ambiguously plural property combines with the plural-named property for more nuance. An ambiguously plural thing will still be treated as singular if it’s referred to using the definite object. But you can make it plural-named if you want that. The choice is between:
indefinite article: “a murder of” + plural-named noun: “crows”
and:
indefinite article: “a” + singular-named noun: “murder of crows”
I ended up needing three new variables: The current naming style, the collectively named noun, and pending naming override. The current naming style says whether we are going to treat an object as singular in the text. The collectively named noun says what that object is, and the pending naming override is a truth state that keeps track of whether we’ve actually said that object’s name yet. It’s needed so we can declare that something will be collective before we’ve actually said what it is, and then after we’re done with it, we know to go back to treating it normally.
This handled the normal indefinite article case pretty neatly, but I still had to do some hacking for the case where the verb comes first. In that case we have to assume that all ambiguously plural nouns should be treated as singular.
In all cases, I assume that ordinarily enumerated plural-named things always have plural verbs, even if the “[collective]” phrase is invoked.
[code]Book - Collective Plurality
Section - Resolving Ambiguous Plurality
Plurality style is a kind of value. The plurality styles are normal, collective, and truly plural.
The current naming style is a plurality style that varies. The collectively named noun is an object that varies. Pending naming override is a truth state that varies.
After reading a command: reset the plurality style to normal.
To reset the plurality style to (new style - a plurality style):
Now the collectively named noun is nothing;
Unless the new style is normal, now pending naming override is true;
Now the current naming style is the new style.
To say normal plurality style: reset the plurality style to normal;
To say collective: reset the plurality style to collective;
To say truly plural: reset the plurality style to truly plural;
To update plurality of (target - a thing):
now the prior named noun is the target;
if pending naming override is true, now the collectively named noun is the target;
After printing the name of an object (this is the naming is no longer pending rule):
If pending naming override is false, reset the plurality style to normal;
Now pending naming override is false.
Section - Tracking Last Item (in place of Section 1 - Tracking Last Item in Plurality by Emily Short)
[unchanged text omitted]
After printing the name of something (called the target) (this is the notice plurality of printed object rule):
mark target in output.
The notice plurality of printed object rule is listed before the naming is no longer pending rule in the after printing the name rulebook.
To mark (target - a thing) in output:
update plurality of the target;
if the target acts plural or target is the player, mark-future-plural;
otherwise mark-future-singular;
To decide whether (item - an object) acts plural:
if the collectively named noun is not the prior named noun, now the collectively named noun is nothing;
if the item is the collectively named noun and the item is ambiguously plural:
if the current naming style is collective, no;
if the current naming style is truly plural, yes;
if the item is plural-named, yes;
no.
Section - Verbs (in place of Section 2 - Verbs in Plurality by Emily Short)
To say is-are of (item - a thing):
update plurality of item;
if prior named noun acts plural or the prior named noun is the player, say “are”; otherwise say “is”.
To say is-are a/an (item - a thing):
say “[collective][is-are of item] [an item]”;
To say Is-are of (item - a thing):
update plurality of the item;
if prior named noun acts plural or the prior named noun is the player, say “Are”; otherwise say “Is”.
[For some reason putting an a/an alternation in this phrase causes the lowercase phrase to be clobbered]
To say Is-are an (item - a thing):
say “[collective][Is-are of item] [an item]”;
To say Is-are a (item - a thing):
say Is-are an item;[/code]