SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Downloaden Sie, um offline zu lesen
RDFa
(Resource Description Framework in attributes)




Tutorial di Base
Descrizione
   RDFa (Resource Description Framework in attributes) è uno
    strumento che arricchisce la sintassi xhtml attraverso una serie
    di attributi aggiuntivi che associati ai tag già noti, simulano le
    triple RDF.


   In questo modo per esprimere concetti semantici associati ad
    una pagina xhtml non si dovrà produrre un file RDF separato
    ma tali informazioni si potranno inserire direttamente in esse.
Un passo indietro: RDF
   RDF sta per Resource Description Framework ed è una famiglia
    di specifiche che servono a descrivere le risorse e le relazioni
    che intercorrono tra di esse. Il modello RDF si basa sull’idea
    che la descrizione di una risorsa o le relazioni tra le risorse si
    possono rappresentare attraverso delle triple:



                   soggetto – predicato – oggetto.
Un passo indietro: RDF
    Soggetto                                                Oggetto
    (risorsa)                                               (risorsa)


                                    Predicato
                                    (risorsa)


Ognuna delle componenti di queste triplette, è una risorsa.
Per esempio supponiamo che vogliamo descrivere questo concetto :

         “L’articolo X è stato scritto da Mario Rossi. ”

L’articolo X                  (soggetto)
ha per autore                 (predicato)
Mario Rossi                   (oggetto)
Un passo indietro: RDF
   Che cos’è una risorsa
    Una risorsa può essere una persona, un gruppo di persone,
    un documento, una pagina web, una poesia, un libro, una e­
    mail, ecc.
    Quelli identificabili univocamente sul web sono rappresentati
    da un URI o come vedremo successivamente da una forma
    ridotta di URI che chiameremo CURIE (Compact URI)
CURIE
Un CURIE si presenta nella forma : prefisso:stringa
il prefisso è una stringa che identifica l’URI di un namespace.

Questo prefisso è definito usando l’attributo xmlns.

Un parser RDFa, quando incontra un CURIE, sostituisce il prefisso del
   namespace con il namespace stesso, aggiungendo alla fine ciò che si trova
   alla destra dei due punti (stringa).
CURIE
   Esempio
Il frammento di codice:

    <meta property=http://purl.org/dc/terms/description content=”bla bla bla” />

contiene l’URI http://purl.org/dc/terms/description .

Trasformiamo questo URI in CURIE aggiungendo la definizione del
    namespace dublincore nel tag html e cambiando l’URI con il CURIE
    corrispondente.



    <html xmlns="http://www.w3.org/1999/xhtml"

                                 xmlns:dc="http://purl.org/dc/terms/"

                                                      version="XHTML+RDFa 1.0">
CURIE
   Esempio
    <html xmlns=“…” xmlns:dc="http://purl.org/dc/terms/" version=“…">

Con questo codice abbiamo definito un prefisso namespace dc grazie a xmlns.

Adesso posssiamo usarlo nel tag Meta.

    <meta property=”dc:description” content=”bla bla bla” />

In pratica il parser RDFa quando incontra dc:description lo sostituisce con
    http://purl.org/dc/terms/description . Informalmente :

                  dc:description = http://purl.org/dc/terms/description
RDFa
   Con le premesse fatte possiamo finalmente
    passare a parlare di RDFa
RDFa : Doctype
   Quanto utilizziamo RDFa nelle pagine XHTML dobbiamo usare un nuovo
    doctype personalizzato:



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN"

                   http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd >
RDFa : I nuovi attributi
   RDFa introduce nuovi attributi per i tag XHTML:
    ◦ rev,
    ◦ about,
    ◦ typeof,
    ◦ content,
    ◦ property


Questi attributi servono a formare le triple semantiche RDF.
RDFa : Individuare i Predicati
   Il predicato di una tripletta semantica si individua attraverso gli
    attributi :
    ◦ rev
    ◦ rel
    ◦ property


    Questi attributi possono essere aggiunti a qualunque tag del
    documento e possono contenere al suo interno URI, CURIE o
    liste di CURIES separati da uno spazio.


