RDFa 1.1 - Seminario Web Semantico 2015

34
RDFa Università degli studi di Salerno Corso di Laurea Magistrale in Informatica Web Semantico, AA 2014-2015 Giuseppe Luciano

Transcript of RDFa 1.1 - Seminario Web Semantico 2015

RDFa

Università degli studi di SalernoCorso di Laurea Magistrale in

Informatica

Web Semantico, AA 2014-2015

Giuseppe Luciano

Ricordiamo RDF

Web Semantico, AA 2014-2015

• Modello per rappresentare relazioni tra risorse

• Comprensione della semantica da parte dimacchine

• Triple <Soggetto-Predicato-Oggetto>

• Grafo

Ricordiamo RDF (2)

Web Semantico, AA 2014-2015

http://www.worldlib.org/FKLibhttp://www.worldlib.org/director

http://www.worldlib.org/people/JohnSmith

http://www.worldlib.org/address

“1428 Elm Street, Los Angeles (CA) 90024”

• FK Library director John Smith .• FK Library address “1428 Elm Street, Los Angeles

(CA) 90024” .

Ricordiamo RDF (3)

Web Semantico, AA 2014-2015

• Diverse rappresentazioni

o RDF/XMLo Turtleo ….o RDFa

Cos’è RDFa

Web Semantico, AA 2014-2015

• RDFa = RDF in HTML Attributes

• Ideato da Mark Birbeck nel 2004

• Standardizzato W3C Recommendation nel 2008

• Terza versione di RDFa 1.1 nel Marzo 2015• E’ una specifica sia per XHTML che per

HTML

RDFa – Il problema

Web Semantico, AA 2014-2015

• Immaginiamo di voler aggiungere contenuto semantico alla seguente pagina html, specificando che l’autore del documento sia «Umberto Manganiello»

<html><head>

<title> Introduction to RDFa</title></head>

<body><p>L’autore di questa pagina è Umberto Manganiello</p>

</body></html>

Html e la semantica (1)

Web Semantico, AA 2014-2015

• Di base html mette a disposizione dell’utente i tag meta per inserire semplice contenuto semantico nell’intestazione della pagina (head)

<html><head>

<meta name=“author” content=“Umberto Manganiello”><title> Introduction to RDFa</title>

</head>

<body><p>L’autore di questa pagina è Umberto Manganiello</p>

</body></html>

Html e la semantica (2)

Web Semantico, AA 2014-2015

• Una alternativa al tag meta che permette di inserire informazioni all’internodel «body» sono gli attributi rel ed href

<a rel="friend" href="http://www.functravel.com/">Cheap Flights</a><link rel="stylesheet" type="text/css" href="theme.css" />

• Essi però sono limitati ad i tag <a>, <area> e <link> e non possono essere usati quindi per ogni tipo di informazione. Non è possibile, ad esempio, definire quanto segue:

<img src="image1.png” rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/" >

Html e la semantica (3)

Web Semantico, AA 2014-2015

alternate Links to an alternate version of the document (i.e. print page, translated or mirror)

author Links to the author of the documentbookmark Permanent URL used for bookmarkinghelp Links to a help documentlicense Links to copyright information for the documentnext The next document in a selection

nofollowLinks to an unendorsed document, like a paid link.("nofollow" is used by Google, to specify that the Google search spider should not follow that link)

noreferrer Specifies that the browser should not send a HTTP referer header if the user follows the hyperlink

prefetch Specifies that the target document should be cachedprev The previous document in a selectionsearch Links to a search tool for the documenttag A tag (keyword) for the current document

Valori permessi per rel:

Html e la semantica (4)

Web Semantico, AA 2014-2015

• Con informazioni semplici possono essere sufficienti il solo tag meta nell’intestazione e gli attributi href e rel. Ma cosa succede con informazioni più strutturate?

• C’è bisogno di uno strumento più potente (quale potrebbe essere RDF) per mappare informazioni semantiche più complesse.

<html><head>

