RDF Schema Philippe Genoud, UFR IM2AG, UGA 1
RDF Schema (RDF-S) Introduc9on Les classes RDF- S Les propriétés RDF- S Interpréta9on des déclara9ons RDF- S Descrip9on de classes et propriétés Conclusion 2
Des limitations de RDF RDF fournit une manière standard d exprimer des déclara9ons simples sur des ressources en u9lisant des propriétés nommées et des valeurs Mais on ne peut pas exprimer de la connaissance sur les propriétés et les types des ressources, comme par ex. : qu il existe une rela9on de spécialisa9on/généralisa9on entre deux classes qu il existe une rela9on de spécialisa9on/généralisa9on entre deux propriétés que les sujets d une propriété donnée sont d un type par9culier que les valeurs d une propriété donnée sont d un type par9culier 3
RDF Schema (RDF-S) W3C, T Berners-Lee, Ivan Herman 4
RDF Schema (RDF-S) Officiellement : RDF Vocabulary Descrip9on Language le terme Schema a été conservé pour des raisons historiques à fournit aux communautés d u9lisateurs la possibilité de définir des vocabulaires (les termes) qu ils ont l inten9on d u9liser dans leurs déclara9ons RDF à un vocabulaire RDF : déclara9ons de classes, de propriétés ainsi que des rela9ons entre elles à parfois on parle aussi des ontologies 5
RDF Schema (RDF-S) RDF- S fournit un système de types pour RDF similaire dans une certaine mesure aux systèmes de types des langages de programma9on par objet tel que Java classes ó types a]ributs ó propriétés instances ó ressources héritage ó organisa9on hiérarchique de types mais RDF- S est un langage de descrip9on, pas un langage de programma9on : pas de méthodes 6
RDF Schema (RDF-S) RDF- S étend RDF avec un vocabulaire de schémas qui permet de définir les termes basiques d un vocabulaire concret et les rela9ons entre ces termes. recommanda9on W3C : RDF Vocabulary Descrip9on Language h]p://www.w3.org/tr/rdf- schema/ le vocabulaire RDF- S est décrit lui- même sous forme d un vocabulaire RDF les ressources dans le vocabulaire RDF- S sont désignées par des URIs avec l espace de noms rdfs=http://www.w3.org/2000/01/rdf- schema# des ressources RDF- S : rdfs:domain, rdfs:range, rdfs:class, rdfs:subclassof, rdfs:subpropertyof la séman9que permet de définir la significa9on des ressources par9culières spécifie comment les termes devraient être interprétés nous permet de faire de l inférence 7
RDF Schema (RDF-S) Les descrip9ons des vocabulaires (schémas) écrits avec le langage RDF- S sont des graphes RDF valides. tout logiciel qui peut traiter du RDF peut aussi interpréter un schéma RDF- S comme un graphe RDF valide mais il faut l étendre pour qu il comprenne les significa9ons addi9onnelles intégrées aux termes RDF- S. 8
RDF Schema (RDF-S) Introduc9on Les classes RDF- S Les propriétés RDF- S Interpréta9on des déclara9ons RDF- S Descrip9on de classes et propriétés Conclusion 9
Les classes avec RDF-S Une classe est un ensemble d objets/instances/individus qui partagent certaines caractéris9ques Une classe est désignée par une URI décrite comme étant de type rdfs:class en u9lisant la propriété rdf:type ex:vehiculemoteur rdf:type rdfs:class. Rappelez- vous : la propriété rdf:type est u9lisée pour indiquer qu une ressource est une instance d une classe ex:fourgon123 rdf:type ex:vehiculemoteur. rdfs:class rdf:type rdfs:class. la ressource rdfs:class désigne la classe des classes RDF 10
Les classes avec RDF-S Une ressource peut être une instance de plus d une classe. ex:vehiculemoteur rdf:type rdfs:class. ex:vehiculequatreroues rdf:type rdfs:class. ex:fourgon123 rdf:type ex:vehiculemoteur; rdf:type ex:vehiculequatreroues. La rela9on de spécialisa9on entre deux classes est décrite en u9lisant la propriété prédéfinie rdfs:subclassof ex:vehiculemoteur rdf:type rdfs:class. ex:fourgon rdf:type rdfs:class; rdfs:subclassof ex:vehiculemoteur. ex:camion rdf:type rdfs:class; rdfs:subclassof ex:vehiculemoteur. 11
Les classes avec RDF-S séman9que de rdfs:subclassof : chaque instance de la sous- classe est aussi une instance de la super- classe ex:vehicule rdf:type rdfs:class. ex:vehiculemoteur rdf:type rdfs:class; rdfs:subclassof ex:vehicule. ex:fourgon rdf:type rdfs:class; rdfs:subclassof ex:vehiculemoteur. 12
Les classes avec RDF-S è ex:fourgon123 est une instance de ex:fourgon et aussi une instance de ex:vehiculemoteur ex:vehiculemoteur rdfs:subclassof ex:fourgon123 rdf:type ex:fourgon ex:fourgon123 rdf:type ex:vehiculemoteur. ce triplet ne fait pas par9e du jeu de données RDF original mais il peut être inféré à par9r de la séman9que de rdfs:subclassof les raisonneurs RDF- S peuvent déduire ce triplet 13
L inférence : soyons formels Les séman9ques de RDF et RDF- S peuvent être presentées en forme de règles d inférence Le document W3C RDF Seman9cs inclut une liste de 33 règles d inférence : si ces triples sont dans le graphe, ajoute cet autre triple l idée d appliquer les règles récursivement jusqu à ce que le graphe ne change pas (satura9on) La règle per9nente pour notre exemple : Si le graphe G contient : xxx rdfs:subclassof yyy. uuu rdf:type xxx. Alors ajoute : uuu rdf:type yyy.
Les classes avec RDF-S Une classe peut être sous- classe de plus d une classe (hiérarchies) http://www.example.org/schemas/vehicules#vehiculemoteur http://www.w3.org/2000/01/rdf-schema#subclassof http://www.example.org/schemas/vehicules#fourgon http://www.w3.org/2000/01/rdf-schema#subclassof http://www.w3.org/2000/01/rdf-schema#subclassof http://www.example.org/schemas/vehicules#vehiculepassagers http://www.example.org/schemas/vehicules#voiture http://www.w3.org/2000/01/rdf-schema#subclassof http://www.w3.org/2000/01/rdf-schema#subclassof http://www.example.org/schemas/vehicules#taxi ex:vehiculemoteur rdf:type rdfs:class. ex:vehiculepassagers rdf:type rdfs:class ; rdfs:subclassof ex:vehiculemoteur. ex:fourgon rdf:type rdfs:class ; rdfs:subclassof ex:vehiculemoteur. ex:voiture rdf:type rdfs:class ; rdfs:subclassof ex:vehiculemoteur. ex:taxi rdf:type rdfs:class ; rdfs:subclassof ex:voiture, ex:vehiculepassagers. 15
RDF Schema (RDF-S) Introduc9on Les classes RDF- S Les propriétés RDF- S Interpréta9on des déclara9ons RDF- S Descrip9on de classes et propriétés Conclusion 16
Les propriétés avec RDF-S Une propriété est désignée par une URI décrite comme étant de type rdf:property, ce]e ressource désignant la classe des propriétés RDF Les termes RDF- S rdfs:domain, rdfs:range et rdfs:subpropertyof décrivent l u9lisa9on de propriétés avec des données RDF. rdfs:domain permet de déclarer le domaine, c.- à- d. les classes dans lesquelles une propriété prend ses sujets. rdfs:range permet de déclarer le codomaine, c.- à- d. les classes dans lesquelles une propriété prend ses valeurs. 17
Les propriétés avec RDF-S le domaine et le codomaine d une propriété concrète : ex:personne rdf:type rdfs:class. ex:livre rdf:type rdfs:class. ex:auteur rdf:type rdf:property ; rdfs:domain ex:livre ; rdfs:range ex:personne. ex:voyageauboutdelanuit ex:auteur ex:louisferdinandceline. (alors on peut déduire) ex:voyageauboutdelanuit rdf:type ex:livre. ex:louisferdinandceline rdf:type ex:personne. un exemple où le codomaine est un type de données : ex:prix rdf:type rdf:property ; rdfs:range xsd:integer. 18
Les propriétés avec RDF-S Il peut y avoir zéro, une, ou plus d une déclara5on de domaine par rapport à une propriété Zéro déclara9ons : rien n est dit sur les sujets de la propriété. Toutes les ressources peuvent être des sujets de la propriété. Une déclara9on : les sujets de la propriété sont des instances de la classe déclarée comme domaine. Plus d une déclara9on : les sujets de la propriété sont des instances de toutes les classes spécifiées comme domaines de la propriété. ex:estmerede rdfs:domain ex:femme, ex:parent. ex:annabelle ex:estmerede ex:pierre. doit être une instance de ex:femme ainsi que de ex:parent 19
Les propriétés avec RDF-S Il peut y avoir zéro, une, ou plus d une déclara5on de codomaine par rapport à une propriété Zéro déclara9ons : rien n est dit sur les valeurs de la propriété. N importe quoi (ressource ou li]éral) peut être un objet de la propriété. Une déclara9on : les objets de la propriété sont des instances (li]éraux) de la classe (type de données) déclarée comme codomaine. Plus d une déclara9on : les objets de la propriété sont des instances (li]éraux) de toutes les classes (types de données) déclarées comme portée. ex:amere rdfs:range ex:femme, ex:parent. ex:pierre ex:amere ex:annabelle. doit être une instance de ex:femme ainsi que de ex:parent. 20
Les propriétés avec RDF-S La propriété RDF- S prédéfinie rdfs:subpropertyof permet de décrire des rela9ons de spécialisa9on entre deux propriétés property1 rdfs:subpropertyof property2. alors property1 est une spécialisa9on de property2 alors n importe quelles deux ressources reliées par property1 sont implicitement reliées par property2 ex:conducteur rdf:type rdf:property. ex:conducteurprincipal rdf:type rdf:property. ex:conducteurprincipal rdfs:subpropertyof ex:conducteur. ex:employe12 ex:conducteurprincipal ex:fourgonenterprise45. ex:employe12 ex:conducteur ex:fourgonenterprise45 21
Les propriétés avec RDF-S Une propriété peut être une sous- propriété de zéro, une, ou plus d une propriété. Toutes les déclara9ons de domaine et de codomaine sur une propriété s appliquent à toutes ses sous- propriétés. ex:conducteur rdf:type rdf:property ;. rdfs:domain ex:personne ; rdfs:range ex:vehicule. ex:conducteurprincipal rdf:type rdf:property ; rdfs:subpropertyof ex:conducteur. ex:employe12 ex:conducteurprincipal ex:fourgonenterprise45. ex:employe12 ex:conducteur ex:fourgonenterprise45. ex:employe12 rdf:type ex:personne. ex:fourgonenterprise45 rdf:type ex:vehicule. 22
Les propriétés avec RDF-S par défaut les propriétés sont définies indépendamment des déscrip9ons de classes ex:aparent a rdf:property. ex:humaine a rdfs:class. ex:pierre a ex:humain ; ex:aparent ex:annabelle. ex:chien a rdfs:class. ex:cacao a ex:chien ; ex:aparent ex:champion. ex:livre a rdfs:class. ex:aparent a une portée globale et alors peut être u9lisée pour décrire des instances de n importe quelle classe ce]e flexibilité facilite l usage de la propriété dans des situa9ons qui peuvent ne pas avoir prévues ini9alement mais il peut y avoir des situa9ons où les propriétés sont mal exploitées ex:voyageauboutdelanuit a ex:livre ; ex:aparent ex:louisferdinandceline. 23
Les propriétés avec RDF-S avec rdfs:domain et rdfs:range on peut restreindre l usage des propriétés ex:aparent a rdf:property ;. rdfs:domain ex:humain ; rdfs:range ex:humain. ex:annabelle a ex:humain. ex:pierre a ex:humain ; ex:aparent ex:annabelle. mais cela introduit de l inflexibilité et doit être u9lisé avec précau9on ex:champion a ex:chien. ex:cacao a ex:chien ; à ex:cacao et ex:champion sont ex:aparent ex:champion. des chiens et des humaines! la portée déclarée pour une propriété s applique pour tous les usages de la propriété avec RDF- S ce n est pas possible de définir une propriété spécifique ayant des codomaines différents localement en fonc9on de la classe de la ressource auquelle la propriété est appliquée. 24
Les propriétés avec RDF-S ex:organismevivant a rdfs:class. ex:humain a rdfs:class ;. rdfs:subclassof ex:organismevivant. ex:chien ex:chat a rdfs:class. ; rdfs:subclassof ex:organismevivant. a rdfs:class. ; rdfs:subclassof ex:organismevivant. ex:aparent a rdf:property ; rdfs:domain?????? ex:organismevivant ; ; rdfs:range?????? ex:organismevivant.. Ça ne suffit pas : un humain pourrait avoir un chien/chat comme parent ex:aparenthumain a rdf:property ; rdfs:subpropertyof ex:aparent ; rdfs:domain ex:humain ; rdfs:range ex:humian. On ajoute des nouvelles propriétés spécialisées ex:aparent ex:aparentchien a rdf:property ; rdfs:subpropertyof ex:aparent ;... 25
RDF Schema (RDF-S) Introduc9on Les classes RDF- S Les propriétés RDF- S Interpréta9on des déclara9ons RDF- S Descrip9on de classes et propriétés Conclusion 26
Interpretation des déclarations RDF-S Les descrip9ons RDF- S ne sont pas (nécessairement) norma8ves comme les langages d'objet. Langage Java public Class Personne { private String nom; } Personne(String nom) { this.nom = nom; } chaque instance de Personne a une propriété (a]ribut) nom et cet a]ribut est unique une instance de Personne n a rien d autre propriété que nom RDF- S ex:personne a rdfs:class. ex:anom a rdf:property ; rfs:domain ex:personne ; rdfs:range xsd:string. ex:john a ex:personne ; ex:anom "Johnny Defool". il peut y avoir plusieurs valeurs ex:john ex:anom "Johnny". il peut y avoir d autres propriétés ex:john foaf:knows ex:mary. la propriété n est pas obligatoire pour les instances de la classe Personne ex:paul a ex:personne ; foaf:name "Paul White. 27
RDF Schema (RDF-S) Introduc9on Les classes RDF- S Les propriétés RDF- S Interpréta9on des déclara9ons RDF- S Descrip9on de classes et propriétés Conclusion 28
Description de classes et propriétés rdfs:label et rdfs:comment : permet d associer des labels et des commentaires à une classe, à une propriété, et plus généralement à une ressource quelconque sont des chaînes de caractères (li]éraux) lisibles par les humaines rdfs:seealso : permet d associer deux classes ou deux propriétés, et plus généralement deux ressources. la ressource valeur d une propriété rdfs:seealso con9ent des informa9ons supplémentaires rela9ves à la ressource sujet réseaux séman9ques rdfs:isdefinedby : permet d indiquer une ressource définissant la ressource sujet il est notamment d usage de l u9liser pour indiquer l URI du vocabulaire RDF dans lequel la ressource est décrite 29
RDF Schema (RDF-S) Introduc9on Les classes RDF- S Les propriétés RDF- S Interpréta9on des déclara9ons RDF- S Descrip9on de classes et propriétés Conclusion 30
Qu est ce que RDF-S nous donne? RDF une mécanisme pour publier des données un modèle de données simple cohérence syntaxique entre des noms (URIs) intégra9on de données de bas niveau assemble les graphes et voilà! RDF- S offre la possibilité de définir des vocabulaires/schémas simples quand on décrit des ressources l usage et le partage cohérents des vocabulaires de l inférence basique 31
Des problèmes avec RDF-S RDF- S est n est pas suffisant pour décrire des ressources de manière detaillée Pas de contraintes de domaine/codomaine localisées On ne peut pas dire que le codomaine de la propriété aparent est Personne si elle est appliquée aux personnes, et Chien si appliquée aux chiens Pas de contraintes d existence/cardinalité avec RDF- S on ne peut pas dire, par ex., que toutes les instances de la classe Personne ont une mère qui est aussi une Personne, ou que toutes les personnes ont (exactement) deux parents Pas de propriétés transi5ves, inverses ou symmetriques On ne peut pas déclarer que une propriété, par ex., estpar8ede est transi9ve, ou que apar8e est l inverse de estpar8ede, ou que afrere est symétrique. 32