我目前正在规划一个包含大数据的大型项目。
我已经使用了搜索,所有的结果都告诉我,如果不使用第三方工具,如BaseKB或Freebase to RDF,则无法将Freebase导入到任何三层存储中
正如我所看到的,转储已经作为RDF可用,那么如果我想要将转储导入到我的4store triplestore并通过SPARQL访问数据,问题在哪里呢?
发布于 2013-07-24 16:25:23
对于每个在导入Freebase转储时遇到问题的人:
1)更新您的RDF/Turtle解析器。(最新版本的猛禽2可以识别'.',例如在ns:common.topic.notable_for.example
2)必须先清理转储,然后才能导入。我使用了这个scipt:http://people.apache.org/~andy/Freebase20121223/ (fixit)
3) Turtle规范只允许URI使用以下字符:
::= '<' ([^#x00-#x20<>\"{}|^`\] | UCHAR)* '>'因此,将此行添加到fixit脚本的第80行是非常重要的:
$X =~ s/\\>/%3E/g ;
$X =~ s/\\.//g ;
# Add this Line
$X =~ [\x00-\x20\<\>\"\{\}\|\^\`] ;
$obj = "<".$X.">" ;因此,如下所示的无效语法:
<http://www.wikipedia.org/object?key={invalid_braces}>变成了
<http://www.wikipedia.org/object?key=invalid_braces>发布于 2013-07-21 00:00:32
您可能会从至少两个(如果不是三个)不同的数据集获得搜索结果:
从早期的RDF dumps
开始转储旧的四格式转储文件
#1中的格式是需要转换的。早期的RDF转储(#2)在语法上是无效的,因此不会导入到大多数工具中。随着时间的推移,RDF转储一直在改进。我不确定它是否仍然不会在没有预处理的情况下导入,但不管怎样,如果你对它进行预处理以消除冗余,将其标准化为最适合你的应用程序的格式,等等,它几乎会更有用。
您是否尝试导入当前转储文件?你的结果是什么?
发布于 2013-07-24 15:21:05
freebase海龟转储的问题是,它们不符合w3c海龟规范。
1)根据http://www.w3.org/TR/turtle/#sec-grammar,字符'.‘只能出现在三元组的末尾,但是freebase转储有很多‘’在三人组结束之前。我在某处读到"/“在uri之外是不允许的,所以他们选择使用‘’。
最新的raptor2库可以解决这个问题('.'),但不能使用较旧的库
2)我认为发射“空白节点”的方式对于141567 ns:m.01000m1 ns:common.topic.notable_for行也是无效的。
https://stackoverflow.com/questions/17760747
复制相似问题