<title> FK Library</title> </head><body>

The director is<a href=“http://www.worldlib.org/people/JohnSmith”> John Smith </a> and the address is: “1428 Elm Street, Los Angeles (CA) 90024”

</body></html>

Html e la semantica (5)

Web Semantico, AA 2014-2015

• Utilizzando RDF/XML piuttosto che Turtle, il risultato è comunque la «coppiapagina HTML + specifica RDF»

<?xml version="1.0"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax

-ns#" xmlns:lib = "http://www.worldlib.org/”>

<rdf:Description rdf:about="http://www.worldlib.org/FKLib"><lib:director rdf:resource="http://www.worldlib.org/pe

ople/JohnSmith "/>

<lib:address>“1428 Elm Street, Los Angeles (CA) 90024”</lib:address></

rdf:Description></rdf:RDF>

• Punto chiave di RDFa: Inserire nello stesso punto metadati e informazioni per l’utente, utilizzando le informazioni visualizzate dall’utente (tag) e associandovi informazioni semantiche

• RDFa usa un insieme di attributi HTML per aumentare la leggibilità da parte dei software come i motori di ricerca semantici

Web Semantico, AA 2014-2015

RDFa L’idea

Benefici

Web Semantico, AA 2014-2015

• Indipendenza di pubblicazioneo Ogni sito può utilizzare il proprio standard

• Riuso dei datio I dati non sono duplicati, essi vengono scritti in modo tale da

essereutilizzati per le macchine e per gli utenti

• Compattezzao RDF e HTML stanno insieme, ma sono

comunque distintamente separati

Iniziamo da RDFa lite

Web Semantico, AA 2014-2015

• RDFa lite è la versione meno potente di RDFa

• Passare a RDFa Full è un operazione facile (nella necessità di una maggior potenza espressiva)

• RDFa ci abilita a parlare di cose sul web, così che una macchina può comprendere ciò che si dice.

• RDFa Lite consiste di soli cinque attributi: vocab, typeof, property, resource e prefix.

RDFa lite:vocab, typeof, and property (1)

Web Semantico, AA 2014-2015

Tipicamente quando parliamo di una cosa, noi usiamo un particolare vocabolario.

Ad esempio, se noi vogliamo parlare di Persone, il vocabilario che noi dovremmo usare specifica l’uso di termini quali: nome e numero di telefono.

RDFa, come RDF, permette il caricamento di «Vocabolari» di termini ai quali si può fare riferimento per essere certi del significato di ogni termine.

<p vocab="http://schema.org/">My name is Manu Sporny and you can give me a ring via 1-800-555-0199.</p>

Il vocabolario schema è stato rilasciato dei maggiori motori di ricerca per parlare delle cose comuni sul web, di cui i motori di ricerca si interessano: persone (Person), luoghi (Place), eventi (Event), ecc..

Web Semantico, AA 2014-2015

Abbiamo bisogno di specificare il tipo della cosa di cui stiamo parlando, per far questo usiamo typeof:

<p vocab="http://schema.org/" typeof="Person“>

My name is Manu Sporny and you can give me a ring via 1-800-555-0199.

</p>

RDFa lite:vocab, typeof, and property (2)

Web Semantico, AA 2014-2015

Ora abbiamo bisogno di specificare quali proprietà di quella persona vogliamo indicare al motore di ricerca:

<p vocab="http://schema.org/" typeof="Person">My name is <span property="name">Manu Sporny</span> and you can give me a ring via <span property="telephone">1-800-555-0199</span> or visit <a property="url" href="http://manu.sporny.org/">my homepage</a>.</p>

Così facendo quando qualcuno scriverà “il numero di telefono di Manu Sporny” in un motore di ricerca semantico, questò potrà anche rispondere direttamente .

type

schema:name

schema:Person

Manu Sporny

RDFa lite:vocab, typeof, and property (3)

RDFa lite: resource

Web Semantico, AA 2014-2015

