Спасибо! Я попробую это

ужно преобразовать данные из объекта OWLOntology (часть API OWL) в объект модели (часть Jena Api). Моя Java-программа должна иметь возможность загружать файл owl и отправлять его содержимое на сервер fuseki. Согласно тому, что я прочитал, работа с сервером fuseki через программу Java возможна только с Jena Api, поэтому я использую его.

Поэтому я нашел пример отправки онтологий на сервер fuseki с помощью Jena api и изменил его для этой функции:

private static void sendOntologyToFuseki(DatasetAccessor accessor, OWLOntology owlModel){
        Model model;

        /*
        ..
        conversion from OWLOntology to Model
        ..
        */

        if(accessor != null){
            accessor.add(model);
        }
    }

Эта функция должна добавлять новые онтологии на сервер fuseki. Есть идеи, как восполнить недостающую конверсию? Или какие-либо другие идеи, как отправить онтологии на сервер fuseki с помощью API OWL?

Я прочитал решение этого:Sparql-запрос не обновляется при вставке данных через код Java

но цель моей java-программы - отправлять эти онтологии постепенно, потому что это довольно большие данные, и если я загружаю их в локальную память, мой компьютер не управляет ими.

Ответы на вопрос(2)

ода, вы можете использоватьОНТ-API: он реализует прямое чтение совы-аксиомы из графа без какого-либо преобразования

 Martin.M26 окт. 2017 г., 08:19
Спасибо! Я попробую это
Решение Вопроса

Идея состоит в том, чтобы написать на JavaOutputStream и трубку это вInputStream, Возможная реализация может выглядеть так:

/**
 * Converts an OWL API ontology into a JENA API model.
 * @param ontology the OWL API ontology
 * @return the JENA API model
 */
public static Model getModel(final OWLOntology ontology) {
    Model model = ModelFactory.createDefaultModel();

    try (PipedInputStream is = new PipedInputStream(); PipedOutputStream os = new PipedOutputStream(is)) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    ontology.getOWLOntologyManager().saveOntology(ontology, new TurtleDocumentFormat(), os);
                    os.close();
                } catch (OWLOntologyStorageException | IOException e) {
                    e.printStackTrace();
                }
            }
        }).start();
        model.read(is, null, "TURTLE");
        return model;
    } catch (Exception e) {
        throw new RuntimeException("Could not convert OWL API ontology to JENA API model.", e);
    }
}

В качестве альтернативы, вы можете просто использоватьByteArrayOutputStream а такжеByteArrayInputStream вместо потоковых потоков.

Ваш ответ на вопрос