* rel è un attributo gia presente in XHTML
RDFa : Individuare gli Oggetti
Fissato il predicato, si stabilisce l’oggetto seguendo queste regole :
   Quando il predicato è definito da property l’oggetto è rappresentato:

    ◦   Dal valore di un ulteriore attributo: content

            Esempio :

            <span about=”[…]” property=”foaf:name” content=”Pinco Pallino”/>

    ◦   Dal contenuto del tag dove abbiamo aggiunto l’attributo property se è assente content

            Esempio :

            <span about=”[…]” property=”foaf:name” />Pinco Pallino</span>




Foaf è un'ontologia atta a descrivere persone, con le loro attività e le relazioni con altre persone e oggetti
RDFa : Individuare gli Oggetti
   Gli oggetti non devono essere necessariamente dei letterali. La
    tipologia di un oggetto può essere cambiata con l’attributo
    datatype.


    Esempio :
    <span about=”[_:esempio]” property=”esempio:numerointero” content=”10″

                                         datatype=”xsd:integer”>ten</span>




    In questo caso 10 non sarà trattato come letterale (stringa) ma
    come numero intero.
RDFa : Individuare gli Oggetti
   Quando il predicato è definito da rel l’oggetto non è mai un
    letterale e puo essere:
    ◦ l’ URI (ma non un CURIE) contenuto all’interno dell’ attributo href, se presente.

      Esempio :

      <a rel=”foaf:knows” href=”mailto:tizio@pincopallino.net”/>



    ◦ l’URI o il CURIE contenuto all’interno dell’attributo resource, se presente.

      resource e href hanno la stessa funzione, solo che resource a differenza di href
      non produce un link raggiungibile con un click da browser
RDFa : Individuare gli Oggetti
   (cont) Quando il predicato è definito da rel l’oggetto non è mai
    un letterale e puo essere:
    ◦ l’URI o il CURIE del tag stesso in cui è stato inserito l’attributo rel se
      non sono presenti href e resource.


      Esempio:
                    <div rel=”dc:creator”></div>


      soggetto : indefinito ; predicato: dc:creator ; oggetto: _:div (nodo bianco)
RDFa : Nodi Bianchi
   Quando una risorsa non si può identificare con un URI vero e
    proprio, la risorsa viene chiamata nodo bianco.


   I CURIES permettono di definire i nodi bianchi con la sintassi:
                                   _:ID

    ID è una stringa casuale che identifica univocamente il nodo
    bianco e che per l’appunto non si traduce con alcun URI dato
    che il prefisso del namespace è l’underscore
RDFa : Individuare gli Oggetti
   Quando il predicato è definito da rev, il soggetto e l’oggetto si
    scambiano il ruolo. Pertanto l’individuazione dell’oggeto
    richiede anche la conoscenza dell’individuazione del soggetto.
    Esempio:

      <a about=”mailto:tizio@pincopallino.net” rel=”foaf:knows” rev=”foaf:knows”
                                            href=”mailto:caio@pincopallino.net”>Caio</a>



    Che semanticamente significa : Tizio conosce Caio, e Caio conosce Tizio.
RDFa : Individuare i Soggetti
   Il soggetto di una tripla può essere determinato , seguendo
    l’ordine di priorità (così come sono elencati), di uno di questi
    attributi:
   about,
   src (in presenza di rev),
   resource (in presenza di rev),
   href
   typeof
    Quest’ultimo definisce la tipologia della risorsa-soggetto e determina il
    soggetto per tutte quelle triple definite nel blocco di codice incluso nel tag
    a cui è applicato.
RDFa : Individuare i Soggetti
   Esempio :
         <div typeof=”foaf:Person”>

                    <span property=”foaf:givenname”>Pinco</span>

         </div>



    Predicato: “foaf:givenname”
    Soggetto : [div] di tipo “foaf:Person”
    Oggetto : Pinco (contenuto del Tag span)


    typeof può essere usato da solo o associato anche ad about.