Se un autore vuol parlare di qualsiasi cosa sulla propria pagina web, questo ha bisogno di un identificatore.

Possiamo usare l’attributo resource:

<p vocab="http://schema.org/" resource="#manu" typeof="Person"> My name is <span property="name">Manu Sporny</span> and you can give me

a ring via <span property="telephone">1-800-555-0199</span>. <img property="image" src="http://manu.sporny.org/images/manu.png" />

</p>

Se si assume che l’indirizzo della pagina sia: http://example.org/people, l’identificatore della cosa è http://example.org/people#manu

Identificando tutte le cose sul web usando URL, noi possiamo iniziare a costruire il Web of things. In modo da avere risposte intelligenti dai software a domande anche complesse.

RFDa lite: prefix

Web Semantico, AA 2014-2015

Per specificare più di un vocabolario, possiamo usare l’attributo prefix.

Per esempio, oltre a descrivere una persona, vogliamo specificare che questo ha un animale favorito:

<p vocab="http://schema.org/" prefix="ov: http://open.vocab.org/terms/" resource="#manu" typeof="Person">

My name is <span property="name">Manu Sporny</span> and you can give me a ring via <span property="telephone">1-800-555-0199</span>. <img property="image" src="http://manu.sporny.org/images/manu.png" />

My favorite animal is the <span property="ov:preferredAnimal">Liger</span>. </p>

RFDa lite: tips &tricks

Web Semantico, AA 2014-2015

