Meaning relation and reversed relations

There’s definitely only one relation in terms of one copy of the data. I think the compiler is pursuing a deliberate strategy of: “the game code doesn’t need this info; this is only useful for compiling”. It writes info to the Project Index that can’t be found in the I6.

This is what I think is going on (which goes into speculation):

The docs include the example of “to grace” meaning the reversed wearing relation: an active-voice verb meaning reversed relation is supported. But I think the implementation has some assumptions baked in that active-voice verbs are (forward) relations and that reversed relations begin with to be.

In the Standard Rules, all the verbs that mean reversed relations begin with to be. Other than to be, to be able to, to be able to see, to be able to touch, Inform doesn’t create values of kind verb for verbs beginning to be: it doesn’t have to, 'cause they can all be conjugated by conjugating to be and considering everything else to be a multi-word preposition trailing it.

So you create your to lade and Inform thinks: active-voice verb with a meaning: I have to make a rel_record. But then it doesn’t know what to call it 'cause the implementation doesn’t really know how to treat reversed relations as first class citizens. So it doesn’t get a name. As the code below shows, you can get to the relation via the result of the phrase the meaning of verb lade.

But there’s no real effort to provide the list of verbs meaning reversed R. The best thing to do would be to manually populate your own mapping.

But if you really wanted to do it dynamically (all pragmatism dropped as we enter the realm of mad science)… notice the last parameter of that rel_record:

Array Rel_Record18 --> [ 0; 101515264; RELATION_TY; MAX_POSITIVE_NUMBER; NULL; NULL; " relation"; abilities_U16; 0; DK10_relation_of_things_to_pe; call_U22; "is-carried-by"; ];

You could iterate through the relations in I6 looking for things matching “is-[verbed]-by” and then iterate through the verbs looking for the verb for which “verbed” is its third-person plural form, and then you’d know that that verb’s meaning is the forward relation of which the original verb was the reversed relation.

The verb to lug means the carrying relation.

The verb to lade means the reversed carrying relation.

lab is a room.
bob is a person.

Bob carries the spam.
the player carries the butter.

Section old meaningless (for use without Basic Inform by Graham Nelson)

meaningless-verb is always verb are.

Section new meaningless (for use with Basic Inform by Graham Nelson)

meaningless-verb is always verb achieve.

part the rest

when play begins:
let null-r be the meaning of meaningless-verb;
showme the list of verbs that mean the carrying relation;
repeat with v running through verbs begin;
say "[infinitive of v]";
unless the meaning of v is null-r, say "->  [meaning of v]";
say line break;
end repeat;
let R be the carrying relation;
let Rp be the list of people that R relates;
let Rt be the list of things that R relates to;
let RR be the meaning of verb lade;
let rrp be the list of people that rr relates;
let rrt be the list of things that rr relates to;
say "[R] | [ Rp ] | [Rt].";
say "[RR] | [ RRp ] | [RRt].";
1 Like