J'ai des problèmes avec OntClass.listSubClasses
. J'utilise cette méthode dans une boucle, qui fonctionne très bien jusqu'à ce qu'un point donné:ConversionException à une OntClass?
for(Iterator i = class.listSubClasses() ; i.hasNext() ;) {
System.out.println(((OntClass) i.next()).getLocalName());
}
Ensuite, l'exception suivante apparaît:
Exception in thread "main" org.apache.jena.ontology.ConversionException: Cannot convert node http://titan.be/axis-csrm/interoperabilitymodel/ontology/0.4#AXE to OntClass: it does not have rdf:type owl:Class or equivalent
at org.apache.jena.ontology.impl.OntClassImpl$1.wrap(OntClassImpl.java:82)
...
org.apache.jena.util.iterator.FilterIterator.hasNext(FilterIterator.java:55)
at rocks.novateam.axis.sow.poc.backend.ontology.RegisterManager.main(RegisterManager.java:194)
ce qui est bizarre.
Dans l'ontologie, voici la définition de cette classe particulière:
<!-- http://titan.be/axis-csrm/interoperabilitymodel/ontology/0.4#AXE -->
<rdf:Description rdf:about="http://titan.be/axis-csrm/interoperabilitymodel/ontology/0.4#AXE">
<rdfs:subClassOf rdf:resource="http://titan.be/axis-csrm/datamodel/ontology/0.4#Register"/>
</rdf:Description>
Ceci est dans un fichier datamodel.owl
, qui est celui du OntModel
j'utilise. Il s'agit d'un interoperabilitymodel.owl
, importé dans la première ontologie.
Ce mécanisme d'importation ne semble pas être le problème, car il existe d'autres classes importées de la même ontologie qui ne provoquent pas le blocage du programme.
Une idée?
Si tel est le problème, comment cela se passe-t-il en tant que classe en protégé, et comment puis-je changer cela? – RichouHunter
Je pense que l'erreur doit être quelque part ici: vous déclarez "Ceci est dans un interoperabilitymodel.owl, qui est importé dans la première ontologie." Peut-être que ce fichier ne sera pas importé correctement dans votre OntModel – ChristophE