A language library
Nel mezzo del cammin di nostra vita
mi ritrovai per una selva oscura
ché la diritta via era smarrita.
- Dante Alighieri
Initially, this is an experiment in Rust and Latin.
🦀 I'm not a native rustacean, so advice is welcome on rust implementation details and architecture, and large-scale rewrites may be considered, especially in the early stages of this project.
The initial emphasis is on efficient and abstract language comprehension and production.
I will be compiling notes and references as I research topics relevant to the tasks at hand. To wit, this library will have facilities for basic inflection, declension, and conjugation and an ability to manipulate phrases, e.g. from present tense to perfect tense, or from active to passive voice, or singular to plural. The emphasis in early iteration will be on speech production, as opposed to parsing or understanding.
Eventually, there will be a database of lexical items for other languages, but there will probably be several experimental trials over the type of database (vector vs graph) and vendor. Some considerations include search retrieval of terms across languages and semantic proximity of terms across any language.
An experimental api is served from a minimal instance in the cloud. There is a separate terraform repository for deployment.
Try visiting http://api.ars.wiki/latin/query/ambulo.
Available from https://hp4k1h5.github.io/ars/
The following environment variables should be set to interact with the
database. A .env.{ARS_ENV} file may be used.
ARS_ENV=dev
DATABASE_URL='postgres://user:pw@host:port/ars'cargo run --bin serverdocker run \
-p 7357:7357 \
-p 5432:5432 \
--env-file .env.dev \
ars:latestI'm working with a variety of models and tools as I learn more about rust's ecosystem. I don't include an AGENTS.md here because I'm not convinced this is the best interface for generic AI instruction, or whether sharing mine is worthwhile. Most of the base models and interfaces in /grammar were written without AI, but I've refactored a few times to accommodate new ideas. AI has been helpful in implementing the diesel + axum API mostly as a macro on top of existing models with minimal changes.