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.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.
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.
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").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").The grammatical role of this word in the sentence engine. Valid values:
| Value | List | Example |
|---|---|---|
subject | subjects | "I", "The teacher" |
verb | verbsForSentences | "eat", "run" |
place | places | "at home" |
time | times | "every day" |
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".| Value | Meaning |
|---|---|
food | Accepts food items (e.g., eat, cook, order) |
drink | Accepts beverages (e.g., drink) |
thing | Accepts physical objects (e.g., buy, find, open) |
person | Accepts human complements (e.g., help, love, call) |
abstract | Accepts abstract concepts (e.g., need, want, feel, study) |
none | No complement — intransitive verb (e.g., run, sleep, jump) |
any | Accepts any complement type (default for non-verb words) |
place | Accepts 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.
The complement phrase in English. May include an article (e.g.,
"the book", "a sandwich") or stand alone (e.g., "money", "pizza").The Spanish translation of the complement. Person complements include the personal-a (e.g.,
"a mi amigo", "al enemigo").Semantic category used to match this complement against
Word.Accepts. Valid values:| Value | Description | Example complements |
|---|---|---|
food | Edible items and meals | "tacos", "pizza", "a sandwich" |
drink | Beverages | "water", "coffee", "tea" |
thing | Physical objects and items | "the book", "the car", "the phone" |
person | People and relationships | "my friend", "the doctor", "the enemy" |
abstract | Concepts, 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.
The base (infinitive) form of the English verb, e.g.
"eat", "run", "be". Used as the lookup key throughout the engine.The simple past form, e.g.
"ate", "ran", "was/were". Read by GetPast() and used by BuildEnglishVerb for Tense.PastSimple.The past participle form, e.g.
"eaten", "run", "been". Read by GetParticiple() and used by BuildEnglishVerb for Tense.PresentPerfect.The present participle / gerund form, e.g.
"eating", "running", "being". Read by GetGerund() and used by BuildEnglishVerb for Tense.PresentContinuous and Tense.PastContinuous.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.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.
First-person singular present tense (yo). Used when the English subject is
"I". Example: "como" (eat), "corro" (run).Third-person singular present tense (él/ella). Used for subjects other than
"I", "we", "they", or "you". Example: "come" (eat), "corre" (run).First-person plural present tense (nosotros). Used when the English subject is
"we", "they", or "you". Example: "comemos" (eat), "corremos" (run).First-person singular simple past (yo pretérito). Example:
"comí" (ate), "corrí" (ran).Third-person singular simple past (él/ella pretérito). Example:
"comió", "corrió".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:
Word.Accepts | food | drink | thing | person | abstract |
|---|---|---|---|---|---|
food | ✅ | ❌ | ❌ | ❌ | ❌ |
drink | ❌ | ✅ | ❌ | ❌ | ❌ |
thing | ❌ | ❌ | ✅ | ❌ | ❌ |
person | ❌ | ❌ | ❌ | ✅ | ❌ |
abstract | ❌ | ❌ | ✅ | ✅ | ✅ |
any | ✅ | ✅ | ✅ | ✅ | ✅ |
none | — | — | — | — | — |
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.