Struttura del semantic web

De Cliomatica - Digital History
Tempo di lettura 20 minuti - per Federico Mazzoni


Triple, RDF e identificatori

La prima attestazione del termine “Semantic Web” risale al 1999, nel libro Weawing the Web di Tim Berners-Lee, già inventore del Web tradizionale:

Ho un sogno per il Web [...] [in cui] le macchine diventino capaci di analizzare tutti i dati nel Web - i contenuti, i link, gli scambi fra le persone e i computer. Un "Semantic Web" che dovrebbe rendere questo possibile deve ancora emergere, ma quando lo farà i meccanismi che quotidiani degli scambi, della burocrazia, delle nostre vite di tutti i giorni saranno gestiti da macchine che parlano a macchine, lasciando agli umani il compito di fornire ispirazione e intuizione[1].

Come detto alla base del Semantic Web v’è quindi la volontà di un web machine-readable. Quello che per definizione stessa dell’autore è poco più che “un sogno” trova una descrizione più dettagliata in ambito pratico in un articolo del 2001: «perché il Semantic Web possa funzionare i computer devono aver accesso a collezioni strutturate di informazioni e set di regole d’inferenza che possano utilizzare per condurre ragionamenti automatici»[2].

È in questo contesto che viene adoperato un Resource Description Framework, o RDF. RDF nasce con lo scopo di descrivere relazioni fra un set di oggetti (o “risorse”), attraverso dei grafi della forma soggetto – verbo – oggetto, che vengono quindi definiti “triple”. Poiché la risorsa con la funzione di “verbo” ha lo scopo di unire fra loro altre due risorse, essa è anche definita “proprietà”. Ad ogni risorsa è poi associato un identificatore.

Il fatto che la nave Andrea Doria sia naufragata nel 1956 potrebbe essere espresso come segue (benché non necessario, solitamente gli identificatori adoperati sono in inglese) in RDF:

http://esemp.io/andreaDoria -http://esemp.io/shipwreckedInYear-> http://esemp.io/1956

