Java jena fuseki设置了OntModelSpec pellet推理器

时间:2016-11-02 15:47:32

标签: java semantic-web fuseki apache-jena

以下代码用于将rdf数据发送到sparql端点。

在我尝试向OntoModel添加推理器之前,它一直运行良好。

现在编译器说: “无法从com.hp.hpl.jena.ontology.OntModelspec转换为org.apache.jena.ontology.OntModelSpec”。

所以我的问题是,我需要编辑什么来让它工作? (我知道这个问题在“PelletReasonerFactory.THE_SPEC”中很明显,这不是来自com.hp.hpl ...,所以有类似于这个的东西,它也来自org.apache.jena ......?)

package services;

import org.apache.jena.query.DatasetAccessor;
import org.apache.jena.query.DatasetAccessorFactory;
import org.apache.jena.query.QueryExecution;
import org.apache.jena.query.QueryExecutionFactory;
import org.apache.jena.query.QuerySolution;
import org.apache.jena.query.ResultSet;
import org.apache.jena.query.ResultSetFormatter;
import org.apache.jena.rdf.model.Model;
import org.apache.jena.rdf.model.ModelFactory;
import org.apache.jena.rdf.model.RDFNode;
import org.apache.jena.ontology.OntModel;
import org.mindswap.pellet.jena.PelletReasonerFactory;
import org.apache.jena.ontology.OntModelSpec;

class FusekiExample {

    public void addRDF(File rdf, String serviceURI){
            throws IOException {

        // the next commented line is the old working version...
        //Model m = ModelFactory.createDefaultModel();

        //these lines are the modified version which doesn't work.
        OntModelSpec oms = PelletReasonerFactory.THE_SPEC;
        OntModel m = ModelFactory.createOntologyModel(oms);
...
}

1 个答案:

答案 0 :(得分:2)

看起来你的PelletReasoner很老了,仍然使用旧的jena库,而不是最新的。

您需要找到一个较新版本的推理器才能使用当前的jena,或者您需要使用较旧的jena版本。