Prof. Massimo Ruffolo Ing. Maurizio Colica. Capitolo 4 RDF: Resource Description Framework  Introduzione  Classi e Istanze  Proprietà.

Slides:



Advertisements
Presentazioni simili
Ricorsione in SQL-99.
Advertisements

I Namespace Mario Arrigoni Neri.
WWW XML-Namespace Fabio Vitali. WWW Fabio Vitali2 Introduzione Qui esaminiamo: u Lesigenza e il funzionamento dei Namespace in XML.
Introduzione al DTD Mario Arrigoni Neri.
Introduzione ad XML Mario Arrigoni Neri.
SEMANTIC WEB Antonio Bucchiarone FBK-IRST Trento, Italy 13 Novembre 2009.
DBMS (DataBase Management System)
Recupero debito quarto anno Primo incontro
A. FERRARI Alberto Ferrari. L'HyperText Markup Language (HTML) (traduzione letterale: linguaggio di marcatura per ipertesti) è un linguaggio usato per.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità C1 Il linguaggio SQL.
1 Introduzione ad XML. 2 Problemi con SGML Complesso da comprendere ed utilizzare Non è pensato per la rete: mancano link ipertestuali e specifiche grafiche.
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
Modulo3 Linguaggi: RDF UNIVERSITA’ DI CAMERINO
Query OQL e XQUERY a confronto
Relatore: Prof. Sonia Bergamaschi Correlatore: Alexandre Passant
Il Sistema MOMIS Il progetto MOMIS (Mediator EnvirOnment for Multiple Information Sources) consiste nella realizzazione di un sistema intelligente d integrazione.
Peer to Peer DBMS: il sistema FOAF Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica – Nuovo Ordinamento Università degli.
Università degli Studi di Modena e Reggio Emilia
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
4 – Progettazione – Introduzione e Modello E-R
XML Prof. Alfredo Pulvirenti. XML XML (eXtensible Markup Language) è un meta linguaggio. Può essere definito come un insieme di regole e convenzioni che.
Basi di Dati prof. A. Longheu 4 – Progettazione – Introduzione e Modello E-R Cap. 5 Basi di dati Atzeni – Ceri – Paraboschi - Torlone.
19/01/2014 Viste. 19/01/2014 Viste Le Viste Logiche o Viste o View possono essere definite come delle tabelle virtuali, i cui dati sono riaggregazioni.
I file l I File sono l unità base di informazione nellinterazione tra utente e sistema operativo l Un file e costituito da un insieme di byte attinenti.
Metodologie per la gestione di conoscenza ontologica Prof. M.T. PAZIENZA a.a
Metodologie per la gestione di conoscenza ontologica Prof. M.T. PAZIENZA a.a
XML Prof. Barbara Pernici Politecnico di Milano. Introduzione a XML.
Basi di Dati II Sara Romano
Laboratorio di Basi di Dati Introduzione ad Access 2ª Parte.
Seminari di ingegneria del software
INFORMATICA UMANISTICA B STRUTTURE DATI BASI DI DATI RAPPRESENTAZIONE DELLA CONOSCENZA ONTOLOGIE.
Viste. Cosè una vista? è possibile creare un subset logico di dati o una combinazione di dati una vista è una tabella logica basata su una tabella o su.
Esercizio 1 Convertire il seguente DTD (esercizio 1 sui DTD) in XML Schema:
Namespace Spazio dei nomi Ing. Luca Sabatucci. Scopo I Namespace servono a: I Namespace servono a: distinguere tra elementi e attributi con lo stesso.
SQL: Structured Query Language
Importanza DTD La DTD (Document Type Definition) consente di dichiarare in maniera univoca la struttura di markup mediante la definizione dello schema.
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL IDENTIFICATORI di tabelle e attributi: stringhe di lunghezza max 18 caratteri, composte da.
HTML Lezione 8 I collegamenti ipertestuali (link).
Creare pagine web Xhtlm. Struttura di una pagina.
HTML Lezione 3 Stili.
Tesi di Laurea in Ingegneria Informatica
Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione.
Hyper-Text Mark-Up Language
1 Ontology languages. Strato dei modelli LA SCELTA DEL LINGUAGGIO Una volta selezionati i componenti dell’ontologia occorre esprimerli in maniera esplicita,
PHP - PHP: Hypertext Preprocessor. Introduzione PHP (acronimo ricorsivo per "PHP: Hypertext Preprocessor") è un linguaggio di scripting general-purpose.
HTML I tag HTML (parte 1). I tag HTML  I comandi che il browser interpreta  Etichette per marcare l’inizio e la fine di un elemento HTML  Formato e.
DAL WEB AL SEMANTIC WEB Aspetti teorici e tecnologici Carmagnola Francesca Dipartimento Informatica C.so Svizzera 185, Torino
Semantic Web. I problemi della ricerca in Web Querying  Ambiguità della formula Browsing  Arbitrarietà nei criteri di classificazione dei dati = Web.
DAmb Sergio Lovrinich 28 Settembre Descrizione Questo Software si propone di eseguire una Analisi del Codice Sorgente, mettendo a disposizione Strumenti.
Tecnologie di InternetDocument Type Definition Dott. Nicola Dragoni Document Type Definition  Document Type Definition (DTD)  Documento XML valido 
HTML e CSS C. Gena, C. Picardi, J. Sproston HTML e CSS.
Carluccio Antonio Carluccio Alessandra Caricola Giovanni Vizzino Anna Università degli Studi di Bari.
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Sapienza Università di Roma Sapienza Università di Roma Laurea specialistica in Ingegneria Informatica Seminari di Ingegneria del Software Traduzione di.
Metamodellazione in RDF Tesina del corso di Seminari di Ingegneria del Software Alberto Cerullo.
Cenni Su SGML, HTML, XML SGML (Standard Generalized Markup Language) è il padre di tutti i linguaggi "Markup" – Lo svantaggio è la "pesantezza" dei suoi.
L’Elaborazione del Linguaggio Naturale e i Linguaggi di Markup - dalla struttura al contenuto -
Servizi Internet Claudia Raibulet
WWW Metadati: RDF e RDFS Riccardo Gentilucci Marco Pirruccio.
Intelligenza Artificiale Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
Raggruppamenti e target list scorretta select padre, avg(f.reddito), p.reddito from persone f join paternita on figlio = nome join persone p on padre =
Web semantico. il Web Semantico si basa sullo standard URI (Uniform Resource Identifiers), per la definizione univoca di indirizzi Internet al livello.
Funzionalità del DBMS relazionale l Funzioni per –definizione della base di dati –inserimento / rimozione /aggiornamento di informazioni deve soddisfare.
Prof. Massimo Ruffolo Ing. Ermelinda Oro. Capitolo 4 RDF: Resource Description Framework RDFS: RDF Schema.
Eprogram informatica V anno. Introduzione a PHP Introduzione La diffusione di PHP ha avuto un notevole incremento dalla fine degli anni Novanta a oggi,
Approfondimenti SQL.
Cercare In Internet. Cercare in Rete La scuola ha un ruolo preciso in relazione a quella che nei paesi anglosassoni viene denominata: Information Literacy.
Il linguaggio SQL (Structured Query Language) è il linguaggio standard per creare, manipolare e interrogare database relazionali. SQL non è case-sensitive:
Fabio Rinnone Matricola 667/ Università di Catania Facoltà di SS. MM. FF. NN. Dipartimento di Matematica e Informatica Corso di Laurea di Primo Livello.
Oltre il web 2.0: il web semantico Seminario. World Wide Web ● Nasce nel 1991 al CERN di Ginevra Evoluzione: web dinamico ● Si basa su ● URL ● HTTP ●
Transcript della presentazione:

