Corso di Laurea Specialistica in Ingegneria Informatica Corso di Linguaggi e Tecnologie Web “Real world” Semantics Eufemia TINELLI A. A. 2011 - 2012 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 E. TINELLI – LTW A. A. 20112011-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> E. TINELLI – LTW A. A. 20112011-2012 hCard è un semplice formato per rappresentare persone, aziende, organizzazioni, usando lo standard vCard (RFC2426) 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:[email protected] mio indirizzo email </a>. E. TINELLI – LTW A. A. 20112011-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 E. TINELLI – LTW A. A. 20112011-2012 5 SPARQL: Esempio Restituisci il “full name” di tutte le persone nel dataset E. TINELLI – LTW A. A. 20112011-2012 6 SPARQL: Esempio Restituisci la relazione tra John e Mary E. TINELLI – LTW A. A. 20112011-2012 7 SPARQL: Esempio Restituisci tutte le persone sopra i 30 anni E. TINELLI – LTW A. A. 20112011-2012 8 SPARQL: Esempio Restituisci tutte le persone e (opzionalmente) le loro spose E. TINELLI – LTW A. A. 20112011-2012 9 Linked Open Data - LOD E. TINELLI – LTW A. A. 20112011-2012 10 Un caso di studio: http://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 E. TINELLI – LTW A. A. 20112011-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.) E. TINELLI – LTW A. A. 20112011-2012 12 Schema normalizzato - Jena1 E. TINELLI – LTW A. A. 20112011-2012 13 Schema denormalizzato – Jena2 E. TINELLI – LTW A. A. 20112011-2012 14 Sesame (1/2) • Framework open source in java sviluppato all’interno del progetto On-ToKnowledge (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. E. TINELLI – LTW A. A. 20112011-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 E. TINELLI – LTW A. A. 20112011-2012 16 MySQL schema E. TINELLI – LTW A. A. 20112011-2012 17 PostgreSQL schema E. TINELLI – LTW A. A. 20112011-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. E. TINELLI – LTW A. A. 20112011-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')); E. TINELLI – LTW A. A. 20112011-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. E. TINELLI – LTW A. A. 20112011-2012 21