Seminario – Il Web e la Semantica: scenari passati, presenti e futuri. Aldo Gangemi

Aprile 13, 2009

Mercoledì 15 aprile h. 14:30
Aula Seminario 2,
Dipartimento di Scienze dell’Informazione, Università di Bologna

Aldo Gangemi (CNR)

Il Web e la Semantica: scenari passati, presenti e futuri

All’interno del ciclo di seminari del corso di Laboratorio Interdisciplinare, laurea specialistica di Scienze di Internet.

Abstract
La visione di Tim Berners-Lee sullo sviluppo del Web è stata abbastanza coerente dal 1992 a oggi e si è adattata facilmente all’evoluzione delle condizioni sociali e tecnologiche di contorno.
L’aspetto centrale della sua visione, fin dagli inizi, è stato quello di introdurre strutture più ricche di significato in Internet. Una delle chiavi di interpretazione dell’evoluzione del Web è quindi la nozione di Semantica: di quali significati ci dobbiamo occupare? Cosa dobbiamo intendere per “significato” quando creiamo o usiamo tecnologie Web? Nella lezione si proporrà una prospettiva agnostica rispetto a quale sia la migliore teoria della Semantica da usare sul Web.

Breve Bio
Aldo Gangemi is a Senior Researcher at the Institute for Cognitive Sciences and Technology (http://www.istc.cnr.it) at the Italian National Research Council (http://www.cnr.it). He is co-founder of the Laboratory for Applied Ontology (http://www.loa-cnr.it), a leading research unit in the areas of conceptual modeling, formal ontology, and ontology engineering.
His research topics include knowledge engineering, the semantic web, NLP, and business modeling, with about 100 publications on international refereed journals, books and conferences.
He has been working in many national and EU projects, spanning from the pioneering biomedical ontology project GALEN (1992) to the current largest ontology engineering project NeOn (http://www.neon-project.com).
He is currently coordinating the workpackage on collaborative aspects of ontology design in NeOn, and an Italian project on the use of semantic technologies in organizational intranets.
He is reviewer for the EU and Italian governmental agencies, and consultant for Italian and international organizations.

Enhanced by Zemanta

Web 3.0 Conference – May 19-20, NYC

Marzo 24, 2009

Web 3.0 Conference: Profit and gain insight by organizing information with semantic web and linked data technologies, May 19-20, 2009 New York City, The New Yorker Hotel.

Conference about Web 3.0 for Marketers, Information Technologists and Builders.

Informations here http://www.web3event.com/.

Enhanced by Zemanta

FoaF Explorer

Marzo 15, 2009

human-readable

–>

machine-readable

–>

human-readable.


FoaF Explorer è un tool che permette di visualizzare in forma human-readable la struttura di una rete FOAF.


Enhanced by Zemanta

Semantic Microblogging

Febbraio 5, 2009

Interessanti slide di Benjamin Nowack sulle nuove possibilità che possono nascere dal’interazione del microblogging con il semantic web.


Powerset

Gennaio 28, 2009
Image representing Powerset as depicted in Cru...
Image via CrunchBase

Powerset – acquistato da Microsoft nel Luglio del 2008 per una cifra dell’ordine di 100 milioni di dollari – è un esempio di motore di ricerca basato sul natural language processing che permette la ricerca di singole parole ma anche di frasi o semplici domande, le cui risposte vengono cercate – per il momento – solo tra gli articoli di Wikipedia e le risorse di Freebase.

Per l’analisi e l’elaborazione delle informazioni Powerset si basa su 30 anni di sviluppo della tecnologia Xerox PARC tramite la quale costruisce un “indice semantico” su cui basare le ricerche. I risultati comprendono l’articolo di Wikipedia più pertinente alla ricerca effettuata ed una serie di articoli alternativi; è presente anche un box che mostra, se disponibili, i risultati recuperati da Freebase; dall’elenco dei risultati è inoltre possibile visualizzare direttamente gli articoli di Wikipedia.

Leggi il seguito di questo post »


Il semantic web e l’evoluzione dell’indicizzazione

Gennaio 27, 2009

I motori di ricerca possono essere considerati come la base fondamentale del web che conosciamo e utilizziamo oggi. Nonostante la loro utilità, sono però afflitti da alcuni problemi, in gran parte sono causati dal sovraccarico informazionale degli ultimi anni, che ne limitano le potenzilità:

  • Bassa precisione e grande numero di risultati proposti. Le pagine rilevanti vengono recuperate e mostrate ma sono accompagnate da molti altri risultati inutili, questo fatto può portare anche alla “perdita” dei risultati validi nell’insieme.
  • Mancanza di risultati. Può capitare – ormai raramente – che alcune pagine non vengano recuperate e mostrate tra i risultati anche se rilevanti.
  • Dipendenza dei risultati dalla terminologia usata nei documenti. Una query effettuata con certi termini può non dare risultati i che si otterrebbero invece usando dei sinonimi.
  • Risultati limitati ad una serie di documenti non interconnessi tra loro. Una visione d’insieme è ottenibile solo recuperando i vari documenti e raccogliendo le informazioni ma questa operazione è a carico dell’utente.

L’ostacolo principale verso un miglioramento di questa situazione è sicuramente l’incapacità delle macchine di interpretare e comprendere i contenuti – come abbiamo già detto in precedenza – ed il modo in cui si sta cercando di risolvere il problema è la creazione di contenuto in formato machine-understandable tramite la creazione del Semantic Web.

Quello dei motori di ricerca diventa quindi – data la sua rilevanza per il web – uno dei canali più importanti per la diffusione del Semantic Web ma anche per il suo sviluppo nel marketing; nuovi motori che riconoscono ed interpretano i dati semantici presenti nelle pagine che scansionano presentandoli nei risultati della ricerca come informazioni aggiuntive degli elementi cui si riferiscono rappresentano un grande passo avanti in questo senso.
Leggi il seguito di questo post »


Yahoo! SearchMonkey

Gennaio 27, 2009

SearchMonkey è una piattaforma di sviluppo per permettere a sviluppatori e proprietari dei siti web di migliorare i risultati di Yahoo! Search utilizzando le nuove tecnologie semantiche. I risultati delle ricerche che rappresentano pagine con contenuti semantici verranno mostrati in modo differente dal classico blocco titolo-descrizione-URL, saranno infatti messi in evidenza immagini, un’elenco di link principali della pagina ed un insieme di informazioni rilevanti, tutto questo all’interno dello stesso elenco dei risultati organici della ricerca, generando un sicuro guadagno in termini di visualizzazione, qualità e numero dei click.
Il proprietario del sito dovrà inserire del contenuto semantico al’interno delle pagine web sfruttando i microformats, RDFa o le altre tecnologie semantiche, oppure utilizzando gli sterumenti di sviluppo forniti da Yahoo! per costruire data services che estraggono i dati d’interesse dal sito; una volta rese recuperabili le informazioni è possibile definire l’aspetto del blocco che apparirà nell’elenco dei risultati specificando quali informazioni dovranno essere visualizzate. Leggi il seguito di questo post »


Dapper Semantify

Gennaio 26, 2009
Image representing Dapper as depicted in Crunc...
Image via CrunchBase

Questo servizio offerto da Dapper permette di creare versioni RDF delle pagine web, rendendone possibile l’indicizzazione da parte dei crawler che supportano questo formato, come ad esempio quello di Yahoo! Search. In questo modo si allegerisce il lavoro di ricostruzione delle pagine web per inserire i dati semantici facilitando quello spostamento verso il semantic web di cui si è parlato precedentemente e che deve avvenire in maniera decentralizzata, quasi user-driven; l’idea di SEO++[Scott Brinker] ha proprio alla base questo concetto e Semantify- ancora in beta e valido solo per siti in PHP – è quindi uno strumento che agevola l’entrata dei singoli publishers nell’era del semantic web ed al tempo stesso l’evoluzione di quest’ultimo, automatizzando lo operazioni di SEO.
Quando un crawler di un motore di ricerca raggiunge la pagina web, il sito richiama Dapper che genera la versione semantica della pagina stessa incorporando metadati con RDFa. Per utilizzare questo servizio, il proprietario del sito web deve per prima cosa generare un feed Dapper tramite la Feed Factor[Vedi post su Dapper MashupAds] selezionando campi rilevanti il cui contenuto si vuole rendere semantico ed annotandoli con gli opportuni nomi dai vocabolari supportati (FOAF, DC, CC, GeoRSS, MediaRSS); il risultato sarà un blocco di codice PHP, con il riferimento al namespace utilizzato, da inserire sul proprio sito e che verrà richiamato automaticamente trasformando i dati annotati. Al momento la scelta dei namespaces è un processo effettuato dall’utente ma Dapper prevede di automatizzarlo con algoritmi che propongono i namespaces più adatti al contenuo evidenziato.
Potremmo definire Semantify un sistema con un approccio misto tra bottom-up e top-down [concetti proposti da Alex Iskold, fondatore e CEO di AdaptiveBlue - vedi post su RWW]in quanto, almeno per il momento, i contenuti rilevanti della pagina devono essere selezionati e catalogati con gli opportuni vocabolari dall’utente ma è l’applicazione in sè che di fatto genera ed inserisce il codice RDFa nella pagina web.

Enhanced by Zemanta

FOAF

Gennaio 25, 2009
Icon for the FOAF (Friend of a Friend) project...
Image via Wikipedia

FOAF – Friend Of A Friend – è un progetto che fornisce dei meccanismi per la creazione decentralizzata di una rete di individui in formato machine-readable, che esprima le relazioni che esistono tra le persone e le loro informazioni personali. Per fare ciò, FOAF si appoggia sul modello RDF ed introduce un vocabolario che definisce le proprietà RDF per esprimere le entità e le loro relazioni in FOAF; FOAF può essere vista come una ontologia per il Semantic Web. Il vocabolario FOAF è una fusione di un vocabolario ad-hoc creato appositamente per il progetto e di altri vocabolari già esistenti, come Dublin Core; questa caratteristica è possibile grazie al modello RDF. FOAF utilizza RDF perchè ne acquisisce l’estendibilità e dà la possibilità di combinare le relazioni definite con FOAF con altre definite utilizzando un qualsiasi vocabolario RDF, permettendo al vocabolario FOAF di base di non dover trattare al suo interno ogni possibile aspetto riguardo le persone, che come possiamo immaginare sono molteplici e appartenenti a dominii differenti, sfruttando invece la riusabilità.RDF fornisce anche un insieme di proprietà (oggetti e relativi attributi) che FOAF può sfruttare Leggi il seguito di questo post »


Introduzione al Resource Description Framework (RDF)

Ottobre 8, 2008

Come detto precedentemente, il semantic web ha l’obiettivo di dare alle informazioni un significato, correlarle tra loro e rendere le informazioni machine-readable. Per mettere in pratica questo concetto è necessario un modello, una tecnologia che permetta di identificare le risorse, definirne il significato e le relazioni.
Lo standard W3C per la rappresentazione delle informazioni delle risorse sul web è il Resource Description Framework (RDF), il quale fornisce quindi un framework comune per esprimere i significati delle informazioni, ma anche per poterle renderle condivisibili tra le applicazioni, facendo sì che i dati possano essere disponibili anche per applicazioni diverse da quelle per cui erano stati originariamente creati.
Questo linguaggio, inteso per rappresentare metadati delle risorse sul web (ad esempio autore, titolo o data di creazione di una pagina web), può anche essere generalizzato per rappresentare informazioni riguardo entità che non sono necessariamente recuperabili o scaricabili dal web (pagine web, file, video, ecc…), ma anche entità che possono essere semplicemente identificate sul web (come ad esempio persone, eventi o informazioni riguardanti prezzi di prodotti su un negozio on-line), rendendo di fatto rappresentabile qualsiasi elemento.

L’RDF sfrutta gli identificatori Web URIs (Uniform Resource Identifiers) per identificare gli elementi e per descriverli fa uso di proprietà e relativi valori associati. Con questi principi di base, l’RDF può rappresentare definizioni delle risorse in forma di grafi, formati da nodi e archi che rappresentano le risorse, le loro proprietà e i rispettivi valori. Questo modello a grafi è codificato in un formato che utilizza una sintassi XML-based, chiamata RDF/XML, tramite la quale diventa possibile per le macchine elaborare il modello e comprendere il significato delle descrizioni delle risorse.
Per descrivere le risorse in RDF, vengono costruite delle frasi composte da:
- soggetto, la parte della frase che identifica la cosa descritta
- predicato, la parte che identifica la proprietà (della cosa) che viene specificata dalla frase
- oggetto, la parte che identifica il valore della proprietà
Questo tipo di struttura è la stessa che si può immaginare per una semplice frase in linguaggio naturale come:

“Questo blog è scritto da Simone Dezaiacomo”

in cui troviamo un soggetto della frase (Questo blog), un predicato, ovvero la proprietà che viene specificata (è scritto da, cioè chi ne è l’autore) e l’oggetto, ovvero il valore della proprietà (Simone Dezaiacomo).
Le frasi che descrivono le risorse in RDF non sono quindi nient’altro che semplici frasi così strutturate. Una frase di questo tipo può però, come ci si può immaginare, dare dei problemi nel caso in cui a leggerla non sia una persona, ma sia una macchina. Come fare quindi per rendere la frase machine-readable?
Per farlo sono necessari due elementi:
1) un sistema di identificatori machine-readable per rendere soggetto, predicato e oggetto identificabili univocamente
2) un linguaggio machine-readable per rappresentare la frase e scambiarle tra le applicazioni.
Nella nostra frase d’esempio, identificare univocamente il soggetto (il blog) è possibile utilizzando semplicemente l’URL, ma come identificare predicato e oggetto, che non sono risorse web e non possiedono quindi un URL?
Per farlo si usa appunto un identificatore più generico fornito dal web: l’URI (di cui gli URL sono un sottoinsieme), che ha la proprietà di poter essere creato da utenti per identificare le risorse, sia accessibili dalla rete che non (come nel caso delle persone o di concetti astratti come il possesso). Più precisamente gli identificatori utilizzati da RDF sono le URI references (URIref), ovvero identificatori formati da un URI cui è aggiunto un suffisso con caratteri UNICODE, rendendo così possibile rappresentare e definire le relazioni tra qualsiasi cosa.
Per quanto riguarda il secondo elemento fondamentale per rendere le frasi RDF machine-readable, il linguaggio, come si è accennato precedentemente RDF utilizza l’XML/RDF che definisce dei tag specifici per rappresentare le triple rendendole interpretabili correttamente dalle applicazioni scritte per farlo.

