Java jena fuseki set OntModelSpec пеллетный резонатор

следующий код используется для отправки данных 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);
...
}

person Orazio Contarino    schedule 02.11.2016    source источник


Ответы (1)


Похоже, что ваш PelletReasoner очень старый и по-прежнему использует старые библиотеки jena, а не самые новые.

Вам нужно найти более новую версию вашего Reasoner для работы с текущей версией jena или вам нужно работать со старой версией jena.

person ChristophE    schedule 03.11.2016
comment
Я слишком глуп, чтобы найти кнопку редактирования, поэтому вот мой расширенный ответ. Вам нужно будет использовать гранулы 3.0, чтобы ваша программа работала. См. также stackoverflow.com/questions/36144230/ - person ChristophE; 03.11.2016