Parsing 使用owlapi解析包含奇数字符类的owl文件

Parsing 使用owlapi解析包含奇数字符类的owl文件,parsing,owl,ontology,protege,owl-api,Parsing,Owl,Ontology,Protege,Owl Api,我正在以下位置运行示例owlapi示例: 检索具有奇数字符的类的子类。我的owl文件包含具有奇数字符的类,例如/,(但是解析器似乎在奇数字符之前截断了它们,并最终抛出了一个错误。我窥视了ManchesterOWLSyntaxTokenizer,似乎它将这些奇数字符视为分隔符。还有其他人做了这样的观察吗?解决方法是什么?顺便说一句,我尝试了HermiT reasoner,得到了类似的结果。另外,在Protege,如果您尝试向层次结构添加带有奇数字符的新OWLClass名称,它会在类名周围添加单引号

我正在以下位置运行示例owlapi示例:
检索具有奇数字符的类的子类。我的owl文件包含具有奇数字符的类,例如/,(但是解析器似乎在奇数字符之前截断了它们,并最终抛出了一个错误。我窥视了ManchesterOWLSyntaxTokenizer,似乎它将这些奇数字符视为分隔符。还有其他人做了这样的观察吗?解决方法是什么?顺便说一句,我尝试了HermiT reasoner,得到了类似的结果。另外,在Protege,如果您尝试向层次结构添加带有奇数字符的新OWLClass名称,它会在类名周围添加单引号。若要在“DL Query”视图中检索其子类,我必须在类名周围添加单引号来运行它。Protege是否在内部使用不同的语法标记器,我可以使用它来代替ManchesterOWLSyntaxToke截断类名的分隔符?

在URI规范中,/字符是分隔符;请参阅和

IRIs类没有解决方法。如果希望在类名的可读版本中使用此类字符,可以使用
rdfs:label
注释,其文本可以包含任何字符,并在向用户显示类时使用
rdfs:label


Protege显示的单引号表示这是
rdfs:label
注释的值。

这听起来很合乎逻辑,只是当您使用包含这些分隔符的类从Protege保存owl文件时,rdfs:label注释不会出现。这些类以与任何其他类相同的格式保存,并且没有单引号。我们的一个客户向我们提供了这样的文件,我们正试图找出提取这些类和子类的最佳方法,就像你可以用单引号在Protege中查询它们一样。想法?我需要看到Protege提供的本体来理解这是怎么可能的。问题是,IRIs可以通过多种方式创建,但一旦它们被写出来,就无法判断斜杠是用于“名称”还是名称空间的一部分。允许显示标签但不保存标签将是一个Protege bug。也许。我会联系团队。但是作为演示,如果您安装了Protege,只需转到:Fil即可e>新建并创建一个新文件,然后单击“类”选项卡,然后单击根类“Thing”,然后单击“Thing”正上方突出显示的图标以创建一个新的子类。输入say:Animal(Thing)并保存此新本体。检查保存文件的内容。另外,请注意如何使用“DL查询”通过单引号查询有关此新类的相关类信息,但不能使用owlapi中的示例进行查询。有解决方法吗?