Il modello fondamentale di rappresentazione per le frasi RDF si è detto che sono i grafi RDF, che sono così rappresentati:
- nodo per il soggetto
- nodo per l’oggetto
- arco per il predicato, che unisce soggetto a oggetto

Esempio grafo RDF

Grafo RDF per la frase: "Questo blog è scritto da Simone Dezaiacomo"

Gli oggetti (che rappresentano i valori associati ai predicati) possono essere rappresentati sia tramite URIref, sia come stringhe di caratteri (dette literals, che a loro volta possono essere plain o typed). Potrebbe sembrare più intuitivo identificare gli oggetti come literals (come nell’esempio qui sopra), poichè questi rappresentano dei valori. Ma non sempre questo ragionamento è corretto, in quanto identificare gli oggetti (ma lo stesso discorso vale anche per i predicati) con le URIref è utile sia per permettere alle applicazioni di distinguere le proprietà che potrebbero essere identificate con lo stesso nome literal (es: il literal “Nome” come nome di persona o come nome di variabile) ed è utile anche per far sì che le proprietà possano essere trattate come risorse a loro volta, dando la possibilità di associare loro informazioni aggiuntive. L’utilizzo degli URIref per soggetti, predicati e oggetti è importante per lo sviluppo e l’uso di vocabolari condivisi e ad esempio per permettere la scrittura di applicazioni che si comportano in un certo modo in base al significato che viene ricavato dall’elaborazione di un certo URIref.
Per rappresentare i nodi di un grafo che sono identificati da URIref si usano delle ellissi, mentre per quelli identificati da literals si usano rettangoli.

