Je sais que je vais choquer certains spécialistes des ontologies en parlant d’héritages de caractéristiques de propriétés.
Mais laissez-moi raconter une petite histoire.
Je suis plutôt enthousiaste pour utiliser des ontologies dans mes projets mais j’étais encore un débutant dans le domaine il y a peu. Je fais des progrès rapides :).
J’ai eu un besoin qui me parait assez commun et simple, mais je suis resté coincé dessus pendant un temps long par rapport à cette simplicité.
Mon besoin:
- J’ai un arbre virtuellement défini dans mon ontologie
- Les nœuds ont un ancêtre direct (parent) et des ancêtres indirects
- hasParent est une propriété qui relie un nœud à un autre, par un lien indiquant un ancêtre direct dans l’arbre,
- hasAncestor est une propriété qui relie un nœud à un autre, qui est quelque part entre le nœud et la racine de l’arbre,
- hasAncestor doit être transitive,
- hasParent n’est pas transitive
Je veux que la règle suivante s’applique :
si a :hasParent b alors a :hasAncestor b
J’ai parcouru pas mal de documents et j’ai eu du mal à comprendre comment signifier cette règle dans OWL (directement dans une représentation de l’ontologie ou interactivement avec Protégé).
Le solution était si simple et implicite qu’elle n’apparaissait pas clairement; la voilà exprimée avec la syntaxe Turtle:
:hasParent rdfs:subPropertyOf :hasAncestor.
Ma cécité était due à mon incapacité à penser qu’une subProperty ne partage pas certaines caractéristiques de sa super-propriété.
Affirmé
:hasParent rdfs:subClassOf :hasAncestor
et
:hasAncestor rdf:type owl:TransitiveProperty
ne signifie pas que :hasParent est aussi transitive.
La transitivité n’est pas ‘héritée’ dans la hiérarchie des propriétés, de sorte qu’il est possible d’avoir une sous-propriété non transitive d’une super-propriété transitive.
Dès que j’ai compris cela, j’ai cherché où j’avais raté quelque chose.
En premier lieu, je pense instinctivement qu’une sous-propriété hérite des ‘comportements’ de sa super-propriété.
De bons spécialistes -comme Dave Reynolds- considèrent que pour les ontologies OWL, et la logique sous-jacente, utiliser des termes comme ‘héritage’ ne peut que vous induire en erreur. En particulier quand il s’agit des axiomes et du raisonnement sur les propriétés. Dans la façon de penser avec RDF/OWL, une propriété est juste associée à un ensemble de paires de choses qui sont reliées par cette propriété. De sorte que de dire
:hasParent rdfs:subPropertyOf :hasAncestor
signifie seulement que l’ensemble des paires d’objets reliés par :hasParent est aussi relié par :hasAncestor.
Nous ne pouvons pas supposer que des caractéristiques de la propriété :hasAncestor sont transmises à la propriété :hasParent. Certaines caractéristiques ont des telles propriétés logiques qu’on va pouvoir déduire qu’elles s’appliquent aussi à la sous-propriété (comme la nature fonctionnelle d’une propriété); certaines ne se prêtent pas à de telles déductions (comme la transitivité et la symétrie). Et, assurément, penser à cela en terme d’héritage et pas de déduction logique ne peut qu’apporter de la confusion.
Certaines caractéristiques de propriétés OWL sont héritables. D’autre non. Par exemple:
(a subPropertyOf b) et (b inverseOf c) n'implique pas (a inverseOf c) (a subPropertyOf b) et (b equivalentPropertyOf c) n'implique pas (a equivalentPropertyOf c) (a subPropertyOf b) et (b type SymetricProperty) n'implique pas (a type SymetricProperty) (a subPropertyOf b) et (b type TransitiveProperty) n'implique pas (a type TransitiveProperty)
Où peut-on trouver des commentaires à ce sujet?
Aidan Hogan suggère que « si vous voulez une introduction pas trop technique des caractéristiques de OWL, par exemple en utilisant SI — ALORS — (donc avec des règles) qui donne un bonne vision, même si elle est incomplète[…] étudier les règles dans OWL 2 RL/RDF est un très bon point de départ pour quiconque voulant découvrir quelque peu ce que sont les notions clés d’OWL (2) caractéristiques (sans avoir besoin d’entrer dans des définitions de sémantique formelle):
http://www.w3.org/TR/owl2-profiles/#Reasoning_in_OWL_2_RL_and_RDF_Graphs_using_Rules
Les caractéristiques d’OWL permettent d’exprimer bien plus de choses que ce qui est indiqué dans ces règles, mais si vous comprenez ces règles, alors vous aurez acquis une connaissance opérationnelle d’OWL. »