Option GCN - Polytech Nantes
05/10/2018
Benjamin Hervy
Stéphane Loret
{prenom}.{nom}@univ-nantes.fr
• I have a dream : "Bonjour Google. Peux-tu m'afficher la liste de tous les auteurs de romans de science-fiction dans le monde qui ont publié au moins 3 ouvrages entre 1924 et 1978 dont 2 exemplaires sont localisés à la BNF.... MERCI !"
Et que dit Google sur Mozart !
Yoo, M.-J.; Grozel, C.; Kiritsis, D. Closed-Loop Lifecycle Management of Service and Product in the Internet of Things: Semantic Framework for Knowledge Integration. Sensors 2016, 16, 1053 http://www.mdpi.com/1424-8220/16/7/1053
Text
T. Berners-Lee a déjà une idée de maillage, de réseau, d'une structuration de l'information, mais c'est encore balbutiant.
Text
Pour T. Berners-Lee, il s'agit de : "permettre aux machines de relier automatiquement les données sur le Web aux choses du monde réel". (CERN, 1994, Conférence W3C)
source : https://www.w3.org/Talks/WWW94Tim/
Guerre des navigateurs
Nécessité d'interopérabilité → standardisation
Création du W3C (1994) : Keio, INRIA, MIT
Standardisation au W3C
5 étapes:
Exemples de standards : CSS, XML, SVG, XHTML, HTML5
Notion clef, le web sémantique désigne :
"une extension du Web de documents qui constituerait une base de données globale à l'échelle du réseau pour permettre aux machines de mieux appréhender les données et aux personnes de coopérer".
Text
Présentation des travaux engagés depuis 1994 par T. Berners-Lee à propos du Web sémantique.
The Semantic Web will
enable machines to
COMPREHEND
semantic documents and
data, not human speech
and writings.
2006 - Web 2.0, Web services (+folksonomie, microformats, etc.) et le Linked Data...
Mise à disposition selon les règles du Linked Data, avec les technologies du web sémantique, des données structurées extraits de Wikipedia.
Projet de mise à disposition des données gouvernementales britanniques, piloté par Tim Berners-Lee...
Web sémantique :
Ensemble de technologies visant à rendre les ressources du web plus largement utilisables ou plus pertinentes grâce à un système de métadonnées qui utilisent notamment la famille des langages développés par le W3C
Web de données :
La mise en œuvre du web sémantique, son expression concrète, par l'usage des technologies développées en ce sens afin de (re)lier les données.
Ressource
toute chose identifiable par une URI
Espace de noms
espace abstrait rassemblant des noms d'un même ensemble
http://sdj.info/objets#mamoto
Donnée ouverte : publication de donnée sur le web via des formats ouverts
Évolution du nombre de données ouvertes et liées
2007
2009
2014
Quelques projets Linked Open Data - Europeana
Isidore (CNRS - INSHS)
INSEE
BNF
DBPedia
DBPedia extrait les données issues de Wikipédia pour les transformer en données liées
Quelles sont les données disponibles sur Nantes ?
http://dbpedia.org/resource/Nantes
http://dbpedia.org/page/Nantes
GeoNames
I have a dream for the Web [in which computers] become capable of analyzing all the data on the Web — the content, links, and transactions between people and computers.
T. Berners-Lee - Weaving the web, 1999
rdf:about
rdf:type
rdf:label
…
Resource Description Framework
Représentation sous forme de triplets
( SUJET PREDICAT OBJET )
(cours, auteur, benjamin)
(cours, auteur, stéphane)
Représentation d’un triplet sous forme de diagramme
La direction de la flèche est importante. L’arc démarre toujours du sujet et pointe vers l’objet de la déclaration.
<sujet> A POUR <predicat> <objet>
cours
benjamin
auteur
Multi-graphe étiqueté orienté
- plusieurs arcs entre deux sommets
- étiquettes : URI ou littéraux
Modèle ouvert
- vocabulaire extensible basé sur les URI
- étiquettes : URI ou littéraux
→ relier les graphes (URI communes) = web mondial de données
http://gallica.bnf.fr/ark:/12148/btv1b52504043q
http://purl.org/dc/elements/1.1/title
"Carte gastronomique de la France / par A. Bourguignon… "
Exemple de triplet
SELECT DISTINCT ?p ?o WHERE {
<http://data.bnf.fr/ark:/12148/cb16765159k> ?p ?o.
}
http://gallica.bnf.fr/ark:/12148/bpt6k311302s
Syntaxes de sérialisation
Syntaxes de sérialisation : <RDF />
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:voc="http://msh.univ-nantes.fr/schema#">
<rdf:Description rdf:about="http://msh.univ-nantes.fr/doc.html">
<voc:auteur rdf:resource="http://msh.univ-nantes.fr/benjamin.hervy/#me"/>
<voc:theme>Web</voc:theme>
</rdf:Description>
</rdf:RDF>
Arbre XML = graphe
Syntaxes de sérialisation : RDF N-Triples
<http://msh.univ-nantes.fr/doc.html>
<http://msh.univ-nantes.fr/schema#auteur>
<http://msh.univ-nantes.fr/benjamin.hervy/#me> .
<http://msh.univ-nantes.fr/doc.html>
<http://msh.univ-nantes.fr/schema#theme> "Web" .
Syntaxes de sérialisation : RDF Turtle
@prefix rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix voc:<http://msh.univ-nantes.fr/schema#> .
<http://msh.univ-nantes.fr/doc.html>
voc:auteur <http://msh.univ-nantes.fr/benjamin.hervy/#me"> ;
voc:theme "Web", "Web sémantique" .
Noeuds anonymes (blank nodes)
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:voc="http://msh.univ-nantes.fr/schema#">
<rdf:Description>
<voc:auteur rdf:resource="http://msh.univ-nantes.fr/benjamin.hervy/#me"/>
<voc:theme>Web</voc:theme>
</rdf:Description>
</rdf:RDF>
Il existe une ressource telle que…
Typer les littéraux
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:voc="http://msh.univ-nantes.fr/schema#">
<rdf:Description rdf:about="http://msh.univ-nantes.fr/doc.html">
<voc:date rdf:datatype="http://www.w3.org/2001/XMLSchema#date">
2017-02-02</voc:date>
</rdf:Description>
</rdf:RDF>
Utilisation d'XML Schema pour typer les données
Par défaut → xsd:string
Syntaxe abstraite : "2017-02-02"^^xsd:date
Typer les littéraux
https://www.w3.org/TR/xmlschema-2/
Indiquer la langue
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:voc="http://msh.univ-nantes.fr/schema#">
<rdf:Description rdf:about="http://msh.univ-nantes.fr/doc.html">
<voc:theme xml:lang='fr'>Web sémantique</voc:theme>
</rdf:Description>
</rdf:RDF>
En turtle et syntaxe abstraite :
"Web sémantique"@fr
Typer les ressources
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:voc="http://msh.univ-nantes.fr/schema#">
<voc:Chercheur rdf:about="http://msh.univ-nantes.fr/stephane.loret#me">
<rdf:type rdf:resource="http://msh.univ-nantes.fr/schema#Homme" />
</voc:Chercheur>
</rdf:RDF>
Propriété rdf:type
Représentation de groupes
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:voc="http://msh.univ-nantes.fr/schema#">
<rdf:Description rdf:about:"http://msh.univ-nantes.fr/doc.html">
<voc:auteur>
<rdf:Bag>
<rdf:li>Benjamin</rdf:li>
<rdf:li>Stéphane</rdf:li>
</rdf:Bag>
</voc:auteur>
</rdf:Description>
</rdf:RDF>
Représentation de groupes
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:voc="http://msh.univ-nantes.fr/schema#">
<rdf:Description rdf:about:"http://msh.univ-nantes.fr/doc.html">
<voc:auteur>
<rdf:Seq>
<rdf:li>Benjamin</rdf:li>
<rdf:li>Stéphane</rdf:li>
</rdf:Seq>
</voc:auteur>
</rdf:Description>
</rdf:RDF>
Séquences
Représentation de groupes
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:voc="http://msh.univ-nantes.fr/schema#">
<rdf:Description rdf:about:"http://msh.univ-nantes.fr/doc.html">
<voc:theme>
<rdf:Alt>
<rdf:li xml:lang='en'>Web sémantique</rdf:li>
<rdf:li xml:lang='fr'>Semantic Web</rdf:li>
</rdf:Alt>
</voc:theme>
</rdf:Description>
</rdf:RDF>
Alternatives
Représentation de groupes
Les collections : rdf:List
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:voc="http://msh.univ-nantes.fr/schema#">
<rdf:Description rdf:about="http://msh.univ-nantes.fr/doc.html">
<voc:auteur rdf:parseType="Collection"/>
<rdf:Description rdf:about="#Benjamin">
<rdf:Description rdf:about="#Stéphane">
<voc:auteur>
</rdf:Description>
</rdf:RDF>
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:acad="http://academie.huma-num.fr/ontology/" xmlns:bio="http://purl.org/vocab/bio/0.1/" xmlns:time="http://www.w3.org/2006/time#" xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:org="http://www.w3.org/ns/org#">
<foaf:Person rdf:about="http://academie.huma-num.fr/Person/Yoccoz_JC">
<foaf:isPrimaryTopicOf rdf:resource="http://www.academie-sciences.fr/academie/membre/Yoccoz_JC.htm"/>
<foaf:name>Jean-Christophe YOCCOZ</foaf:name>
<foaf:gender>Male</foaf:gender>
<org:hasMembership>
<org:Membership rdf:about="http://academie.huma-num.fr/Person/Yoccoz_JC#membership1">
<org:organization rdf:resource="http://academie.huma-num.fr/Organization/Academie_des_sciences"/>
<org:role rdf:resource="http://academie.huma-num.fr/Role/Membre"/>
<org:memberDuring>
<time:Interval rdf:about="http://academie.huma-num.fr/Person/Yoccoz_JC#membershipInterval1">
<time:hasBeginning>
<time:Instant rdf:about="http://academie.huma-num.fr/Person/Yoccoz_JC#membershipIntervalBeginning1">
<time:inXSDDateTime>1994-10-24</time:inXSDDateTime>
</time:Instant>
</time:hasBeginning>
</time:Interval>
</org:memberDuring>
</org:Membership>
</org:hasMembership>
<org:hasMembership>
<org:Membership rdf:about="http://academie.huma-num.fr/Person/Yoccoz_JC#section">
<org:organization>
<acad:Section rdf:about="http://academie.huma-num.fr/Section/Mathematique">
<foaf:name>Section de mathématique</foaf:name>
</acad:Section>
</org:organization>
</org:Membership>
</org:hasMembership>
<org:memberOf>
<org:Organization rdf:about="http://academie.huma-num.fr/Organization/College_de_France">
<foaf:name>Collège de France</foaf:name>
</org:Organization>
</org:memberOf>
</foaf:Person>
</rdf:RDF>
Recréer le graphe RDF à partir de cette description en xml/RDF
Différentes techniques d'alignement :
Sémantique
Structurelles
Comparaison entre chaînes de caractères...
Spécificités des ontologies
Vocabulaire standard pour décrire des ontologies légères
Remarques :
Remarques :
<rdf:RDF xml:base="http://mondomaine.fr/humans.rdfs"
xmlns:rdf="http://www.w3.org/1999/02/22/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<rdfs:Class rdf:ID="Man">
<rdfs:subClassOf rdf:resource="#Person"/>
<rdfs:subClassOf rdf:resource="#Male"/>
</rdfs:Class>
</rdf:RDF>
<rdf:RDF xml:base="http://mondomaine.fr/humans.rdfs"
xmlns:rdf="http://www.w3.org/1999/02/22/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<rdf:Property rdf:ID="hasMother">
<rdfs:subPropertyOf rdf:resource="#hasParent"/>
</rdf:Property>
</rdf:RDF>
Organiser la hiérarchie des propriétés et héritage multiple
Signature de propriétés:
<rdf:RDF xml:base="http://mondomaine.fr/humans.rdfs"
xmlns:rdf="http://www.w3.org/1999/02/22/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<rdf:Property rdf:ID="hasMother">
<rdfs:subPropertyOf rdf:resource="#hasParent"/>
<rdfs:domain rdf:resource="#Human"/>
<rdfs:range rdf:resource="#Woman" />
</rdf:Property>
</rdf:RDF>
Signature de propriétés:
Attention : si une propriété a plusieurs range ou domain, le domaine (resp. le range) effectif est l'intersection de tous les domaines (resp. ranges)
→ Inférences de type
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:h="http://mondomaine.fr/humans.rdfs#"
xml:base="http://mondomaine.fr/humans.rdfs-instances">
<rdf:Description rdf:ID="#Lucas">
<rdf:type rdf:resource="http://mondomaine.fr/humans.rdfs#Man"/>
<h:hasMother rdf:resource="#Laura"/>
</rdfs:Description>
</rdf:RDF>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:h="http://mondomaine.fr/humans.rdfs#"
xml:base="http://mondomaine.fr/humans.rdfs-instances">
<h:Man rdf:ID="#Lucas">
<h:hasMother rdf:resource="#Laura"/>
</rdfs:Class>
</rdf:RDF>
Modéliser les classes et les propriétés du graphe ci-dessous
Jean-Pierre Blog est un homme, chercheur au CNRS (DR) de son état, dans le domaine de la Sociologie. Il est membre d'un laboratoire de recherche d'une université parisienne. Il a publié plusieurs ouvrages dont le dernier, chez Khartala, en 2016 sur « le Rap en France », s'étale sur 350 pages. Il a atteint l'âge de la retraite. Avec son épouse, Marguerite, documentaliste, ils ont eu 4 enfants, 3 filles et 1 garçon. Les enfants se nomment : Anna, Barbara, Carolina, Daniel, ils ont 12, 14, 16 et 21 ans et sont encore aux études. Jean-Pierre est souvent en voyage, mais il communique régulièrement avec sa famille via son mail personnel et sur sa page Facebook, ou encore sur Twitter.
Enoncé :