Prof. Massimo Ruffolo Ing. Maurizio Colica

Capitolo 4 RDF: Resource Description Framework  Introduzione  Classi e Istanze  Proprietà

RDF: Resource Description Framework Introduzione

RDF: Resource Description Framework The Resource Description Framework (RDF) è uno standard W3C per la descrizione delle risorse Web, in termini di titolo, autore, data modifica, e copyright.

Cos’è RDF? RDF sta per Resource Description Framework RDF è una piattaforma per la descrizione delle risorse sul web RDF è costituito da un modello dei dati e da una sintassi separate l’una dall’altra RDF può essere interpretato da un computer RDF non è nato per essere letto dall’uomo RDF è scritto in XML RDF fa parte delle attività del W3C per il “Web Semantico” RDF è una “W3C Recommendation“

RDF – Esempi d’uso Descrizione di proprietà di oggetti in vendita come prezzo e disponibilità Descrizione di informazioni relative a Pagine Web: autore,modifica,copyright Descrizione dei contenuti e classificazione di immagini sul web Descrizione di contenuti per facilitare il compito dei motori di ricerca Descrizione di librerie digitali

RDF è disegnato per essere interpretato da un pc RDF è stato disegnato per essere di facile interpretazione da parte di applicazioni che si occupano di trattare contenuti. RDF non è stato disegnato per essere visualizzato sul web

