Overview
What even is this?
fst-web-interface is a web-based set of language tools, primarily aimed at linguists. There are tools for paradigm generation, analysis, etc, for a number of languages, some better than others, that the Giellatekno group develops language models for.
fst-web-interface replaces the cgi-bin-based setup, which can currently be seen at giellatekno.uit.no
Architechture
fst-web-interface consists of two parts: a client-side Svelte web app, and a server-side FastAPI API.
The API uses the normal hfst tool-chain with the Giellatekno language models to provide results to queries coming from the client-side.
For everything related to hfst and the Giellatekno language models, check out Giellatekno documentation.
Project layout
api/ -- API sub-project directory
main.py -- entry point of the FastAPI app
toolset.py -- defines what a "tool" is
toolspecs/ -- the tools, and how they invoke hfst to produce results
client/ -- The Svelte client-side app
index.html -- Skeleton html for svelte
locales/ -- localization
data/ -- locale data, stored in XML files (brought over from the previous
Apache Forrest-based solution
{lang}.json -- the compiled locale data for that language
xmltojson.py
make_final.py -- scripts for compiling the stuff in /data to {lang}.json
package.json
package-lock.json
node_modules/ -- standard package info and packages in js projects
vite.config.js
svelte.config.js
jsconfig.json -- configuration files for the tools
docs/ -- documentation
README.md -- documentation documentation
mkdocs.yml -- mkdocs configuration file
docs/ -- markdown files of the actual documentation
cgi-scripts/ -- a copy of the old cgi scripts, for reference
perl_extractions/ -- a temporary place with some python translations of some perl scripts