Ce que je comprends c'est que ton ontologie ressemble à ça :
1 2 3 4 5 6 7 8 9 10 11 12
| @prefix : <http://mondomaine.ext/onto#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> ;
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> ;
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> ;
:Etudiant rdf:type owl:Class .
:Module rdf:type owl:Class .
:suivre_Module_Par_Etudiant rdf:type owl:ObjectProperties .
:suivre_Module_Par_Etudiant rdfs:domain :Etudiant .
:suivre_Module_Par_Etudiant rdfs:range :Module .
:Maths rdfs:subClassOf :Module .
:Physique rdfs:subClassOf :Module .
:Paul rdf:type :Etudiant . |
Et tu voudrais écrire :
:Paul :suivre_Module_Par_Etudiant :Maths .
C'est possible, la preuve : je l'ai écrit ! C'est même valide en OWL 2 DL. Sauf que y a probablement un problème parce que tu as déclaré :Maths comme une classe, et maintenant tu l'utilises comme une instance de la classe :Module. C'est autorisé avec OWL 2 DL parce que OWL 2 permet d'utiliser le même nom pour une instance et pour une classe. Mais bien que l'entité instance a le même nom que l'entité classe, ces deux entités sont bien distinctes. Autrement dit, dans le triplet :
:Paul :suivre_Module_Par_Etudiant :Maths .
:Maths désigne une toute autre chose que dans le triplet :
:Maths rdfs:subClassOf :Module .
En revanche, avec OWL Full (ou plutôt devrais-je dire avec la sémantique de OWL fondée sur RDF), ces deux entités sont exactement les mêmes car un classe est une ressource comme une autre.
Partager