Progetto:Trascrizioni/Dizionari

Da Wikisource.

La costruzione di dizionari (raccolte di lemmi) è resa possibile e facile attraverso una caratteristica di HTML5, il metodo window.localStorage. Attraverso tale metodo è possibile collegare al sito corrente una collezione di dati, che vengono memorizzati stabilmente sul PC dell'utente, per una capienza massima di 5Mby (sufficiente a contenere alcune centinaia di migliaia di parole).

L'accesso ai dati è estremamente facile e rapido. Adesso si tratta di immaginare come sfruttare questa possibilità, e come farlo in modo che sia di una semplicità assoluta.

Campi di possibile applicazione
relazioni con Wiktionary
verifica errori residui di trascrizione
evidenziazione delle parole nuove nelle pagine in via di trascrizione rispetto all'insieme delle pagine già trascritte
correzione automatica di scannos ricorrenti in numero illimitato
.....

Utenti interessati e volenterosi[modifica]

  • Alex brollo (disc.)
  • con molta calma, ma sono interessato anche io. --Aubrey (disc.) 16:51, 18 dic 2013 (CET)
  • --Xavier121 23:58, 18 dic 2013 (CET)
  • se qualcuno mi spiega bene ... io sono particolarmente adatta ai lavori lunghi e noiosi, ma non urgenti. Lagrande (disc.) 07:52, 19 dic 2013 (CET)
  • Le Istorie dello Stato di Urbino che sto trascrivendo (da anni) è proprio uno di quei testi che ha un suo personalissimo dizionario e potrebbe beneficiare (anche se non ho capito come) da questa novità. --Accurimbono (disc) 10:16, 19 dic 2013 (CET)
  • ...

Schema generale[modifica]

script test in Utente:Alex brollo/dizionari.js

