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





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);
@ DuszeQ94, тогда вы должны прочитать Javadoc и понять, что делает getResourceAsStream. И что делает загрузчик классов в Java.
Прежде всего, вы должны понимать, с чем имеете дело: что такое табличный (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, этот подход будет намного проще использовать для этой задачи.
Куда мне положить файл? Couse Я пробовал везде, но всегда NPE