2010-12-13 5 views
4

Я не могу сохранить обновление записи в свой файл OWL RDF/XML с помощью Protege. Каждый раз, когда я закрываю приложение, я теряю все свое редактирование. Я использовал библиотеку Jena, чтобы прочитать этот файл следующим образом:Обновление проблемы OWL с помощью библиотеки JENA и Protege

OntModel model = ModelFactory.createOntologyModel (OntModelSpec.OWL_DL_MEM,null); 
model.setNsPrefix(“”, ns); 
FileInputStream fis = new FileInputStream(this.sourceFile); 
model.read(fis,ns); 

Я попытался исправить эту проблему:

FileOutputStream fos = new FileOutputStream(this.sourceFile); 
model.writeAll(fos, "RDF/XML-ABBREV","xmlbase"); 
model.close(); 

Но мой файл будет отображаться и, наконец, пусто. Если я попытаюсь переименовать выходной файл, он работает нормально (старайтесь избегать того, чтобы выходной файл соответствовал входному файлу).

В конце концов, мой вопрос: как я могу обновить свой файл OWL?

ответ

0

Я бы сказал, что вам нужно быть уверенным, что вы закрываете оба потока правильно. В частности, вы должны закрыть fis перед тем, как открыть fos, с тем же именем.

К сожалению, "xmlbase" не является допустимым базовым URI для написания модели. Если вы не хотите использовать базовый URI для генерации относительных URI в теле выходного документа, перейдите null для этого аргумента.