Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Semantic Web Appunti, Appunti di Programmazione e Tecnologie Web

Appunti del corso di Semantic Web in italiano

Tipologia: Appunti

2024/2025

Caricato il 01/07/2026

m_e_l_a_n_i_a
m_e_l_a_n_i_a 🇮🇹

9 documenti

1 / 76

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
SEMANTIC WEB
1. INTRODUCTION TO THE SEMANTIC WEB LANGUAGES
Il Web è stato inventato nel 1989 da Tim Berners-Lee al CERN in Svizzera. L'obiettivo iniziale era la condivisione di
documenti e conoscenza tra i membri della comunità di ricerca.
Il funzionamento si basa su tre pilastri:
·Web Page: Un ipertesto digitale in HTML, identificato da un nome unico (IRI).
·Web Server: Componenti software che gestiscono e memorizzano le pagine.
·Web Browser: Client che permettono agli utenti di recuperare, visitare e navigare le pagine
tramite link
Il protocollo di comunicazione è l'HTTP (Hyper Text Transfer Protocol)
Per capire il Web a fondo, bisogna analizzare la sua visione del mondo, che si basa su tre concetti astratti
fondamentali interagenti tra loro:
A. Risorsa (Resource)
Nel Web, il mondo è costituito da risorse. Una risorsa è qualsiasi cosa che possa essere identificata tramite
identificatore univoco (persone, oggetti, concetti astratti)
·Information Resources: Risorse le cui caratteristiche essenziali possono essere trasmesse interamente in un
messaggio (es. una pagina web, un file audio, un PDF).
·Non-information Resources: Risorse che non possono essere "trasmesse" digitalmente (es. una persona, la
città di Pisa), ma possono essere descritte.
B. Identificatore (IRI)
Ogni risorsa deve avere un identificatore univoco chiamato IRI (Internationalized Resource Identifier), che è
un'evoluzione dell'URI capace di gestire set di caratteri non latini. L'IRI identifica un solo referente e,
idealmente, non dovrebbe mai cambiare referente una volta creato.
Struttura di un IRI:
La sintassi formale è: scheme : hierarchical part [ ? query ] [ # fragment ].
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c

Anteprima parziale del testo

Scarica Semantic Web Appunti e più Appunti in PDF di Programmazione e Tecnologie Web solo su Docsity!

SEMANTIC WEB

1. INTRODUCTION TO THE SEMANTIC WEB LANGUAGES

Il Web è stato inventato nel 1989 da Tim Berners-Lee al CERN in Svizzera. L'obiettivo iniziale era la condivisione di documenti e conoscenza tra i membri della comunità di ricerca. Il funzionamento si basa su tre pilastri: · Web Page: Un ipertesto digitale in HTML, identificato da un nome unico (IRI). · Web Server: Componenti software che gestiscono e memorizzano le pagine. · Web Browser: Client che permettono agli utenti di recuperare, visitare e navigare le pagine tramite link Il protocollo di comunicazione è l' HTTP (Hyper Text Transfer Protocol) Per capire il Web a fondo, bisogna analizzare la sua visione del mondo, che si basa su tre concetti astratti fondamentali interagenti tra loro: A. Risorsa (Resource) Nel Web, il mondo è costituito da risorse. Una risorsa è qualsiasi cosa che possa essere identificata tramite identificatore univoco (persone, oggetti, concetti astratti) · Information Resources: Risorse le cui caratteristiche essenziali possono essere trasmesse interamente in un messaggio (es. una pagina web, un file audio, un PDF). · Non-information Resources: Risorse che non possono essere "trasmesse" digitalmente (es. una persona, la città di Pisa), ma possono essere descritte. B. Identificatore (IRI) Ogni risorsa deve avere un identificatore univoco chiamato IRI (Internationalized Resource Identifier), che è un'evoluzione dell'URI capace di gestire set di caratteri non latini. L'IRI identifica un solo referente e, idealmente, non dovrebbe mai cambiare referente una volta creato. Struttura di un IRI: La sintassi formale è: scheme : hierarchical part [? query ] [ # fragment ].

  1. Scheme: Indica il protocollo o la specifica (es. http, ftp, mailto, tel).
  2. Authority: Solitamente il dominio (es. www.di.unipi.it).
  3. Path: Il percorso gerarchico dei dati (es. /en/education/mcs).
  4. Query: Parametri non gerarchici, spesso coppie chiave-valore (es. ?q=bach in una ricerca Google).
  5. Fragment: Identifica una risorsa secondaria o una parte interna (es. #section2 in una pagina HTML o un termine specifico in un'ontologia come XMLSchema#integer). Spesso nei documenti web si usano IRI relativi (es. ../images/logo.png) per brevità. Per funzionare, devono essere trasformati in IRI assoluti usando un algoritmo di risoluzione che si basa su un Base IRI. · Esempio: Se il Base IRI è http://a/b/c/d e il riferimento relativo è ../g, l'IRI target diventa http://a/b/g. Che cos'è lo Stato (State) di una risorsa? Le risorse cambiano nel tempo. Lo stato è la condizione di una risorsa in un preciso istante temporale. · Esempio: La home page dell'Università di Pisa cambia contenuto spesso; l'identità (IRI) resta la stessa, ma lo stato evolve. · Alcune risorse (come i numeri o le proposizioni matematiche) hanno uno stato immutabile. Che cos'è la Rappresentazione (Representation) di una risorsa? Sul Web non scambiamo "risorse" (che sono concetti astratti o oggetti fisici) e nemmeno "stati" (che sono condizioni temporali), ma rappresentazioni. Una rappresentazione è una sequenza di bit (dati) unita a metadati che codifica lo stato di una risorsa. Il meccanismo di Dereferencing: Quando un utente (es. Sue) clicca su un link (IRI), il browser esegue il dereferencing :
  6. Invia una richiesta HTTP GET al server.
  7. Il server risponde con una rappresentazione dello stato corrente della risorsa (es. un file HTML).

Perché le macchine comunichino, devono concordare sul significato dei termini (es. cosa significa esattamente "offers" o "course"?). Un' ontologia è una specifica formale ed esplicita di una concettualizzazione. È un vocabolario condiviso che definisce: · Classi: I concetti (es. Book , Person , Organization ). · Relazioni: Come interagiscono (es. borrowedBy ). Esempio della Biblioteca: un'ontologia dove: · Book è una sottoclasse di Library Material. · Book è collegato a Individual tramite la relazione borrowedBy. · Un Event ha un luogo (Place) e un tempo (Time). Senza questa struttura, un computer non saprebbe che un "Libro" è qualcosa che può essere "preso in prestito" da una "Persona". C. Logica La logica matematica è il motore del Semantic Web. Permette agli agenti di:

  1. Inferire conoscenza implicita da quella esplicita (Deduzione). Regola: Se X è un Corso di Master, allora X è un Corso Universitario. (∀x) MasterCourse(x) → UniversityCourse(x) Fatto: SemanticWeb è un Corso di Master. Deduzione: SemanticWeb è un Corso Universitario
  2. Rispondere a query e verificare la coerenza dei dati. Trade-off: C'è un bilanciamento critico tra potere espressivo ed efficienza computazionale. · Linguaggi molto espressivi (che permettono di dire cose vaghe come "qualcuno ha fatto qualcosa") sono difficili da calcolare (a volte indecidibili). · Il Semantic Web cerca punti di equilibrio offrendo diversi linguaggi Il Semantic Web mira a creare un unico spazio informativo globale dove ogni dato è connesso. Nel 2009, Tim Berners-Lee ha delineato i principi fondamentali dei Linked Data (Dati Collegati), che sono essenzialmente un insieme di "best practices" per pubblicare e collegare dati strutturati sul Web.

Le tre regole "estremamente semplici" sono:

  1. Uso di Nomi HTTP: Tutte le cose concettuali (persone, luoghi, eventi, oggetti astratti) devono avere nomi che iniziano con http:// (ovvero IRI/URI). Questo permette di identificarle univocamente in tutto il mondo.
  2. Standard e Accessibilità: Se un utente (o una macchina) cerca uno di questi nomi HTTP (fa il "lookup"), deve ricevere in risposta dati utili in un formato standard (come RDF). Non riceve solo una pagina HTML per umani, ma dati grezzi che descrivono l'entità.
  3. Relazioni: Quando si restituiscono le informazioni su un'entità, queste devono includere collegamenti (link) ad altri nomi HTTP. Questo crea una rete: non si descrive solo l'altezza o il peso di una persona, ma si collega quella persona al suo luogo di nascita, al suo datore di lavoro, ecc., usando i loro rispettivi identificativi HTTP. Il concetto si estende ulteriormente con i Linked Open Data (LOD). Si parla di LOD quando i Linked Data vengono rilasciati con una licenza aperta (open license), che ne permette il riutilizzo gratuito da parte di chiunque. Questo approccio ha dato vita alla LOD Cloud , una nuvola gigantesca di dataset interconnessi che include: · DBpedia e Wikidata: Versioni strutturate e semantiche di Wikipedia. · Dataset governativi e istituzionali: Come le ontologie della FAO (per dati geopolitici e agricoli) o i dati sui beni culturali di Europeana. Grazie ai LOD, le macchine possono navigare automaticamente tra dataset diversi (es. saltare da un dato sulla biologia marina in MarineTLO a un dato geografico su GeoNames ) come se stessero navigando in un unico database globale. Il Semantic Web Stack - Tim Berners-Lee ha organizzato le tecnologie del Semantic Web in un'architettura a livelli (Stack), dove ogni livello usa le funzionalità di quello inferiore. I livelli principali (dal basso verso l'alto) sono:
  4. IRI: Identificazione univoca delle risorse.

o Due persone diverse non avranno mai lo stesso IRI. Poiché ogni risorsa è identificata da un IRI, i dati sono distribuiti e navigabili. La descrizione di "Roma" può risiedere su Wikidata, mentre quella di "Mario" su un server aziendale, ma sono collegate nello stesso grafo. Le regole dei Linked Data Tim Berners-Lee ha stabilito 4 regole per scegliere bene questi IRI e creare un Web di dati connessi ( Linked Data ) :

  1. Usare IRI per identificare le cose.
  2. Usare IRI HTTP in modo che le persone (e le macchine) possano "cercare" quei nomi sul Web (dereferencing).
  3. Quando qualcuno cerca un IRI, fornire informazioni utili usando standard come RDF.
  4. Includere link ad altri IRI per permettere la scoperta di nuove cose. Strategia: È buona pratica riutilizzare IRI già definiti da vocabolari esistenti (es. Wikidata, ISO per i paesi, VIAF per gli autori) piuttosto che crearne di nuovi, per favorire l'interoperabilità.

RDF - RESOURCE DESCRIPTION FRAMEWORK

RDF è lo standard W3C per la modellazione dei dati sul Web. È progettato per essere elaborato dalle macchine (machine-processable) e per permettere lo scambio di dati senza perdita di significato. Le Relazioni (La Tripla) - L'unità atomica di informazione in RDF è la Tripla , che corrisponde alla struttura linguistica Soggetto-Predicato-Oggetto. Ogni tripla rappresenta uno "statement" (una dichiarazione) o un fatto. · Soggetto: La risorsa di cui si parla (es. l'IRI di Mario Rossi ex:mario). · Predicato (o Proprietà): Il tipo di relazione (es. l'IRI ex:isBornIn). · Oggetto: L'altra risorsa coinvolta (es. l'IRI di Roma wiki:Q220). In RDF, anche le proprietà (i predicati) sono risorse. Hanno un loro IRI e possono essere descritte a loro volta. Graficamente, questo crea un Grafo : due nodi (Soggetto e Oggetto) collegati da un arco (Predicato). L'insieme di questi archi forma una Semantic Network. RDF ha una "sintassi astratta", ovvero una struttura logica indipendente da come viene poi scritta in un file (che vedremo con Turtle) Il modello si basa su tre tipi di elementi: IRI, Literals e Blank Nodes. IRI - Sono gli identificatori globali del Web. · Permettono di identificare univocamente le risorse (persone, luoghi, concetti astratti). · Sono "actionable": un'applicazione può dereferenziarli (accedervi via HTTP) per recuperare informazioni. · È buona norma riutilizzare Vocabolari RDF esistenti (collezioni di IRI già definiti da comunità) per favorire l'interoperabilità. I Literals (Letterali) - Non tutto è un IRI. A volte dobbiamo rappresentare valori concreti come stringhe, numeri o date. Questi si chiamano Literals e sono usati per rappresentare valori concreti. Un Literal non può mai essere il soggetto di una tripla, solo l'oggetto. Un Literal in RDF è composto da:

  1. Una forma lessicale : una stringa Unicode (es. "100")

Il modello semantico accetta solo relazioni binarie (Soggetto → Predicato → Oggetto). Cosa succede se dobbiamo rappresentare una relazione con più variabili? o Esempio della Ricetta: Per dire "La Carbonara necessita di 100 grammi di pancetta", la relazione tra ricetta e ingrediente è complessa (ingrediente + quantità + unità di misura). Non possiamo collegarli direttamente con un solo arco perchè RDF considera solo risorse binarie (rango 2). o Si usa un Blank Node: Creiamo un nodo intermedio anonimo intermedio che rappresenta "la quantità di ingrediente". È un nodo senza etichetta che serve a raggruppare proprietà (tipo, quantità, unità) Carbonara → ha_ingrediente → _BlankNode _BlankNode → tipo_ingrediente → Guanciale _BlankNode → quantità → 100 _BlankNode → unità → grammi o Le triple con Blank Nodes sono dette non-ground. o In questo modo, abbiamo scomposto una relazione di "rango 4" in quattro relazioni binarie (di "rango 2") usando un nodo di raccordo. Struttura gerarchica:

  1. RDF Triple: (Soggetto, Predicato, Oggetto).
  2. RDF Graph: Un insieme di triple.
  3. RDF Dataset: Una collezione che contiene un Grafo di Default (senza nome) e zero o più Grafi Nominati (Named Graphs), ognuno identificato da un IRI. Corrispondenza tra RDF e Logica del Primo Ordine (FOL) - RDF può essere visto come una forma semplice di Logica del Primo Ordine : · IRI/Literals ≈ Costanti logiche.

· Proprietà (Predicati) ≈ Simboli di predicato binari ($P(x, y)$). · Blank Nodes ≈ Variabili esistenzialmente quantificate ($\exists x$). o Una tripla con un Blank Node (b, p, o) equivale alla formula logica: Esiste un b tale che p(b, o) è vero. Relazioni Logiche tra Grafi :

1. Entailment (Conseguenza Logica): Un grafo A implica (entails) un grafo B se, ogni volta che A è vero, anche B è necessariamente vero. Se dimostro A, ho stabilito la verità di B. L'entailment si verifica spesso quando passiamo da un'informazione specifica a una più generale. · Grafo A (Specifico): ex:Mario ex:ha_amico ex:Luigi. o Significato: "Mario ha come amico Luigi". · Grafo B (Generale): ex:Mario ex:ha_amico _:b1 (dove _:b1 è un blank node ). o Significato: "Mario ha qualche amico" (esiste qualcuno che è amico di Mario). Relazione: Se è vero che Mario è amico di Luigi (Grafo A), allora è necessariamente vero che Mario ha un amico (Grafo B). Quindi A implica (entails) B. Non vale il contrario: sapere che Mario ha un amico (B) non significa necessariamente che sia Luigi. 2. Equivalence (Equivalenza): Due grafi A e B sono equivalenti se "dicono la stessa cosa" sul mondo (A implica B e B implica A). L'equivalenza si ha quando due grafi descrivono esattamente la stessa realtà, magari usando etichette interne diverse per i nodi anonimi. · Grafo A: _:x ex:vive_a ex:Roma. o Significato: "Qualcuno (chiamiamolo x) vive a Roma". · Grafo B: :y ex:vive_a ex:Roma. o Significato: "Qualcuno (chiamiamolo y) vive a Roma". Relazione: Anche se le etichette dei blank node (:x e _:y) sono diverse, entrambi i grafi affermano la stessa verità logica: esiste una persona che vive a Roma. Pertanto, A è equivalente a B (A implica B e B implica A).

RDF Vocabulary include IRIs per:

1. Parlare di tipi e proprietà · rdf:type che è una proprietà RDF che collega una risorsa al suo tipo ex:Marco rdf:type ex:Persona. · rdf:Property Tutte le proprietà RDF (come rdf:type stessa!) sono risorse di tipo rdf:Property. rdf:type rdf:type rdf:Property.

2. Parlare di triple come oggetti (reification) - La reification è il processo che consente di:

rappresentare una tripla RDF come una risorsa , per poter fare affermazioni su quella tripla. · rdf:Statement · rdf:subject · rdf:predicate · rdf:object ex:s rdf:type rdf:Statement ; rdf:subject ex:Marco ; rdf:predicate ex:isEating ; rdf:object ex:Apple. ex:Francesco ex:sees ex:s.

3. Descrivere strutture dati Container - RDF fornisce tre tipi di contenitori aperti , cioè collezioni che possono essere estese. Non permettono di sapere se la collezione è completa. · rdf:Seq - Sequenza con ordine significativo e duplicati ammessi · rdf:Bag - Lista non ordinata di risorse in cui l'ordine non conta e sono ammessi duplicati · rdf:Alt - Insieme di alternative I membri sono indicati tramite rdf:_1, rdf:_2, …

Collections - A differenza dei container, le RDF Collections sono chiuse e ben definite. Struttura concettuale: lista concatenata (linked list). Vantaggi rispetto ai container: insieme esatto degli elementi, supporto a strutture ramificate , base per costrutti OWL. · rdf:List · rdf:first · rdf:rest · rdf:nil _:l rdf:first ex:A ; rdf:rest _:l. _:l2 rdf:first ex:B ; rdf:rest rdf:nil.

4. Valori strutturati · rdf:value è una proprietà intenzionalmente priva di semantica propria. Serve per modellare valori complessi. ex:product1 ex:weight _:x. _:x rdf:value "2.4"^^xsd:decimal ; ex:unit "kg".

Il significato di un’espressione non è “quello che rappresenta ma in quali mondi è vera. Il quadro teorico usato dallo standard RDF è quello dei mondi possibili , introdotto da Kripke. L’idea è la seguente: invece di chiederci se una frase descrive il mondo reale , ci chiediamo in quali mondi possibili essa risulta vera. Una proposizione può essere: · necessaria → vera in tutti i mondi · possibile → vera in almeno un mondo · impossibile → vera in nessun mondo · contingente → vera nel mondo attuale, falsa in altri RDF lavora sempre nel dominio del possibile, non del necessario. Quando scriviamo un grafo RDF non stiamo dicendo “il mondo è così” , ma stiamo dicendo il mondo deve essere fatto in modo tale che queste affermazioni risultino vere. Un grafo RDF, quindi, riduce l’insieme dei mondi possibili : ammette solo quelli compatibili con le sue triple. A questo punto entra in gioco un concetto centrale del Semantic Web: la concettualizzazione. Una concettualizzazione è una visione strutturata del mondo , costruita per uno scopo comunicativo. Non è la realtà, ma una sua ricostruzione intenzionale e semplificata. Un esempio classico è quello della luce: · per alcuni fenomeni è utile concettualizzarla come onda · per altri come particella Entrambe le concettualizzazioni sono valide, ma incompatibili tra loro se prese alla lettera. Allo stesso modo RDF, RDFS, OWL non descrivono la realtà , ma descrivono una concettualizzazione della realtà Per rendere questo concetto matematicamente preciso, introduciamo la nozione di interpretation structure. Un’interpretation structure è una coppia: I=(Δ,ρ) dove: · Δ è un insieme non vuoto di oggetti, il dominio di discorso · ρ è un insieme finito di relazioni binarie su Δ Ogni relazione rappresenta una categoria concettuale. Supponiamo di avere tre blocchi: a, b, c. Il nostro dominio è: Δ={a,b,c}\Delta = {a, b, c}Δ={a,b,c}

La concettualizzazione include una sola relazione: onTopOf. Un’interpretation structure possibile è: · onTopOf = {(c, b)} Questa struttura rappresenta una situazione in cui c è sopra b. La relazione è intended (rispetta i vincoli). Un’altra struttura possibile è: · onTopOf = {(a, c), (b, c)} Questa struttura, però, non è accettabile ( non intended ) perché viola un vincolo implicito della concettualizzazione: un blocco può avere al massimo un blocco sopra di sé. Qui emerge un concetto fondamentale: non tutte le interpretation structures sono ammissibili. Possiamo ora dire formalmente: una concettualizzazione è l’insieme di tutte e sole le interpretation structures che rispettano i vincoli impliciti della visione del mondo adottata. Nel mondo RDF esistono due tipi di entità:

  1. Individui – persone, oggetti, luoghi
  2. Proprietà – relazioni binarie tra individui Sintatticamente sono entrambi IRIs. ma semanticamente non lo sono affatto. Un individuo rappresenta una cosa nel mondo. Una proprietà rappresenta un insieme di coppie di cose. Per questo RDF introduce una struttura semantica speciale: la RDF interpretation structure. Una RDF interpretation structure consiste in: · IR : insieme delle risorse · IP : insieme delle proprietà · IEXT : funzione che associa a ogni proprietà una relazione binaria su IR Formalmente: IEXT(P)⊆IR Esempio: Se ex:onTopOf è una proprietà, allora: · IEXT(ex:onTopOf) potrebbe essere {(c, b)} cioè: c è sopra b.

🔹 IL — interpretazione dei literal I literal, se ben formati, denotano risorse. Esempio: "25"^^xsd:integer può denotare il numero 25. Ma: "abc"^^xsd:integer non denota nulla → per questo IL è parziale. Ora la domanda chiave: quando una tripla è vera? Consideriamo la tripla RDF: ex:Marco ex:viveIn ex:Roma. Dire che questa tripla è vera non significa dire che è vera nel mondo reale. Significa che è vera in una certa simple interpretation. Come lo verifichiamo?

  1. Guardiamo cosa denotano i nomi: o ex:Marco → Marco o ex:viveIn → viveIn o ex:Roma → Roma
  2. Controlliamo se: (Marco, Roma) ∈ IEXT(viveIn) Se sì → la tripla è vera. Se no → la tripla è falsa Esempio Grafo RDF G: ex:c ex:onTopOf ex:b. Simple interpretation S: · risorse: {a, b, c} · proprietà: {onTopOf}

· IEXT(onTopOf) = {(c, b)} · IS(ex:c) = c · IS(ex:onTopOf) = onTopOf · IS(ex:b) = b 👉 La tripla è vera in S. Ma in un’altra simple interpretation: · IEXT(onTopOf) = {(a, b)} la stessa tripla sarebbe falsa. Questo è fondamentale: la verità è relativa all’interpretazione , non assoluta. E i blank node? Consideriamo: ex:c ex:onTopOf _:x. Qu non stiamo nominando una risorsa precisa. Stiamo dicendo: esiste qualcosa tale che c è sopra quella cosa Semanticamente: · proviamo a scegliere una risorsa qualsiasi · se ne esiste almeno una che rende vera la tripla → la tripla è vera I blank node introducono esistenza , non identità. Satisfiability: quando un grafo non è contraddittorio. Un grafo è soddisfacibile se esiste almeno una simple interpretation che lo rende vero. È insoddisfacibile se nessuna interpretazione può renderlo vero. Questo coincide con l’intuizione di contraddizione logica. Entailment : Dire che un grafo RDF G entail un grafo RDF H significa che ogni modo possibile di interpretare il mondo che rende vero G rende vero anche H. Esempio 1: un entailment che NON vale Consideriamo questo grafo G: ex:Marco ex:viveIn ex:Roma.