Импорт Ontology OWL из Excel в XML

У меня есть проект по изучению совы. Мне нужно извлечь данные из файла Excel и записать их в файл xml. Мне нужно сгенерировать XML-файл с датчиками и измерениями с использованием онтологии совы. Я не знаю, как это сделать с помощью jena apache. В Excel есть данные: Данные. Может кто-нибудь помочь мне понять, как это сделать?

@edit: вместо excel может быть csv.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
973
2

Ответы 2

Apache Jena поддерживает форматы RDF / XML и CSV (но последний предназначен только для чтения). Для преобразования CSV-> XML необходимо включить в maven pom.xml артефакт org.apache.jena:jena-csv в дополнение к основной библиотеке org.apache.jena:jena-arq (которая включает также jena ontology api, sparql и т. д.).

Рабочий пример:

    Model m = ModelFactory.createDefaultModel();
    // read csv:
    try (InputStream is = Test_CSV.class.getResourceAsStream("/test.csv")) {
        RDFDataMgr.read(m, is, "http://example.org", Lang.CSV);
    }
    // print to console:
    m.write(System.out, "ttl");
    // save as XML:
    Path p = Files.createTempFile("temp-", ".xml");
    System.out.println("Save to " + p);
    try (OutputStream out = Files.newOutputStream(p)) {
        RDFDataMgr.write(out, m, Lang.RDFXML);
    }
    // print file to console:
    Files.lines(p).forEach(System.out::println);

Также вы можете обернуть только что загруженный график как org.apache.jena.ontology.OntModel, что позволяет работать с данными онтологии в рамках спецификации OWL1:

OntModel o = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM, m);

Куда мне положить файл? Couse Я пробовал везде, но всегда NPE

DuszeQ94 30.07.2018 22:11

@ DuszeQ94, тогда вы должны прочитать Javadoc и понять, что делает getResourceAsStream. И что делает загрузчик классов в Java.

UninformedUser 31.07.2018 07:21

Прежде всего, вы должны понимать, с чем имеете дело: что такое табличный (CSV или Exel) файл, что такое RDF, что такое онтология и как она кодируется в RDF через OWL, что означает отображение табличного файла. данные в RDF и в соответствии с некоторой онтологией OWL, которая может быть уже доступна или должна быть создана вами (с использованием такого инструмента, как Protegé). Затем вы должны понять роль Jena как библиотеки для программного управления данными RDF / OWL из Java.

Затем, предположительно, вам придется написать программу на Java, которая загружает ваши данные из CSV (конвертировать в CSV из Excel, а затем использовать для этого библиотеку OpenCSV, вы можете загружать прямо из файлов .xlsx, но, вероятно, это сложнее сделать для начинающего программиста), затем используйте данные для создания троек RDF и в конечном итоге сохраните набор данных RDF, используя сериализацию XML для вашего RDF.

Кстати, если ваша домашняя работа не требует использования Jena, преобразование CSV-> RDF может быть выполнено с помощью такого инструмента, как TARQL. Если вы немного знакомы с языком SPARQL для запроса RDF, этот подход будет намного проще использовать для этой задачи.

Другие вопросы по теме