Freebase不返回所有可用值

时间:2015-03-18 10:01:48

标签: freebase mql

我试图从Freebase中提取Barack Obama的NYTimes主题页面(在topic_equivalent_webpage值中)的链接,但是我的查询并没有返回任何结果,尽管它在网页(http://www.freebase.com/m/02mjmr)。这是我的问题:

[{
 "id": "/en/barack_obama",
 "type": "/common/topic",
 "topic_equivalent_webpage": {
   "value": null,
   "value~=": "*nytimes*"
 }
}]

我还尝试使用此查询提取所有topic_equivalent_webpage值:

[{
"id": "/en/barack_obama",
"type": "/common/topic",
"topic_equivalent_webpage": []
}]

由于某种原因,它只返回其中一个值(http://www.worldcat.org/wcidentities/lccn-n94-112934)。

有没有人有任何提示?

1 个答案:

答案 0 :(得分:0)

注意:所有Freebase API都会在几个月内消失。

您有三种选择:

  1. 下载RDF转储并对其进行过滤。这最适合大规模下载而不是使用API​​。有关属性名称和解码过程,请参阅#3。

  2. 使用主题API,即https://www.googleapis.com/freebase/v1/topic/en/barack_obama?filter=/common/topic/topic_equivalent_webpage

  3. Query MQL用于您想要的命名空间中的键(即NY Times名称空间)

  4. [{ "id": "/en/barack_obama", "key": [{ "namespace": "/source/nytimes", "value": null }] }]

    通常结果是一个标识符,它被替换为URI模板,但在NYT的情况下,它基本上是一个完整的URI路径,只是被附加到http://nytimes.com/

    键值(例如top$002Freference$002Ftimestopics$002Fpeople$002Fo$002Fbarack_obama)将是MQL密钥编码,因此它们需要被解码,但在这种情况下,您可能会欺骗并用“/”替换所有“$ 002F”子串。如果编码了任何其他字符,只需将$ dddd替换为具有该Unicode代码点的字符。