Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

RDF per descrivere il Web

Introduzione pratica all'RDF: cos'è, a cosa serve e come verrà utilizzato l'XML.
Introduzione pratica all'RDF: cos'è, a cosa serve e come verrà utilizzato l'XML.
Link copiato negli appunti

*In collaborazione con Manthys

Uno dei problemi più comuni che i navigatori del Web si trovano a dover affrontare quasi quotidianamente è la ricerca di informazioni in maniera accurata. Con il crescere del numero di pagine pubblicate sul Web, i classici motori di ricerca cominciano a diventare sempre meno idonei nella ricerca di informazioni. Vi sarà sicuramente capitato più volte di cercare informazioni su un determinato argomento, ad esempio sulla coltivazione dei "girasoli", e di ottenere come risultato una serie di link a pagine che hanno a che fare con la vendita diretta di semi di girasole, a pagine pubblicitarie su una determinata marca di olio di girasole, alla home page del signor "Girasoli" o a quella dell'hotel "Soli e Girasoli" e così via.

Il fatto è che i motori di ricerca classificano le informazioni contenute in una pagina Web basandosi sulle parole in essa contenute. Quindi la presenza del termine "girasoli" all'interno di una pagina web fa sì che questa sia candidata ad essere proposta a chi effettui una ricerca in base a questo termine. Per consentire una ricerca più accurata occorrerebbe classificare le pagine Web ricorrendo a descrizioni del contenuto delle pagine stesse, tramite quelli che tecnicamente vengono chiamati metadati. I metadati sono dati che descrivono altri dati. Ad esempio, i campi titolo, autore, genere, ecc. sono metadati che descrivono libri (o film, articoli, ecc.) e che vengono comunemente utilizzati nella definizione di tabelle in un database. Estendere questo stesso concetto al web non è così immediato, in quanto la natura non centralizzata di Internet non permette di definire in maniera univoca dei campi da utilizzare per la descrizione delle risorse.

Tanto più che il tipo di informazioni da classificare è talmente vasto e imprevedibile che qualsiasi insieme di campi si tenti di definire sarebbe insufficiente.

Il Resource Description Framework

Allo scopo di fornire un meccanismo flessibile per la descrizione delle risorse sul Web, il W3C ha definito un modello astratto denominato Resource Description Framework (RDF). Questo modello di descrizione si basa su tre tipi di oggetti:

  • Risorse (resources)

    Una risorsa può essere rappresentata da una pagina, un gruppo di pagine, un'immagine, un server o una qualsiasi altro elemento che abbia un Universal Resource Identifier (URI), cioè un meccanismo di identificazione come l'indirizzo Web

  • Proprietà (properties)

    Una proprietà è una specifica caratteristica o attributo di una risorsa; una proprietà può anche descrivere relazioni con altre risorse.

  • Asserzioni (statements)

    Una asserzione è costituita dall'insieme di una risorsa, una proprietà e uno specifico valore per quella proprietà e descrive le caratteristiche di una risorsa e le relazioni con altre risorse

Ad esempio, la frase

la pagina all'indirizzo www.html.it/rdf.html ha per argomento RDF

è un'asserzione costituita dalla risorsa pagina all'indirizzo www.html.it/rdf.html, dalla proprietà argomento e dal valore RDF.

Descrizioni RDF

RDF è un modello di descrizione astratto e non pone vincoli sulla sintassi e sul significato delle descrizioni di una risorsa. Questo vuol dire che ognuno potrebbe proporre un qualsiasi meccanismo per descrivere risorse utilizzando le astrazioni previste da RDF. Ad esempio, una descrizione RDF potrebbe essere espressa tramite una rappresentazione grafica delle risorse, degli attributi e delle asserzioni.

Tuttavia, per ragioni pratiche, la definizione formulata del W3C propone XML come metalinguaggio per la rappresentazione del modello RDF, cioè propone RDF come linguaggio basato su XML. Seguendo la sintassi proposta, la frase vista precedentemente può essere rappresentata nel seguente modo:


<rdf:RDF>
  <rdf:Description about="https://www.html.it/rdf.html">
    <argomento>RDF</argomento>
  </rdf:Description>
</rdf:RDF>

