我有一个本体,使用Protegé4.3.0创建,我将使用OWL将一些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是从文件的基本名称(即。没有扩展名的文件名)。如果文件的基本名称在名称中有一个或多个空格,本体将保存而没有任何错误,但是当我打开新保存的OWL文件时,Protegé会在IRI包含空格的第一次出现时报告一个解析错误。
如何使用加载本体的基本IRI和文件的基本名称为OWLNamedIndividual对象创建有效的IRI?
发布于 2015-09-09 17:52:11
IRIs应该是一个表示您的资源的块。如果我正确地理解了您的意思,那么您就有了一个id,比如、大船、,并且您正在创建看起来像<http://example.com#big boat>的IRIs。这不是一个有效的IRI,您需要用一个_或-替换这个空间,这样您就有了<http://example.com#big_boat>。即使您输入一个带有Protégé空格的建模元素名称,它也会自动将一个_放在中间。
看看IRI中无效字符的这篇文章。
接受IRIs的系统还可以处理US-ASCII中不允许在URI中打印的字符,即"<“、">”、“‘’、空格、"{”、"}“、"\”、"^“和"`",在上面的步骤2中。如果找到了这些字符,但没有转换,则转换将失败。
https://stackoverflow.com/questions/32484630
复制相似问题