Проблема чтения совы / XML
Вопрос
У меня есть проблема с чтением файлов совы / XML из Java с использованием jena.
У меня нет проблем с чтением файлов RDF / XML, но всякий раз, когда я создаю файл сова / XML из Protege и попробуйте прочитать его, Java дает эту ошибку ниже: Warn [Main] (RdfdefaulterRorhandler.java:36) Исключение в теме "Главная" java.lang.nullpointexception at com.hp.hpl.jena.rdf.arp.impl.xmlhnler.eendelement (xmlhandler.java:143)
Код, который я использую для получения RDF / XML ниже:
OntModel ontModel = ModelFactory.createOntologyModel();
InputStream in = FileManager.get().open(inputFileName);
if (in == null) {
throw new IllegalArgumentException( "File: " + inputFileName + " not found");
}
ontModel.read(in, "");
Этот код отлично работает с RDF / XML. Однако я не могу читать сову / XML. Я посмотрел на интернет, и я не мог ничего найти. Я бы очень признателен, если кто-то показывает мне путь. Большое спасибо
Решение
Йена не поддерживает сову / XML. Он судна с читателями для RDF / XML, черепахи (AKA N3) и N-Triple. Смотреть, например здесь Для списка поддерживаемых форматов.
Другие советы
Для совы / XML используйте Сова-API..
Вы можете найти хороший ответ здесь.
Я проверил код, который предоставлен в 4-м ответе, и это работает для меня 100%. Я скопировал ответ здесь для вас.
String inputFileName = "D:\Ontologia\OntoSME_V7.owl";
OntModel onto = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM, null);
try {
InputStream in = FileManager.get().open(inputFileName);
onto.read(in, "RDF/XML");
} catch (JenaException je) {
System.out.println("ERROR" + je.getMessage());
je.printStackTrace();
System.exit(0);
}
Вы можете использовать Protege, чтобы сохранить файл в формате RDF / XML и прочитать файл с приведенным выше методикой.