Un problema molto sentito negli ultimi anni è l'estrazione automatica di metadati da un documento HTML o XHTML. La creazione automatica o semi-automatica della descrizione di un sito sarebbe un grande aiuto alla diffusione del cosiddetto Web Semantico. Questo perché sarebbe possibile descrivere tramite metadati i siti all'interno del world wide web, dando la possibilità di fare ricerche semantiche (cioè legate al significato del contenuto dei siti) e non solo testuali sull'intera (ed immensa) mole di dati presenti.
Il problema, però è di difficile soluzione pratica, in quanto chiunque conosca un po' di Web design sa come, per molti motivi, sia difficile seguire degli standard definiti per la creazione e strutturazione delle pagine Web. Di conseguenza le pagine Web che si trovano su internet sono scritte con strutture completamente differenti le une dalle altre, rendendo quasi impossibile creare un algoritmo generico in grado di processarle e creare un file di metadati coerente.
Per introdurre all'argomento l'obiettivo di questo articolo sarà perciò affrontare il problema opposto, e decisamente più semplice, della creazione di una pagina XHTML a partire da un file di metadati RDF. Il risultato sarà una vista leggibile, "human-readable", di quest'ultimo, che invece è stato creato per essere "machine-readable".
Abbiamo già discusso su queste colonne, dell'utilità di questo formato per la descrizione di risorse sia digitali che non. Ecco alcuni rimandi:
Il file RDF
Partiamo proprio creando un semplice catalogo bibliografico della famosa serie di libri scritta da Frank Herbert sul pianeta Dune (tratto da www.arrakis.co.uk) scritto in formato RDF.
Per semplicità scegliamo l'estensione .xml, anziché .rdf, per non incorrere in noiose definizioni del MIME-Type, che non esistono nativamente in tutti i browser.
Esaminiamo ora il nostro esempio. Il catalogo è scritto utilizzando lo schema RDF Dublin Core, che è lo standard più diffuso per la scrittura di metadati in RDF, grazie alla sua estensione di termini e la sua flessibilità
Estratto del file RDF (example.xml)
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="example.xsl"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/terms/">
<rdf:Description rdf:about="http://www.bookshop.fake/Herbert/Empire Burlesque">
<dc:title>Dune</dc:title>
<dc:creator>Frank Herbert</dc:creator>
<dc:created>1965</dc:created>
<dc:publisher>Chilton Publishing</dc:publisher>
<dc:type>Text</dc:type>
</rdf:Description>
...
</rdf:RDF>
Dopo la direttiva di elaborazione necessaria per ogni XML
<?xml version="1.0"?>
il file contiene la direttiva che permette di identificare quale file di stile utilizzare per la visualizzazione, in questo caso è il file example.xsl che svilupperemo nel corso dell'articolo. È importante includere questa dichiarazione per permettere ai browser di utilizzare automaticamente questo file per la visualizzazione della descrizione RDF.
<?xml-stylesheet type="text/xsl" href="example.xsl"?>
Dopo le dichiarazioni iniziali il file di metadati si apre con l'elemento radice rdf:RDF, che dichiara la presenza di una descrizione RDF e che integra gli schemi RDF (identificato con il namespace rdf) e Dublin Core (indentificato con il namespace dc).
Un generico elemento descrittivo 柩dentificato dal tag rdf:Description e contiene i metadati relativi ai singoli libri della bibliografia identificati dai tag Dublin Core.
| Metadato | Tag Dublin Core |
|---|---|
| Titolo | dc:title
|
| Autore | dc:creator
|
| Anno di creazione | dc:created
|
| Editore | dc:publisher
|
| Tipo di risorsa | dc:type
|