RDFa : Individuare i Soggetti
    In assenza di un attributo che individua un soggetto, il soggetto è
    il tag stesso che contiene il predicato, o il tag genitore
    immediatamente superiore che lo contiene.
    Ci sono solo due eccezioni alla regola :
   Se il tag genitore include l’attributo rel o rev senza href, allora il soggetto è
    l’URI/CURIE che corrisponde al tag genitore (può essere anche un nodo bianco).



   Nei tag meta e link senza about, il soggetto è l’URI/CURIE del tag genitore
    immeditamente superiore.
RDFa : Riepilogo
PREDICATO   OGGETTO                 SOGGETTO

            • content
property                            • about
            • contenuto Tag XHTML
                                    • href
            • href                  • typeof
rel         • resource              • nodo bianco
            • nodo bianco
            • about                 • src
rev         • href                  • resource
            • resource              • href
Common Tag
   Common Tag è un sistema di tagging sviluppato per
    inserire dati strutturati all’interno di pagine HTML.

   è definito attraverso RDFa

   Utilizza un proprio namespace: http://commontag.org/ns#
Common Tag
   Common Tag permette di identificare concetti in
    blocchi all’interno delle pagine HTML.
    Esempio
       Usiamo i tag per identificare il concetto di cui parliamo in un
       documento.
       <body xmlns:ctag="http://commontag.org/ns#" rel="ctag:tagged">

          <span typeof="ctag:Tag" rel="ctag:means"
                                resource="http://rdf.freebase.com/ns/en.u2"/>

       </body>



   L’esempio pone gli attrubuti nel tag body ed in un tag span ma il markup puo
    essere inserito in qualsiasi elemento del documento.
Common Tag
   (cont) Esempio                                  Definizione del namespace

    <body xmlns:ctag="http://commontag.org/ns#" rel="ctag:tagged">

       <span typeof="ctag:Tag" rel="ctag:means“ resource="http://rdf.freebase.com/ns/en.u2"/>


    </body>


   Soggetto : nodo bianco _:body

   Predicato: ctag:tagged (taggato da)

   Oggetto: nodo_bianco _:span di tipo ctag:Tag



   Soggetto : nodo bianco _:span di tipo ctag:Tag

   Predicato: ctag:means (identifica la risorsa)

   Oggetto: risorsa http://rdf.freebase.com/ns/en.u2
Common Tag : namespace
   Il namespace utilizato da Common Tag si trova all’indirizzo:
                            http://commontag.org/ns#


   Si compone di 4 classi ed altrettante proprietà:
    ◦ Classi: Tag, AuthorTag, readerTag, AutoTag

    ◦ Proprietà: means, tagged, taggingDate, label



      La classe piu usata è Tag ed è quella che useremo negli esempi successivi dato
      che le altre non sono altro che delle sottoclassi di Tag.
Common Tag : Esempi
   Includere un etichetta alla definizione


<body xmlns:ctag="http://commontag.org/ns#" rel="ctag:tagged">

    <span typeof="ctag:Tag" rel="ctag:means“

                  resource="http://rdf.freebase.com/ns/en.u2"

                  property="ctag:

                  label" content="U2"/>

    </span>

</body>
Common Tag : Esempi
   Tag Multipli dello stesso documento
<body xmlns:ctag="http://commontag.org/ns#" rel="ctag:tagged">

    <span typeof="ctag:Tag" rel="ctag:means"     resource=
    http://rdf.freebase.com/ns/en.u2

          property="ctag:label" content="U2"/>



    <span typeof="ctag:Tag" rel="ctag:means"
    resource="http://rdf.freebase.com/ns/en/zoo_tv_tour"

          property="ctag:label“ content="ZooTV"/>

</body>
Common Tag : Esempi
   Tag di documenti esterni


<div xmlns:ctag="http://commontag.org/ns#"
    about="http://www.whitehouse.gov/blog/inaugural-address/"
    rel="ctag:tagged">



    <span typeof="ctag:Tag" rel="ctag:means"
    resource="http://rdf.freebase.com/ns/en.social_responsibility"/>



</div>
Common Tag : Esempi
   Tag di sezioni all’interno del documento


