Determining whether a name is definite or indefinite

Is there any way to tell if the printing the name activity is happening for a definite or an indefinite noun? Something like this:

There is a man called a senior citizen in Bus Stop. For printing the name of the senior citizen when the item described is definite, say "old codger".

So we get something like this:

Inform keeps track of whether or not the I6 global indef_mode is true or false. (“indef_mode” for “indefinite mode”, obviously). But that, I think, depends on how the player phrases his/her input rather than on the objects themselves.

indef_mode is indeed what you want, but it only means ``which article should be printed’’ for a fleeting moment—it’s reset before the printing a name activity begins. The simplest solution I see is to track whether an indefinite article has been printed for the most recent object (assuming that you never print an article without the noun following):

The indefinite article flag is a truth state that varies.  The indefinite article flag is false.
After printing the name of something:
	now the indefinite article flag is false.
To say note an indefinite article:
	now the indefinite article flag is true.
To decide whether the item described is definite:
	decide on whether or not the indefinite article flag is false.

Bus Stop is a room.
There is a man called a senior citizen in the Bus Stop.
The indefinite article of a senior citizen is "[note an indefinite article]a".
For printing the name of a senior citizen when the item described is definite:
	say "old codger".
Test me with "take him".
1 Like

That’s very clever! Thanks!