RDF è scritto in XML Il linguaggio XML usato da RDF è chiamato RDF/XML. Usando XML, le informazioni RDF possono essere facilmente scambiate fra computer che utilizzino differenti piattaforme e differenti linguaggi di programmazione.

RDF ed il “Web Semantico" Il linguaggio RDF fa parte del W3C's Semantic Web Activity. W3C's "Semantic Web Vision" mira ad un futuro in cui: Le risorse web siano esattamente descritte Le risorse Web possano essere estratte e catalogate direttamente da un calcolatore Le applicazioni possano automaticamente incamerare e consumare contenuti eterogenei distribuiti sul web.

RDF è un W3C Recommandation RDF è diventato un W3C Recommendation nel Febbraio Un “W3C Recommendation” è considerato all’interno della comunità internazionale come uno standard. Un W3C Recommendation è una specifica di un linguaggio del quale W3C dopo un attenta revisione ne dichiara la validità come standard. La W3C Specification per RDF si trova a questo link:

RDF Risorse, Proprietà, e valori di Proprietà RDF identifica gli oggetti attraverso una URI e descrive tali oggetti attraverso le proprietà  Una Risorsa è tutto ciò che è identificato da un Uri. Es. "  Una proprietà è una risorsa cui viene associato un nome come “mail”,“name”  Il valore di una proprietà esprime il valore che una proprietà di una risorsa può assumere. Il valore di una proprietà può essere un’altra risorsa.

RDF Risorse, Proprietà, e valori di Proprietà: un esempio. L’RDF seguente descrive ad esempio la risorsa " Notate come nell’esempio non è stato considerato alcun Namespace

Esempio Visivo mcolica author homepage Soggetto Predicato Oggetto

RDF Asserzioni La combinazione di una risorsa, una proprietà ed un valore di proprietà si chiama asserzione. In un asserzione la risorsa viene chiamata Soggetto, la proprietà Predicato ed il valore Oggetto. Nell’esempio precedente: Asserzione: “L’autore di è Maurizio Colica".  Il soggetto è:  Il predicato è: author  L’oggetto è: Maurizio Colica Assrezione: “L’homePage di è ".  Soggetto:  Predicato: homepage  Oggetto:

RDF Esempio Collezione di CD: TitleArtistCountryCompanyPriceYear Pearl DaysElisaItaliaColumbia12 euro2006 Robbie Williams Misunders toodUKCBS Records18 euro

RDF Esempio: Rappresentazione Grafica Days 2006 year Elisa artist Columbia company 12 euro price

RDF Esempi