<p id="first">Star Wars set a new standard for visual effects in space drama. </p>

<p id="second">Luke's interest in his heritage made him vulerable to the Dark Side. </p>




<div xmlns:ctag="http://commontag.org/ns#" about="#second" rel="ctag:tagged">

    <span typeof="ctag:Tag" rel="ctag:means"
    resource="http://dbpedia.org/resource/Luke_Skywalker"/>

</div>
Common Tag : Esempi
   Possiamo usare Common Tag in qualsiasi elemento del Markup


<div xmlns:ctag="http://commontag.org/ns#" rel="ctag:tagged">

    NASA's <a typeof="ctag:Tag" rel="ctag:means“
                   href=http://rdf.freebase.com/ns/en.phoenix_mars_mission
                   property="ctag:label">Phoenix Mars Lander</a>

    has deployed its robotic arm.

</div>
Riferimenti
   Italian Web Design:
    ◦ http://www.italianwebdesign.it/tag/rdfa/

   Common Tag:
    ◦ http://www.commontag.org/

Weitere ähnliche Inhalte

Ähnlich wie RDFa Tutorial di Base

BIBFRAME LINKED DATA
BIBFRAME LINKED DATABIBFRAME LINKED DATA
BIBFRAME LINKED DATA@CULT Srl
 
LOD, SPARQL e dintorni
LOD, SPARQL e dintorniLOD, SPARQL e dintorni
LOD, SPARQL e dintorninvitucci
 
Presentazione Laurea Picariello Vincenzo Matr. 450334
Presentazione Laurea Picariello Vincenzo Matr. 450334Presentazione Laurea Picariello Vincenzo Matr. 450334
Presentazione Laurea Picariello Vincenzo Matr. 450334Vincenzo Picariello
 
Job Finder
Job FinderJob Finder
Job Finderbeppe66
 
Job Finder
Job FinderJob Finder
Job Finderbeppe66
 
Job Finder
Job FinderJob Finder
Job Finderbeppe66
 
Cloud Cult Platform - Roma non è mai stata così ''esposta''!
Cloud Cult Platform - Roma non è mai stata così ''esposta''!Cloud Cult Platform - Roma non è mai stata così ''esposta''!
Cloud Cult Platform - Roma non è mai stata così ''esposta''!CAMELIA BOBAN
 
Html e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesignerHtml e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesignerMatteo Magni
 
Html e Css - 2 | WebMaster & WebDesigner
 Html e Css - 2 | WebMaster & WebDesigner Html e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesignerMatteo Magni
 
SCE2014 - Linked Open Data: come fare, cosa serve
SCE2014 - Linked Open Data: come fare, cosa serve SCE2014 - Linked Open Data: come fare, cosa serve
SCE2014 - Linked Open Data: come fare, cosa serve Diego Valerio Camarda
 
I metadati: risorsa fondamentale a supporto dell’uso corretto dei contenuti e...
I metadati: risorsa fondamentale a supporto dell’uso corretto dei contenuti e...I metadati: risorsa fondamentale a supporto dell’uso corretto dei contenuti e...
I metadati: risorsa fondamentale a supporto dell’uso corretto dei contenuti e...KEA s.r.l.
 
OWL Guide Resticted
OWL Guide RestictedOWL Guide Resticted
OWL Guide RestictedDario Mazza
 
Linked Open Data e Semantic Web: Fondamenti e Linguaggi di Interrogazione - P...
Linked Open Data e Semantic Web: Fondamenti e Linguaggi di Interrogazione - P...Linked Open Data e Semantic Web: Fondamenti e Linguaggi di Interrogazione - P...
Linked Open Data e Semantic Web: Fondamenti e Linguaggi di Interrogazione - P...Cristiano Longo
 
Esercitazioni Ingegneria 6ed
Esercitazioni Ingegneria 6edEsercitazioni Ingegneria 6ed
Esercitazioni Ingegneria 6edbibliobioing
 

Ähnlich wie RDFa Tutorial di Base (20)

BIBFRAME LINKED DATA
BIBFRAME LINKED DATABIBFRAME LINKED DATA
BIBFRAME LINKED DATA
 
