java - 读取 Jena 模型时出现错误的 URI 异常
问题描述
我正在将输入流转换为 Jena 模型。但显然我得到了这个错误:
org.apache.jena.riot.system.ErrorHandlerFactory$ErrorLogger", Bad character in IRI (space):
当我检查时,确实在 URI 中有一个空格,我知道它无效。但是有没有任何方法或任何丑陋的解决方案可以在不纠正数据的情况下做到这一点。
我确实发现了类似reader.setProperty("allowBadURIs", "true")但似乎只适用于 RDF Writer
这是我的代码:
InputStream targetStream = new FileInputStream(new File(file_location);
Model modelResult = ModelFactory.createDefaultModel().read(rdfInput, "", "RDF/XML");
网址示例
"http://openfashion.momu.be/9f spelden en verpakkingen momu fs "
解决方案
目前,没有办法。数据有一个损坏的令牌,很难恢复。允许空格通过有两个问题:
有时数据被破坏,因此它不是 URI 中的空格,而是缺少终止符“>”(错误来自标记器处理输入时的字符),因此大量文本可能会被读取为一个 URI。
一旦被摄取,这种糟糕的 IRI 会导致下游问题(例如,它们不能可靠地打印)。只有一些编写者可以应付,然后他们输出其他系统无法读取的 RDF。
解决方案是修复输入,以免延迟以后出现的问题,特别是如果存储在持久数据库中。
推荐阅读
- xml - 从 xsl 生成的文档中推断数据
- angular - 如何从Angular 8中url中的查询参数中检索对象
- android - Android - 由于 Resources$NotFoundException 而导致的 RuntimeException
- ruby-on-rails - 我们如何在 20 天内使用 Ruby on Rails 开发电子商务网站并从头开始使其功能齐全?
- python - 从 selenium 重定向到最终 url 失败
- javascript - 保留鼠标移动的不透明度 - 画布
- documentum - 如何区分导入新文档时是否调用了 TBO 与任何其他操作
- gcc - 如何清理 GCC Makefile
- javascript - DataTables Jquery Ajax对象找不到数组列
- reactjs - React Material UI 2 TableRows in one loop error