Harvey 1.02 The overall goal of the Harvey project is to create an NLP interface to computers that will allow people to converse with their computer as if they were talking to a friend. This is the type of program, which if it develops corretly, would be a candidate for the so called 'Turing' tests, named for the great early British computer scientist and mathematician, Alan Turing. I started with a lexical corpus of English words, their syntactic information and frequencies provided by Adam Kilgarriff in the British National Corpus. I edited it into a form that would suit my needs and built the Word module. The Word module takes a word string and creates an object that can be queried for syntactic information about the word using various methods associated with the object. I then proceeded to creat a Verb module which takes a sentence in the form of an array of Word objects and creates a Verb object, which can likewise be queried about the verb in the sentence. Parsing simple verbs is relatively easy, but when modals become involved, complications abound. I define a modal as a verb which establishes a relationship between the subject of the sentence and the actucal verb of the sentence. I say that a modal expresses a certain modality for the verb of the sentence. These modalities are really much like the more standardized tense information about the verb. For example, 'present' means that the subjectis doing the action now. 'Past' means the subject did it in the past. 'Progressive' means it is being done by the subject, etc. Now for modals: 'want to' means that the subject wants to do it, 'would' means the subject woulddo it if he could, 'must' means the subject has to do it, 'will' means the subject intends to do it (note how will is just another modal, but many consider it a 'tense'). In short, modals just extend indefinitely the varieties of 'tense' information that we can express about a verb. From the syntax point of view, modals can operate in a diverse number of ways. We have the standard old germanic modals: can, could, shall, should ,will, would, may, might and must, which do not conjugate. Then we have a wide variety of other verbs which can act as modals when used with other verbs. 'Want to + infinitive' is still a standard modal in German, but in English, want is a fully conjugating verb. 'Help' can act as a modal in many ways: I helped fix this car (just like a modal), I helped to fix the car (just like a 'to' modal), I helped with fixing the car (help + with + gerund) and I helped the men with fixing the car (throw in an object for good measure). There are also predicate adjective modals, like: 'i am able to run', which is basically the conjugatable form of 'can'. In the Verb module I have explored a wide variety of the modals, and support chaining them together, just as we do in English (e.g. I would like to have been able to be found). Not all possible patterns have been found, but I have a goodstart with this release 1.02 of Verb.pm. The modalities which I have come up with are ad hoc at best and will need to be thought through carefully as we move ahead. New verbs and their patterns can be added to the existing verbs very easily by adding them into the appropriate hashes defined in Verb.pm. A major goal of future releases will be to standardize the modality list, complete the verb patterns, more exhaustively fill in the verbs that fit the patterns, and provide for a convenient dialog based machanism for adding new verbs as they show up. The current Verb.pm module will report the following information on verbs: tense; present, past, progressive, perfect or passive: modality for any of the modalities that I have already defined. The Verb module will also provide an integer bitmap which shows where the verbs are in the sentence, an integer based indicator of what persons are possible for the verb structure (i.e. 1st singular, 2nd etc) and what adverbs appear in the verb structure. Some sample sentences that I throw at Harvey are: i would like to be able to swim he has been eager to work they have to want to be able to be being eaten by cannibals do i want to be able to swim INSTALLATION NOTE: To get Harvey up and running, install the Word module first, then the Verb module, and finally the Harvey module. To install them, go to their respective directories and do the standard Perl installs: perl Makefile.PL make make test make install Enjoy! Chris Meyer, chris@mytechs.com