2016-12-28 1 views
1

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?

Répondre

0

N'est-il pas vrai que le tyour #AXE n'est simplement pas défini comme classe OWL?

Il rdfs: subClassOf il doit donc être une rdfs: classe, mais cela n'implique pas qu'il est aussi un hibou: classe

+0

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

+0

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