【发布时间】:2011-12-19 13:50:31
【问题描述】:
除了这个问题:link 我在问我是否可以从似乎没有输入任何信息的主题中检索文本甚至地理位置等数据(但有来自维基百科的文本描述)
【问题讨论】:
除了这个问题:link 我在问我是否可以从似乎没有输入任何信息的主题中检索文本甚至地理位置等数据(但有来自维基百科的文本描述)
【问题讨论】:
所以,问题是当您运行以下查询时,您没有得到任何结果:
[{
"name": "River Thames",
"type": "/location/location",
"geolocation": [{
"latitude": null,
"longitude": null
}],
"/common/topic/article": [{
"text": {
"maxlength": 16384,
"chars": null
}
}]
}]
这是因为 Freebase 还没有名为“泰晤士河”的主题的地理坐标。换句话说,Freebase 中没有任何事实组合可以完全匹配这个查询结构,因此它什么也不返回。但是它确实有河口的坐标,所以你会得到这个类似查询的结果:
[{
"name": "River Thames",
"type": "/location/location",
"/geography/river/mouth_long_lat": [{
"latitude": null,
"longitude": null
}],
"/common/topic/article": [{
"text": {
"maxlength": 16384,
"chars": null
}
}]
}]
但是,如果您事先不知道您要查找的数据是否已在 Freebase 中完全填写好,该怎么办?
您可以将查询的某些部分标记为“可选”,这意味着如果数据存在,则应返回它们,但即使该数据不存在,查询仍应返回结果。因此,对于您的原始查询,如下所示:
[{
"name": "River Thames",
"type": "/location/location",
"geolocation": [{
"latitude": null,
"longitude": null,
"optional": true
}],
"/common/topic/article": [{
"text": {
"maxlength": 16384,
"chars": null
}
}]
}]
现在您应该会得到包含文章文本但地理位置返回为空数组的结果。
我应该指出的另一件事是,您应该知道您编写的查询是要求 Freebase 中名称为“泰晤士河”的所有主题的列表。目前,该查询只返回一个结果,但将来,当更多数据添加到 Freebase 时,它可能会返回多个结果。如果您真的只对 THIS River Thames 感兴趣,您应该使用它的唯一 MID 来查询它,如下所示:
{
"id": "/m/0d2kt"
"name": null,
"type": "/location/location",
"geolocation": [{
"latitude": null,
"longitude": null,
"optional": true
}],
"/common/topic/article": [{
"text": {
"maxlength": 16384,
"chars": null
}
}]
}
【讨论】: