12

Project Lobotomy Essentials: Hyppocampus

marzo 2008 da Lobotomia

1 Stella2 Stelle3 Stelle4 Stelle5 Stelle6 Stelle7 Stelle8 Stelle9 Stelle10 Stelle (Non ancora votato)
Loading ... Loading ...

Questp articolo è il numero 2 dei 6 nella serie Project Lobotomy Essentials

Il primo brano di pragmatico contenuto sull’architettura del sistema implementato dal Progetto riguarda il suo pilastro portante, il componente che piu’ di ogni altro influenza la direzione dello sviluppo e la visione d’insieme: Hyppocampus.

Hyppocampus e’, per dirla in breve, un filesystem relazionale. Cioe’? Il termine di per se’ non ha una definizione universalmente corretta ed ha anzi assunto una denotazione speculativa nella storia recente, se ne presenta dunque qui l’interpretazione adottata durante lo sviluppo del progetto: considerato che il filesystem e’ il criterio con cui i files vengono disposti sul disco fisico ed acceduti dalle applicazioni, dato per assodato che l’aggettivo “relazionale” si rifa’ alla possibilita’ di costruire relazioni logiche tra piu’ informazioni (ad esempio: “Pippo e Pluto iniziano entrambi con ‘P’”), un filesystem relazionale e’ quello strumento che permette di ordinare files che hanno qualche attributo in comune tra loro.

Implementato con e LibDBI, all’interno di Hyppocampus il classico albero gerachico di cartelle e files viene sostituito da un in cui ogni elemento viene descritto da una serie di metadati che possono essere combinati e correlati eseguendo interrogazioni SQL. Per avanzare una query e’ sufficiente aprire (usando le tradionali syscall POSIX di interfaccia al filesystem: opendir(), scandir()…) una cartella virtuale il cui nome e’ la richiesta SQL che si desidera, e tale cartella, elaborata e simbolicamente popolata a runtime, in ogni momento conterra’ i riferimenti agli items i cui metadati assegnati matchano l’interrogazione: quelli che hanno una dimensione maggiore di N, che appartengono ad un certo utente, che sono stati modificati negli ultimi X giorni, o tutte e tre le condizioni, o ogni altra combinazione.

La potenza del sistema sta nella elementare definizione di “metadato”: contrariamente alla nozione di “tag”, usata in ambienti orientati all’organizzazione cosiddetta semantica dei contenuti, il metadato e’ un valore che ha un significato ben preciso e noto a priori. Nell’implementazione attuale v’e’ spazio per 2^64 tipi di metadato diversi, e solo un centinaio ne sono correntemente mappati secondo diversi formati: vi sono attributi essenziali (nome, dimensione, data di creazione e modifica…) ed altri dedicati espressamente a mimetypes specifici (la codifica e la durata per i contenuti audio e video, la risoluzione per le immagini, il numero di pagine per i documenti…). Chiaramente piu’ metadati esistono e piu’ valori sono assegnati, maggiori sono le possibilita’ di costruire relazioni complesse, e crescente e’ l’espressivita’ del meccanismo di ricerca degli oggetti desiderati. Interessante considerare che nell’impostazione odierna Hyppocampus e’ predisposto per trattare come se fossero files informazioni astratte solitamente manipolate da applicazioni dedicate: persone, URL, singole mail e altro hanno un loro posto nella base relazionale, con i loro metadati assegnati, e possono dunque essere coinvolti nella stesura della query di ricerca nei modi piu’ esotici.

Nel prossimo articolo qualche informazione in piu’ sull’automatizzazione della procedura di estrazione di metadati dai files e sulle routines che semplificano

Navigazione delle Serie«Project Lobotomy Essentials: l’ideaProject Lobotomy Essentials, parte III: LibHyppo»

Post correlati

2 Risposte a “Project Lobotomy Essentials: Hyppocampus”

  1. miRr0r said:

    Premessa: sono un convinto sostenitore dell’open source e in particolare di s.o. basato su linux, il mio non vuole essere un tentativo di flame ma solo una semplice domanda.

    Questo particolare filesystem che hai descritto, non è la stessa cosa che doveva essere implementata in windows vista eppoi è saltata? E’ già “usabile” questo filesystem?

    Grazie,
    ciao

    Mirr0r

  2. MadBob said:

    Diciamo di si, Hyppocampus somiglia molto al paventato WinFS tanto promesso da Redmond e mai visto all’atto pratico. La cosa curiosa e’ che sono venuto a conoscenza del WinFS solo molto dopo la prima ideazione di questo progetto, dunque Hyppocampus, pur essendo simile, e’ stato molto poco o nulla influenzato dall’opera di Microsoft.
    “Usabile” non lo e’ ancora minimamente, esistono a tutt’oggi numerose limitazioni e non sono mai stati condotti test avanzati di stabilita’. Benvenuti sono tutti coloro che vogliono proporsi per l’opera di testing ;-)

Leave a Reply

XHTML: Puoi usare questi tag: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>