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

Preview:

Citation preview

Introduction au Web Sémantique

Web des données

PhD Lynda Temaltemal.l@sfeir.comChez 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

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 par les machines à ...

un web de choses reliées à la réalité et compréhensibles par les machines

8

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

Voiture2 roues motrices

Voiture4 roues motrices

VoitureEssence

VoitureHybride

Toyota Yaris hybride

Personne

Adulte

VoitureElectrique

part of

is a

is ais a

is a

is a

is ais a

MarieToyota Yaris

hybridemate xyz

appartient is a

is a

Moteur

is a

13

Moyende transport

is a

Femme

is a

is a

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émantique

Interopérabilité syntaxique

Niveaux d’interopérabilités

Logique de description

subsemption(is a)

liens terminologiques

axioms

Comment faire concrètement ?

17

Les Technologies du Web Sémantique

Représentation

RequêteRaisonnement

Confiance

18

Couche de représentation

19

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

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 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

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

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ément24

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

Les triplets RDF peuvent ê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/property#founder

1955-06-08(xsd:date)

29

dbpedia:London

dbpedia:England

dbpedia:Tim_Bernes-Le

http://dbpedia.org/property#placeOfBirth

http://dbpedia.org/property#isPartOf

dbpedia:London

30

dbpedia:London

dbpedia:England

dbpedia:Tim_Bernes-Le

http://dbpedia.org/property#placeOfBirth

http://dbpedia.org/property#isPartOf

dbpedia:London

http

://db

pedi

a.or

g/pe

ople

http

://db

pedi

a.or

g/pa

lce

31

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

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

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

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

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

RDF fournit les primitives pour construire

des containers et des collections pour

lister des ressources

37

Les Primitives RDF

Les containers RDF sont ouverts,

contiennent des ressources ou des littéraux,

qui peuvent être dupliqués.

rdf:Bag → pour des ressources non ordonnéesrdf:Seq → pour des ressources ordonnéesrdf:Alt → pour les alternatives

38

Les Primitives RDF

Les Collections RDF sont fermées,

contiennent des ressources ou des littéraux,

peuvent être dupliqués.

rdf:List → pour commencer la listerdf:first et rdf:rest → pour listerrdf:nil → pour fermer la liste

39

Les Primitives RDF

(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

RDF fournit une primitive pour la réification de

triplets RDF.

rdfs:Statement

rdfs:subject, rdfs:predicat, rdfs:object

41

Les Primitives RDF

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)

(Triple1, rdf:type, rdfs:Statement)

Exemple de Réification.

43

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

RDF ne 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

RDFS permet de définir des classes de ressources et

de les organiser en hiérarchie

rdfs:Class

rdfs:subClassOf

Document

Book Report

48

RDFS permet de définir des propriétés et de les

organiser en hiérarchie

rdf:Property rdfs:subPropertyOf

TimBL report12author

creator

author49

RDFS permet 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 Rangerelation

50

RDFS définit une sémantique :

des règles de déduction standard permettant de créer

des triplets additionnels à partir des triplets existants

51

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

typetype

C1

C2

X

typetype

52

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 report12author

creator

Y

P2

P1

53

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

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

motherOf55

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 report12author

domain

56

RDFS fournit 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

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 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

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

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

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

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

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

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

Propriétés Algébriques

Symmetric property, xRy ⇒ yRx<owl:SymmetricProperty rdf:ID="hasSpouse" />

Inverse property, xR1y ⇒ yR

2x

<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 YhasParent

hasChild

X Y z

X

Y z

XY z

hasMother

hasMother

hasAncestor

68

É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

Documentation de l’ontologie

Description de l’ontologieowl:Ontology,

owl:imports,

owl:versionInfo,

owl:priorVersion,

owl:backwardCompatibleWith,

owl:incompatibleWith

versions des classes et des propriétés owl:DeprecatedClass,

owl:DeprecatedProperty70

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 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

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

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

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

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

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

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

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

CONSTRUCT

PREFIX ex: <http://www.exemple.fr/schema#>

CONSTRUCT {

?person rdf:type ex:Adult } WHERE {

?person ex:age ?age FILTER (?age > 17)

}

82

Application

SPARQL : API universelle d'accès aux données ?

Data

Data

Data

APIspécifique

APIspécifique

APIspé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

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 ?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

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

Les applications passent

mais les données Restent.

96

Question ?

97

Recommended