NounRoleclass | parser.t[3829] |
Superclass Tree | Subclass Tree | Global Objects | Property Summary | Method Summary | Property Details | Method Details |
A noun role is one of the standard semantic roles that a noun phrase can play in a natural language predicate. A predicate is a combination of an action and the objects that it applies to. Any given verb has a set of assigned roles that need to be filled to make a complete thought. (Sometimes the same verb word has multiple senses with different numbers of slots to fill, but you can think of the different senses as actually being different actions at some abstract level, which all happen to share the same verb word.) For example, TAKE requires a noun phrase telling us which object is to be taken; this is called the direct object of the verb. PUT X IN Y has a direct object (the thing to be put somewhere) and an indirect object (the place to put it).
Natural languages use a fairly small number of these noun roles. Most predicates in most languages have just one role: TAKE, DROP, OPEN, CLOSE. We call this first-and-only noun role the direct object. A few predicates have two roles: PUT IN, GIVE TO, UNLOCK WITH. We call the second role the indirect object. A very few predicates have three roles: TRADE BOB AN APPLE FOR AN ORANGE, PUT PLUTONIUM IN REACTOR WITH TONGS. We call the third role the "accessory" object (which is something we made up - there doesn't seem to be an agreed-upon word among linguists for this role). And it appears that there's simply no such thing as a "tetratransitive" verb in any natural human language, so we don't bother defining a fourth slot.
(It would be easy for a game to add an object defining a fourth slot, analogous with these others, and use it to include a fourth noun phrase in the grammar for applicable verbs. The rest of the parser will pick it up automatically if you do. However, the practical utility of this seems minimal. *Three*-noun verbs are incredibly rare in IF, in part because situations requiring them are rare, and in part because they're almost guaranteed to vex players and be panned as guess-the-syntax puzzles. One can only imagine how a *four*-noun command would be received.)
class
NounRole : object
AccessoryObject
ActorRole
DirectObject
IndirectObject
all
allPredicate
isPredicate
matchProp
missingReplyProp
name
npListProp
objListProp
objMatchProp
objProp
order
all | parser.t[3877] |
allPredicate | parser.t[3880] |
isPredicate | parser.t[3855] |
matchProp | parser.t[3835] |
missingReplyProp | parser.t[3861] |
name | parser.t[3867] |
npListProp | parser.t[3838] |
objListProp | parser.t[3841] |
objMatchProp | parser.t[3847] |
objProp | parser.t[3844] |
order | parser.t[3874] |
construct ( ) | parser.t[3883] |