我有一个使用Protegé4.3.0创建的本体,我会使用OWL-API将一些OWLNamedIndividual
对象添加到文件OWL中。我使用以下说明来创建新的OWLNamedIndividual
:
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的空格时报告解析错误。 / p>
如何使用加载本体的基本IRI和文件的基本名称为OWLNamedIndividual
对象创建有效的IRI?