Skip to content

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