在使用 OWLAPI 时,在 Turtle 文档的导入语句中使用命名空间前缀会导致失败

Use of namespace prefixes in import statements for Turtle documents causes failures when using OWLAPI

如果以 Turtle 格式保存(使用 OWLAPI)的 ontology 使用一组前缀,则导入本体的导入语句使用声明的前缀。 OWLAPI Turtle 解析器无法读回使用前缀保存的 ontology。导入语句被标记为问题的根源。

假设 Onto2 导入 Onto1 和 Onto3(声明见下文)。保存 Onto2 结果如下:

@prefix : <http://example.com/ontology/Onto2#> .
@prefix OT1: <http://example.com/ontology/Onto1> .
@prefix OT2: <http://example.com/ontology/Onto2> .
@prefix OT3: <http://example.com/ontology/Onto3> .

<http://example.com/ontology/Onto2> rdf:type owl:Ontology ;
                                     owl:imports OT1:# ,
                                                 OT3:# .

当 OWLAPI Turtle 解析器读回 Onto2 时,它会报错

org.openrdf.rio.RDFParseException: Expected '.', found 'O' [line 13]

导入语句在第 13 行。

从 Turtle 语言规范来看,我认为问题出在散列字符上。在那个位置是不允许的,它将被解释为评论的开始。有关详细信息,请参阅 here