NAME
Harvey::Verb - Harvey module for parsing verbs.
SYNOPSIS
use Harvey::Verb;
The is still very much a development module. See the website:
www.mytechs.com for more details on the project.
Verb.pm builds on top of Word.pm, which provides the Word objects which
are used by Verb.pm.
See Word.pm for information on using Word.pm to obtain information about
Word objects. Verb objects are created by passing an array of Word objects
(A) which constitute a sentence, as an argument to the Verb object
constructor. $V = Verb->new(\@A);
The Verb object parses the verb in the sentence upon initialization to the
best apparent parsing. The Verb object can then be queried for information
about the verb object using the following methods.
See the Harvey module for a simple dialog routine that uses the Verb module
to parse sentences and pull the verb information from them.
DESCRIPTION
The following methods constitute the interface to this object:
new
Constructor. Send in an array reference to a block of word objects
(Word.pm) to have the verb information parsed and made available. If
no argument is passed in, then a blank verb is set up which can be
manually stuffed with information.
words
Method to load or retrieve word arrays from the object. If a word array
is loaded manually after the initialization of the object, then the
parsing must be performed by a call to parse() or best().
used
Returns an integer with bits set indicating which words in the array
are used in the verb complex. This will be used to match verbs against
nouns in a sentence when the noun module comes out.
best
Calculates the best parsing of the sentence based on how many word are
involved in the parsing and whether they are started off by the most
common verb starters.
complete_tense
Returns a string rendition of the tense of the verb in the word array.
show_adverbs
Returns the adverbs in the verb complex as strings for show.
tenses
Returns the Int which stores the tenses, and/or, sets the tenses if an
Int is sent in. Used mainly to set up modal verb objects from scratch.
present
Get/Set present tense. Input of 1 or 0 sets or clears the present
tense. All calls return the final status of the present tense flag.
past
Get/set past tense as above.
perfect
Get/set perfect tense as above.
progressive
Get/set progressive tense as above.
infinitive
Get/set infinitive flag as above.
persons
Get/set the persons information. The persons information is stored
in an integer with a flag for the 1st pers sing, 2nd sing. 3rd sing,
etc. Send in an integer to set it. The current values is alwasys
returned. Verbs, Noun object (when they come out) both indicate what
possible persons they would support. This allows for convient checking
of subject verb agreement.
verb
Gets/set the infinitive of the main verb as a string
adverbs
Get/sets the array of adverbs found in the sentence. Arguments are
passed in and out as a reference to an array.
sentence_type
Get/sets the sentence type. Arg in and out is an integer.
0 = statement, 1 = question, 2 = command.
statement
Get/set whether the sentence is a statement.
question
Get/set whether the sentence is a question.
command
Get/set whether the sentence is a command.
best
Finds the best parsing based on the number of words (more is better)
in the verb structure and obviousness of the leadoff verb.
parse
Performs the parsing of the object. Takes three possible integer
arguments (0|1|2). 0: always start parsing on exact matches to
helping verbs or modals; 1: always start parsing on verbs the are
most frequently used as verbs; 2: allow any potential verb to start
the parsing. 0 is default
EXPORT
None by default.
AUTHOR
Chris Meyer<lt>chris@mytechs.com<gt>
COPYWRITE
Copywrite (c) 2002, Chris Meyer. All rights reserved. This is
free software and can be used under the same terms as Perl itself.
VERSION
1.02
RELATED LIBRARIES
My heartfelt thanks to Adam Kilgarriff for his work on the BNC
(British National Corpus) which forms the basis for the word.db.
I have added and massaged it a bit, but I would never have gotten
this far without it. The BNC can be visited at
http://www.itri.brighton.ac.uc/~Adam.Kilgarriff/bnc-readme.html.
DATA LOCATION
Harvey uses algorithms AND data to work. The program looks for
a file called 'system.dat' in the startup directory. In this file
it looks for a line that reads 'path=your_path', where your_path
is the directory where the data resides.
HARVEY
The accompanying Harvey module comes with a simple dialog routine
that uses Verb.pm to demonstrate the parsing of sentence.
perl.