Protégé无法打开手动构建的本体且报错,该如何解决
Protégé打开手动构建本体报错修复方案
报错信息如下:
- OWL/XML语法错误:
Attribute not found: IRI (Line 29)- RDF/XML语法错误:
org.xml.sax.SAXParseException; systemId: file:/C:/Users/Dell/Desktop/pizza.owl; lineNumber: 350; columnNumber: 85; 文档元素内容中检测到无效XML字符(Unicode: 0xc)
错误原因
你遇到的是两类独立的OWL文件格式错误:
- OWL/XML解析时第29行的OWL实体缺少必填的IRI标识属性
- RDF/XML解析时第350行存在XML规范不允许的非法控制字符(Unicode 0xc为换页符,属于不可见控制字符,通常是复制粘贴带格式内容时意外带入)
修复步骤
- 处理非法XML字符
- 使用支持显示不可见字符的文本编辑器(如VS Code、Notepad++)打开
pizza.owl文件 - 定位到350行85列,删除Unicode为0xc的不可见换页符;如果无法定位到目标字符,可使用编辑器的正则替换功能,全局匹配
\f(换页符转义符)替换为空
- 使用支持显示不可见字符的文本编辑器(如VS Code、Notepad++)打开
- 修复IRI缺失问题
- 定位到文件第29行,查看该行定义的OWL元素(类、对象属性、数据属性、实例等),补全IRI属性,参考同文件内其他同类型元素的写法即可,标准写法示例:
<owl:Class IRI="#VegetarianPizza">
- 定位到文件第29行,查看该行定义的OWL元素(类、对象属性、数据属性、实例等),补全IRI属性,参考同文件内其他同类型元素的写法即可,标准写法示例:
- 校验后打开
- 修复完成后可先运行
xmllint pizza.owl命令校验XML格式合法性,无报错后再用Protégé打开文件即可正常加载本体
- 修复完成后可先运行
避坑提示
- 手动编写OWL文件时避免直接从文档、网页中复制带格式的文本内容,防止带入不可见控制字符
- 所有OWL实体必须声明唯一的IRI属性,不要遗漏必填标签
内容的提问来源于stack exchange,提问作者Nadia
相关产品推荐
相关产品推荐

