1

我正在尝试使用 OWL API 加载本体。

资源的 IRI 之一是http://example.com/#1#2'.

发生以下异常:

Parser: RDFXMLParser
org.semanticweb.owlapi.rdf.syntax.RDFParserException: [line=129:column=52] IRI 'http://example.com/#1#2' cannot be resolved against curent base IRI http://example.com/ontology/demo.owl

如果我将该 IRI 更改为http://example.com/#1',那么一切都很好。

为什么 OWL API 的 RDFXMLParser 不能用两个哈希值解析 IRI?

4

1 回答 1

3

http://example.com/#1#2不是合法的 IRI,因此您不应该将其视为一个。例如,如果您将其粘贴到SPARQLer IRI Validator中,您将获得输出

IRI 报告

http://example.com/#1#2 ==> http://example.com/#1#2
<http://example.com/#1#2> Code: 0/ILLEGAL_CHARACTER in FRAGMENT: The character violates the grammar rules for URIs/IRIs.

如果您创建了本体,那么您需要更加小心您正在使用的 IRI。如果是其他人创建的,那么您应该让他们知道他们正在生成错误数据。作为一种解决方法,您可以以某种方式对本体进行预处理,以对这些不良 IRI 做一些事情(例如,对第一个 之后的文本进行 URLencode #)。

于 2013-12-20T13:49:54.730 回答