Introduction au
Web Sémantique
Web des données
PhD Lynda Temal
temal.l@sfeir.com
Chez sfeir depuis 10 février 2014
Remerci...
Succès d’Internet
❏ Documents
❏ Images
❏ Vidéos
❏ Applications
❏ Services
❏ Vie Sociale
❏ Business
Cependant ….
2
Qui peut exploiter le Web actuel ?
● Les humains ?
● Les moteurs de recherche ?
Problème du web actuel
3
Ce que voit un humain
4
Pour la machine
5
Quelle est la différence ?
● L’humain peut identifier et interpréter
● La machine non!
6
Bémol !
La machine stocke des
informations qu’elle
ne peut pas interpréter.
7
Le Web Sémantique mentionné par Tim Berners-Lee en 1994 à WWW
Passer du web des liens
entre des pages peu
compréhensibles
...
Ce qu’il faut faire :
9
Identifier / Expliciter
In front of
behind In front of
Comment ?
Utiliser une
ontology partagée
Que nous pouvons comprendre
Que la machine peut interpréter
10
Définition de l’ontologie
11
Concept / termes / intention / extension
12
Relation de subsemption : C is a B
Voiture
Voiture
2 roues motrices
Voiture
4 roues motrices
Voiture
Essence
Voiture
Hybri...
Relation de mérologie (part of)
14
Foundational Model of Anatomy
15
16
Vocabulaire
contrôlé
Glossaire
Thésaurus
Taxonomy
Ontologie
Sémantique
faible
Sémantique
forte
Interopérabilité sémanti...
Comment faire concrètement ?
17
Les Technologies du Web Sémantique
Représentation
Requête
Raisonnement
Confiance
18
Couche de représentation
19
RDF
Resource: entreprises, livres, personnes,
perceuses, média, services, idées…
Description: attributs, qualités, et
des ...
RDF : un modèle de triplets
( sujet , predicat, objet )
Structure d’une phrase simple
( sujet , verbe, complément )
21
Contenu non interprétable par la machine
Timothy John Berners-Lee,
né le 8 juin 1955 à Londres.
Il est le principal invent...
Identification : Ressources & Relations
Timothy John Berners-Lee,
né le 8 juin 1955 à Londres.
Il est le principal invente...
Phrases simples
TimBL has date of birth 1955-06-08.
TimBL has place of birth London.
TimBL is inventor of WWW.
TimBL is di...
Triplets RDF : interprétables par la machine
(TimBL, dateOfBirth, 1955-06-08)
(TimBL, placeOfBirth, London)
(TimBL, isInve...
Les triplets RDFpeuvent être
représentés par un graphe orienté
(sommet, arc, sommet)
26
TimBL
W3C
1955-06-08
dateOfBirth
isDirectorOF
27
URI : Uniforme Resource Identifier
28
dbpedia:Tim_Bernes-Lee
http://www.w3.org
1955-06-08(xsd:date)
http://dbpedia.org/property#dateOfBirth
http://dbpedia.org/p...
dbpedia:London
dbpedia:England
dbpedia:Tim_Bernes-Le
http://dbpedia.org/property#placeOfBirth
http://dbpedia.org/property#...
dbpedia:London
dbpedia:England
dbpedia:Tim_Bernes-Le
http://dbpedia.org/property#placeOfBirth
http://dbpedia.org/property#...
RDF/XML
<rdf:RDF
xmlns:rdf=”http://www.W3.org/1999/02/22-rdf-syntaxe-ns#”
xmlns:dbpedia="http://dbpedia.org/property#"
Xml...
N-Triplet
<http://dbpedia.org/resource/Tim_Berners-Lee>
<http://purl.org/dc/terms/creator>
<http://www.w3.org>
<http://dbp...
Turtel
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix xsd: <http://www.w3.org/2001/XMLShema#>.
@prefi...
RDFa : exprimer du RDF dans du HTML
<!DOCTYPE html PUBLIC "~//w3c//dtd xhtml+rdfa 1.0//EN">
<html xmlns:foaf="http://xmlns...
RDF fournit une primitive pour typer les ressources.
(TimBL, rdf:type, Person )
(TimBL, rdf:type, Man )
(Web_Science, rdf:...
RDF fournit les primitives pour construire
des containers et des collections pour
lister des ressources
37
Les Primitives ...
Les containers RDFsont ouverts,
contiennent des ressources ou des littéraux,
qui peuvent être dupliqués.
rdf:Bag → pour de...
Les Collections RDFsont fermées,
contiennent des ressources ou des littéraux,
peuvent être dupliqués.
rdf:List → pour comm...
(Web_Science, hasChapter, _:a)
(_:a, rdf:type, rdf:list)
(_:a, rdf:first, chap1)
(_:a, rdf:rest, _:b)
(_:b, rdf:first, cha...
RDFfournit une primitive pour la réification de
triplets RDF.
rdfs:Statement
rdfs:subject, rdfs:predicat, rdfs:object
41
L...
Exemple de Réification.
TimBL says
(Web_Science, has for theme, web)
42
(TimBL, says, Triple1)
(Triple1, rdfs:subject, web_science)
(Triple1, rdfs:predicat, theme)
(Triple1, rdfs:object, web)
(T...
Règles pour écrire des triples RDF
➢ Le sujet est toujours une ressource (jamais un littéral)
➢ Les prédicats sont des rel...
RDFne permet pas de définir les
concepts d’un domaine pour typer les
ressources.
45
RDFS signifie RDF Schema
46
RDFS: fournit les primitives pour écrire
des ontologie légères.
Définir des inférences élémentaires
47
RDFSpermet de définir des classes de ressources et
de les organiser en hiérarchie
rdfs:Class
rdfs:subClassOf
Document
Book...
RDFSpermet de définir des propriétés et de les
organiser en hiérarchie
rdf:Property
rdfs:subPropertyOf
TimBL report12
auth...
RDFSpermet de définir la signature de chaque propriété
rdfs:domain → type de la ressource d’où part la relation
rdfs:range...
RDFSdéfinit une sémantique :
des règles de déduction standard permettant de créer
des triplets additionnels à partir des t...
SI (c2, subClassOf, c1)
ET (x, type, c2)
ALORS (x, type, c1)
Exemple
SI (Man, subClassOf, Person)
ET (TimBL, type, Man)
AL...
Si (p2, subPropertyOf, p1)
ET (x, p2 , y)
ALORS (x, p1 , y)
Exemple
SI (author, subPropertyOf, creator)
ET (TimBL, author,...
SI (c2, subClassOf, c1)
ET (c3, subClassOf, c2)
ALORS (c3, subClassOf, c1)
Exemple
SI (Person, subClassOf, living being)
E...
SI (p2, subPropertyOf, p1)
ET (p3, subPropertyOf, p2)
ALORS (p3, subPropertyOf, p1)
Exemple
SI (parentOf, subPropertyOf, a...
SI (p1, domain, c1)
ET (x, p1, y)
ALORS (x, type, c1)
Exemple
SI (author, domain, Person)
ET (TimBL, author, Report12)
ALO...
RDFSfournit aussi 2 primitives très utiles pour
nommer ou commenter n’importe quelle ressource
(Person, rdfs:label, “Perso...
RDFS permet uniquement des inférences
simples.
58
Ontology Web Language (OWL)
59
OWL fournit des primitives additionnelles
pour des ontologies lourdes
60
Class d’enumaration {a,b,c,d,e}
Définit une classe en donnant tous ses membres
<owl:Class rdf:id="EyeColor">
<owl:oneOf rd...
Union & Intersection
Classes définies par l’union
<owl:Class>
<owl:unionOf rdf:parseType="Collection">
<owl:Class rdf:abou...
Complément & Disjonction
Classes par complément
<owl:Class rdf:ID="Male">
<owl:complementOf rdf:resource="#Female"/>
</owl...
Toutes les Valeurs
<owl:Class rdf:ID="Herbivore">
<subClassOf rdf:resource="#Animal"/>
<subClassOf>
<owl:Restriction>
<owl...
Restriction à une valeur exacte
<owl:Class rdf:ID="Bike">
<subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#nb...
Restriction de cardinalité
le nombre de fois où une propriété est utilisée pour le même sujet mais avec des
valeurs différ...
Types de propriétés
● ObjectProperty lie uniquement des ressources
ex : hasParent(#thomas,#stephan)
● DatatypeProperty lie...
Propriétés Algébriques
Symmetric property, xRy ⇒ yRx
<owl:SymmetricProperty rdf:ID="hasSpouse" />
Inverse property, xR1
y ...
Équivalence et alignement
• classes équivalentes: owl:equivalentClass
ex: Person owl:equivalentClass Human
• propriétés éq...
Documentation de l’ontologie
Description de l’ontologie
owl:Ontology,
owl:imports,
owl:versionInfo,
owl:priorVersion,
owl:...
SPARQL
SPARQL Protocol and
RDF Query Language
71
SPARQL en trois parties
1. Un langage de requêtes
2. Un format de résultats
3. Un protocole d’accès
72
SPARQL : langage de requêtes
Prefix
Select ...
From ...
Where {...}
73
Structure d’une requête
1. La clause SELECT identifie les valeurs à retourner.
2. La clause FROM identifie la source de do...
Requête simple : personnes et leur nom
PREFIX ex: <http://www.exemple.fr/schema#>
SELECT ?person ?name
WHERE {
?person rdf...
Exemple de résultats
<?xml version="1.0"?>
<sparql xmlns="http://www.w3.org/2005/sparql-results#" >
<head>
<variable name=...
FILTER: Les personnes de plus de 18 ans
PREFIX ex: <http://www.exemple.fr/schema#>
SELECT ?person ?name
WHERE {
?person rd...
OPTIONAL : retourne l'âge si disponible
PREFIX ex: <http://www.exemple.fr/schema#>
SELECT ?person ?name ?age
WHERE {
?pers...
UNION pour donner des modèles alternatifs dans une requête
PREFIX ex: <http://www.exemple.fr/schema#>
SELECT ?name
WHERE {...
ORDER BY & LIMIT & OFFSET
PREFIX ex: <http://www.exemple.fr/schema#>
SELECT ?person ?name
WHERE {
?person rdf:type ex:Pers...
ASK ? “true” ou “false”
PREFIX ex: <http://www.exemple.fr/schema#>
ASK {
?person ex:age ?age.
FILTER (?age > 17)
}
Y a t-i...
CONSTRUCT
PREFIX ex: <http://www.exemple.fr/schema#>
CONSTRUCT
{
?person rdf:type ex:Adult
}
WHERE {
?person ex:age ?age
F...
Application
SPARQL : API universelle d'accès aux données ?
Data
Data
Data
API
spécifique
API
spécifique
API
spécifique Dat...
84
Qui utilise le Web Sémantique ?
85
Linked Open Data
Janvier 2015
86
87
Linked my Music
http://www.lespetitescases.net/semweblabs/linkedmymusic/
88
Linked Book mashup
http://www.lespetitescases.net/semweblabs/linkedbookmashup/
89
90
91
92
93
Demo sur dbpedia
94
Sparql endpoint : http://dbpedia.
org/sparql
R1 :
SELECT DISTINCT ?acteur ?dateNaissance ?lieuNaissanc...
Liens utiles
❏ W3C standards http://www.w3.org/standards/semanticweb/
❏ SW Tools http://www.w3.org/2001/sw/wiki/Tools
❏ Li...
Les applications passent
mais les données Restent.
96
Question ?
97
Prochain SlideShare
Chargement dans…5
×

Introduction au Web Sémantique - Web des données par Lynda Temal

2 972 vues

Publié le

Pour répondre à la problématique de l'interprétation de la multitude de données par la machine, Lynda Temal de Sfeir présente une introduction au Web Sémantique.

Publié dans : Internet
0 commentaire
5 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
2 972
Sur SlideShare
0
Issues des intégrations
0
Intégrations
102
Actions
Partages
0
Téléchargements
152
Commentaires
0
J’aime
5
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Introduction au Web Sémantique - Web des données par Lynda Temal

  1. 1. Introduction au Web Sémantique Web des données PhD Lynda Temal temal.l@sfeir.com Chez sfeir depuis 10 février 2014 Remerciement : Cette présentation à été réalisée à partir d’un ensemble de présentations de Fabien Gandon, chercheur à L’inria et membre du W3C. Merci à lui. 1
  2. 2. Succès d’Internet ❏ Documents ❏ Images ❏ Vidéos ❏ Applications ❏ Services ❏ Vie Sociale ❏ Business Cependant …. 2
  3. 3. Qui peut exploiter le Web actuel ? ● Les humains ? ● Les moteurs de recherche ? Problème du web actuel 3
  4. 4. Ce que voit un humain 4
  5. 5. Pour la machine 5
  6. 6. Quelle est la différence ? ● L’humain peut identifier et interpréter ● La machine non! 6
  7. 7. Bémol ! La machine stocke des informations qu’elle ne peut pas interpréter. 7
  8. 8. Le Web Sémantique mentionné par Tim Berners-Lee en 1994 à WWW Passer du web des liens entre des pages peu compréhensibles par les machines à ... un web de choses reliées à la réalité et compréhensibles par les machines 8
  9. 9. Ce qu’il faut faire : 9 Identifier / Expliciter In front of behind In front of
  10. 10. Comment ? Utiliser une ontology partagée Que nous pouvons comprendre Que la machine peut interpréter 10
  11. 11. Définition de l’ontologie 11
  12. 12. Concept / termes / intention / extension 12
  13. 13. Relation de subsemption : C is a B Voiture Voiture 2 roues motrices Voiture 4 roues motrices Voiture Essence Voiture Hybride Toyota Yaris hybride Personne Adulte Voiture Electrique part of is a is a is a is a is a is ais a Marie Toyota Yaris hybride mate xyz appartient is a is a Moteur is a 13 Moyen de transport is a Femme is a is a
  14. 14. Relation de mérologie (part of) 14
  15. 15. Foundational Model of Anatomy 15
  16. 16. 16 Vocabulaire contrôlé Glossaire Thésaurus Taxonomy Ontologie Sémantique faible Sémantique forte Interopérabilité sémantique Interopérabilité syntaxique Niveaux d’interopérabilités Logique de description subsemption (is a) liens terminologiques axioms
  17. 17. Comment faire concrètement ? 17
  18. 18. Les Technologies du Web Sémantique Représentation Requête Raisonnement Confiance 18
  19. 19. Couche de représentation 19
  20. 20. RDF Resource: entreprises, livres, personnes, perceuses, média, services, idées… Description: attributs, qualités, et des relations entre les ressources Framework: modèle, langages et syntaxes pour ces descriptions 20
  21. 21. RDF : un modèle de triplets ( sujet , predicat, objet ) Structure d’une phrase simple ( sujet , verbe, complément ) 21
  22. 22. Contenu non interprétable par la machine Timothy John Berners-Lee, né le 8 juin 1955 à Londres. Il est le principal inventeur du World Wide Web. Il préside le World Wide Web Consortium (W3C), organisme qu'il a fondé. Auteur du livre a Framework for Web Science. 22
  23. 23. Identification : Ressources & Relations Timothy John Berners-Lee, né le 8 juin 1955 à Londres. Il est le principal inventeur du World Wide Web. Il préside le World Wide Web Consortium (W3C), organisme qu'il a fondé. Auteur du livre a Framework for Web Science. 23
  24. 24. Phrases simples TimBL has date of birth 1955-06-08. TimBL has place of birth London. TimBL is inventor of WWW. TimBL is director of W3C. TimBL is creator of W3C. TimBL is author of Frame work for Web Sience sujet verbe complément 24
  25. 25. Triplets RDF : interprétables par la machine (TimBL, dateOfBirth, 1955-06-08) (TimBL, placeOfBirth, London) (TimBL, isInventorOf, WWW) (TimBL, isDirectorOf, W3C) (TimBL, isCreatorOf, W3C) (TimBL, isAuthorOf, Web_Science) (Sujet, predicat, Objet) 25
  26. 26. Les triplets RDFpeuvent être représentés par un graphe orienté (sommet, arc, sommet) 26
  27. 27. TimBL W3C 1955-06-08 dateOfBirth isDirectorOF 27
  28. 28. URI : Uniforme Resource Identifier 28
  29. 29. dbpedia:Tim_Bernes-Lee http://www.w3.org 1955-06-08(xsd:date) http://dbpedia.org/property#dateOfBirth http://dbpedia.org/property#founder 1955-06-08(xsd:date) 29
  30. 30. dbpedia:London dbpedia:England dbpedia:Tim_Bernes-Le http://dbpedia.org/property#placeOfBirth http://dbpedia.org/property#isPartOf dbpedia:London 30
  31. 31. dbpedia:London dbpedia:England dbpedia:Tim_Bernes-Le http://dbpedia.org/property#placeOfBirth http://dbpedia.org/property#isPartOf dbpedia:London http://dbpedia.org/people http://dbpedia.org/palce 31
  32. 32. RDF/XML <rdf:RDF xmlns:rdf=”http://www.W3.org/1999/02/22-rdf-syntaxe-ns#” xmlns:dbpedia="http://dbpedia.org/property#" Xmlns:xsd=”http://www.w3.org/2001/XMLShema#” Xmlns:dc=”http://purl.org/dc/terms”> <rdf:Description rdf:about="http://dbpedia.org/resource/Tim_Berners-Lee <dc:creator rdf:resource=”http://www.w3.org”/> <dbpedia:dateOfBirth>1955-06-08</dbpedia:dateOfBirth> <dbpedia:placeOfBirth rdf:resource=dbpedia:London/> </rdf:Description> </rdf:RDF> 32
  33. 33. N-Triplet <http://dbpedia.org/resource/Tim_Berners-Lee> <http://purl.org/dc/terms/creator> <http://www.w3.org> <http://dbpedia.org/resource/Tim_Berners-Lee> <http://dbpedia.org/property/dateOfBirth> “1955-06-08”^^<http://www.w3.org/2001/XMLSchema#date> <http://dbpedia.org/resource/Tim_Berners-Lee> <http://dbpedia.org/property/placeOfBirth> <http://dbpedia.org/resource/London> <http://dbpedia.org/resource/London> <http://dbpedia.org/property/isPartOf> <http://dbpedia.org/resource/England> 33
  34. 34. Turtel @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>. @prefix xsd: <http://www.w3.org/2001/XMLShema#>. @prefix dc: <http://purl.org/dc/terms> @prefix dbpedia: <http://dbpedia.org/resource#> @prefix dbpprop <http://dbpedia.org/property#> dbpedia:Tim_Berners-Lee dc:creator <http://www.w3.org/> ; dc:author dbpedia:Web_Science; dbpprop:dateOfBirth “1955-06-08”^^xsd:date; dbpprop:placeOfBirth dbpedia:London. dbpedia:London dbpprop:isPartOf dbpedia:England. 34
  35. 35. RDFa : exprimer du RDF dans du HTML <!DOCTYPE html PUBLIC "~//w3c//dtd xhtml+rdfa 1.0//EN"> <html xmlns:foaf="http://xmlns.com/foaf/01/" xmlns:dc="http://purl.org/dc/terms" xmlns=http://www.W3.org/1999/xhtml"> <head><title> Description de TimBL en RDFa + html</title></head> <body> <div typeof="foaf:person" about="http://www.W3.org/People/Berners-Lee/card#i"> Le <span rel="dc:creator" href="http://www.W3.org">créateur du W3C</span> a pour nom <span property="foaf:name">Thimothy Berners-Lee</span> et pout surnom <span property="foaf:nick">Timbl</span> </div> </body> </html> 35
  36. 36. RDF fournit une primitive pour typer les ressources. (TimBL, rdf:type, Person ) (TimBL, rdf:type, Man ) (Web_Science, rdf:type, Book ) Les Primitives RDF 36
  37. 37. RDF fournit les primitives pour construire des containers et des collections pour lister des ressources 37 Les Primitives RDF
  38. 38. Les containers RDFsont ouverts, contiennent des ressources ou des littéraux, qui peuvent être dupliqués. rdf:Bag → pour des ressources non ordonnées rdf:Seq → pour des ressources ordonnées rdf:Alt → pour les alternatives 38 Les Primitives RDF
  39. 39. Les Collections RDFsont fermées, contiennent des ressources ou des littéraux, peuvent être dupliqués. rdf:List → pour commencer la liste rdf:first et rdf:rest → pour lister rdf:nil → pour fermer la liste 39 Les Primitives RDF
  40. 40. (Web_Science, hasChapter, _:a) (_:a, rdf:type, rdf:list) (_:a, rdf:first, chap1) (_:a, rdf:rest, _:b) (_:b, rdf:first, chap2) (_:b, rdf:rest, _:c) (_:c, rdf:first, chap3) (_:c, rdf:rest, rdf:nil) 40
  41. 41. RDFfournit une primitive pour la réification de triplets RDF. rdfs:Statement rdfs:subject, rdfs:predicat, rdfs:object 41 Les Primitives RDF
  42. 42. Exemple de Réification. TimBL says (Web_Science, has for theme, web) 42
  43. 43. (TimBL, says, Triple1) (Triple1, rdfs:subject, web_science) (Triple1, rdfs:predicat, theme) (Triple1, rdfs:object, web) (Triple1, rdf:type, rdfs:Statement) Exemple de Réification. 43
  44. 44. Règles pour écrire des triples RDF ➢ Le sujet est toujours une ressource (jamais un littéral) ➢ Les prédicats sont des relations binaires identifiées par des URIs ➢ L'objet est une ressource ou un littéral 44
  45. 45. RDFne permet pas de définir les concepts d’un domaine pour typer les ressources. 45
  46. 46. RDFS signifie RDF Schema 46
  47. 47. RDFS: fournit les primitives pour écrire des ontologie légères. Définir des inférences élémentaires 47
  48. 48. RDFSpermet de définir des classes de ressources et de les organiser en hiérarchie rdfs:Class rdfs:subClassOf Document Book Report 48
  49. 49. RDFSpermet de définir des propriétés et de les organiser en hiérarchie rdf:Property rdfs:subPropertyOf TimBL report12 author creator author 49
  50. 50. RDFSpermet de définir la signature de chaque propriété rdfs:domain → type de la ressource d’où part la relation rdfs:range → type de la ressource vers laquelle pointe la relation Domain Range relation 50
  51. 51. RDFSdéfinit une sémantique : des règles de déduction standard permettant de créer des triplets additionnels à partir des triplets existants 51
  52. 52. SI (c2, subClassOf, c1) ET (x, type, c2) ALORS (x, type, c1) Exemple SI (Man, subClassOf, Person) ET (TimBL, type, Man) ALORS (TimBL, type, Person) Inférence sur les types Person Man TimBL type type C1 C2 X typetype 52
  53. 53. Si (p2, subPropertyOf, p1) ET (x, p2 , y) ALORS (x, p1 , y) Exemple SI (author, subPropertyOf, creator) ET (TimBL, author, Report12) ALORS (TimBL, creator, Report12) Inférence sur les propriétés X TimBL report12 author creator Y P2 P1 53
  54. 54. SI (c2, subClassOf, c1) ET (c3, subClassOf, c2) ALORS (c3, subClassOf, c1) Exemple SI (Person, subClassOf, living being) ET (Man, subClassOf, Person) ALORS (Man, subClassOf, living being) Inférence sur la transitivité des sous classes Living being Man Person C1 C2 C3 54
  55. 55. SI (p2, subPropertyOf, p1) ET (p3, subPropertyOf, p2) ALORS (p3, subPropertyOf, p1) Exemple SI (parentOf, subPropertyOf, ancestorOf) ET (motherOf, subPropertyOf, parentOf) ALORS (motherOf, subPropertyOf, ancestorOf) Inférence sur la transitivité des sous propriétés P1 P2 P3 ancestorOf parentOf motherOf 55
  56. 56. SI (p1, domain, c1) ET (x, p1, y) ALORS (x, type, c1) Exemple SI (author, domain, Person) ET (TimBL, author, Report12) ALORS (TimBL, type, Person) Inférence sur le domaine Person TimBL report12 author domain 56
  57. 57. RDFSfournit aussi 2 primitives très utiles pour nommer ou commenter n’importe quelle ressource (Person, rdfs:label, “Personne”@fr) (Person, rdfs:comment,”votre commentaire” ) 57
  58. 58. RDFS permet uniquement des inférences simples. 58
  59. 59. Ontology Web Language (OWL) 59
  60. 60. OWL fournit des primitives additionnelles pour des ontologies lourdes 60
  61. 61. Class d’enumaration {a,b,c,d,e} Définit une classe en donnant tous ses membres <owl:Class rdf:id="EyeColor"> <owl:oneOf rdf:parseType="Collection"> <owl:Thing rdf:ID="Blue"/> <owl:Thing rdf:ID="Green"/> <owl:Thing rdf:ID="Brown"/> <owl:Thing rdf:ID="Black"/> </owl:oneOf> </owl:Class> 61
  62. 62. Union & Intersection Classes définies par l’union <owl:Class> <owl:unionOf rdf:parseType="Collection"> <owl:Class rdf:about="#Person"/> <owl:Class rdf:about="#Group"/> </owl:unionOf> </owl:Class> Classes définies par Intersection <owl:Class rdf:ID="Man"> <owl:intersectionOf rdf:parseType="Collection"> <owl:Class rdf:about="#Male"/> <owl:Class rdf:about="#Person"/> </owl:intersectionOf> </owl:Class> 62
  63. 63. Complément & Disjonction Classes par complément <owl:Class rdf:ID="Male"> <owl:complementOf rdf:resource="#Female"/> </owl:Class> Disjonction de classes <owl:Class rdf:ID="Square"> <owl:disjointWith rdf:resource="#Round"/> </owl:Class> 63
  64. 64. Toutes les Valeurs <owl:Class rdf:ID="Herbivore"> <subClassOf rdf:resource="#Animal"/> <subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#eats" /> <owl:allValuesFrom rdf:resource="#Plant" /> </owl:Restriction> </subClassOf> </owl:Class> Certaines valeurs <owl:Class rdf:ID="Sportive"> <owl:equivalentClass> <owl:Restriction> <owl:onProperty rdf:resource="#hobby" /> <owl:someValuesFrom rdf:resource="#Sport" /> </owl:Restriction> </owl:equivalentClass> </owl:Class> Restriction de valeurs 64
  65. 65. Restriction à une valeur exacte <owl:Class rdf:ID="Bike"> <subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#nbWheels" /> <owl:hasValue>2</owl:hasValue> </owl:Restriction> </subClassOf> </owl:Class> 65
  66. 66. Restriction de cardinalité le nombre de fois où une propriété est utilisée pour le même sujet mais avec des valeurs différentes. • Contraints: minimum, maximum, nombre exacte <owl:Class rdf:ID="Person"> <subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="#SocialNumber" /> <owl:maxCardinality>1</owl:maxCardinality> </owl:Restriction> </subClassOf> </owl:Class> 66
  67. 67. Types de propriétés ● ObjectProperty lie uniquement des ressources ex : hasParent(#thomas,#stephan) ● DatatypeProperty lie une ressource à une valeur qui est potentiellement typée ex: hasAge(#thomas,16^^xsd:int) ● AnnotationProperty sont ignorées dans les inférences, et utilisées pour la documentation 67
  68. 68. Propriétés Algébriques Symmetric property, xRy ⇒ yRx <owl:SymmetricProperty rdf:ID="hasSpouse" /> Inverse property, xR1 y ⇒ yR2 x <rdf:Property rdf:ID="hasChild"> <owl:inverseOf rdf:resource="#hasParent"/> </rdf:Property> Transitive property, xRy & yRz ⇒ xRz <owl:TransitiveProperty rdf:ID="hasAncestor" /> Functional property, xRy & xRz ⇒ y=z <owl:FunctionalProperty rdf:ID="hasMother" /> Inverse functional property, xRy & zRy ⇒ x=z <owl:InverseFunctionalPropertyrdf:ID="hasSocialSecurityNumber" /> X Y hasSpouse X Y hasParent hasChild X Y z X Y z X Y z hasMother hasMother hasAncestor 68
  69. 69. Équivalence et alignement • classes équivalentes: owl:equivalentClass ex: Person owl:equivalentClass Human • propriétés équivalentes: owl:equivalentProperty ex: isAuthorOf owl:equivalentProperty isWriterOf • Ressources identiques ou différentes : owl:sameAs, owl:differentFrom ex: Obama owl:sameAs President USA 69
  70. 70. Documentation de l’ontologie Description de l’ontologie owl:Ontology, owl:imports, owl:versionInfo, owl:priorVersion, owl:backwardCompatibleWith, owl:incompatibleWith versions des classes et des propriétés owl:DeprecatedClass, owl:DeprecatedProperty 70
  71. 71. SPARQL SPARQL Protocol and RDF Query Language 71
  72. 72. SPARQL en trois parties 1. Un langage de requêtes 2. Un format de résultats 3. Un protocole d’accès 72
  73. 73. SPARQL : langage de requêtes Prefix Select ... From ... Where {...} 73
  74. 74. Structure d’une requête 1. La clause SELECT identifie les valeurs à retourner. 2. La clause FROM identifie la source de données à interroger. 3. La clause WHERE le modèle de triplet/graphe qui est comparé au graphe RDF. 4. La partie PREFIX déclare les schémas utilisés dans la requête. 74
  75. 75. Requête simple : personnes et leur nom PREFIX ex: <http://www.exemple.fr/schema#> SELECT ?person ?name WHERE { ?person rdf:type ex:Person. ?person ex:name ?name. } 75
  76. 76. Exemple de résultats <?xml version="1.0"?> <sparql xmlns="http://www.w3.org/2005/sparql-results#" > <head> <variable name="person"/> <variable name="name"/> </head> <results ordered="false" distinct="false"> <result> <binding name="person"> <uri>http://www.exemple.fr/schema#TBL</uri> </binding> <binding name="name"> <literal>Berners-Lee</literal> </binding> </result> <result> 76
  77. 77. FILTER: Les personnes de plus de 18 ans PREFIX ex: <http://www.exemple.fr/schema#> SELECT ?person ?name WHERE { ?person rdf:type ex:Person. ?person ex:name ?name. ?person ex:age ?age. FILTER (?age > 17). } 77
  78. 78. OPTIONAL : retourne l'âge si disponible PREFIX ex: <http://www.exemple.fr/schema#> SELECT ?person ?name ?age WHERE { ?person rdf:type ex:Person. ?person ex:name ?name . OPTIONAL { ?person ex:age ?age } } 78
  79. 79. UNION pour donner des modèles alternatifs dans une requête PREFIX ex: <http://www.exemple.fr/schema#> SELECT ?name WHERE { ?person ex:name ?name . { { ?person rdf:type ex:Adult. } UNION { ?person ex:age ?age. FILTER (?age > 17) } } } 79
  80. 80. ORDER BY & LIMIT & OFFSET PREFIX ex: <http://www.exemple.fr/schema#> SELECT ?person ?name WHERE { ?person rdf:type ex:Person. ?person ex:name ?name . } ORDER BY ?name LIMIT 20 OFFSET 20 80
  81. 81. ASK ? “true” ou “false” PREFIX ex: <http://www.exemple.fr/schema#> ASK { ?person ex:age ?age. FILTER (?age > 17) } Y a t-il une personne âgée de plus de 17 ? 81
  82. 82. CONSTRUCT PREFIX ex: <http://www.exemple.fr/schema#> CONSTRUCT { ?person rdf:type ex:Adult } WHERE { ?person ex:age ?age FILTER (?age > 17) } 82
  83. 83. Application SPARQL : API universelle d'accès aux données ? Data Data Data API spécifique API spécifique API spécifique Data RDF + SPARQL endpoint Data RDF + SPARQL endpoint Data RDF + SPARQL endpoint SPARQL Application Sans RDF et SPARQL Avec RDF et SPARQL 83
  84. 84. 84 Qui utilise le Web Sémantique ?
  85. 85. 85
  86. 86. Linked Open Data Janvier 2015 86
  87. 87. 87 Linked my Music http://www.lespetitescases.net/semweblabs/linkedmymusic/
  88. 88. 88 Linked Book mashup http://www.lespetitescases.net/semweblabs/linkedbookmashup/
  89. 89. 89
  90. 90. 90
  91. 91. 91
  92. 92. 92
  93. 93. 93
  94. 94. Demo sur dbpedia 94 Sparql endpoint : http://dbpedia. org/sparql R1 : SELECT DISTINCT ?acteur ?dateNaissance ?lieuNaissance WHERE { ?film a dbpedia-owl:Film ; dbpedia-owl:starring ?acteur . ?acteur dbpedia-owl:birthDate ?dateNaissance ; dbpedia-owl:birthPlace ?lieuNaissance . FILTER (?dateNaissance > "2000-01-01"^^xsd: date) } LIMIT 50 R2: SELECT DISTINCT ?titre ?resume ?date ?wiki ?photo WHERE { ?film rdf:type <http://dbpedia.org/ontology/Film> ; dbpedia-owl:abstract ?resume; rdfs:label ?titre; foaf:isPrimaryTopicOf ?wiki; dbpedia-owl:thumbnail ?photo OPTIONAL {?film dbpprop:released ?date } FILTER langMatches (lang(?resume), 'fr') FILTER langMatches (lang(?titre), 'fr') } LIMIT 10
  95. 95. Liens utiles ❏ W3C standards http://www.w3.org/standards/semanticweb/ ❏ SW Tools http://www.w3.org/2001/sw/wiki/Tools ❏ Linked Data Book http://linkeddatabook.com/editions/1.0/ ❏ W3DevCampus http://www.w3devcampus.com/ ❏ EUCLID material http://www.euclid-project.eu/ ❏ http://fr.slideshare.net/moustaki/utilisation-du-web-semantique-pour-les-sites- de-la-bbc 95
  96. 96. Les applications passent mais les données Restent. 96
  97. 97. Question ? 97

×