У меня возникли проблемы с 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
, который импортируется в первой онтологии.
Этот механизм импорта, похоже, не является проблемой, потому что есть другие классы, импортированные таким образом из одной и той же онтологии, которые не приводят к сбою программы.
Любая идея?
Если это проблема, то почему это рассматривается как класс в протеже и как я могу это изменить? – RichouHunter
Я думаю, что ошибка должна быть где-то здесь: вы заявляете: «Это в interoperabilitymodel.owl, который импортируется в первую онтологию». Возможно, этот файл не импортируется правильно в ваш OntModel – ChristophE