WSMO Restricted
WSMO RestrictedWSMO Restricted
WSMO Restricted
 
JSON-LD
JSON-LDJSON-LD
JSON-LD
 
LOD, SPARQL e dintorni
LOD, SPARQL e dintorniLOD, SPARQL e dintorni
LOD, SPARQL e dintorni
 
Presentazione Laurea Picariello Vincenzo Matr. 450334
Presentazione Laurea Picariello Vincenzo Matr. 450334Presentazione Laurea Picariello Vincenzo Matr. 450334
Presentazione Laurea Picariello Vincenzo Matr. 450334
 
Job Finder
Job FinderJob Finder
Job Finder
 
Job Finder
Job FinderJob Finder
Job Finder
 
Job Finder
Job FinderJob Finder
Job Finder
 
Cloud Cult Platform - Roma non è mai stata così ''esposta''!
Cloud Cult Platform - Roma non è mai stata così ''esposta''!Cloud Cult Platform - Roma non è mai stata così ''esposta''!
Cloud Cult Platform - Roma non è mai stata così ''esposta''!
 
Owl Guide Resticted
Owl Guide RestictedOwl Guide Resticted
Owl Guide Resticted
 
Corso di HTML5 e CSS
Corso di HTML5 e CSSCorso di HTML5 e CSS
Corso di HTML5 e CSS
 
Html e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesignerHtml e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesigner
 
Html e Css - 2 | WebMaster & WebDesigner
 Html e Css - 2 | WebMaster & WebDesigner Html e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesigner
 
SCE2014 - Linked Open Data: come fare, cosa serve
SCE2014 - Linked Open Data: come fare, cosa serve SCE2014 - Linked Open Data: come fare, cosa serve
SCE2014 - Linked Open Data: come fare, cosa serve
 
Il web dei dati
Il web dei datiIl web dei dati
Il web dei dati
 
Programming iOS lezione 3
Programming iOS lezione 3Programming iOS lezione 3
Programming iOS lezione 3
 
I metadati: risorsa fondamentale a supporto dell’uso corretto dei contenuti e...
I metadati: risorsa fondamentale a supporto dell’uso corretto dei contenuti e...I metadati: risorsa fondamentale a supporto dell’uso corretto dei contenuti e...
I metadati: risorsa fondamentale a supporto dell’uso corretto dei contenuti e...
 
OWL Guide Resticted
OWL Guide RestictedOWL Guide Resticted
OWL Guide Resticted
 
Linked Open Data e Semantic Web: Fondamenti e Linguaggi di Interrogazione - P...
Linked Open Data e Semantic Web: Fondamenti e Linguaggi di Interrogazione - P...Linked Open Data e Semantic Web: Fondamenti e Linguaggi di Interrogazione - P...
Linked Open Data e Semantic Web: Fondamenti e Linguaggi di Interrogazione - P...
 
Esercitazioni Ingegneria 6ed
Esercitazioni Ingegneria 6edEsercitazioni Ingegneria 6ed
Esercitazioni Ingegneria 6ed
 

Kürzlich hochgeladen

Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Associazione Digital Days
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Associazione Digital Days
 
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Associazione Digital Days
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Associazione Digital Days
 
ScrapeGraphAI: a new way to scrape context with AI
ScrapeGraphAI: a new way to scrape context with AIScrapeGraphAI: a new way to scrape context with AI
ScrapeGraphAI: a new way to scrape context with AIinfogdgmi
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Associazione Digital Days
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Associazione Digital Days
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Associazione Digital Days
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Associazione Digital Days
 

Kürzlich hochgeladen (9)

Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
 
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
 
ScrapeGraphAI: a new way to scrape context with AI
ScrapeGraphAI: a new way to scrape context with AIScrapeGraphAI: a new way to scrape context with AI
ScrapeGraphAI: a new way to scrape context with AI
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
 

