A Rule based Yoruba Natural Language Interpreter
# Rosetta:
## A Rule Based Yorùbá Natural Language Interpreter
Rosetta is a rule-based natural language interpreter for the **Yorùbá** language implemented in Java. It compiles a sentence parser, morphological analyzer, grapheme-to-phoneme (G2P) phonetic generator, and spelling correction assistant into an interactive, line-editing shell.
## Architectural Overview
The interpreter parses and processes natural language inputs using the following pipeline:
## Supported Sentence Structures
* **Basic Sentences (`SV` / `SVO`)**:
* **SV (Subject + Verb)**: `Oko mi tobi` (Subject NP + Verb)
* **SVO (Subject + Verb + Object)**: `Mo ra aṣọ` (Subject NP + Verb + Object NP)
* **Compound Sentences**: Sentences connected by conjunctions.
* *Structure*: `[NP VP] + CONJUNCTION + [NP VP]`
* *Example*: `Mo ra aṣọ ati oko mi tobi`
* **Noun Phrase (NP)**:
* Pronouns (e.g., `Mo`, `mi`).
* Nouns (e.g., `aṣọ`).
* Complex noun phrases containing optional determiners, compound nouns, possessive markers, and trailing adjectives (e.g., `ọkọ mi pupa yẹn`).
* **Verb Phrase (VP)**:
* Verbs (e.g., `ra`, `tobi`).
* Verbs preceded by auxiliary markers (`yóò`) or negation markers (`kò`).
* Verbs followed by optional objects, adverbs, or prepositional phrases.
* **Prepositional Phrase (PP)**:
* Preposition followed by a noun phrase (e.g., `ní ọjà`).
## Limitations
The following are outside the parser's scope.
* **Serial Verb Constructions (SVC)**: Sentences containing consecutive verbs without conjunctions (e.g., *Ó gbé àpótí wọlé*) are not supported.
* **Focus & Topicalization**: Fronting nouns or verbs for emphasis using the focus particle *ni* (e.g., *Aṣọ ni mo rà*) will fail SVO validation.
* **Relative Clauses**: Subordinate clauses modifying nouns via the relative marker *tí* (e.g., *ọkọ tí mo rà*) are not supported.
* **Interrogatives (WH-Questions)**: Question formats using fronted interrogative pronouns (e.g., *Kí ni o rà?*) are not handled.
* *Minor Limitation:* The table in the ter …