Newsgroups: rec.arts.int-fiction
Path: gmd.de!xlink.net!howland.reston.ans.net!usenet.ins.cwru.edu!eff!news.kei.com!ub!acsu.buffalo.edu!goetz
From: goetz@cs.buffalo.edu (Phil Goetz)
Subject: Adjectives (Re: Let's design a better language)
Message-ID: <CG79A2.3HM@acsu.buffalo.edu>
Sender: nntp@acsu.buffalo.edu
Nntp-Posting-Host: zanian.cs.buffalo.edu
Organization: State University of New York at Buffalo/Comp Sci
References: <D> <CFn4HF.4wr@news.cis.umn.edu> <2aq93d$f7f@Notwerk.mcs.com>
Date: Tue, 9 Nov 1993 00:56:25 GMT
Lines: 39

In article <2aq93d$f7f@Notwerk.mcs.com> jorn@Notwerk.mcs.com (Jorn Barger) writes:
>You want all the objects in the object-hierarchy to 'know' how to
>articulate various self-descriptions, including the values of their
>various properties.
>
>So a book-object with the property 'color' and the value 'red' should
>'know' to say "a red book" OR "a book with a red cover" OR "a book
>whose color is red", when you request DESCRIBE (object, property).
>
>And this knowledge will be stored with the basic colored-item object,
>and accessed by climbing the hierarchy from 'book' to 'item'.
>And the same *strings* should be available as *patterns* for text
>comprehension-- so if someone types 'a red book' the program can
>easily track down the list of all books, and zero in on the ones with
>the color red.

Having a colored-item object sounds overcomplicated.
I hate to bring up my adventure Inmate again, since I wrote it 7 years
ago and still keep talking about it, but...
When parsing a noun phrase it keeps a list of objects which
the current noun phrase might refer to.  When an adjective is parsed,
the list is scanned and all objects without that property are thrown
out.  If, after parsing the noun phrase, more than one object is left,
all those not in the room are thrown out.  Then, if a number was given
(e.g. "Pick up 3 red buttons"), all but the first 3 on the list are
thrown out.  Then the remaining contents of the list are given to
the verb handler, 1 by 1, e.g.
WHILE (#objects > 0) {doverb(object[#objects]); #objects--}

Ownership can be treated very much like an adjective:  "Throw my axe"
eliminates axes from the list which aren't possessed by the speaker.
I forget whether I implemented this.

My describe function simply printed all adjectives before the name of
the object.  I don't think I ever hacked it to print "3 red buttons"
instead of "red button, red button, red button", though.

Phil
goetz@cs.buffalo.edu