In pratica, una descrizione RDF è un documento XML contenente alcuni tag predefiniti (nell'esempio, <rdf:RDF> e <rdf:Description>) e una lista di tag liberi per la descrizione vera e propria.

Nella descrizione RDF si fa uso della tecnica dei namespace di XML. Un namespace è un contesto che definisce un insieme di tag da utilizzare in un documento XML. Nel precedente esempio, il tag <rdf:RDF> indica che tale tag è definito nel namespace identificato dal prefisso rdf, la cui dichiarazione si trova nella prima riga del documento XML. In tale riga è presente la direttiva di elaborazione che indica anche l'indirizzo presso cui è pubblicata la definizione del namespace.

Schemi RDF

Come abbiamo visto nell'esempio precedente, i tag propriamente descrittivi di una descrizione RDF sono liberi, nel senso che ciascuno è libero di inventarsi i tag che preferisce. Tuttavia questo comporterebbe la possibilità di ritrovarsi tag diversi con lo stesso significato. Ad esempio, il nostro tag <argomento> potrebbe essere definito come <subject> da un nostro collega anglosassone. Per evitare il sovrapporsi di tag diversi con lo stesso significato, RDF prevede un meccanismo per creare vocabolari o schemi, cioè insiemi di proprietà ed elementi che definiscono un contesto per la descrizione di determinate categorie di risorse.

Un noto esempio di schema RDF è il Dublin Core Metadata: esso definisce i tag da utilizzare per la descrizione di documenti elettronici (libri, articoli, rapporti, ecc.). Il seguente è un esempio di descrizione del sito HTML.IT in RDF utilizzando lo schema Dublin Core Metadata:



<rdf:RDF>
  <rdf:Description about="http://www.html.it">
    <dc:Title>HTML.IT</dc:Title>
    <dc:Description>
      Il portale italiano su HTML e dintorni
    </dc:Description>
    <dc:Publisher>HTML.IT srl</dc:Publisher>
    <dc:Format>text/html</dc:Format>
    <dc:Language>it</dc:Language>
  </rdf:Description>
</rdf:RDF>

Come è evidente dall'esempio, anche per far riferimento ad uno specifico schema RDF si fa uso dei namespace. Nel nostro caso, oltre al namespace individuato dal prefisso rdf, viene utilizzato il namespace individuato dal prefisso dc e definito dallo schema RDF del Dublin Core Metadata.

Gli schemi RDF possono essere riutilizzati ed estesi per la descrizione di altre categorie di risorse. Possono includere vincoli sui possibili valori di una proprietà ed ereditare caratteristiche da altri schemi.

HTML e RDF

Ma come possiamo associare una descrizione RDF ad una pagina HTML? Abbiamo essenzialmente due modi: creare una descrizione esterna e mettere all'interno della pagina un riferimento alla descrizione tramite il tag <LINK>, come nel seguente esempio:

<link rel="meta" href="descrizione.rdf">

Oppure inserire la descrizione all'interno della pagina HTML, come nel seguente esempio:

<html>
<head>
 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
  <rdf:Description about="http://www.myserver.com/index.html">
    ...
    Descrizione RDF
    ...
  </rdf:Description>
 </rdf:RDF>
</head>
<body>
...
Contenuto della pagina HTML
...
</body>
</html>

È opportuno inserire la descrizione RDF nella sezione <head> della pagina HTML per evitare che qualche browser visualizzi il suo contenuto all'utente.

Conclusioni

L'uso di RDF è agli inizi e non sono ancora apprezzabili gli effetti che questa tecnologia porterà sul Web. Non sono ancora molti i motori di ricerca che utilizzano RDF per classificare le pagine Web, ma sembra che l'interesse nei confronti di questa tecnologia sia molto alto. Quello che possiamo fare al momento è cercare di immaginare quello che potrà essere il Web con un uso accurato di RDF. Un primo risultato sarà senz'altro la maggior precisione nella ricerca di informazioni tramite i motori di ricerca. Si apre anche la strada alla realizzazione di agenti software in grado di navigare su Internet alla ricerca di informazioni specifiche, come ad esempio il confronto di prezzi di determinati articoli.

In altre parole, assisteremo al passaggio dal Web così come lo conosciamo oggi al cosiddetto Semantic Web, un Web le cui informazioni saranno comprensibili ed elaborabili non soltanto da parte degli esseri umani ma anche da parte di opportuni software.

Ti consigliamo anche