"Nutzungsgechichte": Tecnologia

Questo progetto implementa un motore di ricerca per testi in greco antico e latino, progettato per supportare interrogazioni avanzate e sperimentazioni su testi biblici.

Architettura generale

Architettura generale

Il sistema combina un'architettura containerizzata per un'installazione semplice, interfacce REST per l'interazione programmatica e strumenti per la valutazione automatizzata delle prestazioni di ricerca.

Il motore è distribuito tramite Docker Compose, ed è composto da:

  • un'istanza personalizzata di Elasticsearch per l’indicizzazione e la ricerca testuale
  • un database PostgreSQL per la gestione dei dati persistenti
  • un backend scritto in Python, che espone API REST e una web-app per interagire con il sistema

Componenti principali

Indicizzazione e Ricerca

  • Basato su Elasticsearch, arricchito con plugin personalizzati
  • Supporta configurazioni specifiche per greco e latino
  • Gestisce embedding semantici e metodi tradizionali (es. trigrammi, tokenizer classici)

Backend API

  • Scritto in Python, espone endpoint REST per tutte le operazioni (creazione indici, caricamento dati, query)
  • Permette anche la gestione dei test e delle collezioni di risultati

Database e Storage

  • PostgreSQL per la persistenza dei dati
  • Cartelle dedicate (elasticsearch/ e postgres/) per la conservazione dei volumi

Interfaccia Web

  • Interfaccia grafica di sviluppo accessibile via browser
  • Permette di eseguire query, gestire dataset, test e configurazioni senza dover usare la riga di comando

Tecniche e metodi

Il sistema adotta un approccio ibrido per migliorare la qualità e la precisione delle ricerche:

  • Semantic search: embedding per confrontare testi su base semantica
  • Metodi tradizionali: trigrammi, tokenizzazione e configurazioni linguistiche dedicate
  • Possibilità di abilitare accelerazione GPU per velocizzare i tempi di indicizzazione

Repository e documentazione

Codice sorgente disponibile su GitHub.
La documentazione completa, incluse le istruzioni di setup, è disponibile nel file README.md e nei sorgenti API (webapp/app/api/).

Requisiti principali

  • Docker + Docker Compose
  • NVIDIA Container Toolkit per l’accelerazione GPU (Opzionale)
  • 16 GB di RAM consigliati; testato su Ubuntu 24.04 LTS