Thanks Eulalio, your comments are entirely relevant. I’ll try to describe some of the rules that I’m using here. It would have been easier to just paste the Common Lisp code as it is quite succinct, but it doesn’t format well in this medium and some folks are scared of parentheses.
For English, every verb has a number of principal parts:
infinitive ; be eat walk
present-participle ; being eating walking
past-participle ; been eaten walked
present-third-singular ; is eats walks
preterite =past-participle ; was ate =walked
past-plural =preterite ; were =ate =walked
present-plural =infinitive ; are =eat =walk
present-first-singular =infinitive ; am =eat =walkThe principal parts of regular verbs comprise only four distinct inflections (walk, walking, walked, walks) whereas irregular verbs have five (eat, eating, eaten, eats, ate). Only one verb “to be” has eight. Simple present tense and simple past tense can be conjugated using the principal parts alone:
present first singular =present-first-singular ; i eat
present second singular =present-plural ; you eat
present third singular =present-third-singular ; it eats
present first plural =present-plural ; we eat
present second plural =present-plural ; you eat
present third plural =present-plural ; they eat
past first singular =preterite ; i ate
past second singular =past-plural ; you ate
past third singular =preterite ; it ate
past first plural =past-plural ; we ate
past second plural =past-plural ; you ate
past third plural =past-plural ; they ateOther tenses are composed of conjugations of an auxiliary verb combined with a principal-part of the main verb.
future =will infinitive ; i will eat
past-perfect =have(past,person,number) past-participle ; he has eaten
present-perfect =have(present,person,number) past-participle ; they have eaten
future-perfect =have(future,person,number) past-participle ; you will have eaten
past-future =be(past,person,number) to infinitive ; you were to eat
past-future =would infinitive ; you would eatThis much covers the following grammatical categories:
person(first,second,third)
number(singular,plural)
tense(past,present,future,past-perfect,present-perfect,future-perfect,past-future)I’ve also researched and compiled rules (which I am still refining and debugging) for the additional grammatical categories:
aspect(emphatic,progressive,inchoative,repetitive)
mood(indicative,imperative,interrogative,subjunctive)
voice(active,passive)
polarity(affirmative,negative)And then there are constructs called verbals which turn verbs into nouns (e.g. I like eating, He provided encouragement). Haven’t started coding those yet so I’m not sure how they’ll turn out.
Andrew, you clearly have a good handle on the whole (maddening) problem that is verbs. More generally, you seem to get the fact that English grammar is itself a poor fit for English!
Bye the bye, although I’m working in C++ right now, I have a fair amount of LISP experience going back to college (graduated Clark University, Worcester in 1985 w/ BS in CS and a specialty in AI). My first job was at MIT Lincoln Labs’ then-new AI department. The day I showed up, they had just received their first LISP Machine from Symbolics. It cost something like $250,000 (service contract included!) and had a monumental 40 megs of RAM if I remember correctly. The documentation was about two feet wide in ten volumes. My boss just handed all of it to me and told me to figure out how it worked and then hold a class to teach everyone same. What a blast!