L’acronimo SPARQL sta per SPARQL Protocol and RDF Query Langua- ge7 ed `e un linguaggio per l’interrogazione dell’RDF, `e stato accolto come ultimo tassello per l’edificazione del Web Semantico ed `e un W3C Recom- mendation dal 15 Gennaio 2008. Permette di effettuare query utilizzando la sintassi Turtle, un’estensione di N-Triples, alternativa estremamente sinteti- ca e intuitiva rispetto al tradizionale RDF/XML.
3.3 SPARQL 39
Le query SPARQL si basano sul meccanismo del pattern matching e in parti- colare su un costrutto, il triple pattern, che ricalca il modello a triple di RDF fornendo un modello flessibile per la ricerca delle corrispondenze.
?titolo ex:autore ?autore
In questo triple pattern ci sono due variabili contrassegnate dal carattere ?. Le variabili fungono da incognite mentre ex:autore funge da costante. Le triple RDF che trovano riscontro nel modello associeranno i propri termini alle variabili corrispondenti.
Ora prendiamo ad esempio le seguenti triple RDF: @prefix ex: <http://example.org/ex/>
@prefix: <http://example.org/esempio/> :TheRisingTied ex:autore "Mike Shinoda". :Redemption ex:autore "Mike Shinoda". :Meteora ex:autore "Linkin Park". :Meteora ex:anno 2003.
Le asserzioni sono espresse nella sequenza soggetto-predicato-oggetto e de- limitate da un punto. @prefix introduce i prefissi e i namespace mentre i due punti senza prefisso definiscono il namespace di default. Gli URI sono inclusi tra parentesi uncinate e i letterali di tipo stringa sono contrassegnati da virgolette.
Un esempio di query SPARQL `e la seguente: PREFIX ex: <http://example.org/ex/> SELECT ?titolo ?autore ?anno
FROM <http://example.com/listacd.ttl> WHERE {?titolo cd:autore ?autore .
?titolo cd:anno ?anno . }
La sintassi `e molto simile a SQL. PREFIX dichiara prefissi e namespace, SELECT definisce le variabili di ricerca da prendere in considerazione nel ri- sultato, FROM specifica il set di dati su cui verr`a effettuata la query (nel caso
specifico all’indirizzo http://example.com/listacd.ttl), la clausola WHERE definisce i triple pattern che faranno da criterio di selezione.
Applicando la query all’esempio di triple precedente avremo come risulta- to: La query precedente ha escluso le triple che possiedono solo due termini
titolo autore anno Meteora Linkin Park 2003 Tabella 3.1: Risultato della query 1
richiesti (invece che tre). Si pu`o riformulare la query in maniera da compren- dere l’eventuale assenza di alcuni termini inserendo il costrutto OPTIONAL. PREFIX ex: <http://example.org/ex/>
SELECT ?titolo ?autore ?anno
FROM <http://example.com/listacd.ttl> WHERE {?titolo cd:autore ?autore .
OPTIONAL { ?titolo cd:anno ?anno . } }
Il secondo pattern `e dichiarato come opzionale quindi le variabili prive di valore compariranno vuote. Il risultato della query `e il seguente: Un ulte-
titolo autore anno TheRisingTied Mike Shinoda
Redemption Mike Shinoda
Meteora Linkin Park 2003 Tabella 3.2: Risultato della query 2
riore modo per assicurare un certo grado di elasticit`a `e inserire la parola chiave UNION che funziona come un OR logico, quindi cattura sia le triple che soddisfano il primo triple pattern sia il secondo. Un esempio di query `e il seguente:
3.3 SPARQL 41
PREFIX ex: <http://example.org/ex/> SELECT ?titolo ?autore ?anno
FROM <http://example.com/listacd.ttl> WHERE {
{?titolo cd:autore ?autore } UNION
{ ?titolo cd:anno ?anno } }
SPARQL mette a disposizione un costrutto per porre delle restrizioni sui valori delle variabili utilizzando il comando FILTER:
PREFIX ex: <http://example.org/ex/> SELECT ?titolo ?autore ?anno
FROM <http://example.com/listacd.ttl> WHERE {?titolo cd:anno ?anno .
FILTER { ?anno > 2001 } }
Nell’esempio verranno visualizzati solo le triple che avranno nella variabile una valore superiore a 2001. Nel costrutto FILTER `e possibile associarlo al comando regex per il pattern matching con espressioni regolari.
Capitolo 4
Evaluation
In questo capitolo si presenteranno i risultati ottenuti sul prototipo. Si passer`a da una valutazione qualitativa confrontando i dati con dei golden standard utilizzati nella Semantic Publishing Challenge 2014 a una valuta- zione quantitativa cercando di analizzare il numero di riferimenti bibliografici che il software riesce a rilevare su un particolare dataset.
4.1
Semantic Publishing Challenge
La realizzazione di CiNeX `e scaturita seguendo le linee guida del Task 2 della ESWC-14 Challenge1, primo di una serie di eventi all’European Seman- tic Web Conference2 che ha come scopo la produzione di dati per il Semantic
Publishing. La caratterizzazione dell’evento del 2014 ha avuto al centro della discussione l’estrazione di informazioni e il loro utilizzo per valutare la qua- lit`a della produzione scientifica. Come visto nel capitolo 1 esistono dataset in linked data, come DBLP, ma coprono solo informazioni bibliografiche di base che non permettono di valutarne la qualit`a. In sostanza lo scopo della challenge `e quello di ricercare le applicazioni pi`u innovative e di impatto nel contesto emergente.
1http://challenges.2014.eswc-conferences.org/index.php/SemPub 2http://2014.eswc-conferences.org/
Tra i Task approntati il lavoro esposto in questa tesi si `e soffermato sulla se- conda attivit`a: estrazione e caratterizzazione delle citazioni. Ai partecipanti `e richiesto di processare un insieme di articoli scientifici in XML e creare una rete citazionale. I Dataset di input sono codificati in JATS e selezionati dai PubMedCentral Open Access Subset3, dai Pensfot Biodiversity Data Jour-
nal4 e dall’archivio Zookeys5. L’elaborazione `e stata effettuata dapprima su
un Training Dataset di 150 file e in seguito su un Evaluation dataset conte- nente 400 articoli.
Il fine ultimo del task `e quello di rispondere a 10 query mentre il lavoro di tesi qui esposto si `e limitato a fornire risposte alle prime quattro con relativi fattori di valutazione della qualit`a delle risposte.
Le 10 query sono:
1. Identificare tutti gli articoli citati dall’articolo X 2. Identificare tutte le riviste citate dall’articolo X
3. Identificare tutti gli autori citati dall’autore il cui cognome `e X
4. Identificare tutti gli articoli citati dall’articolo X e scritti dallo stesso autore (o alcuni di questi)
5. Identificare tutti gli articoli citati pi`u volte dal paper X
6. Identificare tutti gli articoli citati pi`u volte nello stesso paragrafo dal- l’articolo X
7. Identificare la sovvenzione (o pi`u di una) che ha supportato la ricerca presentata nell’articolo X, insieme all’ente che l’ha finanziata
8. Identificare la sezione Literature review delll’articolo X
9. Identificare tutti gli articoli di cui l’articolo X dichiara di utilizzare metodologie e teorie
3http://www.ncbi.nlm.nih.gov/pmc/tools/openftlist/ 4http://biodiversitydatajournal.com/