[英]How to Store OWL Ontology in Functional Syntax
我正在嘗試使用OWL API以功能格式創建和存儲本體文件:
OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
OWLOntology ontology = manager.createOntology();
OWLDataFactory factory = manager.getOWLDataFactory();
PrefixManager pm = new FunctionalSyntaxDocumentFormat();
pm.setDefaultPrefix(" :");
OWLClass item = factory.getOWLClass(IRI.create("item"), pm);
manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(item));
manager.saveOntology(ontology, new FunctionalSyntaxDocumentFormat(), new FileOutputStream("FileName"))
此公理的保存文件中的結果是:
聲明(Class(<:item>))
如何擺脫實體周圍的<>括號? 它會在我創建的所有實體上發生,並且會阻止我的文件被正確解析。
兩個問題:默認前綴中不應存在空格,並且您要在其上設置前綴的前綴管理器必須與調用saveOntology()時使用的相同。 您可以將第一個功能文檔格式傳遞給代碼中的最后一個方法。
編輯:嘗試運行代碼后,我認為OWL API中存在一些錯誤。 必須在管理器上設置格式,以正確選擇前綴。 那沒有必要。 但是,有一種解決方法。
OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
OWLOntology ontology = manager.createOntology();
OWLDataFactory factory = manager.getOWLDataFactory();
FunctionalSyntaxDocumentFormat pm = new FunctionalSyntaxDocumentFormat();
pm.setPrefix(":", "http://test.owl/test#");
manager.setOntologyFormat(ontology, pm);
OWLClass item = factory.getOWLClass("item", pm);
manager.addAxiom(ontology, factory.getOWLDeclarationAxiom(item));
manager.saveOntology(ontology, System.out);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.