Vocabulaires et méta-vocabulaires¶
Vocabulaires¶
Trouver un vocabulaire¶
Quelques vocabulaires utiles¶
Dublin Core¶
Méta-données à propos des documents :
titre, résumé…
créateur, contributeur…
date de création, de dernière modification, versions…
- description:
- homepage:
FOAF: Friend of a friend¶
Description de personnes et de leur réseau social
Personne (nom, prénom, page weg, adresse e-mail, connaissance…)
Groupe (membres…)
Document (a pour sujet…), Image (représente…)
- description:
- homepage:
SIOC: Semantically-Interlinked Online Communities¶
Description de communautés en ligne
Forum, Blog, Wiki…
Article, Commentaire…
- description:
- homepage:
Schema.org¶
Vocabulaire généraliste
destiné à améliorer l’indexation des pages par les moteurs de recherche
- description:
- homepage:
SOSA/SSN¶
Ontologie pour le Web of Things (capteurs et objets connectés).
SOSA: Sensor, Observation, Sample, and Actuator
SSN: Semantic Sensor Network
- description:
- homepage:
GS1 Web Vocabulary¶
Extension de Schema.org pour décrire des produits commercialisés.
- homepage:
Méta-vocabulaires¶
Motivation¶
Découverte de la sémantique d’un terme (IRI) en le déréférençant.
Exemple : http://dbpedia.org/resource/James_Bond
:James_Bond
a dbo:FictionalCharacter ;
dbo:creator :Ian_Fleming .
Ce principe s’applique également aux classes (e.g. dbo:FictionalCharacter
)
et aux prédicats (e.g. dbo:creator
).
Problème¶
Syndrome du dictionnaire : il faut pouvoir s”« arrêter » sur des termes connus.
Nécessité d’un vocabulaire (ensemble de termes) permettant de décrire d’autres vocabulaires : méta-vocabulaires.
Objectif¶
Expliciter formellement la sémantique des vocabulaires (en conformité avec la sémantique de RDF), afin de
limiter les problèmes d’ambigüité sur les termes
permettre leur découverte dynamique
relations sémantiques internes
assurer l’interopérabilité
relations sémantiques avec d’autres vocabulaires
Exemples d’inférences¶
⊧ₖ
⊧ₖ
RDF-Schema¶
Présentation¶
RDF-Schema (ou RDF-S) est une recommandation du W3C publiée en même temps que RDF (1999, révisée en 2004 et 2014).
Il permet d’exprimer une hiérarchie de classes et une hiérarchie de propriétés (relations).
→ hiérarchie au sens large : treillis
Il permet aussi d’exprimer des contraintes sémantiques sur les propriétés et les classes.
⚠ contrainte sémantique ≠ contrainte d’intégrité, cf. ci-après
Espaces de noms et préfixes¶
Suite à des circonvolutions historiques, le vocabulaire RDF-Schema utilise deux espaces de nom, associés respectivement aux préfixes suivants :
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
rdf:type¶
rdf:type
indique l’appartenance d’une ressource à une classe.
Exemple :
rdfs:subClassOf¶
rdfs:subClassOf
indique une relation une spécialisation entre classes
(« est une sorte de », ou « tous les X sont des Y »).
Exemple :
⊧
rdfs:subPropertyOf¶
rdfs:subPropertyOf
indique une relation une spécialisation entre propriétés
(« est une sorte de »).
Exemple :
⊧
rdfs:domain¶
Indique qu’une propriété porte nécéssairement sur les instance d’une classe.
Exemple :
⊧
rdfs:range¶
Indique qu’une propriété a nécéssairement pour valeur les instance d’une classe.
Exemple :
⊧
Contrainte RDF-S ≠ contraintes d’intégrité¶
Les méta-propriétés rdfs:domain
et rdfs:range
ne servent pas à vérifier qu’un graphe serait « valide ». Il ne permettent que d”inférer des faits supplémentaires.
Indirectement, cela peut entraîner une contradiction, qui signale effectivement un problème :
Mais ces contradictions sont rares en RDF-S, qui ne permet pas d’exprimer de négation.
Dans l’exemple précédent, dbr:James_Bond est à la fois une personne (dbo:Person) et une œuvre (dbo:Work), et RDF-S ne permet pas d’interdire cela.
Documentation¶
RDF-Schema fournit aussi des termes pour documenter un vocabulaire :
rdfs:label
permet d’associer un libellé textuel à un URI (éventuellement plusieurs, par exemple dans plusieurs langues) ;rdfs:comment
permet d’associer un commentaire textuel plus long ;rdfs:seeAlso
permet de pointer vers une autre ressource.
Méta-modélisation¶
Rien n’empèche, en RDF-S, d’avoir une classe qui soit elle même une instance d’une autre classe (méta-classe). C’est d’ailleurs de cette manière que les classes sont identifiées.
OWL¶
Présentation¶
OWL (Web Ontology Language) a été recommandé par le W3C en 2004, et sa version 2 en 2009.
C’est un méta-vocabulaire (comme RDF-S) inspiré des logiques de descriptions avec valeurs concrètes (littéraux).
C’est un surensemble de RDF-S, ajoutant notamment la possibilité d’exprimer des négations.
Il définit plusieurs profils offrant des compromis différents en terme d’expressivité et de complexité.
Il mime les capacités de méta-modélisation de RDF-S (punning).
Profils OWL 2¶
Full |
aucune contrainte, indécidable |
DL |
minimum de contraintes, décidable mais très complexe |
EL |
quantifications existentielles (EL++), expressivité adaptée à certains domaines (biologie) |
QL |
peut s’implémenter au dessus d’un langage de requêtes (SQL) |
RL |
peut s’implémenter au dessus d’un langage à base de règles (Prolog, Datalog) |
Relations entre individus¶
owl:sameAs
owl:differentFrom
owl:AllDifferent
owl:NegativePropertyAssertion
owl:sameAs¶
Indique que deux IRIs dénotent la même ressource.
Exemple :
⊧
Relations entre classes¶
owl:equivalentClass
owl:unionOf
owl:disjointWith
owl:AllDisjointClasses
Types de propriété¶
owl:ObjectProperty
owl:DatatypeProperty
owl:FunctionalProperty
owl:InverseFunctionalProperty
owl:TransitiveProperty
owl:SymetricProperty
owl:AsymmetricProperty
owl:ReflexiveProperty
owl:IreflexiveProperty
Relations entre propriétés¶
owl:equivalentProperty
owl:inverseOf
owl:propertyDisjointWith
owl:AllDisjointProperties
owl:propertyChainAxiom
Restrictions¶
Une restriction OWL est une classe définie en intension, selon une contrainte sur une propriété p de ses instances :
au moins une valeur de p est de la classe C,
toutes les valeurs de p sont de la classe C,
il y a au moins / au plus / exactement n valeurs de p (ayant la classe C)
Exemple 1¶
Touts ceux qui ont au moins un enfant médecin
Exemple 2¶
Touts ceux qui n’ont que des enfants médecins
Avertissement
Cela inclut tout ce qui n’a aucun enfant (car cela revient à dire « tout ceux dont aucun enfant n’est pas médecin »).
Cela inclut donc également les voitures, les maisons…
Exemple 3¶
Touts ceux qui ont au plus trois enfants
Exemple 4¶
Touts ceux qui ont au moins trois enfants médecins
Contrainte OWL ≠ contraintes d’intégrité¶
On pourrait avoir l’impression que OWL, mieux que RDF-S, permet d’exprimet des contraintes d’intégrités. Mais l”hypothèse de monde ouvert rend ceci également difficile.
Exemple :
avec des restrictions de cardinalité, on peut exprimer que toute personne a exactement 2 parents ;
mais cela n’oblige pas d’indiquer, pour toute personne, qui sont ses parents (au contraire, le moteur d’inférence déduira qu’ils existent même s’ils ne sont pas mentionnés).
RDF-S et OWL décrivent des schémas inférentiels:
Les contraintes qu’ils expriment portent sur le monde décrit par les données (contraintes sémantiques),
Ils ne doivent pas être confondus avec les schémas structurels ou schémas validants: