Protégé使用推理器遇MalformedLiteralException:本地路径URI格式异常
解决本体推理器MalformedLiteralException及Windows文件URI兼容问题
问题核心
你遇到的矛盾是:符合推理器anyURI格式要求的路径不被Windows资源管理器识别,而资源管理器能识别的路径触发推理器格式错误。根源在于XMLSchema anyURI规范和Windows文件URI格式的细节差异。
正确的兼容格式
直接使用以下格式,既能通过推理器的anyURI校验,又能被Windows资源管理器正确识别:
"file:///C:/Program%20Files"^^<http://www.w3.org/2001/XMLSchema#anyURI>
为什么之前的格式不行?
"C:\Program Files"^^<http://www.w3.org/2001/XMLSchema#anyURI>:反斜杠\是XML转义字符,且未按URI规则转义空格,触发MalformedLiteralException。file:///C:\Program%20Files:反斜杠不符合URI规范,推理器仍会判定格式错误。file:///C/Program%20Files:缺少盘符后的冒号:,这是Windows文件路径的必要组成,资源管理器无法识别无冒号的盘符路径。
验证方法
- 将个体x的
isLocatedExternally属性值替换为上述正确格式。 - 运行推理器,确认
MalformedLiteralException不再出现。 - 在Windows资源管理器地址栏中,可直接输入
C:\Program Files(或粘贴file:///C:/Program%20Files,资源管理器会自动解析为本地路径),验证路径可正常访问。
内容的提问来源于stack exchange,提问作者arash
相关产品推荐
相关产品推荐

