Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/kyomega85/EnglishMatrix/llms.txt

Use this file to discover all available pages before exploring further.

EnglishMatrix uses four internal C# classes to represent its vocabulary and conjugation data. All instances are created at startup as static lists embedded directly in the source file — no database or external files are required.

Word

Word is the general-purpose model used for subjects, verbs (in verbsForSentences), place expressions, and time expressions. The Accepts property is only meaningful for verbs.
class Word
{
    public string English  { get; set; }
    public string Spanish  { get; set; }
    public string Category { get; set; }
    public string Accepts  { get; set; } = "any";
}
English
string
required
The English word or phrase. For subjects this is the subject pronoun or noun phrase (e.g., "I", "The teacher"). For verbs it is the bare infinitive (e.g., "eat"). For places and times it is the full expression (e.g., "at home", "every day").
Spanish
string
required
The Spanish translation of English. For place expressions this includes the preposition (e.g., "en casa"). For subject pronouns it is the standard translation (e.g., "Yo", "Ella").
Category
string
required
The grammatical role of this word in the sentence engine. Valid values:
ValueListExample
subjectsubjects"I", "The teacher"
verbverbsForSentences"eat", "run"
placeplaces"at home"
timetimes"every day"
Accepts
string
default:"any"
Verbs only. The semantic type of complement this verb is compatible with. Used by GenerateSentence to filter the complements list and prevent nonsense pairings like “I drink a book”. Default value is "any".
ValueMeaning
foodAccepts food items (e.g., eat, cook, order)
drinkAccepts beverages (e.g., drink)
thingAccepts physical objects (e.g., buy, find, open)
personAccepts human complements (e.g., help, love, call)
abstractAccepts abstract concepts (e.g., need, want, feel, study)
noneNo complement — intransitive verb (e.g., run, sleep, jump)
anyAccepts any complement type (default for non-verb words)
placeAccepts a place expression as complement (used by live)

Complement

Complement represents the direct object of a generated sentence. All 96 complement entries are stored in the static complements list.
class Complement
{
    public string English { get; set; }
    public string Spanish { get; set; }
    public string Type    { get; set; }
}
English
string
required
The complement phrase in English. May include an article (e.g., "the book", "a sandwich") or stand alone (e.g., "money", "pizza").
Spanish
string
required
The Spanish translation of the complement. Person complements include the personal-a (e.g., "a mi amigo", "al enemigo").
Type
string
required
Semantic category used to match this complement against Word.Accepts. Valid values:
ValueDescriptionExample complements
foodEdible items and meals"tacos", "pizza", "a sandwich"
drinkBeverages"water", "coffee", "tea"
thingPhysical objects and items"the book", "the car", "the phone"
personPeople and relationships"my friend", "the doctor", "the enemy"
abstractConcepts, emotions, skills"money", "English", "courage"

VerbEntry

VerbEntry stores all five morphological forms of a verb plus its Spanish infinitive and regularity flag. All 191 entries live in the static verbList. This list is used by the verb reference table, verb quiz, tense table mode, and by BuildEnglishVerb when looking up irregular forms.
class VerbEntry
{
    public string Infinitive  { get; set; }
    public string Past        { get; set; }
    public string Participle  { get; set; }
    public string Gerund      { get; set; }
    public string SpanishInf  { get; set; }
    public bool   IsRegular   { get; set; }
}
Infinitive
string
required
The base (infinitive) form of the English verb, e.g. "eat", "run", "be". Used as the lookup key throughout the engine.
Past
string
required
The simple past form, e.g. "ate", "ran", "was/were". Read by GetPast() and used by BuildEnglishVerb for Tense.PastSimple.
Participle
string
required
The past participle form, e.g. "eaten", "run", "been". Read by GetParticiple() and used by BuildEnglishVerb for Tense.PresentPerfect.
Gerund
string
required
The present participle / gerund form, e.g. "eating", "running", "being". Read by GetGerund() and used by BuildEnglishVerb for Tense.PresentContinuous and Tense.PastContinuous.
SpanishInf
string
required
The Spanish infinitive translation, e.g. "comer", "correr", "ser/estar". Used by BuildSpanishVerb as the base for constructing Spanish future simple (ir a + infinitivo), continuous forms (gerundio), and conditional stems.
IsRegular
bool
required
true if the verb forms its past and past participle with the regular -ed rule. false if the verb is irregular (past/participle must be looked up, not generated). The verb quiz and list modes use this flag to separate the two groups.
  • Regular example: accept → past: accepted, participle: accepted
  • Irregular example: eat → past: ate, participle: eaten

SpanishConj

SpanishConj stores Spanish conjugations for the three grammatical persons used by the sentence engine: first-person singular (yo), third-person singular (él/ella), and first-person plural (nosotros). There are 190 entries in the conjugaciones dictionary, keyed by English infinitive.
class SpanishConj
{
    public string YoPres  { get; set; }
    public string ElPres  { get; set; }
    public string NosPres { get; set; }
    public string YoPast  { get; set; }
    public string ElPast  { get; set; }
    public string NosPast { get; set; }
}
YoPres
string
required
First-person singular present tense (yo). Used when the English subject is "I". Example: "como" (eat), "corro" (run).
ElPres
string
required
Third-person singular present tense (él/ella). Used for subjects other than "I", "we", "they", or "you". Example: "come" (eat), "corre" (run).
NosPres
string
required
First-person plural present tense (nosotros). Used when the English subject is "we", "they", or "you". Example: "comemos" (eat), "corremos" (run).
YoPast
string
required
First-person singular simple past (yo pretérito). Example: "comí" (ate), "corrí" (ran).
ElPast
string
required
Third-person singular simple past (él/ella pretérito). Example: "comió", "corrió".
NosPast
string
required
First-person plural simple past (nosotros pretérito). Example: "comimos", "corrimos".
Several reflexive verbs include the reflexive pronoun directly in the stored form. For example, hide is stored as YoPres = "me escondo", ElPres = "se esconde", NosPres = "nos escondemos". Similarly, dress"me visto" / "se viste" / "nos vestimos", and worry"me preocupo" / "se preocupa" / "nos preocupamos". These forms are used verbatim by BuildSpanishVerb and appear correctly in generated sentences.

Complement compatibility

GenerateSentence matches Word.Accepts (on the verb) against Complement.Type (on the complement) before assembling a sentence. This prevents semantically nonsensical pairings. The matching rule in source:
var compatible = complements.Where(c =>
    verb.Accepts == "any"
    || c.Type == verb.Accepts
    || (verb.Accepts == "abstract" &&
        (c.Type == "abstract" || c.Type == "thing" || c.Type == "person"))
).ToList();
The resulting compatibility matrix is:
Word.Acceptsfooddrinkthingpersonabstract
food
drink
thing
person
abstract
any
none
Verbs with Accepts = "none" (e.g., run, sleep, jump) skip the complement selection step entirely and produce sentences with no direct object. The abstract type deliberately broadens to include thing and person complements. This means a verb like need can generate "I need the book" (thing) or "I need the doctor" (person), not just purely abstract nouns.

Build docs developers (and LLMs) love