Freebase API中的条件查询

时间:2013-06-17 17:52:28

标签: freebase

我希望从Freebase中提取旅游景点及其城市,州和国家信息列表。有位置的财产是 “/位置/位置/ containedby”。该对象有不同的类型,“location / location”或“/ base / biblioness / bibs_location”。如果对象有“/ base / biblioness / bibs_location”,我可以得到“city”,“state”等的值。但是如果对象只有“/ location / location”类型,我需要去获取它的“包含” “现场并重做上述逻辑。

我的问题是我可以在Freebase中执行条件查询,例如type ==“/ location / location /”get xyz。如果type ==“/ base / biblioness / bibs_location”get abc

MQL:

[{
  "type":   "/travel/tourist_attraction",
  "id":     null,
  "name":   null,
  "name~=": "^San Diego",
  "/location/location/containedby": {
    "type": "/base/biblioness/bibs_location",
    "name": null,
    "id":   null
  },
  "/location/location/geolocation": [{
    "id":        null,
    "latitude":  null,
    "longitude": null
  }]
}]

1 个答案:

答案 0 :(得分:0)

MQL不支持条件逻辑,但您可以查询您可能感兴趣的所有信息,使子查询可选,这样他们就不会过滤结果,然后查看您得到的内容。它会在结果处理器中需要条件代码,但您不必进行多次查询。例如,您可以查询/location/location/contained的多个级别以及/base/biblioness/bibs_location/state以及您想要的任何其他级别。

在你花费太多时间之前,你可能想要检查填充的/base/biblioness/bibs_location是多少。在我看来,它的实体数量不到2K。