Ontologie per Keywords fai-da-te

Che cos’è un’ontologia? E perché è utile nella catalogazione?
In filosofia, l’ontologia è quella disciplina che studia l’essere in generale, cioè le proprietà universali che sono comuni a tutto ciò che esiste (spazio, tempo, quantità, qualità…), al di là delle caratteristiche particolari che differenziano ogni singolo essere. Nella catalogazione, il significato di ontologia è più circoscritto e più vicino a quello che il termine ha assunto in informatica.

In questo caso l’ontologia consiste nella definizione di un dominio di conoscenza, cioè nel  determinare un campo, un argomento, elencando tutti gli elementi che lo costituiscono e le relazioni che intercorrono tra questi elementi.

Semplificando un po’, giusto per fare un esempio, il campo della “panificazione” può comprendere al suo interno svariati elementi. Anzitutto il “pane” in generale, e poi le sue varietà più particolari come il “pane integrale”, il “pane azzimo”, il “pane all’olio” ecc.  Altri elementi in qualche relazione con il pane possono essere il  “forno”, dove si cuoce il pane, e i vari tipi di forno: “a legna”, “elettrico”, “a gas”; il “panettiere”, che è il proprietario di un forno;  il “panificatore”, che è chi fa il pane;  la “panetteria”, cioè l’azienda che produce il pane e che a sua volta può essere “artigianale” o “industriale”. E così via, fino a circoscrivere tutto l’ambito di conoscenze implicato dal campo “panificazione”.

Ontologie più accurate si possono vedere semplicemente leggendo le categorie delle Pagine Gialle o, in Internet, quelle di Yahoo per classificare i siti, o quelle di Amazon per vendere i suoi prodotti. Ma questi esempi mostrano soltanto un uso basico delle ontologie, anzi più propriamente andrebbero definiti come dei thesauri.

Restando in Internet, un loro utilizzo molto più avanzato è invece quello previsto dal progetto del web semantico.
Cosa significa “web semantico”?
Significa un web comprensibile non soltanto da persone, ma, attraverso dei software, anche da macchine.
Attualmente le persone possono leggere le pagine dei siti web e capire il loro significato, mentre i programmi possono leggere solo il codice con il quale sono state scritte.

Immaginiamo una pagina HTML: un conto è quello che si legge con il browser, un conto è quello che vediamo visualizzando il codice HTML di quella stessa pagina, per esempio con Dreamweaver. Il browser ci mostrerà un discorso in linguaggio naturale, Dreamweaver o qualsiasi altro editor HTML ci mostrerà invece anche il codice che il browser deve interpretare per visualizzarne la grafica (istruzioni sull’allineamento del testo, il tipo di carattere, i colori, la disposizione delle varie parti che compongono la pagina, l’inserimento di immagini ecc.ecc). In breve, il browser non è in grado di capire COSA la pagina dice, come può fare una persona, ma solo di visualizzarla secondo le istruzioni.
Così, i motori di ricerca possono trovare le pagine dove ricorrono le parole cercate attraverso di essi e, in base ai loro algoritmi, stabilire dove quelle ricorrenze siano più pertinenti, cioè dove quell’argomento sia meglio trattato, ma non possono arrivare a comprendere COSA quelle pagine dicono. Almeno non ancora. Perché sia possibile occorre, appunto, che il web diventi semantico. Nel web semantico, infatti, il codice che sta “dietro” alle pagine, non servirà solo per visualizzarle (come per es. l’HTML o i fogli di stile-CSS), ma anche per far capire al software che le analizza che COSA quella pagina dice. E in questo le ontologie avranno un ruolo fondamentale.

Infatti gli elementi, e le relazioni tra di essi, che compongono un’ontologia altro non sono che metadati, cioè (letteralmente) dati su altri dati: dati che servono per descrivere le informazioni, i dati appunto, contenuti nella pagina stessa.