Poiché RDF nasce come linguaggio descrittivo di qualsiasi tipo di dato del World Wide Web, i grafi hanno un carattere agerarchico e un set di triple può essere facilmente unito a un altro set di triple, ottenendo un grafo più grande. La risorsa “Andrea Doria” (o, più specificatamente, la risorsa http://esempio.it/AndreaDoria che ha come referente la nave Andrea Doria, come vedremo a breve) potrebbe essere connessa anche alla risorsa “1950” dalla proprietà “builtInYear”.

http://esemp.io/andreaDoria -http://esemp.io/builtInYear-> http://esemp.io/1950

Il risultato sarebbe quindi un grafo più grande e più ricco di informazioni. A sua volta, la risorsa “1950” potrebbe essere connessa a “Peanuts” da “yearOfDebutOf”. Il fatto che il fumetto Peanuts sia debuttato nel 1950 non aggiunge tuttavia alcuna informazione sulla nave Andrea Doria. Benché sia possibile estendere il grafo includendo sempre più risorse, non necessariamente un grafo più grande è più informativo per un certo ambito di interesse.

In entrambe le nostre triple, abbiamo definito la nave Andrea Doria come http://esemp.io/AndreaDoria. È un esempio di URI (Uniform Resource Identifiers), forma generalizzata di URL (Uniform Resource Locators), identificatori unici per tutti gli oggetti del Semantic Web che garantiscono l’intercompatibilità di più grafi. Le due triple che abbiamo visto come esempio potrebbero essere state scritte in momenti diversi, in luoghi diversi, da persone diverse, ma utilizzando per rappresentare la risorsa “Andrea Doria” lo stesso URI possono essere combinate fra loro, ottenendo un grafo più informativo.

Nel caso l’identificatore contenga caratteri UNICODE, e non ASCII, parliamo invece di un IRI (International Resource Identifiers): http://esemp.io/renéDescartes è un esempio di IRI. È importante ricordare che, per garantire l’intercompatibilità fra diversi grafi gli identificatori (sia URI che IRI) utilizzati devono essere i medesimi. Per questo motivo esistono librerie di identificatori, sia per individui che per proprietà o classi, dette “vocabolari”. FOAF, ad esempio, presenta classi e proprietà che descrivono le relazioni fra più persone (ad esempio la proprietà “knows”, conosce, ha come URI http://xmlns.com/foaf/0.1/knows). Wikidata, invece, associa un URI a ogni oggetto presente su Wikipedia: nel caso dell’Andrea Doria abbiamo https://www.wikidata.org/wiki/Q156521.

Per praticità, in luogo di scrivere l’intero URI si usano spesso dei prefissi, ad esempio wd: o foaf:. Ad esempio, dopo aver definito Wikidata (https://www.wikidata.org/wiki/) come wd:, possiamo richiamare l’oggetto “Andrea Doria” semplicemente con wd:Q156521.

Organizzare la conoscenza

RDF dispone di varie estensioni che ne aumentano l’espressività. RDF Schema, o RDFS, arricchisce RDF con il vocabolario e la relativa semantica per classi e sottoclassi, proprietà e sottoproprietà. Con RDFS è possibile ad esempio definire l’Andrea Doria come un’istanza della classe “Ship”, a sua volta istanza della classe “Vehicle”. “Vehicle” avrà altre sotto-classi al suo interno, ad esempio “Car”, che a loro volta potranno presentare come istanze altre sotto-classi ancora, o degli individui. RDFS permette di creare simili classificazioni per le proprietà (ad esempio “shipwreckedInYear” potrebbe essere una sotto-proprietà di “destroyedInYear”). Con RDFS è anche possibile limitare il dominio (l’equivalente del soggetto) e il range (l’equivalente dell’oggetto) di una determinata proprietà, impostando ad esempio la classe “Year” come unico possibile range di “destroyedInYear”.

In coda a questo articolo proponiamo un breve tutorial a riguardo. Per il momento, limitiamoci a scrivere, come tripla, che l’Andrea Doria è una nave.

http://esemp.io/andreaDoria -rdfs:type-> http://esemp.io/Ship

Quello che abbiamo proposto è un (semplice ed elementare) esempio di tassonomia: le specifiche di RDFS sono utilizzate per classificare un determinato campo di interesse. La tassonomia è un caso particolare di ontologia: se in una tassonomia gli individui sono classificati (l’Andrea Doria è presentata come istanza della classe “nave”), in un’ontologia sono anche messi in relazione fra loro (l’informazione che l’Andrea Doria sia naufragata nel 1956 non è presente in una tassonomia; può essere presente, tuttavia, il fatto che 1956 sia un’istanza della classe “anno”, un “anno” un’istanza della classe “misura di tempo” e così via).

Ma cosa si intende per “ontologia”?

Le ontologie

Termine dall’uso plurisecolare in filosofia, nel contesto del Semantic Web “ontologia” definisce «una formale, esplicita specificazione di una comune concettualizzazione»[3], cioè della Weltanschauung sottostante un qualsiasi studio del mondo. Ad esempio in fisica la luce può essere classificata o come onda, o come particella. Sono due concettualizzazioni in contraddizione fra loro, figlie di due diverse visioni del mondo, che in una eventuale ontologia non potrebbero esistere contemporaneamente. Un esempio in ambito storico potrebbe essere costituito dalla metodologia dietro la scelta di riportare un determinato evento o meno: a seconda della propria visione del mondo la Storia può essere un’elencazione di tutti gli eventi del passato o essere intrinsecamente portatrice di una narrazione che tenta di unire in un fil rouge solo alcuni eventi.


Più pragmaticamente, possiamo definire ontologia come una «descrizione di conoscenza limitatamente a un certo dominio di interesse»[4], che riporta tutti gli oggetti inerenti quell’ambito e la relazione (espressa attraverso delle triple RDF) che sussiste fra loro. Un’ontologia dedicata agli eventi dell’anno 1950 riporterebbe tanto la costruzione dell’Andrea Doria tanto il debutto dei Peanuts, evento che sarebbe invece escluso da un’ontologia dedicata all’Andrea Doria, che riporterebbe invece ogni fatto legato alla nave (dagli oggetti che fisicamente la compongono alle date di ogni viaggio). Le ontologie sono fra le più comuni basi di conoscenza (o knowledge bases) utilizzati nel contesto del Semantic Web.

RDF dispone di un’estensione dedicata alla creazione di ontologie: l’Ontology Web Language, o OWL. OWL permette di specificare alcuni attributi particolarmente sofisticati per classi e proprietà[5]: ad esempio se due classi sono disgiunte (o disjoint, cioè se non hanno alcun elemento in comune) o la cardinalità di una proprietà (cioè se una proprietà ha un numero minimo elementi associati). È anche possibile definire una classe in base ad altre classi e proprietà: ad esempio gli individui della classe “ItalianCitizen” sono gli individui della classe “Person” che hanno associato l’elemento “Italian” alla proprietà “hasCitizenship”.

OWL realizza il sogno di Berners-Lee permettendo effettivamente alle macchine di “ragionare”. Su un’ontologia codificata in OWL è possibile applicare vari ragionatori, o reasoner, strumenti che possono inferire proprietà degli oggetti presenti nell’ontologia. Ad esempio, definita la classe “ItalianCitizen” come sopra, un reasoner può inferire che una “Person” che “hasCitizenship” “Italian” è effettivamente un “ItalianCitizen” (è, cioè, un individuo di quella classe), benché il creatore dell’ontologia non lo abbia espressamente specificato.

Per completezza ricordiamo che esistono vari profili di OWL. Quello più diffuso nel campo di nostro interesse è OWL-DL, in grado di effettuare inferenze di logica descrittiva. È un buon compromesso fra il più completo OWL-Full (che non ha però accesso a reasoner) e OWL-Lite (che dispone di meno funzioni e si basa sulla logica del primo ordine)[6].

Esistono diversi software che permettono di realizzare delle ontologie senza richiedere particolari conoscenze né di programmazione, né delle sintassi di RDF, RDFS e OWL: uno di questi è Webprotégé.


L’ipotesi del mondo aperto

Le inferenze effettuate da OWL si basano sull’ipotesi del mondo aperto (o open-world assumption): il mondo rappresentato dall’ontologia potrebbe essere incompleto e tutto ciò che non è espressamente dichiarato falso potrebbe essere vero. Supponiamo di avere nella nostra ontologia, dedicata ai grandi incidenti riguardanti veicoli:

  • la proprietà involvesShip, che connette un individuo di classe Event a un individuo di classe Ship;
  • la classe Vehicle con due sottoclassi: Ship e Airship. Le due sottoclassi non sono fra loro disgiunte;
  • la classe EventInvolvingShip, sotto-classe di Event. Questa classe è definita come comprendente tutti gli individui di classe Event collegati ad almeno un individuo di tipo Ship dalla proprietà involvesShip;
  • il dirigibile inglese R101 (protagonista di un tragico incidente aereo nel 1930), correttamente classificato come Airship;
  • l’evento destructionOfAndreaDoria, correttamente classificato come EventInvolvingShip.

Supponiamo accidentalmente di connettere destructionOfAndreaDoria al dirigibile R101 con la proprietà involvesShip. Ci aspetteremmo di ricevere un errore: il dirigibile R101 non è una nave. Controintuitivamente, il reasoner di OWL invece classificherebbe l’R101 sia come dirigibile (Airship), sia come nave (Ship), in quanto nell’ontologia non è espressamente negato che un dirigibile possa anche essere una nave. Per ovviare al problema è necessario specificare che Ship e Airship, sottoclassi di Vehicle, sono una disgiunta dall’altra.

Il ragionatore di OWL è inoltre in grado di rilevare le possibili inconsistenze in un’ontologia – ad esempio, se una persona è classificata sia come Living, sia come Dead (e le due classi sono state definite come disgiunte).

I limiti del web semantico

Il lettore potrà trovare singolare che una tecnologia con oltre 20 anni sulle spalle sia ancora relativamente poco usata. I motivi sono molteplici, e in questo paragrafo verranno solo sommariamente esposti.

Da una parte, in tutto il mondo (pur in forma diversa) il Web in senso ampio ha assunto l’identità di uno Splinternet, termine che si riferisce alla divisione di Internet […] in più sotto-gruppi con interessi specifici (tribù digitali), i cui membri quasi sempre usano Internet o il web per comunicare o leggere materiali di interesse specifico del solo sotto-gruppo. Più in generale, nello Splinternet (che potremmo tradurre in Divi-net, un Internet diviso, splitted) l’utente ha accesso solo ad alcuni contenuti – uno Stato potrebbe oscurargliene qualcuno, un’azienda privata in posizione semi-monopolistica ostracizzarne degli altri. Il World Wide Web di Berners-Lee nasce con l’auspicio di rendere la conoscenza più accessibile, e il Semantic Web dovrebbe giocare in questo un ruolo chiave, ma nella pratica il Web ha spesso assunto altre forme.

Dall’altra, il Semantic Web può apparire eccessivamente complesso a un pubblico non specializzato (per quanto – come vedremo – sia possibile realizzare ontologie senza, ad esempio, scrivere direttamente in RDF) e le varie tecnologie che abbiamo qui accennato si sono sviluppate lontane dal pubblico mainstream, quasi indipendentemente dalla diffusione capillare di Internet. Fra il serio e il faceto (e mostrando comunque una profonda conoscenza dell’argomento), in A Programmable Web Aaron Swartz tratta a più riprese questo tema, evidenziando la mancanza di pragmatismo nella creazione del Semantic Web.

Piuttosto che abbracciare l’atteggiamento “facciamo qualcosa che funziona!” che ha reso il Web (e Internet) un così grande successo, [i proponenti del Semantic Web] hanno imposto lo stile mentale formalizzante dei matematici e le strutture istituzionali degli accademici e delle industrie militari. Hanno formato comitati per formare gruppi di lavoro per scrivere bozze di ontologie che dettagliatamente descrivessero (in documenti Word di 100 pagine) tutte le possibili cose nell’universo e le varie proprietà che possono avere e hanno speso ore discutendo del sesso degli angeli, se una lavatrice è [classificabile come] un elettrodomestico da cucina o uno strumento di pulizia della casa. […] E così il “Semantic Web Activity” al Worldwide Web Consortium (W3C) si è preso un sacco di tempo a definire uno standard dopo l’altro: l’Extensible Markup Language (XML), il Resource Description Framework (RDF), la Web Ontology Language (OWL), strumenti per la Gleaning Resource Descriptions from Dialects of Languages (GRDDL), il Simple Protocol And RDF Query Language (SPARQL) (come creato dalla RDF Data Access Working Group (DAWG)). In pochi hanno ricevuto una diffusione capillare e i pochi ce l’hanno avuta (XML) sono considerati all’unanimità piaghe planetarie, offese contro il duro lavoro di programmatori che hanno spinto per formati più razionali (come JSON) al posto di roba ipercomplicata senza né capo né coda priva di qualunque fondamento nella realtà[7].

Con l’esempio della lavatrice, nella sua causticità Swartz critica implicitamente non solo il web semantico, ma anche le ontologie. Su una simile linea (ma con toni più pacati) si muove Clay Shirky, secondo cui le ontologie sono ottime per classificare oggetti fisici (come un libro, che o è posto in uno scaffale, o è posto in un altro), ma mostrano tutti i propri limiti nel Web. Quando i dati sono avulsi dalla presenza fisica, diventano abbastanza fluidi da poter essere raggruppati differentemente da diversi lettori, in giorni differenti. La più grande virtù del web, nel gestire i dati, è modificare l’organizzazione da un giudizio a priori, basato sul contenuto, a uno ad hoc, basato sul contesto, intrinseco alla società, costantemente alterato. Il Web ci libera dal bisogno di dibattere se “Il libro dei cinque anelli” debba essere un libro di economia o un manuale di strategia militare – è chiaramente entrambi e [grazie al Web e ai dati non-fisici] non solo siamo liberi di formulare questo giudizio nettamente o in anticipo, ma siamo anche liberi di non formularlo tout court.

Nel web fluido di Shirky, le ontologie del Semantic Web “imposte dall’alto” (in modo non troppo distante dagli “standard” bersaglio di Swartz) sono fuori luogo; a questo approccio verticale se ne preferisce uno orizzontale, con gli utenti stessi che costantemente “taggano” i contenuti.

Al giorno d’oggi le ontologie sono ancora usate in ambito accademico, ma soprattutto in contesti aziendali a partire da metà anni 2000 si sono diffusi nuovi tipi di knowledge bases: i Linked Data mirano a creare network semantici quanto più estensivi possibili, facendo venire meno la critica di Shirky (pensando solo post hoc a possibili utilizzi, tutto è classificato, anche in più modi), mentre i Knowledge Graphs raccolgono una serie di dati relativi un ristrettissimo ambito di interesse (come le informazioni relative a una persona) e utilizzano spesso tecnologia proprietaria (ad esempio di Google), rappresentando così un ideale “controparte Splinternet” ai desideri divulgativi del Web immaginato da Berners-Lee. La nascita di tecnologie alternative a quelle esposte in questo articolo ricorda come l’attuale, controverso web semantico non sia l’unico possibile web semantico.

Chiudiamo ricordando che in anni più recenti si è iniziato a dibattere sul rapporto fra Semantic Web e Machine Learning. Quest’ultimo ha effettivamente “insegnato alle macchine” a ragionare (come detto, uno degli obiettivi del Semantic Web), con risultati senz’altro più capillari. Le due tecnologie non sono tuttavia necessariamente in competizione – le knowledge bases del web semantico possono anzi fornire alla AI il necessario contesto per ragionare in maniera significativa per l’utente[8].

Vediamo ora nel dettaglio alcuni esempi del Semantic Web nella Digital History.


Bibliografia e sitografia

  1. BERNERS-LEE, Tim, Weaving the Web: The Original Design and Ultimate Destiny of the World Wide Web by Its Inventor, New York, Harper Collins, 2000, pp. 147-148.
  2. Cit. in HITZLER, Pascal, «A Review of the Semantic Web Field», in Communications of the ACM, 64, 2/2021, pp. 76-83, URL: < https://cacm.acm.org/magazines/2021/2/250085-a-review-of-the-semantic-web-field/fulltext > [consultato il 10 agosto 2021].
  3. HITZLER, Pascal, op. cit.
  4. HITZLER, Pascal, Krötzsc, Markus, RUDOLPH, Sebastian, Foundations of Semantic Web Technologies, Boca Raton, CRC Press, 2009, p. 31.
  5. HITZLER, Pascal, Krötzsc, Markus, RUDOLPH, Sebastian, op. cit., in particolare al cap. 4.
  6. Ibidem.
  7. SWARTZ, Aaron, A Programmable Web: An Unfinished Work, s.l., Morgan & Claypool, 2013, URL: < https://www.morganclaypool.com/doi/pdf/10.2200/S00481ED1V01Y201302WBE005 > [consultato il 10 agosto 2021].
  8. KEJRIWAL, Mayank, Artificial Intelligence needs to be more context-aware, in Mayank Kejriwal, 9 febbraio 2021, URL: < https://mkejriwal1.medium.com/artificial-intelligence-needs-to-be-more-context-aware-ecc3097ee2ea > [consultato il 10 agosto 2021].



Citazione di questo articolo
Come citare: MAZZONI, Federico . "Struttura del semantic web". In: CLIOMATICA - Portale di Storia Digitale e ricerca. Disponibile in: http://lhs.unb.br/cliomatica/index.php/Struttura_del_semantic_web. il giorno: 27/06/2024.






Informare errori in questa pagina