RDFa Tutorial di Base

  • 1. RDFa (Resource Description Framework in attributes) Tutorial di Base
  • 2. Descrizione  RDFa (Resource Description Framework in attributes) è uno strumento che arricchisce la sintassi xhtml attraverso una serie di attributi aggiuntivi che associati ai tag già noti, simulano le triple RDF.  In questo modo per esprimere concetti semantici associati ad una pagina xhtml non si dovrà produrre un file RDF separato ma tali informazioni si potranno inserire direttamente in esse.
  • 3. Un passo indietro: RDF  RDF sta per Resource Description Framework ed è una famiglia di specifiche che servono a descrivere le risorse e le relazioni che intercorrono tra di esse. Il modello RDF si basa sull’idea che la descrizione di una risorsa o le relazioni tra le risorse si possono rappresentare attraverso delle triple: soggetto – predicato – oggetto.
  • 4. Un passo indietro: RDF Soggetto Oggetto (risorsa) (risorsa) Predicato (risorsa) Ognuna delle componenti di queste triplette, è una risorsa. Per esempio supponiamo che vogliamo descrivere questo concetto : “L’articolo X è stato scritto da Mario Rossi. ” L’articolo X (soggetto) ha per autore (predicato) Mario Rossi (oggetto)
  • 5. Un passo indietro: RDF  Che cos’è una risorsa Una risorsa può essere una persona, un gruppo di persone, un documento, una pagina web, una poesia, un libro, una e­ mail, ecc. Quelli identificabili univocamente sul web sono rappresentati da un URI o come vedremo successivamente da una forma ridotta di URI che chiameremo CURIE (Compact URI)
  • 6. CURIE Un CURIE si presenta nella forma : prefisso:stringa il prefisso è una stringa che identifica l’URI di un namespace. Questo prefisso è definito usando l’attributo xmlns. Un parser RDFa, quando incontra un CURIE, sostituisce il prefisso del namespace con il namespace stesso, aggiungendo alla fine ciò che si trova alla destra dei due punti (stringa).
  • 7. CURIE  Esempio Il frammento di codice: <meta property=http://purl.org/dc/terms/description content=”bla bla bla” /> contiene l’URI http://purl.org/dc/terms/description . Trasformiamo questo URI in CURIE aggiungendo la definizione del namespace dublincore nel tag html e cambiando l’URI con il CURIE corrispondente. <html xmlns="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/terms/" version="XHTML+RDFa 1.0">
  • 8. CURIE  Esempio <html xmlns=“…” xmlns:dc="http://purl.org/dc/terms/" version=“…"> Con questo codice abbiamo definito un prefisso namespace dc grazie a xmlns. Adesso posssiamo usarlo nel tag Meta. <meta property=”dc:description” content=”bla bla bla” /> In pratica il parser RDFa quando incontra dc:description lo sostituisce con http://purl.org/dc/terms/description . Informalmente : dc:description = http://purl.org/dc/terms/description
  • 9. RDFa  Con le premesse fatte possiamo finalmente passare a parlare di RDFa
  • 10. RDFa : Doctype  Quanto utilizziamo RDFa nelle pagine XHTML dobbiamo usare un nuovo doctype personalizzato: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd >
  • 11. RDFa : I nuovi attributi  RDFa introduce nuovi attributi per i tag XHTML: ◦ rev, ◦ about, ◦ typeof, ◦ content, ◦ property Questi attributi servono a formare le triple semantiche RDF.
  • 12. RDFa : Individuare i Predicati  Il predicato di una tripletta semantica si individua attraverso gli attributi : ◦ rev ◦ rel ◦ property Questi attributi possono essere aggiunti a qualunque tag del documento e possono contenere al suo interno URI, CURIE o liste di CURIES separati da uno spazio. * rel è un attributo gia presente in XHTML
  • 13. RDFa : Individuare gli Oggetti Fissato il predicato, si stabilisce l’oggetto seguendo queste regole :  Quando il predicato è definito da property l’oggetto è rappresentato: ◦ Dal valore di un ulteriore attributo: content Esempio : <span about=”[…]” property=”foaf:name” content=”Pinco Pallino”/> ◦ Dal contenuto del tag dove abbiamo aggiunto l’attributo property se è assente content Esempio : <span about=”[…]” property=”foaf:name” />Pinco Pallino</span> Foaf è un'ontologia atta a descrivere persone, con le loro attività e le relazioni con altre persone e oggetti
  • 14. RDFa : Individuare gli Oggetti  Gli oggetti non devono essere necessariamente dei letterali. La tipologia di un oggetto può essere cambiata con l’attributo datatype. Esempio : <span about=”[_:esempio]” property=”esempio:numerointero” content=”10″ datatype=”xsd:integer”>ten</span> In questo caso 10 non sarà trattato come letterale (stringa) ma come numero intero.
  • 15. RDFa : Individuare gli Oggetti  Quando il predicato è definito da rel l’oggetto non è mai un letterale e puo essere: ◦ l’ URI (ma non un CURIE) contenuto all’interno dell’ attributo href, se presente. Esempio : <a rel=”foaf:knows” href=”mailto:tizio@pincopallino.net”/> ◦ l’URI o il CURIE contenuto all’interno dell’attributo resource, se presente. resource e href hanno la stessa funzione, solo che resource a differenza di href non produce un link raggiungibile con un click da browser
  • 16. RDFa : Individuare gli Oggetti  (cont) Quando il predicato è definito da rel l’oggetto non è mai un letterale e puo essere: ◦ l’URI o il CURIE del tag stesso in cui è stato inserito l’attributo rel se non sono presenti href e resource. Esempio: <div rel=”dc:creator”></div> soggetto : indefinito ; predicato: dc:creator ; oggetto: _:div (nodo bianco)
  • 17. RDFa : Nodi Bianchi  Quando una risorsa non si può identificare con un URI vero e proprio, la risorsa viene chiamata nodo bianco.  I CURIES permettono di definire i nodi bianchi con la sintassi: _:ID ID è una stringa casuale che identifica univocamente il nodo bianco e che per l’appunto non si traduce con alcun URI dato che il prefisso del namespace è l’underscore
  • 18. RDFa : Individuare gli Oggetti  Quando il predicato è definito da rev, il soggetto e l’oggetto si scambiano il ruolo. Pertanto l’individuazione dell’oggeto richiede anche la conoscenza dell’individuazione del soggetto. Esempio: <a about=”mailto:tizio@pincopallino.net” rel=”foaf:knows” rev=”foaf:knows” href=”mailto:caio@pincopallino.net”>Caio</a> Che semanticamente significa : Tizio conosce Caio, e Caio conosce Tizio.
  • 19. RDFa : Individuare i Soggetti  Il soggetto di una tripla può essere determinato , seguendo l’ordine di priorità (così come sono elencati), di uno di questi attributi:  about,  src (in presenza di rev),  resource (in presenza di rev),  href  typeof Quest’ultimo definisce la tipologia della risorsa-soggetto e determina il soggetto per tutte quelle triple definite nel blocco di codice incluso nel tag a cui è applicato.
  • 20. RDFa : Individuare i Soggetti  Esempio : <div typeof=”foaf:Person”> <span property=”foaf:givenname”>Pinco</span> </div> Predicato: “foaf:givenname” Soggetto : [div] di tipo “foaf:Person” Oggetto : Pinco (contenuto del Tag span) typeof può essere usato da solo o associato anche ad about.
  • 21. RDFa : Individuare i Soggetti In assenza di un attributo che individua un soggetto, il soggetto è il tag stesso che contiene il predicato, o il tag genitore immediatamente superiore che lo contiene. Ci sono solo due eccezioni alla regola :  Se il tag genitore include l’attributo rel o rev senza href, allora il soggetto è l’URI/CURIE che corrisponde al tag genitore (può essere anche un nodo bianco).  Nei tag meta e link senza about, il soggetto è l’URI/CURIE del tag genitore immeditamente superiore.
  • 22. RDFa : Riepilogo PREDICATO OGGETTO SOGGETTO • content property • about • contenuto Tag XHTML • href • href • typeof rel • resource • nodo bianco • nodo bianco • about • src rev • href • resource • resource • href
  • 23.
  • 24. Common Tag  Common Tag è un sistema di tagging sviluppato per inserire dati strutturati all’interno di pagine HTML.  è definito attraverso RDFa  Utilizza un proprio namespace: http://commontag.org/ns#
  • 25. Common Tag  Common Tag permette di identificare concetti in blocchi all’interno delle pagine HTML. Esempio Usiamo i tag per identificare il concetto di cui parliamo in un documento. <body xmlns:ctag="http://commontag.org/ns#" rel="ctag:tagged"> <span typeof="ctag:Tag" rel="ctag:means" resource="http://rdf.freebase.com/ns/en.u2"/> </body>  L’esempio pone gli attrubuti nel tag body ed in un tag span ma il markup puo essere inserito in qualsiasi elemento del documento.
  • 26. Common Tag  (cont) Esempio Definizione del namespace <body xmlns:ctag="http://commontag.org/ns#" rel="ctag:tagged"> <span typeof="ctag:Tag" rel="ctag:means“ resource="http://rdf.freebase.com/ns/en.u2"/> </body>  Soggetto : nodo bianco _:body  Predicato: ctag:tagged (taggato da)  Oggetto: nodo_bianco _:span di tipo ctag:Tag  Soggetto : nodo bianco _:span di tipo ctag:Tag  Predicato: ctag:means (identifica la risorsa)  Oggetto: risorsa http://rdf.freebase.com/ns/en.u2
  • 27. Common Tag : namespace  Il namespace utilizato da Common Tag si trova all’indirizzo: http://commontag.org/ns#  Si compone di 4 classi ed altrettante proprietà: ◦ Classi: Tag, AuthorTag, readerTag, AutoTag ◦ Proprietà: means, tagged, taggingDate, label La classe piu usata è Tag ed è quella che useremo negli esempi successivi dato che le altre non sono altro che delle sottoclassi di Tag.
  • 28. Common Tag : Esempi  Includere un etichetta alla definizione <body xmlns:ctag="http://commontag.org/ns#" rel="ctag:tagged"> <span typeof="ctag:Tag" rel="ctag:means“ resource="http://rdf.freebase.com/ns/en.u2" property="ctag: label" content="U2"/> </span> </body>
  • 29. Common Tag : Esempi  Tag Multipli dello stesso documento <body xmlns:ctag="http://commontag.org/ns#" rel="ctag:tagged"> <span typeof="ctag:Tag" rel="ctag:means" resource= http://rdf.freebase.com/ns/en.u2 property="ctag:label" content="U2"/> <span typeof="ctag:Tag" rel="ctag:means" resource="http://rdf.freebase.com/ns/en/zoo_tv_tour" property="ctag:label“ content="ZooTV"/> </body>
  • 30. Common Tag : Esempi  Tag di documenti esterni <div xmlns:ctag="http://commontag.org/ns#" about="http://www.whitehouse.gov/blog/inaugural-address/" rel="ctag:tagged"> <span typeof="ctag:Tag" rel="ctag:means" resource="http://rdf.freebase.com/ns/en.social_responsibility"/> </div>
  • 31. Common Tag : Esempi  Tag di sezioni all’interno del documento <p id="first">Star Wars set a new standard for visual effects in space drama. </p> <p id="second">Luke's interest in his heritage made him vulerable to the Dark Side. </p> <div xmlns:ctag="http://commontag.org/ns#" about="#second" rel="ctag:tagged"> <span typeof="ctag:Tag" rel="ctag:means" resource="http://dbpedia.org/resource/Luke_Skywalker"/> </div>
  • 32. Common Tag : Esempi  Possiamo usare Common Tag in qualsiasi elemento del Markup <div xmlns:ctag="http://commontag.org/ns#" rel="ctag:tagged"> NASA's <a typeof="ctag:Tag" rel="ctag:means“ href=http://rdf.freebase.com/ns/en.phoenix_mars_mission property="ctag:label">Phoenix Mars Lander</a> has deployed its robotic arm. </div>
  • 33. Riferimenti  Italian Web Design: ◦ http://www.italianwebdesign.it/tag/rdfa/  Common Tag: ◦ http://www.commontag.org/