Se questa struttura di metadati che è un’ontologia viene scritta usando un linguaggio di codifica prestabilito,  ecco che quel contenuto diventa leggibile anche da un software in grado di decodificarli.

Semplificando assai, un discorso che in linguaggio “naturale” sarebbe: “I Promessi Sposi hanno come autore Alessandro Manzoni“, verrebbe codificato come:
<libro>I Promessi sposi </libro> <ha come autore>sono un’opera di </ ha come autore <autore>Alessandro Manzoni</autore>.

I tag <autore>, <ha come autore> e <libro> fanno parte di una struttura prestabilita, in cui ogni elemento e ogni relazione tra elementi è stato predefinito (elemento “autore” = chi crea un’opera, elemento “libro” = opera scritta, relazione “ha come autore” = essere opera di un autore ).

Le ontologie, dunque, sono definibili anche come schemi di metadati organizzati gerarchicamente, che specificano e ordinano gli elementi che ne fanno parte e i rapporti che intercorrono tra di essi.

In questo modo, un software attrezzato per interpretare le ontologie, saprà che l’espressione “Promessi sposi” non è solo una certa sequenza di lettere, ma che è un libro, cioè un elemento che risponde alla definizione che gli è stata attribuita in quella ontologia, e che è in relazione con “Alessandro Manzoni”, perché quest’ultimo ne è l’autore.

Naturalmente l’esempio riportato sopra è molto approssimativo.  In realtà, per scrivere le ontologie sono stati elaborati appositi linguaggi come RDF (Resource Description Framework) – che a sua volta è una derivazione di XML (eXtensible Markup Language)- , o OWL (Ontology Web Language), che qui però non è il caso di approfondire.

La cosa importante da capire qui è che queste strutture organizzate di metadati, le ontologie appunto, permettono ad appositi software di interpretare il contenuto di una pagina e quindi di rispondere in modo più completo e pertinente alle ricerche su quei dati, garantendo al meglio anche la loro gestione.

Per i software, infatti, sarà anche più semplice comparare i dati dei i siti che si occupano di una stessa materia, se questi adottano tutti la stessa ontologia e usano gli stessi termini.

Già ora diverse comunità scientifiche, per esempio nel campo della medicina, hanno elaborato delle ontologie standard delle loro materie usando questo tipo di linguaggi, per ottenere uno scambio di informazioni molto più efficiente tra i ricercatori.

Ed eccoci finalmente arrivati al punto che ci interessa: come per tutte le altre risorse digitali, l’utilizzo delle ontologie può essere molto utile anche alla catalogazione delle immagini, perché permettono di migliorare sensibilmente la loro ricercabilità e la loro gestione in generale.

A questo proposito è interessante leggere un articolo pubblicato da due ricercatrici della Stanford University, Natalya F. Noy and Deborah L. McGuinness: “A Guide to Creating Your First Ontology”.

Questa “Guida per creare la tua prima ontologia” è un ottima base per imparare a costruirsi un vocabolario controllato su misura, che aiuterà nel mettere le keywords alle foto in modo efficiente e coerente in base alle caratteristiche dell’archivio da catalogare.

In questo caso, per costruire la nostra ontologia fai-da-te ci serviremo della struttura che l’ontologia ha assunto nell’informatica, ma non dovremo poi “tradurla”in linguaggi di codifica come RDF:  basterà usarla semplicemente per riempire il campo Keywords nell’infofile delle foto.

Per un uso commerciale, questo sarà molto utile, perché permetterà ai potenziali acquirenti di trovare più facilmente quello che cercano. E sarà utile in generale nella gestione del nostro archivio: per esempio, se ben fatto, il nostro vocabolario controllato ci consentirà di ordinarlo sistematicamente per argomenti.

