Réutilisation d’ontologies et incohérence

La réutilisation d’ontologies est un principe essentiel du Web sémantique. Néanmoins, la réutilisation à large échelle conduit facilement à une incohérence logique, à un moment ou à un autre. C’est pourquoi il faut concevoir les raisonneurs en fonction d’un principe d’incohérences omniprésentes dans un monde ouvert. Ou raisonner sur un périmètre « validé ».

Démonstration d’incohérence avec « The Organization Ontology » (appelée par la suite ici « org »), recommandation du W3C en 2014.

the organization ontology

The organization ontology

Schema.org est devenu incontournable pour que les annotations des ressources Web (les métadonnées) soient en visibilité des moteurs de recherche. L’ontologie foaf (Friend Of a Friend) fait référence à schema.org en considérant que la classe « Personne » de foaf (foaf : Person) est équivalente à la classe schema :Person. L’ontologie org considère une classe org : Organization, sous-classe de foaf : Agent et disjointe de la classe foaf:Person. Ce qui veut dire qu’aucune instance de foaf :Person ne peut être une instance de org :Organization. D’autre part, l’ontologie Good Relations (GR), définit une classe gr :BusinessEntity qui est équivalente à l’union de la classe Person de schema.org (http://schema.org/Person)  et la classe Organization de (http://schema.org/Organization.).

Par conséquent, une instance de la classe foaf :Person peut appartenir à la classe BusinessEntity. Seulement la spécification de « The Organization Ontology » définit la classe org :FormalOrganization comme à la fois une sous-classe d’Organization et une super classe de gr:BusinessEntity.

D’ailleurs, la spécification recommande d’utiliser le vocabulaire Good relations pour les classifications de type DUNS ou NAICS. Or si org :FormalOrganization est une super-classe de gr :BusinessEntity, cela veut dire que toute instance gr :BusinessEntity est une instance de la classe org :FormalOrganization. Cette classe étant une sous-classe de org :Organization, tout instance de gr :BusinessEntity est forcément une instance de org :Organization. Il s’ensuit logiquement, que comme une instance de gr:BusinessEntity peut être une schema :Person (du fait la deuxième équivalence mentionnée), elle peut être une Foaf :Person (du fait de la première équivalence mentionnée) et on peut avoir dès lors une foaf :Person également instance de org :Organization.

Ce qui conduit à une incohérence : les deux classes étant déclarées disjointes.

top