我希望从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
}]
}]
答案 0 :(得分:0)
MQL不支持条件逻辑,但您可以查询您可能感兴趣的所有信息,使子查询可选,这样他们就不会过滤结果,然后查看您得到的内容。它会在结果处理器中需要条件代码,但您不必进行多次查询。例如,您可以查询/location/location/contained
的多个级别以及/base/biblioness/bibs_location/state
以及您想要的任何其他级别。
在你花费太多时间之前,你可能想要检查填充的/base/biblioness/bibs_location
是多少。在我看来,它的实体数量不到2K。