簡體   English   中英

如何以功能語法存儲OWL本體

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM