Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否将ConversionException转换为OntClass?_Java_Semantic Web_Apache Jena - Fatal编程技术网

Java 是否将ConversionException转换为OntClass?

Java 是否将ConversionException转换为OntClass?,java,semantic-web,apache-jena,Java,Semantic Web,Apache Jena,我跟你有麻烦。我在循环中使用此方法,在给定点之前效果良好: for(Iterator i = class.listSubClasses() ; i.hasNext() ;) { System.out.println(((OntClass) i.next()).getLocalName()); } 然后,将显示以下异常: Exception in thread "main" org.apache.jena.ontology.ConversionException: Cannot conv

我跟你有麻烦。我在循环中使用此方法,在给定点之前效果良好:

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>
这是在一个
互操作模型.owl
中,它被导入到第一个本体中

这种导入机制似乎不是问题,因为有其他类以这种方式从同一本体导入,不会导致程序崩溃

有什么想法吗?

难道你的“斧头”没有被定义为猫头鹰类吗

它是一个rdfs:subassof,所以它必须是一个rdfs:class,但这并不意味着它也是一个owl:class

,所以tyour#AXE不是简单地定义为owl类吗


它是一个rdfs:subassof,所以它必须是一个rdfs:class,但这并不意味着它也是一个owl:class

所以,最终,这个问题与Jena的
OntModel
严格性有关。解决了这个问题。

因此,最终,这个问题与Jena的
OntModel
严格性有关。解决了这个问题。

如果是这个问题,为什么它被认为是protégé中的一个类,我如何更改它?我认为错误一定在这里的某个地方:您声明“这是在interoperabilitymodel.owl中,它在第一个本体中导入。”如果是这个问题,可能这个文件没有正确导入到您的ontmodel中,为什么它被认为是protégé中的一个类,我该如何改变它?我认为错误一定在这里的某个地方:您声明“这是在一个interoperabilitymodel.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>