/ / ConversionException в OntClass? - java, seantic-web, apache-jena

ConversionException до OntClass? - java, semantic-web, apache-jena

У мене є проблеми з OntClass.listSubClasses. Я використовую цей метод у циклі, який працює добре до заданого моменту:

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 для відповіді № 1

Хіба не так, що ваш #AXE просто не визначений як клас OWL?

Це rdfs: subclassof, тому він повинен бути rdfs: class, але це не означає, що це також Owl: class


0 для відповіді № 2

Отже, врешті-решт, це питання стосувалося Єни OntModel суворість. Перехід у нестрогий режим вирішив проблему.