La prima linea è la dichiarazione XML. Segue la root di un documento RDF:. Il xmlns:rdf namespace, specifica che all’interno del documento tutto ciò che porta il prefisso rdf fa riferimento al namespace " Il xmlns:cd namespace, specifica che all’interno del documento tutto ciò che porta il prefisso cd fa riferimento al namespace Il tag specifica la descrione della risorsa identificata dall’attibuto rdf:about. Gli elementi:,,, etc. sono proprietà della risorsa.

L’elemento è la root di qualsiasi documento RDF e lo identifica: in esso può essere contenuto il riferimento al namesapce RDF [descrizioni delle risorse]

L’ elemento L’ identifica una risorsa ed i suoi attributi L’ contiene elementi che descrivono le sue proprietà Gli elementi, artist, country, company, price, e year, sono definiti nel namespace Questo namespace non ha nulla a che fare con RDF. RDF definisce solo l’infrastruttura.

Proprietà come Attributi Le proprietà possono essere rappresentate come attributi

Proprietà come Risorse I valori di proprietà possono essere espressi come risorse: La proprietà artista non ha un valore ma un riferimento ad un’altra risorsa.

Proprietà come Risorse Days 2006 year artist Columbia company 12 euro price Elisa name

RDF Elementi contenitori RDF containers: sono usati per descrivere gruppi di cose. Ad esempio per elencare gli autori di un disco o di una canzone. Per descrivere questi gruppi si usano i tag:,, e.

L’elemento Rappresenta una lista di valori non ordinata. Può contenere valori duplicati.  Esempio

rdf:Bag del cuore rdf:type Elisa rdf:_1 Ligabue rdf:_2 rdf:Bag cd:artist

L’elemento Rappresenta un lista di valori ordinata Può contenere valori duplicati. Esempio

rdf:Seq Days rdf:type 01 Stay rdf:_1 02 Gli Ostacoli del cuore rdf:_2 rdf:Seq cd:song.. rdf:_3

L’elemento Rappresenta una lista di alternative Esempio

rdf:Alt del cuore rdf:type CD rdf:_1 Disco rdf:_2 rdf:Alt cd:format MC rdf:_3

RDF Terms Una lista di valori in RDF si chiamano membri. Quindi:  Un contenitore è una risorsa che contiene altri oggetti  Gli oggetti contenuti si chiamano membri.

RDF Collections RDF collections sono usati per descrivere gruppi che contengono solo gli elementi specificati.

L’attributo rdf:parseType="Collection" Un container dice che una risorsa contiene alcuni membri ma tale affermazione non è chiusa: può contenerne anche altri. RDF collections è usato per esprimere liste chiuse Una collezione è descritta dall’attibuto rdf:parseType="Collection". Example

RDF Schema (RDFS) RDF Schema (RDFS) è un estensione di RDF.

RDF Schema e Classi RDF descrive risorse tramite classi, proprietà e valori. RDF ha bisogno di definire delle classi e proprietà specifiche per un applicazione Queste classi devono essere definite usando un estensione di RDF Tale estensione è RDF Schema

RDF Schema (RDFS) RDF Schema non ha classi predefinite. RDF Schema fornisce la piattaforma per desrcivere nuovi tipi di classi. Le classi in RDF Schema sono simili alle classi di un linguaggio di programmazione ad oggetti. In RDF si possono rappresentare le risorse come istanze di classi e definire sottoclassi e tipi.

RDFS Esempi Classi e Sotto classi: La classe horse viene dichiarata come sottoclasse della classe Animal.

Esempio Abbreviato RDFS Class è sotto classe della classe rdf:Resource. Per questo motivo possiamo evitare di usare rdf:Description rdf:type ed usare direttamente rdf:class

RDF Classi e Proprietà Namespace prefix:'rdfs' URI:' Le risorse possono essere istanze di una o più classi La classe è indicata tramite l’attibuto rdf:type property La risorsa è rdf:type Student La risorsa è rdf:type Person Student è rdfs:subClassOf Person Le proprietà vengono definite in funzione della classe di risorse su cui si applicano

