RDF
1 / 24
RDF
Anne-Cecile Caron
Master MIAGE/IPI-NT
2016-2017
RDF
Introduction
2 / 24
Donner une semantique aux ressources du web
I Representer les connaissances du web : monde ouvert, diversite dessujets, des services.
I Tres grande echelle : donnees en grande quantite, distribuees etinternationales.
I Il existe deja des ressources sur le web : il faut donner unesemantique a ces ressources, pas supprimer l’existant.
RDF
Introduction
3 / 24
RDF
Pour annoter semantiquement les ressources du Web, on utilise lelangage RDF.
I RDF = resource description framework
I Representation d’informations sur les ressources du Web
I Information destinee aux applications (pas aux humains)d’extraction d’information, ou aux services web.
I structure de graphe oriente : on decrit des arcs.
I RDF 1.0 en 2004, RDF 1.1 W3C Recommendation depuis fevrier2014.
RDF
Le modele de donnees
4 / 24
Modele de graphe
Le Web est une ”toile d’araignee”, le modele le plus adapte est un graphe.
I arcs (sujet, predicat, objet).
I Le sujet est une entite representee par un identifiant,
I Le predicat est une propriete de l’entite,
I L’objet est la valeur de la propriete pour ce sujet. C’est une entite ouun litteral.
Par exemple, on cherche a definir des hotels et leur environnement. On supposequ’il existe des identifiants Ei pour les principales entites.
(E1, a_pour_nom, "ASCOTEL")
(E1, adresse, "7 av. Langevin, Cite Scientifique, V d’Ascq")
(E1, proche_de, E2)
(E1, proche_de, E3)
(E2, a_pour_nom, "Universite Lille 1")
(E3, a_pour_nom, "Stade Pierre Mauroy")
(E3, a_pour_nom, "Grand Stade Lille Metropole")
RDF
Le modele de donnees
5 / 24
Modele de graphe
Le modele est tres simple, pourtant il y a un certain nombre deproblemes a resoudre :
I Comment gerer les identifiants a l’echelle du web ?
I Comment savoir ce que represente une valeur, c’est-a-dire son type,l’unite, la langue, ... ?
I Comment savoir quelles proprietes (quels predicats) utiliser ?
I Comment publier, echanger, interroger les donnees ?
RDF
Le modele de donnees
6 / 24
Identification des entites
I En RDF, les entites sont appelees egalement ressources, chacune estidentifiee par un IRI - International Resource Identifier, chaıne decaracteres Unicode.
I Allocation d’IRI : c’est le processus d’association d’un IRI a une ressourceque l’on appelle son referent. Il faut eviter absolument les collisions d’IRI,i.e. un meme IRI avec deux referents.
I Une bonne maniere d’expliquer quel est le referent d’un IRI est de fournirune representation de ce referent sous la forme d’un document Web,auquel on accede en interpretant l’IRI comme un URL. On parle d’IRIdereferencable.
RDF
Le modele de donnees
7 / 24
Les litteraux
On vient de voir que la plupart des noeuds du graphe sont des entites,identifiees par des IRIs. Parfois, le noeud a l’extremite d’un arc est une simplevaleur (un nombre, une date, ...). Dans ce cas on utilise des litteraux.
I Un litteral consiste en 2 ou trois elements :
1. une forme lexicale : une chaıne de caracteres Unicode.2. un IRI pour le type de donnees : ca permet de savoir comment
interpreter la chaıne de caractere.3. Quand le type de donnees est rdf:langString on associe un tag de
langage au litteral
I Si on ne donne pas d’IRI de typage, alors le type par defaut estxsd:string, sauf s’il y a un tag de langage (le type est alorsrdf:langString).
"1990-07-04"^^xsd:date
"La Joconde"@fr
Une fois interpretes, ces elements permettent d’associer une valeur a la formesyntaxique du litteral.
RDF
Le modele de donnees
8 / 24
Noeuds blancs
I Les entites (IRIs) et les litteraux sont su�sants pour decrire ungraphe RDF, mais parfois il peut etre pratique d’utiliser des noeudsqui ne sont pas references globalement : on les appelle des noeudsblancs.
I Ces noeuds blancs peuvent etre vus comme des variables
RDF
Le modele de donnees
9 / 24
Graphes multiples
I RDF permet de structurer les triplets en les mettant dans di↵erentsgraphes, identifies par des IRIs.
I Un document RDF qui decrit plusieurs graphes est appele unDataset
I Dans un dataset, il peut y avoir un graphe sans nom (le graphe pardefaut) et plusieurs graphes nommes.
RDF
vocabulaire
10 / 24
Les vocabulaires RDF
I Le modele de graphe est tres simple mais, dans la pratique, quelsIRIs faut-il utiliser ?
I langage RDF-schema (RDFS) pour definir son propre vocabulaire,i.e. definir des IRIs pour les ressources - sujets, predicats et objets -dont on veut parler.! Un vocabulaire est une collection d’IRI a l’interieur d’un memeespace de noms.
I Il existe beaucoup de vocabulaires deja definis : les utiliser !
I Si malgre tout on a defini un IRI (I1) pour parler d’un concept, etqu’une autre personne a defini un autre IRI (I2) pour ce memeconcept, on peut dire a l’aide d’un triplet que ”I1 est le memeconcept que I2”.
I quelques exemples : FOAF pour des relations sociales, dublin corepour des documents, schema.org pour des moteurs de recherche, ...
RDF
serialisation
11 / 24
Serialisation
Pour echanger des donnees, on a besoin de serialiser. Il existe denombreux formats de serialisation.
RDF
serialisation
12 / 24
N-Triples
Il existe plusieurs serialisations sous la forme de triplets.
I La plus basique est la syntaxe N-triples, qui ecrit chaque triplet sousla forme<IRI du sujet> <IRI du predicat> <IRI de l’objet ou litteral>
Par exemple :
<http://example.org/bob#me> <http://xmlns.com/foaf/0.1/knows>
<http://example.org/alice#me> .
<http://example.org/bob#me> <http://schema.org/birthDate>
"1990-07-04"^^<http://www.w3.org/2001/XMLSchema#date> .
RDF
serialisation
13 / 24
Turtle
La syntaxe Turtle reprend celle des N-triples en y ajoutant des facilitessyntaxiques pour rendre le code plus lisible :
BASE <http://example.org/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX schema: <http://schema.org/>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX wd: <http://www.wikidata.org/entity/>
<bob#me>
a foaf:Person ;
foaf:knows <alice#me> ;
schema:birthDate "1990-07-04"^^xsd:date ;
foaf:topic_interest wd:Q12418 .
wd:Q12418
dcterms:title "Mona Lisa" ;
dcterms:creator <http://dbpedia.org/resource/Leonardo_da_Vinci> .
<http://data.europeana.eu/item/04802/243FA8618938F4117025F17A8B813C5F9AA4D619>
dcterms:subject wd:Q12418 .
RDF
serialisation
14 / 24
RDF
serialisation
15 / 24
Representation des noeuds blancs
On utilise une ressource sans nom :
PREFIX lio: <http://purl.org/net/lio#>
<http://dbpedia.org/resource/Mona_Lisa> lio:shows _:x .
_:x a <http://dbpedia.org/resource/Cypress> .
Il existe d’autres manieres d’utiliser implicitement des noeuds blancs, onverra plus en detail la syntaxe Turtle avec le langage de requete SPARQL.
RDF
serialisation
16 / 24
TriG
Extension de Turtle pour utiliser plusieurs graphes :
BASE <http://example.org/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX ...
GRAPH <http://example.org/bob>{
<bob#me>
a foaf:Person ;
foaf:knows <alice#me> ;
schema:birthDate "1990-07-04"^^xsd:date ;
foaf:topic_interest wd:Q12418 .}
GRAPH <https://www.wikidata.org/wiki/Special:EntityData/Q12418> {
wd:Q12418
dcterms:title "Mona Lisa" ;
dcterms:creator <http://dbpedia.org/resource/Leonardo_da_Vinci> .
<http://data.europeana.eu/item/04802/243FA8618938F4117025F17A8B813C5F9AA4D619>
dcterms:subject wd:Q12418 . }
<http://example.org/bob>
dcterms:publisher <http://example.org> ;
dcterms:rights <http://creativecommons.org/licenses/by/3.0/> .
RDF
serialisation
RDF/XML
17 / 24
Serialisation en XML
I norme RDF/XML : syntaxe XML pour representer un graphe RDF.
I Element Description pour decrire une ressourceI attribut about pour le sujet,I sous-element pour la propriete, contenu du sous-element pour la
propriete (qui peut etre parfois simplifie en attribut)I on peut regrouper dans un meme element Description toutes les
proprietes dont cette ressource est sujet.
RDF
serialisation
RDF/XML
18 / 24
Exemple
<?xml version="1.0" encoding="utf-8"?><rdf:RDF
xmlns:dcterms="http://purl.org/dc/terms/"xmlns:foaf="http://xmlns.com/foaf/0.1/"xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"xmlns:schema="http://schema.org/">
<rdf:Description rdf:about="http://example.org/bob#me"><rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person"/><schema:birthDate rdf:datatype="http://www.w3.org/2001/XMLSchema#date">1990-07-04</schema:birthDate><foaf:knows rdf:resource="http://example.org/alice#me"/><foaf:topic_interest rdf:resource="http://www.wikidata.org/entity/Q12418"/>
</rdf:Description><rdf:Description rdf:about="http://www.wikidata.org/entity/Q12418">
<dcterms:title>Mona Lisa</dcterms:title><dcterms:creator rdf:resource="http://dbpedia.org/resource/Leonardo_da_Vinci"/>
</rdf:Description><rdf:Description rdf:about="http://data.europeana.eu/item/04802/243FA8618938F4117025F17A8B813C5F9AA4D619">
<dcterms:subject rdf:resource="http://www.wikidata.org/entity/Q12418"/></rdf:Description></rdf:RDF>
RDF
reification
19 / 24
Reification
I En informatique, la reification consiste a transformer un concept enun objet informatique.
I Par exemple : langage oriente objet avec mecanisme de reflexion, onpeut reifier une classe, qui devient instance d’une (meta-)classe.
I En RDF, la reification permet de considerer un triplet comme unnoeud.
Soit le graphe G
1
:
<ex:un_sujet> <ex:une_propriete> <ex:un_objet> .
Le graphe G
2
ci-dessous est une reification de G
1
:
_:xxx rdf:type rdf:Statement .
_:xxx rdf:subject <ex:un_sujet> .
_:xxx rdf:predicate <ex:une_propriete> .
_:xxx rdf:object <ex:un_objet> .
RDF
structures de donnees
20 / 24
Collections
En RDF, une collection est une liste ”a la LISP” :
I de type rdf:List, avec un premier element rdf:first et une suiterdf:rest. La liste vide a la valeur rdf:nil.
I Exemple :
_:c1 rdf:first <ex:aaa> .
_:c1 rdf:rest _:c2 .
_:c2 rdf:first <ex:bbb> .
_:c2 rdf:rest rdf:nil .
I Une collection est une liste fermee : elle forme un groupe qui necontient que les membres specifies lors de la declaration de lacollection.
RDF
structures de donnees
21 / 24
Exemple de collection
RDF
structures de donnees
22 / 24
Les ”Containers”
I Ils permettent de decrire des groupes. Les choses contenues dans uncontainer sont appelees membres du groupe.
I Il existe 3 types de containers predefinis :I rdf:Bag : multi-ensemble de ressources ou literauxI rdf:Seq : Sequence de ressources ou litteraux (l’ordre est important)I rdf:Alt : alternatives entre plusieurs ressources ou litteraux
I Pour indiquer qu’une ressource est un container, on utilise lapropriete rdf:type.
I On dit que les containers sont ouverts, i.e. il peut exister d’autresmembres du container que ceux indiques par la description dont ondispose.
RDF
structures de donnees
23 / 24
Exemple
RDF
conclusion
24 / 24
Conclusion
I Langage qui permet de definir des graphes semantiques
I Ces donnees semantiques sont destinees a des machines, via des APIet des langages de requetes (cf SPARQL).
I On parle des ressources du web ; les identifiants sont des IRIs.
I On peut utiliser des vocabulaires existants : necessite de centraliserles informations sur ces vocabulaires, di↵usion de donnees utilisantces vocabulaires.