Vous êtes sur la page 1sur 46

RDFS

Resource Description Framework


Schema

Hicham BEHJA
Introduction
 RDFS : RDF Schema
 Officiellement : “RDF Vocabulary Description Language”

– Le terme «schéma» est conservée pour des


raisons historiques

2
Introduction
 RDF : modèle de triplets pour annoter des
ressources
 RDFS: décrit le vocabulaire (ontologies) utilisé pour
ces annotations

W3C, T Berners-Lee, Ivan Herman

3
RDF Schema ou RDFS est utilisé pour modéliser des
données au format RDF

RDFS est considéré comme étant une extension sémantique de


RDF car il fournit des mécanismes pour décrire un ensemble
de ressources et les relations entre elles

Ces ressources sont utilisées pour déterminer les caractéristiques


d’autres ressources
4
Exemple:
Système d'implication RDFS
 RDFS fournit des éléments de base pour structurer des ressources RDF.
Le graphe ainsi obtenu est considéré comme étant un graphe bien formé
 si le système d'implication (décrit dans RDFS, OWL, etc.) est respecté.
 Par exemple, on peut décrire les phrases 'Le chien1 est un animal','le
chat1 est un chat', 'les zoos hébergent des animaux' et 'Le zoo1 héberge
le chat2' :
 ex:dog1 rdf:type ex:animal
 ex:cat1 rdf:type ex:cat
 zoo:host rdfs:range ex:animal
 ex:zoo1 zoo:host ex:cat2
 Mais ce graphe n'est pas bien formé car le système ne peut pas deviner
qu'un chat est un animal. Il faut donc rajouter 'Les chats sont des
animaux':
 ex:cat rdfs:subClassOf ex:animal

5
Exemple:
Système d'implication RDFS
 Un chien est un animal
 Le chat1 est un chat
 Les chats sont des animaux
 Les zoos hébergent
uniquement des animaux
 Le zoo1 héberge le chat2

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix ex: <http://example.org/> .
@prefix zoo: <http://example.org/zoo/> .
ex:dog1 rdf:type ex:animal.
ex:cat1 rdf:type ex:cat.
ex:cat rdfs:subClassOf ex:animal
zoo:host rdfs:range ex:animal.
ex:zoo1 zoo:host ex:cat2.
6
Introduction
 RDFS permet de :
– Nommer et définir un vocabulaire conceptuel
consensuel et faire des inférences élémentaires

– Nommer les classes de ressources existantes

7
Introduction
 RDFS permet de :
– Nommer les relations qui existent entre ces classes

– Donner la signature de ces relations:


