8

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

我已经使用了搜索,所有结果都告诉我,如果不使用BaseKBFreebase 到 RDF等 3rd 方工具,就不可能将 Freebase 导入任何三重存储

正如我所看到的,转储已经作为 RDF 提供,那么如果我想将转储导入到我的 4store 三重存储并通过 SPARQL 访问数据,问题在哪里?

4

3 回答 3

3

对于在导入 Freebase 转储时遇到问题的每个人:

1) 更新您的 RDF/Turtle 解析器。(最新版本的 raptor 2 可以识别 '.',例如在 ns:common.topic.notable_for.example

2) 必须先清理转储,然后才能导入。我使用了这个 scipt:http ://people.apache.org/~andy/Freebase20121223/ (fixit)

3) Turtle 规范只允许 URI 使用这些字符:

::= '<' ([^#x00-#x20<>\"{}|^`\] | UCHAR)* '>'

所以在第 80 行将这一行添加到 fixit 脚本中是非常重要的:

$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-24T08:25:23.450 回答
2

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

  1. 旧的四元格式转储
  2. 早期的 RDF 转储
  3. (也许)当前的 RDF 转储

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

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

于 2013-07-20T16:00:31.573 回答
1

自由基海龟转储的问题在于,它们不符合 w3c 海龟规范。

1)根据http://www.w3.org/TR/turtle/#sec-grammar,字符'.' 只能出现在三元组的末尾,但是 freebase 转储有很多 '.' 三人组结束前。我在某处读到在 uri 之外也不允许使用“/”,因此他们选择使用“。”

最新的 raptor2 库可以解决这个问题('.'),但不能解决旧的

2)我认为发出“空白节点”的方式对于例如行 141567 ns:m.01000m1 ns:common.topic.notable_for 也无效。

于 2013-07-24T07:21:04.730 回答