Le materie su cui costruire un’ontologia sono potenzialmente infinite, e non esiste un unico modo per farla, occorre piuttosto sempre tenere presente a cosa ci serve per decidere come impostarla a seconda delle esigenze. Nel nostro caso, l’ontologia serve a definire un sistema gerarchicamente ordinato di keywords utili alla ricerca delle foto. Stabilire al suo interno troppi elementi, o troppo pochi, può essere controproducente: fondamentalmente, occorre considerare quelli che possono interessare a chi fa le ricerche e a chi gestisce l’archivio.

Nella guida citata, si fa l’esempio di una ontologia del vino. Immaginate però di partire da questo esempio per costruire delle ontologie-fai-da-te del cinema,  della letteratura,  dell’arte, della politica, ecc.: ecco che l’archivio di un fotogiornalista che si sia occupato di questi argomenti è pronto per essere catalogato!

Per iniziare, nella guida troverete una descrizione precisa degli elementi costitutivi di un’ontologia, presi dall’informatica (abbiamo visto sopra come oggi l’applicazione delle ontologie sia soprattutto in campo informatico):

  1. Al centro delle ontologie ci sono le classi, che rappresentano i concetti fondamentali di quel campo o argomento; ad esempio la classe “Vino” rappresenta tutti i vini;
    ogni classe è un concetto generale che comprende dei concetti più specifici dette istanze; per esempio, ogni particolare tipo di vino – come il bordeaux, lo champagne ecc.ecc. -, è un’istanza della classe Vino.
  2. Ogni classe può avere sottoclassi che sono più specifiche rispetto alla superclasse: per esempio, la classe generale Vino può comprendere la sottoclasse dei vini rossi, quella dei vini bianchi e quella dei vini rosé. Oppure può comprendere la sottoclasse dei vini frizzanti e la sottoclasse di quelli fermi.
  3. Gli slot, invece, descrivono le proprietà delle classi e delle istanze: per esempio, le istanze della classe del vino avranno slot che descrivono il loro sapore, corpo, livello di zucchero, il produttore del vino e così via.

Per esempio, tutte le istanze della classe Vino e delle sue sottoclassi (Bordeaux, Champagne ecc. ecc.) hanno uno slot “Produttore” che è un’istanza della classe “Cantina”.  Tutte le istanze della classe “Cantina” hanno uno slot “Produce” che si riferisce a tutti i vini (istanze della classe “vino” e delle sue sottoclassi) che l’azienda produce.

In pratica, si legge sempre nella guida della Stanford University, sviluppare un’ontologia significa:

  1. Definire le classi dell’ontologia.
  2. Organizzare le classi in una gerarchia tassonomica (dalla più generale alle più particolari).
  3. Definire gli slot (proprietà) e i loro valori nelle istanze.

Difficile? Ma se via via classi, sottoclassi, istanze  e loro proprietà (slot) vanno a costituire una precisa gerarchia, un “albero” di keywords, dalle più generali alle più particolari, ecco che al momento di applicarle il procedimento non sarà più così complicato.

Inoltre, mentre normalmente le “vere” ontologie vengono espresse con appositi linguaggi formali, una ontologia-fai-da-te per costruire un vocabolario controllato per le nostre keywords non avrà bisogno di questo e resterà a un livello molto più semplice, ma abbastanza efficiente da facilitarci notevolmente il lavoro di catalogazione.

Messa una keyword, infatti, basterà risalire e scendere l’albero per aggiungere tutte le altre più generali e più particolari implicate da quella, con le relative proprietà.

La parte più difficile, insomma, è lo sviluppo dell’”ontologia”, ma una volta fatto questo, tutto il processo di attribuzione delle keywords si semplificherà di molto.

Non solo: fare riferimento allo stesso schema assicura l’uniformità del lavoro, nel senso che foto simili saranno catalogate con le stesse keywords.

Dunque, se non esistono altre ontologie già fatte e standardizzate adatte al vostro archivio, vale la pena mettersi al lavoro. Altri suggerimenti e spiegazioni per cominciare l’opera, li potete trovare nel resto dell’articolo citato, che riporta anche una bibliografia sull’argomento.


Pubblicato

in

,

da

Tag:

Translate »