2016-09-02 4 views
0

У меня есть файл, содержащий онтологию без идентификатора онтологии (онтологический тег <Ontology/> пуст). Используемый формат сериализации - RDF/XML. Моя цель - сериализовать файл, установить идентификатор онтологии и записать файл с помощью OWLAPI. К несчастью, я не знаю, как это сделать. Я попытался следующие:Как установить идентификатор онтологии анонимной онтологии с использованием OWL API

ontology = ontologyManager.loadOntologyFromOntologyDocument(new File("filename")); 
ontologyManager.setOntologyDocumentIRI(ontology, IRI.create("http://www.mydesiredIri.com/abc")); 
ontologyManager.saveOntology(ontology,new FileOutputStream(new File("outputfile"))); 

Запустив код, онтология-ID не добавляется к онтологии. Вместо <Ontology rdf:about="http://www.mydesiredIri.com/abc"/> тег все еще emtpy. Что я делаю неправильно?

Спасибо!

Сердечные приветы

ответ

0

OWLOntologyManager.setOntologyDocumentIRI() для установки документа IRI онтологии, а не онтология сама IRI. Разница между ними заключается в том, что документ IRI является разрешимым URL-адресом или файловым путем (т. Е. Int может использоваться для анализа онтологии), в то время как онтология IRI является символическим именем онтологии (она не нуждается в разрешимости и это даже может быть пропущено - что касается анонимных онтологий).

Чтобы установить онтологию IRI, используйте:

//versionIRI can be null 
OWLOntologyID newOntologyID = new OWLOntologyID(ontologyIRI, versionIRI); 
// Create the change that will set our version IRI 
SetOntologyID setOntologyID = new SetOntologyID(ontology, newOntologyID); 
// Apply the change 
manager.applyChange(setOntologyID); 

После этого, сохраните онтологию как обычно.

+0

Спасибо, ваш код работает нормально. Однако я получаю предупреждение: «конструктор OWLOntologyID (IRI) устарел». Каков новый способ построения OWLOntologyID? (Я не нашел подсказки в Javadoc) – user3579222

+0

Вы можете создать необязательные экземпляры, чтобы избавиться от предупреждения об устаревании. – Ignazio

 Смежные вопросы

  • Нет связанных вопросов^_^