Greets Perlfolk,

This is:

Lingua::EN::Dict - BETA Version of XML english dictionary storage.

**SYNOPSIS:

       use Lingua::EN::Dict;

       my $dict = Lingua::EN::Dict->new('words.xml');
       my $part_of_speech = $dict->type('abash');
       my $verb_tense = $dict->tense('zoomed');
       my $flag1 = $dict->is_verb('utilizes');
       my $flag2 = $dict->is_verb('utilized');
       my $flag3 = $dict->is_verb('utilizing');
       my @synonyms = $dict->syns('dictate');
       my @antonyms = $dict->opps('valid');
       my $defenition = $dict->defn('vindicate');

       undef $dict;
       $dict = Lingua::EN::Dict->new(
               server          =>      e.tdcj.com
               port            =>      7778,
       }
       # defaults to local file 'words.xml' if it
       # cannot reach server.
       # everything in first paragraph works here too

       undef $dict;
       $dict = Lingua::EN::Dict->new(
               server          =>      localhost
               port            =>      7778,
       }
       # everything in first paragraph works here too

       undef $dict;
       $dict = Lingua::EN::Dict->new;
   # same as above consructor, defaults to local file
   # 'words.xml' if it cannot reach server.
       # everything in first paragraph works here too

**DESCRIPTION

Note: BETA VERSION.

This is a small module I came up with to use as a storage format for
my humble attempt at a natural language parser (or a subset of natural
language - english that is). This is a seperate module that stores
the words in an xml-format file. With the distribution file, you
should have received an XML file called 'words.xml' that contains almost
3000 words consiting of several hundred verbs (not counting the seperate
forms of each of the verbs), as well as several hundred nouns, and
adjectives, articles, and modals. This module was created for the
storage and retrieval of words from the XML file.

The main reason for the beta relerase of this module is this: I would
like any and all feedback on the TCP server setup that I have added
to this module.

I often got fed-up with having to wait 20 - 40 seconds for the new()
constructor to load and parse the entire 590k of words just to run a
simple 2 line test script. And since I like to tweek and run, tweek
and run (the life of a Perl programmer, eh? :-), it was really annoying
to have to wait 30 seconds for each test to run, when the actual test
script took less than 50ms to run.  Sooooo... I added a simple TCP transfer
setup for the dictionary.

To invovke a server process for the dictionary, simply use this one-liner:

% perl -MLingua::EN::Dict -e daemon

daemon() is a function automatically exported by this module for just this
purpose. It binds a TCP server to port 7778, accepting input from any IP
address and loads the file 'words.xml' into a dictionary object for
serving.

To create a client for this server, simply use:

       my $dict = new Lingua::EN::Dict;

This automatically tries to connect to the server on port 7778 of '
localhost'. If it cannot connect to the server, it emits a warning
and proceeds to try to load the default file 'words.xml'.

The reason I released this beta version was to get input from those of
you who might have some idea of how to make sure I don't leave any
security holes in the TCP server portion.

**LATEST VERSION

You can always download the latest copy of Lingua::EN::Dict
from http://www.josiah.countystart.com/modules/get.pl?dict:README

**AUTHOR

Josiah Bryan, [email protected]