Un altro modello di rappresentazione per le frasi RDF è quello delle triple, in cui ogni frase è scritta come una tripla ordinata formata dai 3 elementi base: soggetto, predicato e oggetto, precisamente nella forma:
<soggetto> <predicato> <oggetto>
oppure
<soggetto> <predicato> “oggetto”, se l’oggetto è literal
Per la nostra frase d’esempio, avremo quindi:

<http://semanticweb30.wordpress.com> <http://purl.org/dc/elements/1.1/creator> “Simone Dezaiacomo”

Per frasi multiple relative allo stesso soggetto, ogni tripla rappresenta un arco del corrispondente grafo. Quindi se ad esempio abbiamo 3 frasi RDF con lo stesso soggetto, nel grafo troveremo il nodo di partenza (soggetto) da cui si dipartono più rami che rappresentano predicati e oggetti, mentre nelle triple avremo la ripetizione del soggetto in ognuna delle 3 frasi.

Grafo RDF frasi multiple sullo stesso soggetto

Grafo RDF frasi multiple sullo stesso soggetto

Le equivalenti triple saranno:

<http://semanticweb30.wordpress.com> <http://purl.org/dc/elements/1.1/creator> “Simone Dezaiacomo”
<http://semanticweb30.wordpress.com> <http://purl.org/dc/elements/1.1/language> “IT”
<http://semanticweb30.wordpress.com> <http://purl.org/dc/elements/1.1/contributor> <http://www.example.org/exblogger/1123>