RDF Classi rdfs:Resource – le risorse sono istanze di questa classe rdf:Property – le proprietà sono istanze di questa classe. rdfs:Class – una classe dei linguaggi object oriented.

RDF Proprietà rdf:type – indica che una risorsa è del tipo della classe che viene specificata rdfs:subClassOf – indica la relazione classe/sottoclasse fra due classi rdfs:subPropertyOf – indica che una proprietà e specializzazione di un’altra. rdfs:seeAlso – specifica che la risorsa è anche descritta in altre parti rdfs:isDefinedBy – indica la risorsa “soggetto dell’asserzione” ovvero chi ha fatto l’asserzione

RDF Constraints rdfs:range  Indica la classe dei valori ammissibili di una proprietà.  rdfs:range è una classe rdf:Class rdfs:domain  Indica la classe cui la proprietà si applica.  Se non è specificata indica che quella proprietà può essere usata su qualsiasi classe.

Domain e Range Legame tra classi e proprietà RDF(S) fornisce anche un vocabolario per descrivere come ci si aspetta che proprietà e classi si combinino tra di loro Proprietà predefinite rdfs:domain ed rdfs:range rdf:type rdfs:domainrdfs:range

RDF Documentation rdfs:comment – testo libero rdfs:label – Riporta informazioni sulla versione di una risorsa

RDF Schema Esempio (1)

RDF Schema Esempio (2)

RDF Schema Esempio (3)

Istanze – classi – metaclassi rdfs:Classrdfs:Resource rdfs:subClassOf rdf:type terms:Person terms:Students terms:Course rdf:type rdfs:subClassOf people:Ruffolo course:BDSIW rdf:type terms:teacher Massimo terms:name rdf:type terms:Teacher people:Bianchi Mario terms:name

Reasoning rdfs:Classrdfs:Resource rdfs:subClassOf rdf:type terms:Person terms:Students terms:Course rdf:type rdfs:subClassOf people:Ruffolo course:BDSIW rdf:type terms:teacher Massimo terms:name rdf:type terms:Teacher people:Bianchi Mario terms:name rdfs:subClassOf rdf:type

Modello generale rdf:type terms:… rdfs:subClassOf rdfs:Class rdf:type rdfs:Resource rdfs:subClassOf rdf:type rdfs:Property rdf:domain terms:… rdfs:range terms:…

RDF Schema Esempio (4)

Interrogazione di file RDF SPARQL, linguaggio di interrogazione dell' RDF asceso da qualche mese al rango di W3C Candidate Recommendation, è stato accolto entusiasticamente come l'agognato ultimo tassello per l'edificazione del Web semantico

SPARQL Sintassi Turtle SPARQL adotta la sintassi Turtle, un'estensione di N-Triples, alternativa estremamente sintetica e intuitiva al tradizionale RDF/XML. Si considerino le seguenti triple RDF, che saranno utilizzate nel corso della lezione come riferimento per le query d'esempio:

RDF File cd.rdf

Query SPARQL PREFIX cd: SELECT ?title ?artist ?year FROM WHERE {?title cd:artist ?artist. ?title cd:year ?year. }

Risultato TitleArtistYear Pearl DaysElisa2006 Restituisce tutte le risorse per le quali sia specificato sia l’artista che l’anno

Clausola OPTIONAL PREFIX cd: SELECT ?title ?artist ?year FROM WHERE { ?title cd:artist ?artist. OPTIONAL {?title cd:year ?year.} }

Risultato TitleArtistYear Pearl DaysElisa2006 Misunderstood Robbie Williams Restituisce tutte le risorse per le quali sia specificato l’artista e opzionalmente l’anno

Clausola UNION PREFIX cd: SELECT ?title ?artist ?price ?year FROM WHERE { {?title cd:year ?year.} UNION {?title cd:price ?price.} }