type de
 Le domaine (d'où la relation part) propriété
domain range
 Le range (où la relation arrive)

– Documenter ces notions (classes, relations…) en


langue naturelle.

8
Introduction
 RDFS permet de :
– Concevoir une taxonomie d'une ontologie

 Liens hiérarchiques des classes

 Liens hiérarchiques des propriétés

9
RDFS vs POO
RDFS utilise un système de classes et propriétés similaire
à ce qui se fait dans la programmation orientée objet

Les propriétés sont décrites en Les classes sont définies en se


se basant sur les classes de basant sur les propriétés que
ressources sur lesquelles elles les instances pourrait avoir
s’appliquent
10
RDFS vs POO
 Propriétés : définies en dehors des classes
– Modèles ouverts permettant à tout le monde de contribuer
– Pas de surcharge
 Multi-instanciation
– Le typage multiple d’une même entité est possible
– Peut être vu comme les différentes facettes d’une ressources
 Héritage multiple classes et propriétés
– Deux hiérarchies de types: les classes, les propriétés
– Chaque type peut hériter de zéro, un ou plusieurs types

11
1ère proposition : 1999
1ère recommandation : 2004

12
RDF permet d’affecter un type à une ressource,
mais sans le décrire (le type)

Utilisation de la balise rdf:type

13
<?xml version="1.0"?>
<rdf:RDF xmlns:per="http://www.person.com/Vocabulary#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="http://www.kws.ma/staff#alaoui.med">
<per:aNom>ALAOUI Mohamed</per:aNom>
<per:ageDe>25</per:ageDe>
<per:travailleA>
<rdf:Description rdf:about ="http://www.kws.ma">
<rdf:type
rdf:resource="http://www.person.com/Vocabulary#organisme" />
</rdf:Description>
</per:travailleA>
<per:possèdePagePerso>
<rdf:Description rdf:about ="http://www.facebook.com/med.alaoui">
<rdf:type
rdf:resource="http://www.person.com/Vocabulary#pagePerso" />
</rdf:Description>
</per:possèdePagePerso>
</rdf:Description> 14
Classes et propriétés
 En RDFS, tout est ressource.
 Parmi les ressources il y a en particulier :
– des classes de ressources
 qui représentent des types de ressources,
 des ensembles de ressources
– des propriétés
 qui représentent des types de relations,
 des ensembles de relations possibles entre les ressources.

15
Classes et propriétés
 Parmi les relations il y a en particulier :
– la relation de typage (instanciation)
 pour dire qu’une ressource/relation est d'un certain
type.
– la relation de sous-type (subsomption)
 pour dire qu’une classe/propriété est sous classe
/propriété d’une autre et que ses instances sont aussi
instances de l’autre.

16
Classes et propriétés

17
Classes et propriétés

18
Classes et propriétés
 class animal
 class mâle, femelle, humain
subClassOf Animal

19
Classes et propriétés
 property hasParent
domain Animal
range Animal
Animal hasParent Animal
 property hasMother
domain Aminal
range Female
subPropertyOf hasParent
Animal hasMother Female

20
Exemple vocabulaire: RDFS
<rdf:RDF xml:base ="http://inria.fr/2005/humans.rdfs"
xmlns:rdf ="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns ="http://www.w3.org/2000/01/rdf-schema#>
<Class rdf:ID="Man">
<subClassOf rdf:resource="#Person"/>
<subClassOf rdf:resource="#Male"/>
<label xml:lang="en">man</label>
<comment xml:lang="en">an adult male person</comment>
</Class>

<rdf:Property rdf:ID="hasMother">
<subPropertyOf rdf:resource="#hasParent"/>
<range rdf:resource="#Female"/>
<domain rdf:resource="#Animal"/>
<label xml:lang="en">has for mother</label>
<comment xml:lang="en">to have for parent a female.</comment>
</rdf:Property>

21
Exemple vocabulaire:
Annotation RDF
<Man rdf:ID="Harry">
<name>Harry</name>
<hasChild rdf:resource="#John"/>
<hasSpouse rdf:resource="#Sophie"/>
</Man>

<Person rdf:about="#John">
<hasParent rdf:resource="#Sophie"/>
</Person>

<Person rdf:ID="David">
<rdf:type rdf:resource="&humans;#Researcher"/>
<hasFriend rdf:resource="#Gaston"/>
<name>David</name>
</Person>

22
RDFS utilise un système de classes et propriétés

Les ressources RDF peuvent être subdivisées en plusieurs classes

Les membres d’une classe sont les instances de cette dernière

Les classes sont aussi considérées comme des ressources


identifiées avec des IRIs

Utilisation de la propriété rdf:type pour déclarer une


ressource comme instance d’une classe
23
RDFS utilise un système de classes et propriétés

Espace de noms pour l’utilisation d’éléments RDFS

<?xml version = "1.1" ?>


<rdf:RDF
xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs = "http://www.w3.org/2000/01/rdf-schema#">

<!-– Descriptions RDF & RDFS -->

</rdf:RDF>

24
RDFS utilise un système de classes et propriétés

rdfs:class

Balise permettant de déclarer une ressource RDF comme une


classe pour d'autres ressources.

<rdfs:Class rdf:ID ="Personne" />

25
RDFS utilise un système de classes et propriétés

rdfs:subClassOf

Balise permettant de définir des hiérarchies de classes


[ classe mère d’une autre classe ]

<rdfs:Class rdf:ID="Etre_Vivant" />
<rdfs:Class rdf:ID="Personne">
<rdfs:subClassOf rdf:resource = "Etre_Vivant" />
</rdfs:class>

26
RDFS : Sémantique et
inférence
IF (c2, subClassOf, c1)
AND (x, type, c2)
THEN (x, type, c1)

IF (Man, subClassOf, Person)


AND (Tom, type, Man)
THEN (Tom, type, Person)

Type propagation
27
RDFS : Sémantique et
inférence
IF (c2, subClassOf, c1)
AND (c3, subClassOf, c2)
THEN (c3, subClassOf, c1)

IF (Person, subClassOf, Animal)


AND (Man, subClassOf, Person)
THEN (Man, subClassOf, Animal)

subClass transitivity
28
RDFS utilise un système de classes et propriétés

rdf:property

Balise permettant de définir une propriété


[ liant deux ressources]

<rdf:property rdf:ID="HasAuteur">
<rdfs:domain rdf:ressource = "Document" />
<rdfs:range rdf:ressource = "Personne" />
</rdf:property>

29
RDFS utilise un système de classes et propriétés

rdf:property

Balise permettant de définir une propriété


[ liant deux ressources]

Sujet – Prédicat – Objet

Domain – Property – Range


30
RDFS utilise un système de classes et propriétés

rdf:property

Balise permettant de définir une propriété


[ liant deux ressources]

Exemple

Domain « Propriété » Range


Auteur
« classe » « classe »
31
RDFS utilise un système de classes et propriétés

rdf:property

Balise permettant de définir une propriété


[ liant deux ressources]

Exemple

Domain « Propriété » Range


Titre
« classe » « littéral »
32
RDFS utilise un système de classes et propriétés

rdfs:subPropertyOf

Balise permettant de définir des hiérarchies de propriétés

<rdf:property rdf:ID="filsDe">
<rdfs:domain rdf:ressource = "Personne" />
<rdfs:range rdf:ressource = "Père" />
<rdfs:subPropertyOf rdf:ressource = "enfantDe" />
</rdf:property>

33
RDFS : Sémantique et
inférence
IF (p2, subPropertyOf, p1)
AND (x, p2 , y)
THEN (x, p1 , y)

IF (author, subPropertyOf, creator)


AND (Tom, author, Report12)
THEN (Tom, creator, Report12)

Property propagation
34
RDFS : Sémantique et
inférence
IF (p2, subPropertyOf, p1)
AND (p3, subPropertyOf, p2)
THEN (p3, subPropertyOf, p1)

IF (parent, subPropertyOf, ancestor)


AND (father, subPropertyOf, parent)
THEN (father, subPropertyOf, ancestor)

subProperty transitivity
35
RDFS utilise un système de classes et propriétés

rdfs:label

Balise permettant de définir un label pour une ressource


[ pour qu’il soit lisible pour l’être humain ]

<rdfs:Class rdf:ID="Personne">
<rdfs:label xml:lang="fr">Classe Personne</rdfs:label>
<rdfs:label xml:lang="en">Person Class</rdfs:label>
<rdfs:label xml:lang="ar">‫<فئة األشخاص‬/rdfs:label>
</rdfs:class>

36
rdfs:label
 Une ressource peut avoir un ou plusieurs
(labels) dans une ou plusieurs langues
naturelles.
– Utilisés pour fournir une version lisible du nom
d’une ressource.

<rdf:Property rdf:ID=‘name’>
<rdfs:domain rdf:resource='Person'/>
<rdfs:range rdf:resource=’&rdfs;Literal'/>
<rdfs:label xml:lang='fr'>nom</rdfs:label>
<rdfs:label xml:lang='fr'>nom de famille</rdfs:label>
<rdfs:label xml:lang='en'>name</rdfs:label>
</rdf:Property>

37
RDFS utilise un système de classes et propriétés

rdfs:comment

Balise permettant de définir un commentaire sur une ressource


[ description compréhensible pour l’être humain ]

<rdfs:Class rdf:ID="Personne">
<rdfs:comment xml:lang="fr">
Ceci est un commentaire sur la classe Personne
</rdfs:comment>
</rdfs:class>

38
rdfs:comment
 Les
commentaires (comment) sont utilisés pour
donner des définitions en langage naturel.

<rdfs:Class rdf:about=‘#Woman’>
<rdfs:subClassOf rdf:resource="#Person" />
<rdfs:comment xml:lang=‘fr’>une personne adulte du sexe
féminin</rdfs:comment>
<rdfs:comment xml:lang=‘en’>a female adult
person</rdfs:comment>
</rdfs:Class>

39
RDFS utilise un système de classes et propriétés

rdfs:seeAlso

Balise permettant d’indiquer une ressource qui fournie des


informations supplémentaire sur le « Sujet » d’une relation

<rdf:property rdf:ID="filsDe">
<rdfs:domain rdf:ressource = "Personne" />
<rdfs:range rdf:ressource = "Père" />
<rdfs:seeAlso
rdf:ressource = "http://www.person.com/fils.html" />
</rdf:property>

40
RDFS utilise un système de classes et propriétés

rdfs:isDefinedBy

Balise permettant d’indiquer une ressource qui définie


le « Sujet » d’une relation
[ Elle peut être utilisée pour indiquer un vocabulaire RDF décrivant la ressource ]
<rdf:class rdf:ID="Etudiant">
<rdfs:label>Classe Etudiant</rdfs:label>
<rdfs:comment>
Classe représentant les étudiants de la filière informatique
</rdfs:comment>
<rdfs:isDefinedBy
rdf:resource = "http://www.ensem.ac.ma/info/semantics#" />
</rdf:property>
41
RDFS : Sémantique et
inférence
IF (p1, domain, c1)
AND (x, p1, y)
THEN (x, type, c1)

IF (author, domain, Human)


AND (Tom, author, Report12)
THEN (Tom, type, Human)

Domain inference
42
RDFS : Sémantique et
inférence
IF (p1, range, c1)
AND (x, p1, y)
THEN (y, type, c1)

IF (author, range, Document)


AND (Tom, author, Report12)
THEN (Report, type, Document)

Range inference
43
RDFS : Sémantique et
inférence
 Plus de sémantique RDFS
– http://www.w3.org/TR/rdf-mt/

44
Résumé RDF/RDFS – Classes
Class name Comment
rdfs:Resource The class resource, everything.
rdfs:Literal The class of literal values, e.g. textual strings and integers.
rdf:XMLLiteral The class of XML literals values.
rdfs:Class The class of classes.
rdf:Property The class of RDF properties.
rdfs:Datatype The class of RDF datatypes.
rdf:Statement The class of RDF statements.
rdf:Bag The class of unordered containers.

rdf:Seq The class of ordered containers.

rdf:Alt The class of containers of alternatives.

rdfs:Container The class of RDF containers.


rdfs:ContainerMe The class of container membership properties, rdf:_1, rdf:_2, ...,
mbershipProperty all of which are sub-properties of 'member'.
rdf:List The class of RDF Lists.
45
Résumé RDF/RDFS – Propriétés
Property name comment domain range
rdf:type The subject is an instance of a class. rdfs:Resource rdfs:Class
rdfs:subClassOf The subject is a subclass of a class. rdfs:Class rdfs:Class
rdfs:subPropertyOf The subject is a subproperty of a property. rdf:Property rdf:Property
rdfs:domain A domain of the subject property. rdf:Property rdfs:Class
rdfs:range A range of the subject property. rdf:Property rdfs:Class
rdfs:label A human-readable name for the subject. rdfs:Resource rdfs:Literal
rdfs:comment A description of the subject resource. rdfs:Resource rdfs:Literal
rdfs:member A member of the subject resource. rdfs:Resource rdfs:Resource
rdf:first The first item in the subject RDF list. rdf:List rdfs:Resource
rdf:rest The rest of the subject RDF list after the first item. rdf:List rdf:List
rdfs:seeAlso Further information about the subject resource. rdfs:Resource rdfs:Resource
rdfs:isDefinedBy The definition of the subject resource. rdfs:Resource rdfs:Resource
Idiomatic property used for structured values (see the
rdf:value rdfs:Resource rdfs:Resource
RDF Primer for an example of its usage).
rdf:subject The subject of the subject RDF statement. rdf:Statement rdfs:Resource
rdf:predicate The predicate of the subject RDF statement. rdf:Statement rdfs:Resource
rdf:object The object of the subject RDF statement. rdf:Statement rdfs:Resource
46

Vous aimerez peut-être aussi