Uncategorized

HyperTrek? Dinamico però!

Subito dopo aver lanciato
l’idea di HTNG, il primo
problema da affrontare era quello di estrarre le informazioni dal sito attuale.
Ovviamente non era logico o economico riscrivere da zero tutte le informazioni,
tuttavia estrarle dai file HTML non era cosa semplice. Nonostante un file HTML
sia moderatamente strutturato, i concetti in quanto tali sono inseriti in
formato libero, facilmente interpretabili da un essere umano, ma non da un
software automatico. Era necessario quindi affidarsi alla struttura stessa di HT
che era già più che buona: ogni pagina consisteva di un set definito di
‘capitoli’ e ‘paragrafi’ con strutture e titoli ben definiti.

Il mio lavoro sulla questione è iniziato più o
meno come una sfida: volevo vedere se sarei stato in grado di scrivere un
parser
HTML abbastanza versatile da fargli
estrarre tutti i dati utile e farglieli incasellare correttamente in campi di
database. Come prima cosa dovevo familiarizzare con concetti di accesso remoto
alle pagine residenti su internet. Questa attività è semplificata dai membri
della classe WebClient che è uno
scheletro di un client di servizi web completo.

Il passo successivo era installare localmente SQL Server e impratichirmi con le
tecniche di connessione, inserimento e manipolazione dei dati. Questo database
avrebbe poi ospitato tutti i dati estratti dalla versione online prima di essere
impacchettati ed esportati verso la loro destinazione finale che era il server
mySQL sul sito di HyperTrek.

Nella fase successiva sono state fondamentali le Regular Expression
ovvero quelle definizioni che permettono di identificare ed estrarre particolare
sequenze di stringhe di caratteri in un testo. Sfruttando questa tecnologia, mi
è stato possibile estrarre le varie parti di testo basandosi sui marcatori HTML
e sulle intestazioni delle varie sezioni.

Dopo aver
iniziato ad estrarre le prime informazioni dalle schede degli episodi, piano
piano il lavoro progrediva da un semplice esperimento a un impegno serio verso
l’estrazione di tutto l’estraibile. Dopo le prime prove positivi mi accorgevo
che il parser avrebbe potuto essere esteso sia nella qualità delle informazioni
estratta sia, ancora più facilmente, nella quantità di pagine processate.

Nei primi giorni di Gennaio 2006, SpiderHyperTrek
aveva un nome e una forma ben precisa: era già in grado di elaborare
automaticamente tutte le schede di episodi per estrarne le informazioni. Dopo
qualche revisione, il 15 Gennaio, SpiderHT era nella sua versione finale, a meno
di un po’ di bugfix da fare nei giorni seguenti. In poche settimane, in pratica
le schede degli episodi e dei film – ciò che rappresenta il nucleo di HyperTrek
– erano state strizzate fino a estrarne tutte le informazioni utili.

Il 25 Gennaio inizia il lavoro
su un accessorio del software che come unico scopo aveva quello di convertire i
link usuali in HTML (i tag <a> per intenderci) nei link interni di HTNG (che
sono tag personalizzati in qualche modo simili a quelli che si usano nei sistemi
di Wiki) massivamente, in un numero arbitrario di pagine. Grazie all’alta
modularità del programma, è stato facile scrivere una funzione che combinasse in
maniera diversa le routine già esistenti. Il primo Febbraio successivo questa
utilità aveva effettuato la conversione dei link in tutte le pagine.

Il 6 Febbraio mi aspettava una
nuova sfida: la estrazione completa dalle pagine dei libri. Dopo una breve
discussione su quali tabelle creare nel DB a questo scopo e su come collegarle,
mi rimettevo al lavoro per rielaborare di nuovo le funzioni esistenti e per
integrarle con qualche pezzo di codice nuovo. In meno di una settimana, anche
questa conversione era completata.

Alla fine, SpiderHT consisteva in circa 1800 righe di codice.

La conversione ad HTNG ha
richiesto molto altro tempo e molto altro lavoro da parte di altre persone,
tanto che il sito definitivo è andato online dopo ferragosto, precisamente il 17
Agosto. Alla fine, però, mi piace pensare che il frutto del mio lavoro abbia
dato un apporto fondamentale alla conversione. In pratica ogni singola parola
che veniva generata da HTNG nella sua prima versione era passata almeno una
volta negli algoritmi di una mia utilità.

Decisamente una bella soddisfazione, vi assicuro.

Annunci
Standard

One thought on “HyperTrek? Dinamico però!

  1. Pingback: HyperTrek, un grande passo in avanti | Luca Mauri Blog

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...