Risultato TitleArtistPriceYear Pearl DaysElisa2006 Misunderstood Robbie Williams18 euro Restituisce tutte le risorse per le quali sia specificato o il prezzo o l’anno.

Clausola FILTER PREFIX cd: SELECT ?title ?artist ?price ?year FROM WHERE { {?title cd:year ?year.} FILTER (?year > 2005) }

Risultato TitleArtistPriceYear Pearl DaysElisa2006 Restituisce tutte le risorse per le quali l’attributo anno è maggiore di 2005.

Clausola FILTER con REGEX PREFIX cd: SELECT ?title ?artist FROM WHERE { {?title cd:artist ?artist.} FILTER regex (?artist, “^el”, “i” ) }

Risultato TitleArtist Pearl DaysElisa Restituisce tutte le risorse per le quali l’attributo artist comincia per “el” ignorando la distinzione fra maiuscole e minuscole.

Costrutti speciali SELECT DISTINCT ?title ?artist ORDER BY DESC(?autore) LIMIT 10 OFFSET 10

Esempio 2: Human Ontology (Classes) Animal FemaleMalePerson Woman ManResearcher Lecturer rdfs:subClassOf

Esempio 2: Human Ontology (ObjectProperty) Animal Male rdfs:range rdfs:domain hasAncestor Animal hasParent hasFather rdfs:subPropertyOf rdfs:range hasMother Female rdfs:subPropertyOf rdfs:range Animal rdfs:range rdfs:domain hasBrother Male Animal rdfs:range rdfs:domain hasSister Female Person rdfs:range rdfs:domain hasFriend Person rdfs:range rdfs:domain hasSpouse Person

Esempio 2: Human Ontology (DataType Property) Animal rdfs:range rdfs:domain age Integer Person rdfs:range rdfs:domain trouserssize Integer Person rdfs:range rdfs:domain shirtSize Integer Person rdfs:range rdfs:domain name String

Istanze Harry Man isA Sophie John hasChild hasSpouse Person isA shoeSize age Mark shoeSize age hasFather Eve Lecturer David hasSpouse hasFriend Alice Researcher isA hasFriend Gastone hasFriend Jack hasFriend hasChild (…)

Query su Classi SELECT ?x WHERE { ?x rdf:type rdfs:Class }

Sussunzioni SELECT ?x ?y WHERE { ?x rdfs:subClassOf ?y }

Proprietà: Persone Sposate SELECT ?x ?y WHERE { ?x humans:hasSpouse ?y }

Uomini Sposati SELECT * WHERE { ?x humans:hasSpouse ?y. ?x rdf:type humans:Male } Answer

Numero di Persone di cui Y è amico SELECT ?x ?y count(?x) as ?conteggio group ?y WHERE { ?x humans:hasFriend ?y }

Persone con almeno un parente SELECT DISTINCT ?x WHERE { { ?y humans:hasChild ?x } UNION { ?x humans:hasParent ?y } }

Le persone e la loro età (se nota) SELECT ?person ?age WHERE { ?person rdf:type humans:Person OPTIONAL { ?person humans:age ?age } }

Maggiorenni SELECT ?x WHERE { ?x humans:age ?age FILTER ( xsd:integer(?age) >= 18 ) }

E’ Mark Maggiorenne? ASK WHERE { #Mark humans:age ?age FILTER ( xsd:integer(?age) >= 18 ) }

Tutte le persone che non sono ricercatori. SELECT ?x WHERE { ?x rdf:type humans:Person OPTIONAL { ?x rdf:type ?t FILTER ( ?t = humans:Researcher ) } FILTER ( ! bound( ?t ) ) }

Antenati SELECT ?x ?y WHERE { ?x humans:hasAncestor ?y } Questa query restituisce ovviamente, anche tutte le istanze delle sottoproprietà hasFather ed HasParent

Bibliografia RDF/RDFS SPECIFICATION  Semantic web tutorial: RDF, RDFS and SPARQL using CORESE  CORESE (Open Source Software per interrogare file RDF) 