Pensieri e parole su HCI, home computing, tecnologie desktop e sul Progetto Lobotomy

venerdì 13 aprile 2007

Fatto a mano

Tra i sotto-obiettivi di Lobotomy si trova la volonta' di creare una interfaccia completamente fruibile per mezzo di touchscreen e/o di tablet (di cui sono fortunato possessore ;-P ), e tale progetto si concretizzera' con Thalamus e Stirnbein. Non mi dilungo ulteriormente su questi ultimi due (anche perche' ancora poco definite sono le idee in merito), ma mi soffermo sulle idee scaturite nel corso di quest'ultima settimana.
Avrei intenzione di includere in Kiazma una API che estenda i widgets di input testuale, per fare in modo che alla selezione di essi compaia una comoda finestrella in cui immettere il testo per mezzo dello stylus: essa potrebbe ospitare, in due tabs, sia una tastiera on-screen minimale (simile a quella inclusa in gok, ma limitata ai soli tasti delle lettere e dei numeri) che un campo ove tracciare liberamente la stringa e da parsare con un algoritmo di riconoscimento. Purtroppo al momento il software di handwrite recognization disponibile sotto licenza aperta non e' moltissimo, e spesso si limita all'identificazione di glifi o, peggio ancora, di semplici gestures: a me piacerebbe molto implementare qualcosa di piu' "user-centric", per riconoscere intere parole rappresentate con un singolo tratto, come sulla carta, sebbene sia perfettamente a conoscenza della complessita' dell'impresa.
Qualche idea e' comunque sorta in merito: primo tra tutti, si potrebbe usare una versione modificata della LibStroke che operi su un reticolato piu' fitto (attualmente, la libreria usa una matrice 3x3 per identificare i tratti: bene per le gestures, meno bene per delle lettere in corsivo) e per cui non sia necessario "mappare" ogni singolo glifo riconosciuto in modo esplicito ma che si appoggi ad una rete neurale che si autoadatti automaticamente in funzione dell'uso dell'utente e delle parole che via via vengono identificate in un modo e corrette in un'altro. In secondo luogo, sarebbe bene fare largo, larghissimo uso (soprattutto nella fase di apprendimento della sopra menzionata rete neurale) degli algoritmi comunemente usati nei tools di correzione automatica (come quello della distanza di Levenshtein): il risultato estratto dalla rete in base al tratto dell'utente puo' essere facilmente validato su un dizionario, per verificare che effettivamente la parola indovinata abbia un senso o per trovarne una realmente esistente quanto piu' simile ad essa; in tal senso, ho immesso nella mia interminabile lista di TODO l'implementazione di una versione di dictd la cui lista di parole sia automaticamente popolata e costantemente arricchita per mezzo di dizionari online (come Wiktionary) compilati dalla community.
Quest'ultima sara' ovviamente una applicazione usabile anche in contesti diversi a Lobotomy (essendo niente piu' e niente meno che una implementazione del protocollo DICT), stavo pensando di nominarla Broc@ in onore di Paul Broca...

Nessun commento: