<!-- MHonArc v2.4.4 --> <!--X-Subject: [MUD-Dev] Re: Prescience Rules? --> <!--X-From-R13: @nguna T Kbfcr <lbfcrNunjnvv.rqh> --> <!--X-Date: Fri, 19 Jun 1998 11:45:42 -0700 --> <!--X-Message-Id: Pine.GSO.3.95q.980619081322.21065A-100000@uhunix2 --> <!--X-Content-Type: text/plain --> <!--X-Reference: 358AFF4A.4A29#dial,pipex.com --> <!--X-Head-End--> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> <head> <title>MUD-Dev message, [MUD-Dev] Re: Prescience Rules?</title> <!-- meta name="robots" content="noindex,nofollow" --> <link rev="made" href="mailto:yospe#hawaii,edu"> </head> <body background="/backgrounds/paperback.gif" bgcolor="#ffffff" text="#000000" link="#0000FF" alink="#FF0000" vlink="#006000"> <font size="+4" color="#804040"> <strong><em>MUD-Dev<br>mailing list archive</em></strong> </font> <br> [ <a href="../">Other Periods</a> | <a href="../../">Other mailing lists</a> | <a href="/search.php3">Search</a> ] <br clear=all><hr> <!--X-Body-Begin--> <!--X-User-Header--> <!--X-User-Header-End--> <!--X-TopPNI--> Date: [ <a href="msg01142.html">Previous</a> | <a href="msg01144.html">Next</a> ] Thread: [ <a href="msg01139.html">Previous</a> | <a href="msg01122.html">Next</a> ] Index: [ <A HREF="author.html#01143">Author</A> | <A HREF="#01143">Date</A> | <A HREF="thread.html#01143">Thread</A> ] <!--X-TopPNI-End--> <!--X-MsgBody--> <!--X-Subject-Header-Begin--> <H1>[MUD-Dev] Re: Prescience Rules?</H1> <HR> <!--X-Subject-Header-End--> <!--X-Head-of-Message--> <UL> <LI><em>To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI> <LI><em>Subject</em>: [MUD-Dev] Re: Prescience Rules?</LI> <LI><em>From</em>: Nathan F Yospe <<A HREF="mailto:yospe#hawaii,edu">yospe#hawaii,edu</A>></LI> <LI><em>Date</em>: Fri, 19 Jun 1998 08:41:01 -1000</LI> <LI><em>Reply-To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI> </UL> <!--X-Head-of-Message-End--> <!--X-Head-Body-Sep-Begin--> <HR> <!--X-Head-Body-Sep-End--> <!--X-Body-of-Message--> <PRE> On Fri, 19 Jun 1998, Richard Woolcock wrote: :Vadim Tkachenko wrote: :> Richard Woolcock wrote: :[big snip] :> > I would like to (when I have the time) replace the announce command with :> > a parser to check through spoken strings and determine what the players is :> > actually saying, creating a 'TRUE/FALSE' lie detection accordingly. :> Side note: make it external and pluggable, it may consume all the :> processor power :-) :I'm not sure...I guess I'll have to see ;) Here is how I was planning to code :it... Oh boy... I suspect I'm the only person on this list to have coded (well, I have started to code, at least) an industrial strength natural language parser. As such... this is too much to pass up commenting on, even with my swamped schedule. (You have noticed I've been quiet of late, no?) :while not at end of string loop : if the current character is a space then : interpret the word : start a new word : continue : end if : if the current character is non-alphabetic then : continue : end if : if the current letter is a vowel and not the first letter of the word then : continue : end if : if the current letter is the same as the previous letter then : continue : end if : if not the first letter of the word then : word <<= 5 bits : end if : word &= character in lowercase - 'a' + 1 : if the word is holding 6 values then : interpret the word : start a new word : end if :end loop :(roughly speaking)...then I'll have the "interpret_word" function which :does a switch case and stores some sort of result accordingly...for example :suppose you had the string "I have never committed diablerie" from my :previous example...the above function would send the following words one :after the other: :I = i = 9 :have = hv = (8<<5)+(22) = 278 (I think) :never = nvr = (14<<10)+(22<<5)+(18) = something :committed = cmtd = ... :diablerie = dblr = ... :Doing a switch case on the first word (9), the mud determines that the :talker is referring to themself. The second word (278) determines that :the talker is referring to either something the own, or something they :have done. The third word would inform the mud that the talker was :inversing their claim. The fourth word would inform the mud that the :talker had performed a certain action. The fifth word would inform the :mud that the talker was referring to the act of diablerie. From this :(and this is the bit I don't yet know how to do) the mud could determine :that: :Bubba claims that the act of diablerie was not performed by himself. :This system wouldn't be perfect, but I could probably get it 'fairly' :accurate, and I don't think it would be too much of a drain on the :processor. I think I've mentioned before, my natural language parser is hosted by the client, not the server. The tokenized meanings are passed to the server, along with the string in the case of communication. Now, a bit about my tokenization sequence: Tokens are in the form of a 64 bit long. The standardized tokenized dictionary has each token defined on the host side by meaning-class. A meaning-class leaves vast stretches of undefined tokens to be added at a later date, which are similar to the proceeding set. The token ranges are broken into nouns, verbs (further broken into 32 tenses by the last 5 bits of each), adjectives, adverbs, relationals, states, abstracts, and associatives. Names, incidentally, are associatives until the client can identify a possible noun value for the name. The categories are broken up by the first three bits of the token. Some of these are going to be (obviously) quite empty, but... well, hell, with 56 bits to play with, I suspect most of the categories are going to be fairly empty. The good part about the range-relationships is that the association value of unknown words is subject to mutative weighting on the parser's neural nets. In other words, eventually, the parser could learn to *really* understand. The bad part is, the client has to initially download a *monsterous* lex file. Each word in the lex file corresponds to one token. Several words share each alphanumeric key. All elligable words for that key compete for a parse. Some tokens will, in a given language (I only intend to complete English and Japanese myself) refuse to evaluate in context of other tokens. This narrows meanings. The parsed sentance produces a number of meaning strings. Any meaning string with a low probability evaluation is discarded. Remaining strings are weighted for probability on local context. Local objects have token keys associated with them. Descriptions of local objects are derived from favorable assembly of the reversed parse process... they are described by the words afiliated with their primary tokens. This should allow multiple languages to interact smoothly, even to the point of (maybe) someday allowing a series of possible translations for client to client communication between speakers of different languages. (I know, I know... "The spirit was willing, but the flesh was weak." ... but it's better than nothing, and that would show up *very* low on the probability scale. I hope.) The side affect here is that most intelligent NPCs will be run remotely, by "smart clients"... in other words, I have a "client" that is designed to act on the tokenized meanings it recieves, rather than parse them to words, and that will thus have some degree of intelligence... hooked up to an "NPC" that can also be used by admins... and if it is designed for conversation, hopefully one of these will someday successfully pass Turing tests. -- Nathan F. Yospe - Aimed High, Crashed Hard, In the Hanger, Back Flying Soon Jr Software Engineer, Textron Systems Division (On loan to Rocketdyne Tech) (Temporarily on Hold) Student, University of Hawaii at Manoa, Physics Dept. yospe#hawaii.edu nyospe#premier.mhpcc.af.mil <A HREF="http://www2.hawaii.edu/~yospe/">http://www2.hawaii.edu/~yospe/</A> </PRE> <!--X-Body-of-Message-End--> <!--X-MsgBody-End--> <!--X-Follow-Ups--> <HR> <!--X-Follow-Ups-End--> <!--X-References--> <UL><LI><STRONG>References</STRONG>: <UL> <LI><STRONG><A NAME="01139" HREF="msg01139.html">[MUD-Dev] Re: Prescience Rules?</A></STRONG> <UL><LI><EM>From:</EM> Richard Woolcock <KaVir#dial,pipex.com></LI></UL></LI> </UL></LI></UL> <!--X-References-End--> <!--X-BotPNI--> <UL> <LI>Prev by Date: <STRONG><A HREF="msg01142.html">[MUD-Dev] Re: Analysis and specification - the dirty words of mud development?</A></STRONG> </LI> <LI>Next by Date: <STRONG><A HREF="msg01144.html">[MUD-Dev] Re: Nested Coordinate spaces.</A></STRONG> </LI> <LI>Prev by thread: <STRONG><A HREF="msg01139.html">[MUD-Dev] Re: Prescience Rules?</A></STRONG> </LI> <LI>Next by thread: <STRONG><A HREF="msg01122.html">[MUD-Dev] Re: Prescience Rules?</A></STRONG> </LI> <LI>Index(es): <UL> <LI><A HREF="index.html#01143"><STRONG>Date</STRONG></A></LI> <LI><A HREF="thread.html#01143"><STRONG>Thread</STRONG></A></LI> </UL> </LI> </UL> <!--X-BotPNI-End--> <!--X-User-Footer--> <!--X-User-Footer-End--> <ul><li>Thread context: <BLOCKQUOTE><UL> <LI><STRONG>[MUD-Dev] Re: Prescience Rules? [Previously submitted under wrong thread :( ]</STRONG>, <EM>(continued)</EM> <ul compact> <ul compact> <ul compact> <ul compact> <LI><strong><A NAME="01131" HREF="msg01131.html">[MUD-Dev] Re: Prescience Rules? [Previously submitted under wrong thread :( ]</A></strong>, Adam Wiggins <a href="mailto:adam#angel,com">adam#angel,com</a>, Thu 18 Jun 1998, 23:31 GMT </LI> <LI><strong><A NAME="01132" HREF="msg01132.html">[MUD-Dev] Re: Prescience Rules?</A></strong>, Richard Woolcock <a href="mailto:KaVir#dial,pipex.com">KaVir#dial,pipex.com</a>, Fri 19 Jun 1998, 00:33 GMT <UL> <LI><strong><A NAME="01136" HREF="msg01136.html">[MUD-Dev] Re: Prescience Rules?</A></strong>, Vadim Tkachenko <a href="mailto:vt#freehold,crocodile.org">vt#freehold,crocodile.org</a>, Fri 19 Jun 1998, 04:10 GMT <UL> <LI><strong><A NAME="01139" HREF="msg01139.html">[MUD-Dev] Re: Prescience Rules?</A></strong>, Richard Woolcock <a href="mailto:KaVir#dial,pipex.com">KaVir#dial,pipex.com</a>, Fri 19 Jun 1998, 16:16 GMT <UL> <LI><strong><A NAME="01143" HREF="msg01143.html">[MUD-Dev] Re: Prescience Rules?</A></strong>, Nathan F Yospe <a href="mailto:yospe#hawaii,edu">yospe#hawaii,edu</a>, Fri 19 Jun 1998, 18:45 GMT </LI> </UL> </LI> </UL> </LI> </UL> </LI> </ul> </ul> <LI><strong><A NAME="01122" HREF="msg01122.html">[MUD-Dev] Re: Prescience Rules?</A></strong>, Joel Kelso <a href="mailto:joel#ee,uwa.edu.au">joel#ee,uwa.edu.au</a>, Thu 18 Jun 1998, 01:42 GMT </LI> </ul> </ul> </LI> <LI><strong><A NAME="01109" HREF="msg01109.html">[MUD-Dev] ADMIN: OS Wars</A></strong>, J C Lawrence <a href="mailto:claw#kanga,nu">claw#kanga,nu</a>, Wed 17 Jun 1998, 15:44 GMT <LI><strong><A NAME="01101" HREF="msg01101.html">[MUD-Dev] Re: [Fwd: Warfare on retromud.org 3000]</A></strong>, Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Wed 17 Jun 1998, 04:54 GMT <LI><strong><A NAME="01096" HREF="msg01096.html">[MUD-Dev] Re: Mozilla: unity of interface</A></strong>, John Bertoglio <a href="mailto:alexb#internetcds,com">alexb#internetcds,com</a>, Wed 17 Jun 1998, 03:15 GMT </UL></BLOCKQUOTE> </ul> <hr> <center> [ <a href="../">Other Periods</a> | <a href="../../">Other mailing lists</a> | <a href="/search.php3">Search</a> ] </center> <hr> </body> </html>