La notazione delle triple può diventare scomoda a causa della lunghezza delle URIref utilizzate per identificare le risorse. Per abbreviarne la notazione, sono stati introdotti i QName, che sono formati da:
prefisso_assegnato_all’URI : local_name
potremmo quindi sostituire dc:creator al posto di <http://purl.org/dc/elements/1.1/creator>
Quindi l’URIref completo si può ottenere dall’URI associato al QName + il local name.

Grafo RDF con QNames al posto delle URIref

Grafo RDF con QNames al posto delle URIref

Esempi di QName e URI associati:
rdf: –> URI: http://www.w3.org/1999/02/22-rdf-syntax-ns#
rdfs: –> URI: http://www.w3.org/2000/01/rdf-schema#
dc: –> URI: http://purl.org/dc/elements/1.1/
owl: –> URI: http://www.w3.org/2002/07/owl#

Utilizzando quindi URIref al posto di stringhe per identificare le risorse, RDF deve riferirsi ad un insieme di URIref come vocabolario. Spesso le URIref nel vocabolario sono organizzate in modo da essere rappresentate come insiemi di QNames con prefisso comune; cioè può essere scelta una URIref comune per tutti i termini nel vocabolario e a questa viene aggiunto il local name. In questo modo un’organizzazione può ad esempio definire un vocabolario di URIref che iniziano con un certo prefisso (http://www.example.org/terms/) per i termini che usa nelle sue attività aziendali (data-creazione, prodotto, nome-prodotto; che diventeranno local names) e un altro vocabolario che inizia con un altro prefisso (http://www.example.org/staffid) per identificare gli impiegati. RDF stesso definisce in questo modo modo il suo proprio vocabolario di termini che hanno un significato specifico in RDF, questi URIref iniziano con il prefisso http://www.w3.org/1999/02/22-rdf-syntax-ns# cui è associato il QName rdf:

RDF, trattato qui sono nei suoi aspetti base, è solo uno degli elementi dell’architettura del semantic web, che possono essere rappresentati dal “layer-cake” diagram qui di seguito.

Layer Cake Diagram - W3C

Layer Cake Diagram - W3C

Fonti:
http://www.w3.org/TR/2004/REC-rdf-primer-20040210/
http://www.w3.org/RDF/
http://www.w3.org/2001/sw/
http://www.w3.org/2007/03/layerCake.png
http://www.w3.org/2001/11/IsaViz/
http://dublincore.org/documents/dces/