gawkinet: Challenges

 
 2.12 Where To Go From Here
 ==========================
 
 Now, you have learned enough to build your own application.  You could,
 for example, take part in the Loebner Contest to win $100,000.  The
 Loebner Prize is the first formal instantiation of a Turing Test.  Hugh
 Loebner agreed with The Cambridge Center for Behavioral Studies to
 underwrite a contest designed to implement the Turing Test.  Dr. Loebner
 pledged a Grand Prize of $100,000 for the first computer whose responses
 were indistinguishable from a human's.  Each year an annual prize of
 $2000 and a bronze medal is awarded to the _most_ human computer.  The
 winner of the annual contest is the best entry relative to other entries
 that year, irrespective of how good it is in an absolute sense.  Here is
 an example of a conversation with the winning program of 1997:
 
      (c)1997 Cambridge Center For Behavioral Studies all rights reserved [CONVERSE]
      [Intelligent Research Ltd.] Start at: [1997/04/29 08:59:40]
      PROGRAM[10:39:20]Hi, my name is Catherine, what's yours?
      JUDGE02[10:39:36]My name is Nathan.
      PROGRAM[10:39:37]Well, it's nice to meet you, Nathan.
      PROGRAM[10:39:45]Did you see that story on CNN last night about the lesbian
      PROGRAM[10:40:03]couple who came out at a White House party on Sunday?
      JUDGE02[10:40:45]No.  I'm sorry I missed that.  How did the Prez take it?
      PROGRAM[10:40:47]Ellen Degeneres was one of them - she was kissing her lover
      PROGRAM[10:41:08]in front of Bill Clinton. Do you think he was very
      PROGRAM[10:41:21]embarrassed?
      JUDGE02[10:41:37]You tell me.  I didn't see it.
      PROGRAM[10:41:38]Are you still a Friend of Bill Clinton?
      JUDGE02[10:42:22]Yes.  I would like to talk about something else.  Do you know anything about sculpture.
      PROGRAM[10:42:24]Well, I suppose he's doing his best like most of us, but he
      PROGRAM[10:42:35]does seem to attract an UNUSUAL amount of bad publicity,
      PROGRAM[10:42:51]wouldnt you say--can it all be bad luck?
      JUDGE02[10:43:20]I asked you if you knew anything about sculpture.
      PROGRAM[10:43:21]OK, but what happens now--does it all drift on, with
      PROGRAM[10:43:36]everyone waiting to see how much his friends have said about
      PROGRAM[10:43:47]him under threat of lots and lots of jail-or will something
      PROGRAM[10:44:01]dramatic actually happen?
      JUDGE02[10:44:19]Do you know what sculpture is?
      PROGRAM[10:44:20]Well, youre more a fan of his than I am I guess---though I
      PROGRAM[10:44:34]cant SWEAR what Id have done in that locked hotel room, I
      PROGRAM[10:44:51]must say.
      JUDGE02[10:45:26]Have you ever been to the Salmagundi Club?
      PROGRAM[10:45:29]Never. to go back to the original discussion Time to get
      PROGRAM[10:45:43]off this one I think and onto something more down to earth!
      JUDGE02[10:46:20]What is more down to earth than art?
      PROGRAM[10:46:21]I don't know what -- to be honest. -
      PROGRAM[10:46:30]I suppose it depends on where you're coming from, but as the
      PROGRAM[10:46:46]song goes in My Fair Lady, "Why can't a woman be more like a
      PROGRAM[10:47:03]man? "
      JUDGE02[10:47:52]I liked that song but I prefer "Why can't children be more like we are"
      JUDGE02[10:48:10]from another play the name of which I cannot remember.
      PROGRAM[10:48:12]What, if anything, do you enjoy about being a man?
      JUDGE02[10:49:01]I would enjoy all aspects of life no matter what my gender.
      PROGRAM[10:49:02]Do you think of yourself as being attractive?
 
    This program insists on always speaking about the same story around
 Bill Clinton.  You see, even a program with a rather narrow mind can
 behave so much like a human being that it can win this prize.  It is
 quite common to let these programs talk to each other via network
 connections.  But during the competition itself, the program and its
 computer have to be present at the place the competition is held.  We
 all would love to see a 'gawk' program win in such an event.  Maybe it
 is up to you to accomplish this?
 
    Some other ideas for useful networked applications:
    * Read the file 'doc/awkforai.txt' in the 'gawk' distribution.  It
      was written by Ronald P. Loui (at the time, Associate Professor of
      Computer Science, at Washington University in St.  Louis,
      <loui@ai.wustl.edu>) and summarizes why he taught 'gawk' to
      students of Artificial Intelligence.  Here are some passages from
      the text:
 
           The GAWK manual can be consumed in a single lab session and
           the language can be mastered by the next morning by the
           average student.  GAWK's automatic initialization, implicit
           coercion, I/O support and lack of pointers forgive many of the
           mistakes that young programmers are likely to make.  Those who
           have seen C but not mastered it are happy to see that GAWK
           retains some of the same sensibilities while adding what must
           be regarded as spoonsful of syntactic sugar.
           ...
           There are further simple answers.  Probably the best is the
           fact that increasingly, undergraduate AI programming is
           involving the Web.  Oren Etzioni (University of Washington,
           Seattle) has for a while been arguing that the "softbot" is
           replacing the mechanical engineers' robot as the most
           glamorous AI testbed.  If the artifact whose behavior needs to
           be controlled in an intelligent way is the software agent,
           then a language that is well-suited to controlling the
           software environment is the appropriate language.  That would
           imply a scripting language.  If the robot is KAREL, then the
           right language is "turn left; turn right."  If the robot is
           Netscape, then the right language is something that can
           generate 'netscape -remote
           'openURL(http://cs.wustl.edu/~loui)'' with elan.
           ...
           AI programming requires high-level thinking.  There have
           always been a few gifted programmers who can write high-level
           programs in assembly language.  Most however need the ambient
           abstraction to have a higher floor.
           ...
           Second, inference is merely the expansion of notation.  No
           matter whether the logic that underlies an AI program is
           fuzzy, probabilistic, deontic, defeasible, or deductive, the
           logic merely defines how strings can be transformed into other
           strings.  A language that provides the best support for string
           processing in the end provides the best support for logic, for
           the exploration of various logics, and for most forms of
           symbolic processing that AI might choose to call "reasoning"
           instead of "logic."  The implication is that PROLOG, which
           saves the AI programmer from having to write a unifier, saves
           perhaps two dozen lines of GAWK code at the expense of
           strongly biasing the logic and representational expressiveness
           of any approach.
 
      Now that 'gawk' itself can connect to the Internet, it should be
      obvious that it is suitable for writing intelligent web agents.
 
    * 'awk' is strong at pattern recognition and string processing.  So,
      it is well suited to the classic problem of language translation.
      A first try could be a program that knows the 100 most frequent
      English words and their counterparts in German or French.  The
      service could be implemented by regularly reading email with the
      program above, replacing each word by its translation and sending
      the translation back via SMTP. Users would send English email to
      their translation service and get back a translated email message
      in return.  As soon as this works, more effort can be spent on a
      real translation program.
 
    * Another dialogue-oriented application (on the verge of ridicule) is
      the email "support service."  Troubled customers write an email to
      an automatic 'gawk' service that reads the email.  It looks for
      keywords in the mail and assembles a reply email accordingly.  By
      carefully investigating the email header, and repeating these
      keywords through the reply email, it is rather simple to give the
      customer a feeling that someone cares.  Ideally, such a service
      would search a database of previous cases for solutions.  If none
      exists, the database could, for example, consist of all the
      newsgroups, mailing lists and FAQs on the Internet.