Corso di Laurea Specialistica in Ingegneria Informatica Corso di Linguaggi e Tecnologie Web A. A. 2011-2012 Real world Semantics Eufemia TINELLI
Pubblicare metadati su Web Pubblicare file RDF sul web MIME-type associato al file deve essere application/rdf+xml # per separare indirizzo web del file e il nome interno della porzione della pagina URI usati per navigare il file Svantaggio: per accedere ad una singola risorsa bisogna caricare tutto il file Endpoint SPARQL Un generico client RDF può interrogare l endpoint inviando una query SPARQL L endpoint separa la richiesta dai dati interni all applicazione Microformati ed RDFa 2012 2
Microformati http://microformats.org Costruiti su (X)HTML esistenti per pubblicare e condividere più informazione Progettati per essere modulari ed inseribili all interno di pagine web Modellano standards ampiamente utilizzati (ical, vcard,...) Altri microformati: coordinate geografiche, orari di apertura ristoranti/attività commerciali, CVs, <div class="vcard"> <div class="fn">joe Doe</div> <div class="org">the Example Company</div> <div class="tel">604-555-1234</div> <a class="url" href="http://example.com/">http://example.com/</a> </div> hcard è un semplice formato per rappresentare persone, aziende, organizzazioni, usando lo standard vcard (RFC2426) 2012 3
RDFa - http://www.w3.org/tr/rdfa-syntax/ Resource Description Framework in attributes RDFa è una sintassi di serializzazione per incapsulare un grafo RDF in pagine XHTML Basato sugli stessi principi dei Microformati: non un nuovo linguaggio compatibile con le tecnologie esistenti ma estensibile!! 3 costrutti per rappresentare la tripla RDF <span about= subject >...</span> <a rel= predicate href= object >...</a> <span property= predicate [content= object ]>object</span> Es. I'm currently reading <span about= urn:isbn:0-596-00027-8 > <span property="dc:title">programming Perl</span> by <span property="dc:creator">larry Wall</span> </span>.. Potete contattarmi al <a rel= vcard:email href= mailto:m.rossi@gmail.co mio indirizzo email </a>. 2012 4
Sparql Protocol And Rdf Query Language (SPARQL) Linguaggio di interrogazione per dataset RDF basati su HTTP/SOAP: graph pattern matching Nessuna inferenza propria del linguaggio SPARQL query si compone di Uno SPARQL endpoint accetta queries and restituisce risultati via HTTP 2012 5
SPARQL: Esempio Restituisci il full name di tutte le persone nel dataset 2012 6
SPARQL: Esempio Restituisci la relazione tra John e Mary 2012 7
SPARQL: Esempio Restituisci tutte le persone sopra i 30 anni 2012 8
SPARQL: Esempio Restituisci tutte le persone e (opzionalmente) le loro spose 2012 9
Linked Open Data - LOD 2012 10
Un caso di studio: http://dbpedia.org dbpedia.org/ DBpedia project: estrarre informazione strutturata dawikipedia e renderla accessibile sul Web DBpedia KB descrive più di 2.6 milioni di entità (persone, luoghi, lavori musicali, films, aziende, ) e contiene 3.1 milioni di links a pagine esterne; e 4.9 milioni di RDF links in altri Web data sources 2012 11
Jena2 Ontology Stores vs Jena1 Jena2 è la seconda generazione di Jena toolkit, progetto open-source sviluppato in java per la memorizzazione di triple RDF in conformità alle ultime specifiche del W3C. L architettura di Jena2 presenta un modulo dedicato alla gestione dei grafi RDF (graph implementations in-memory o database-backed, inferred graphs). In particolare, Jena database subsystem implementa la persistenza di grafi RDF usando un database (cioè SQL standard) attraverso una connessione JDBC. Sono attualmente supportati i seguenti DBMS: Postgresql, MySQL, Oracle, Berkeley DB anche se Jena offre un architettura flessibile che permette di importare altri engine SQL. Alcune caratteristiche aggiuntive di Jena 2: uno schema denormalizzato, gestione della reificazione, ottimizzazione delle query (RDQL) ed una interfaccia dedicata alla gestione dei grafi. Jena supporta una serie di ragionatori predefiniti (transitive reasoner, OWL-DL reasoner, ecc.) 2012 12
Schema normalizzato - Jena1 2012 13
Schema denormalizzato Jena2 2012 14
Sesame (1/2) Framework open source in java sviluppato all interno del progetto On-To- Knowledge (IST-1999-10132) che permette la memorizzazione e la ricerca di conoscenza formalizzata secondo lo standard RDF(S). Per la memorizzazione delle triple RDF, Sesame utilizza DBMS quali MySql, PostGres e Oracle. Ontology Middleware Module (OMM) è un middleware, di fatto un estensione di Sesame, che permette la gestione di ontologie e mantiene l'indipendenza dal database grazie ad un architettura che utilizza un data layer denominato SAIL (Storage and Inference Layer). Lo svantaggio è rappresentato dal fatto che lo schema del database varia con le limitazioni ed i costrutti imposti dal DBMS scelto (relazionale oppure a oggetti). In ciascuno schema, però, l informazione è sempre modellata come tripla RDF: soggetto, predicato e oggetto. Sesame offre supporto per il controllo di concorrenza, indipendenza tra schema e istanze ed un query engine dedicato per RQL. 2012 15
Sesame (2/2) Sesame utilizza RDQL (RDF Query Language) come linguaggio di interrogazione a livello semantico delle triple RDF. L ottimizzazione del modello di query è rappresentato dal fatto che la stessa viene analizzata in streaming seguendo la struttura ad albero in cui la query stessa viene suddivisa. In tale struttura ciascun nodo rappresenta un unità di esecuzione. Il principale vantaggio di tale approccio è che, anche i risultati possono essere restituiti in streaming al layer SAIL. Sesame supporta anche SeRQL (Sesame RDF Query Language) che permette di definire path expression di lunghezza arbitraria 2012 16
MySQL schema 2012 17
PostgreSQL schema 2012 18
Oracle RDF Store Oracle Spatial 11g release 2 introduce la prima piattaforma commerciale di data management per applicazioni basate su RDF. Un nuovo object type è stato definito per gestire dati RDF basato su un graph data model: SDO_RDF_TRIPLE and SDO_RDF_TRIPLE_S Le triple RDF sono persistenti, indicizzate ed interrogabili come gli altri object-relational data types. RDF store in Oracle è costruito sull Oracle Spatial Network Data Model (NDM), in cui una network or graph cattura le relazioni tra gli oggetti. RDF graphs sono modellati come una directed logical network in NDM. 2012 19
RDF Graph in ORACLE EXECUTE SDO_RDF.CREATE_RDF_NETWORK('rdf_tblspace'); CREATE TABLE FAMILY_RDF_DATA (id NUMBER, triple SDO_RDF_TRIPLE_S); EXECUTE SDO_RDF.CREATE_RDF_MODEL ('FAMILY', 'FAMILY_RDF_DATA', 'TRIPLE'); INSERT INTO family_rdf_data VALUES (1, SDO_RDF_TRIPLE_S('family', 'http://www.example.org/family/john', 'http://www.example.org/family/fatherof','http://www.example.org/ family/suzie')); 2012 20
Riferimenti 1. E. Della Valle, I. Celino, D. Cerizza, Semantic Web Modellare e condividere per innovare, Pearson (collana Addison Wesley) 2008 2. WILKINSON, K., SAYERS, C., KUNO, H. A., AND REYNOLDS, D. Efficient RDF Storage and Retrieval in Jena2. In The first International Workshop on Semantic Web and Databases (SWDB 03) (2003), pp. 131 150 3. BROEKSTRA, J., KAMPMAN, A., AND VAN HARMELEN, F. Sesame: A Generic Architecture for Storing and Querying RDF and RDF Schema. In The First International Semantic Web Conference (ISWC 02) (2002), pp. 54 68. 4. DEL MAR ROLDAN-GARCIA, M., AND ALDANA-MONTES, J. F. A Survey on Disk Oriented Querying and Reasoning on the Semantic Web. In The 22nd International Conference on Data Engineering Workshops (ICDEW 06) (Washington, DC, USA, 2006), IEEE Computer Society, pp. 58 65. 2012 21