2016-12-28 6 views
1

У меня возникли проблемы с OntClass.listSubClasses. Я использую этот метод в цикле, который не работает отлично до заданной точки:ConversionException для OntClass?

for(Iterator i = class.listSubClasses() ; i.hasNext() ;) { 
    System.out.println(((OntClass) i.next()).getLocalName()); 
} 

Затем следующее исключение проявляется:

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) 

который является фантастическим.

В онтологии, вот определение этого конкретного класса:

<!-- 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> 

Это в datamodel.owl файл, который является один в OntModel я использую.

<!-- http://titan.be/axis-csrm/interoperabilitymodel/ontology/0.4#AXE --> 

<owl:Class rdf:about="http://titan.be/axis-csrm/interoperabilitymodel/ontology/0.4#AXE"> 
    <rdfs:subClassOf rdf:resource="http://titan.be/axis-csrm/interoperabilitymodel/ontology/0.4#Entity"/> 
    <rdfs:label xml:lang="en">Autonomous eXchange Entity</rdfs:label> 
</owl:Class> 

Это в interoperabilitymodel.owl, который импортируется в первой онтологии.

Этот механизм импорта, похоже, не является проблемой, потому что есть другие классы, импортированные таким образом из одной и той же онтологии, которые не приводят к сбою программы.

Любая идея?

ответ

0

Не так ли, что tyour #AXE просто не определен как класс OWL?

Это является RDFS: subclassof поэтому он должен быть RDFS: класс, но это не влечет за собой, что также сова: класс

+0

Если это проблема, то почему это рассматривается как класс в протеже и как я могу это изменить? – RichouHunter

+0

Я думаю, что ошибка должна быть где-то здесь: вы заявляете: «Это в interoperabilitymodel.owl, который импортируется в первую онтологию». Возможно, этот файл не импортируется правильно в ваш OntModel – ChristophE