RDFa 1.1 Lite usa dei prefissi predefiniti quali:• dc: Dublin Core Metadata Terms (http://purl.org/dc/terms/)

Il Dublin Core è un insieme di proprietà predefinite per descrivere documenti.

• foaf: FOAF (http://xmlns.com/foaf/0.1/ ) FOAF è un progetto dedito a linkare persone e informazione usando il web.

• schema: The Schema.org (http://schema.org/ )

Si possono usare vocabolari multipli con prefix:<body prefix="dc: http://purl.org/dc/terms/ schema: http://schema.org/">

Si possono usare anche proprietà multiple:<h3 property="dc:creator schema:creator" resource="#me">Alice</h3>

RDFa Full: più potenza

Web Semantico, AA 2014-2015

• RDFa aggiunge ad ognuno dei tag di HTML degli attributi, per inserire contenuto semantico nel corpo della pagina:

o Datatype: indica il tipo di una proprietào Content: specifica l’oggetto (una risorsa, piuttosto che un

letterale, ecc…)o About: è un URI che indicare il soggetto di una risorsao Rel: indica la relazione con un’altra risorsa

RDFa: datatype

Web Semantico, AA 2014-2015

• Poiché alcuni dati possono essere ambigui per le macchine è bene indicarne il tipo (lista dei tipi):

<span property="dc:date" datatype="xsd:gYear">2011</span>

RDFa: content

Web Semantico, AA 2014-2015

• Se non è presente un attributo content, allora il valore di una proprietà sarà impostato usando il testo inline di un elemento.

• Se content è presente, esso sovrascrive il valoreinline.

<h2 property="http://purl.org/dc/terms/title">The Trouble with Bob</h2> <p>Date: <span property="http://purl.org/dc/terms/created" content="2011-09-10">10th of September, 2011</span></p>

RDFa: about

Web Semantico, AA 2014-2015

• I costrutti visti finora utilizzano come soggetto (URI) il documento corrente. Se diverso, esso può essere specificato aggiungendo l’attributo about.

<aabout = http://www.projects.com/sw/proj345 property="dc:creator"content = http://www.projects.com/Umanganiellohref = http://ww.projects.com/Umang >

Project 345 – Author: Umberto Manganiello</a>

RDFa + FOAF (1)

Web Semantico, AA 2014-2015

• Un esempio di integrazione di vocabolari esterni è rappresentato dall’integrazione di FOAF (Friend-of-a-friend), per specificare informazioni sociali sui soggetti.

• Il vocabolario FOAF ha delle proprietà per descrivere le informazioni dei contatti

• Il div seguente rappresenta una persona. Il concetto è preso dal vocabolario FOAF.

<div vocab="http://xmlns.com/foaf/0.1/" typeof="Person">

... <!-- Questo div conterrà informazioni su una persona -->

</div>

RDFa + FOAF (2)

Web Semantico, AA 2014-2015

• Di seguito sono rappresentate alcune informazioni FOAF associate alla persona referenziata dal div (verrà generato un nodo vuoto)

<div vocab="http://xmlns.com/foaf/0.1/" typeof="Person"><p><span property="name">Alice Birpemswick</span>, Email: <a property="mbox“ href=mailto:[email protected] >[email protected]</a>, Phone: <a property="phone" href="tel:+1-617-555-7332">+1 617.555.7332</a> </p></div>

RDFa + FOAF (3)

Web Semantico, AA 2014-2015

Specificando altre persone è possibile anche costruire una rete sociale

<div vocab="http://xmlns.com/foaf/0.1/" typeof="Person"> <p> …</p> <ul> <li property="knows" typeof="Person"> <a property="homepage" href="http://example.com/bob/"><span property="name">Bob</span></a> </li><li property="knows" typeof="Person"> <a property="homepage" href="http://example.com/eve/"><span property="name">Eve</span></a> </li><li property="knows" typeof="Person"> <a property="homepage" href="http://example.com/manu/"><span property="name">Manu</span></a> </li></ul></div>

RDFa +FOAF (4)

Web Semantico, AA 2014-2015

RDFa + FOAF: tips & trick

Web Semantico, AA 2014-2015

Uso di rel come alternativa all’impostazione dell’attributo property:

<div vocab="http://xmlns.com/foaf/0.1/" resource="#me“>

<ul rel="knows“>

<li resource="http://example.com/bob/#me" typeof="Person">

<a property="homepage" href="http://example.com/bob/">

<span property="name">Bob</span></a> </li>

<li resource="http://example.com/eve/#me" typeof="Person">

<a property="homepage" href="http://example.com/eve/">

<span property="name">Eve</span></a> </li>

<li resource="http://example.com/manu/#me" typeof="Person">

<a property="homepage" href="http://example.com/manu/">

<span property="name">Manu</span></a> </li>

</ul>

</div>

RFDa: Retrocompatibilità

Web Semantico, AA 2014-2015

• RDFa Core 1.1 depreca l’uso dell’attributo xmlns

RDFa – Tools (1)

Web Semantico, AA 2014-2015

• Esistono molti tool a supporto di RDFa

• Parser RDFa integrati nei browser Webo Operator (Firefox)o Fuzz (Firefox)o Semantic Radar (Firefox)o JavaScript Bookmarklets

• visualizzatore semantico compatibile con tutti i browser

o rdfquery• Una libreria javascript per l’elaborazione di RDF

RDFa – Tools (2)

Web Semantico, AA 2014-2015

• Strumenti online

o RDFa Play (http://rdfa.info/play/) è un web editor RDFa 1.1 con visualizzatore di dati e debugger

• Estrattori RDFao Permettono di

estrarre la semantica RDFa dalle pagine HTML• PyRDFa• Swignition• Exhibit• Krextor

Ricapitolando• RDFa permette l’inserimento di metadati in qualsiasi

punto del documento.

• E’ un meccanismo basato su prefissi che identifica univocamente i concetti (eredità di RDF).

• Permette la modellazione di relazioni anche con soggetti differenti dal documento corrente e le immagini che contiene.

• Si integra perfettamente con qualsiasi vocabolario di termini.

Web Semantico, AA 2014-2015

Riferimenti RDFa 1.1 PRIMER:

http://www.w3.org/TR/xhtml-rdfa-primer/

HTML + RDFa 1.1: http://www.w3.org/TR/html-rdfa/

RDFa Lite 1.1: http://www.w3.org/TR/rdfa-lite/

Basato su un lavoro di: Umberto Manganiello e Alessandro Longo