@UncleSporky, here’s the background on this, as I understand it.
First, every word that is recognizable by the parser’s built-in machinery goes into a big memory table called the dictionary. This table has the (first 9, usually) characters of the word, plus assorted internal flags to indicate certain functional features of the word in the context of parsing. One of these flags indicates whether the word is valid as a “verb” (in the Inform 6 sense).
In the world of Inform 6, a dictionary word is flagged as a verb if it is used to define the first word in a grammar line for an action. The word ‘take’ is marked as a verb to recognize commands like >TAKE LAMP, as is the word ‘pick’ for commands like >PICK UP LAMP. (The word ‘up’ is considered a “preposition” in that command, even though it’s not grammatically a preposition, and it’s not marked as a verb. A command like >UP is handled by special parser code for handling directions, so it’s not marked as a verb for that case, either.) As these examples show, it’s possible for different I6 verbs to trigger the same action, because, while a specific verb word is needed to get the parser to look at a given grammar line, it’s the end of that grammar line that indicates which action is to be generated upon successful parsing. (In this case, the action in either case is ##Take
in the I6 notation. The equivalent in I7 is called an action name, and the action ##Take
would be designated “the taking action”. See WWI 12.20 “Stored actions” for more on this.)
In the world of Inform 7, a “verb” has a special new meaning in the context of I7’s adaptive text system (see WWI 14 “Adaptive Text and Responses”), and it takes a special declaration to set up a word as a “verb” in the I7 sense (see WWI 14.3 “More on adapting verbs”). I think this creates an actual routine for the declared verb, and that routine can be asked to spit back the text for a given conjugation, tense, etc.
In I7, not every word that is recognized as an I6 verb by the parser gets a corresponding I7 verb. (I don’t know why. Perhaps space considerations? Fortunately, new verbs are very easy to declare, as mirality showed.) For your special message, you would want an I7 verb for each I6 verb that can trigger the message so that you can ask for its present participle. I7 verbs are only created at compile time, so it is necessary to declare in advance any of them that might be used for the message.
Hopefully that’s all correct. If not, someone will probably come along shortly to point out errors.
EDIT: @UncleSporky, just to add: Daniel Stelzer’s Subcommands extension is pretty great for similar functionality with respect to noun words typed by the player.