【发布时间】:2016-04-19 17:14:46
【问题描述】:
我想从 Java 中读取这样的 freebase 转储:
http://rdf.freebase.com/ns/m.0cycc
我尝试使用以下代码从 Jena 读取它:
OntModel om = ModelFactory.createOntologyModel();
om.read(freebaseURL, "N3");
但我遇到了一个例外:
org.apache.jena.riot.RiotException: [line: 34, col: 37] 非法转义序列值:x (0x78)
有没有办法..
a) 自动转义这些字符? (我找到了这个帖子,不过好像是手动解决的,需要自动解决:How to read Freebase RDF data? It seems to be a bit broken)
或
b) 使用其他 API 读取文件内容?最后,我想获得一些具体的价值。我认为我可以为这种文件结构开发一个解析算法,但是如果已经完成了一些事情..
谢谢
【问题讨论】:
-
如果“自动”是指程序化:可能可以通过覆盖/扩展解析器来调整解析器以接受/纠正损坏的数据。当然可以使用 Sesame 的 Rio 解析器,我希望 Jena 也可以。不过,这将需要您进行一些 Java 编程。
-
是的,我的意思是编程,对不起这个词。我正在尝试修复替换转义字符,但有点困难。我会检查 Sesame 的 Rio 解析器。
-
我尝试从 Sesame 的 Rio 解析器和 OWL API 加载它,但没有成功。它没有显示任何错误,但似乎没有加载内容。