首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Freebase导入Triplestore

将Freebase导入Triplestore
EN

Stack Overflow用户
提问于 2013-07-20 17:27:36
回答 3查看 1K关注 0票数 8

我目前正在规划一个包含大数据的大型项目。

我已经使用了搜索,所有的结果都告诉我,如果不使用第三方工具,如BaseKBFreebase to RDF,则无法将Freebase导入到任何三层存储中

正如我所看到的,转储已经作为RDF可用,那么如果我想要将转储导入到我的4store triplestore并通过SPARQL访问数据,问题在哪里呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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使用以下字符:

代码语言:javascript
复制
::= '<' ([^#x00-#x20<>\"{}|^`\] | UCHAR)* '>'

因此,将此行添加到fixit脚本的第80行是非常重要的:

代码语言:javascript
复制
$X =~ s/\\>/%3E/g ;
$X =~ s/\\.//g ;

# Add this Line
$X =~ [\x00-\x20\<\>\"\{\}\|\^\`] ;

$obj = "<".$X.">" ;

因此,如下所示的无效语法:

代码语言:javascript
复制
<http://www.wikipedia.org/object?key={invalid_braces}>

变成了

代码语言:javascript
复制
<http://www.wikipedia.org/object?key=invalid_braces>
票数 3
EN

Stack Overflow用户

发布于 2013-07-21 00:00:32

您可能会从至少两个(如果不是三个)不同的数据集获得搜索结果:

从早期的RDF dumps

  • (perhaps)
  1. RDF dumps
  2. (perhaps)

开始转储旧的四格式转储文件

#1中的格式是需要转换的。早期的RDF转储(#2)在语法上是无效的,因此不会导入到大多数工具中。随着时间的推移,RDF转储一直在改进。我不确定它是否仍然不会在没有预处理的情况下导入,但不管怎样,如果你对它进行预处理以消除冗余,将其标准化为最适合你的应用程序的格式,等等,它几乎会更有用。

您是否尝试导入当前转储文件?你的结果是什么?

票数 2
EN

Stack Overflow用户

发布于 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行也是无效的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17760747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档