我有一個使用Protegé4.3.0創建的本體,並且我將使用OWL-API將一些OWLNamedIndividual
對象添加到文件OWL。我用下面的指令,以創建一個新OWLNamedIndividual
:從文件名生成獨特的IRI
OWLNamedIndividual objSample = df.getOWLNamedIndividual(IRI.create(iri + "#" + id));
- 變量
id
是String
; iri
是加載本體的基礎IRI;爲了獲得本體的基本IRI,我使用了以下指令:iri = ontology.getOntologyID().getOntologyIRI()
。
因此,新的OWLNamedIndividual
被添加到加載的本體,然後使用以下指令將本體保存到OWL文件。
XMLWriterPreferences.getInstance().setUseNamespaceEntities(true);
OWLOntologyFormat format = manager.getOntologyFormat(ontology);
manager.saveOntology(ontology, format, IRI.create(file.toURI()));
可變id
是從一個文件的基本名稱生成的String
(即不帶擴展名的文件名)。如果文件的基本名稱在名稱中包含一個或多個空格,則本體保存時不會出現任何錯誤,但是當我打開新保存的OWL文件時,Protegé會在第一次出現含IRI空間時報告解析錯誤。
如何使用加載的本體的基本IRI和文件的基本名稱爲OWLNamedIndividual
對象創建有效的IRI?
你這是什麼。意思是基本名稱有一個或多個空格嗎?可以提供示例嗎? – Artemis
是的,字符串'id'有一個或多個空格。 – enzom83
當然,namespac中不能有空格這是規則。你可以將它們作爲標籤,但不能放在'iri'中。 – Artemis