Il punto a oggi 18.12.2013:

  1. creato ambiente collegato al bottone "diz" che visualizza due textarea, la più ampia inferiore con l'elenco delle parole già accumulate nel dizionario dell'opera, la più piccola superiore con le parole nella pagina che non sono comprese nel dizionario;
  2. create funzioni chiudi (senza salvare), unisci (aggiungi le nuove parole al dizionario e salva), e salva (salva il dizionario);
  3. testato uno script che ricerca nel dizionario le parole simili (con le oltre 2500 parole caricate per Il cavallarizzo.djvu la ricerca per scorrimento dell'intero dizionario è istantaneo), con simil(), insensibile alla lettera iniziale

Per testare:

aggiungere al proprio common.js il comando importScript("Utente:Alex brollo/dizionari.js");; la bottoniera deve essere attivata.

Avvertenza agli utenti sperimentatori[modifica]

1. Nonostante lo spazio a disposizione veramente largo (5Mby, ci stanno in teoria circa 500.000 lemmi), lo spazio disponibile può essere rapidamente riempito se si accumulano dizionari da molte opere, per ognuna delle quali (al momento) viene accumulato un dizionario separato. Il tool per ora è adatto a raccogliere i lemmi di poche opere alla volta; è adatto quindi agli utenti che si concentrano su una o due opere e procedono con quelle, pagina dopo pagina. In futuro, forse, potremo costruire dei dizionari comuni a più opere (es "Italiano del XVI secolo") riducendo molto la ridondanza dei lemmi fra opera e opera.

2. In qualsiasi momento:

2.1 la lista delle parole del dizionario, che compare nel box in basso, può essere semplicemente copiaincollato su file personale o su una pagina speciale;
2.2 cancellando completamente il contenuto del box e salvando, si svuota il dizionario (resta solo un dizionario vuoto collegato all'opera); modificando il contenuto del box (esempio: correggendo o cancellando una parola) e salvando, il dizionario viene aggiornato; un dizionario salvato esternamente (su file testo personale o in una pagina source) può essere ricostruito copiaincollandolo nel box e salvandolo;
2.3 tutte le modifiche del dizionario (sia in creazione che in aggiunta, modifica o cancellazione) agiscono solo ed esclusivamente nella copia presente sul PC locale. Per condividere i dati occorre salvarli in una pagina (decideremo quale) o condividerli con qualche altro sistema (si tratta di semplici file testo).

jQuery.jStorage[modifica]

Esiste un plugin jQuery, già attivo su mediaWiki, chiamato jStorage, fatto proprio per semplificare la gestione dell'area localStorage. Ho ricevuto da RicordiSamoa, che la sa piuttosto lunga, il consiglio di usare il plugin; al momento mi trovo bene anche senza; tuttavia chi volesse studiarlo... http://www.jstorage.info --Alex brollo (disc.) 16:53, 19 dic 2013 (CET)

Primo tentativo di memorizzazione definitiva[modifica]

  1. regola provvisoria: il dizionario opera-specifico va memorizzato nella pagina di discussione della pagina 2 dell'opera
  2. in edit, in nsPage_talk, compare il pulsante diz
  3. in edit, in nsPage_talk, l'attivazione del tool fa comparire un nuovo pulsante: "Salva nella pagina", che permette di copiare l'intero dizionario nel box di edit (da salvare)

Con questo nuovo strumento:

per salvare il dizionario
entrare in Discussioni pagina: .... /2 in modalità modifica, Salva nella pagina, Chiudi
per salvare il dizionario e cancellarlo dall'area di memorizzazione
entrare in Discussioni pagina: .... /2 in modalità modifica, Salva nella pagina, selezionare tutto nel box dizionario, cancellare, Salva
per ricaricare il dizionario salvato in Discussioni pagina
..../2: entrare in Discussioni pagina in modalità modifica, attivare il tool, Unisci, Salva
per fondere un proprio dizionario con quello memorizzato da altri o da sè
come sopra (la differenza è che entrando saranno riempiti entrambi i campi, che poi verranno fusi da Unisci)

Strategie[modifica]

Per pescare parole erronee-dubbie
creare un dizionario con un insieme di pagine; editarlo ed eliminare dal dizionario le parole erronee e le parole dubbie. Ripassando con il tool dizionario le stesse pagine con cui è stato costruito il dizionario, senza mai unire e salvare, in ogni pagina saranno elencate le parole che NON figurano nel dizionario, ossia: quelle erronee-dubbie.

Commenti e richieste[modifica]

  1. Noto che in fondo al dizionario vengono aggiunte parole con parecchi spazi davanti: si può evitare? --Accurimbono (disc) 10:35, 19 dic 2013 (CET)
    1. non avevo notato... verificherò. Non ci devono essere spazi tranne uno dopo ogni virgola; se ci sono è un bug, grazie.
  2. Si può ordinare l'elenco per numero di ricorrenze? Tipo in alto le parole più frequenti? --Accurimbono (disc) 10:35, 19 dic 2013 (CET)
    1. il conteggio delle parole raddoppia lo spazio necessario; tecnicamente si può fare.
  3. Vengono salvate come parola unica il composto "articolo+apostrofo+parola": si può considerare l'apostrofo (nelle sue diverse variazioni grafiche: "'", "’") come separatore di parola? --Accurimbono (disc) 10:39, 19 dic 2013 (CET)
    1. La stessa cosa lo fanno i dizionari "ufficiali"; l'apostrofo (suprattutto nelle cesure) è veramente parte della parola. Potremmo staccare le parole tenendo lapostrofo attaccato a quella giusta, ma comoplica parecchio l'algoritmo: ci sono varie varianti, soprattutto nei testi antichi (es. la cesura anteriore invece che posteriore). Rimando a tempi migliori l'analisi. Ogni carattere ' potrebbe essere una imperfezione (ma non si può correggere automaticamente perchè, ad es. nei testi dei link e nei parametri dei template, devono essere assolutamente conservati pena rottura misteriosa del link).
      1. OK, grazie per la spiegazione. --Accurimbono (disc) 11:17, 19 dic 2013 (CET)
  4. Sarebbe comodo aggiungere la possibilità di cancellare dal dizionario le parole con meno di 1,2,3 lettere, magari con dei bottoni dedicati. --Accurimbono (disc) 10:39, 19 dic 2013 (CET)
    1. Se c'è accordo, potremmo semplicemente ignorarle fin dall'inizio (parole di 1 o 2 lettere) ma perderemmo qualcosa (soprattutto perderemmo la possibilità di evidenziare errori come le P, Y, T isolete che spesso sono delle l'). Ci penserei quattro volte.
      1. No, dall'inizio no, io dicevo solo di dare la possibilità a chi vuole di eliminarle aggiungengo un bottone. Ma era solo un'idea, resta da vederne l'effettiva utilità. --Accurimbono (disc) 11:17, 19 dic 2013 (CET)
  5. Potresti specificare nella descrizione DOVE sta il dizionario fisicamente (immagino dipenda dal browser, metterei gli esempi del path per firefox, chrome e expl.) e COME cancellarlo (immagino cancellando il file in locale)? Grazie. --Accurimbono (disc) 14:35, 19 dic 2013 (CET)
    1. Ogni browser ha uno spazio apposito ma sconsiglio vivacemente di operare sul file (penso che siano raccolte nello stesso file le informazioni di vari items; mediaWiki già ne fa un piccolo uso, a nostra insaputa...). Ogni dizionario specifico per opera è un item indipendente individuato da una chiave nome base pagina:dizionario. Esempio: per Indice:Georgiche.djvu la chiave del dizionario sarebbe Georgiche.djvu:dizionario. Per rimuovere completamente l'item si esegue da console javascript (o tramite un bottone o qualche diavoleria che esegua l'istruzione) il seguente comando: localStorage.removeItem("chiave"), nell'esempio di Georgiche localStorage.removeItem("Georgiche.djvu:dizionario"). Per svuotare il contenuto, ma conservare la chiave, basta svuotare il box in basso del tool e salvare (viene salvato un "dizionario vuoto"). Suggerirei di fare così, di preferenza.
  6. ...

To do e progetti vari[modifica]

  1. spostare il punto di memorizzazione dei dizionari da Discussioni pagina a Wikisource:Dizionari (es da Discussioni pagina:Georgiche.djvu/2 a Wikisource:Dizionari/Georgiche.djvu)
  2. attivare il pulsante diz in lettura html in qualsiasi namespace; l'attivazione in ns0 permetterà di caricare rapidamente il dizionario di un'opera, o parte di un'opera, in un solo passaggio; verificare che legga anche in preview per permettere di caricare i lemmi anche da pagine non esistenti, in preview (es una "paginona" che trasncluda in monoblocco l'intera opera)
  3. creare il borttone "Salva nella pagina" solo in sottopagine di Wikisource/Dizionari
  4. cominciare a studiare il problema della trasformazione del formato (una buona struttura salverebbe per ogni parola la parola, il numero di ricorrenze, il flag di esattezza True/False e se False la parola corretta predisposta per la sostituzione automatica)
  5. estendere splitta-desplitta in modo che tutti i tag html vengano caricati nella lista "punteggiatura" per consentire una rapida elaborazione/ricostruzione dell'html/xhtml escludendo tutti i contenuti testuali dell'interno dei tag
    1. ipotesi di lavoro: estrazione dei tag in una lista ordinata -> sostituzione con placeholders di pura punteggiatura (es. <..!..>) -> splitting -> ripasso lista punteggiatura rimettendo ordinatamente i tag al loro posto)