Re: group sex

From: Daniel A. Koepke (dkoepke@circlemud.org)
Date: 03/16/02


On Sat, 16 Mar 2002, Kras Kresh wrote:

> I need a solution for fixing this while parsing the string in
> perform_act(). Is there a simple solution?  [... snip ...]  I guess
> that isn't too hard, but its not very fun to play with string
> pointers.

It might be harder than you first expect.  Consider, at first, the
sentence, "$e pushes forward."  If the group is pushing forward, then we
need to conjugate "pushes" for the plural; merely dropping the 's' gives
us, "They pushe forward."  This is fine if you're running ChaucerMud (and,
in which case, you might want, "Hie pushe foreweard"), but let's assume
that's not the case.

Indeed, we run into problems with other verbs and, of course, nouns, which
we'll sometimes need to transform for the possessive case.  Sometimes is
the key word.  Consider,

    You reach for his hands.    |    You reach for their hands.
    You reach for his tress.    |    You reach for their tresses.
    You steal his shoes.        |    You steal their shoes.

There are other worrying cases, but some are absurd within the Mud
setting.  How much do you care about such cases as already presented?
Keep in mind that while the examples might seem unimportant, they
represent a larger field of sentence formations and vocabulary that is
suddenly off limits, less you have the Mud massacre your compositions.

If we're pluralizing nouns as appropriate, what about, "his red apple?"
Do we recognize adjectives?  What about present and past participles
(verbs acting as adjectives) such as, "his humming sword?"  Or gerunds and
infinitives (verbs acting as nouns), like, "his loud humming?"

Even if we get all of this handled, what abouts lists and connectives?
Can we handle, "$e crouches and prepares to lunge," despite the distance
between the verb "prepares" and its subjective pronoun ($e)?  Can we
handle, "He misses his thrust and dodges your riposte?"

The automatic parsing of English is (at best) difficult to do without
severely limiting your grammar and word choice.  If we really want to try
automatic parsing, we'll want:

  (1) Keep a dictionary mapping singular verbs/nouns to their plural
      equivalents, to be used in preference to automatic translation.
      Some words can be left for automatic translation (e.g., those
      which only require appending an 's').

  (2) Mark-up everything that needs transformation in some manner.  The
      mark-up should specify, to some degree, which transformation
      should apply, what it should be transformed with repsect to, and
      which word to transform.

Before we address the design and implementation of anything nearly so
complex, we should look at alternatives.  One that occurs to me
immediately is simply adding RE_{CHAR,VICT}_{PL,SNG} to act()'s TO_ flags
to indicate what the message concerns (and restrict sending it when those
concerns aren't met).  E.g.,

    act("$e crouches and prepares to lunge at $N.",
        FALSE, ch, 0, vict, TO_NOT_VICT | RE_CHAR_SNG | RE_VICT_SNG);
    act("$e crouches and prepares to lunge at them.",
        FALSE, ch, 0, vict, TO_NOT_VICT | RE_CHAR_SNG | RE_VICT_PL);

Admittedly, this becomes twice as many messages for those messages we want
group/singular alternatives, but it might be worth it for its simplicity.


-dak

--
   +---------------------------------------------------------------+
   | FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
   | Archives: http://post.queensu.ca/listserv/wwwarch/circle.html |
   | Newbie List:  http://groups.yahoo.com/group/circle-newbies/   |
   +---------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 06/25/03 PDT