我正在试图弄清楚如何编写MQL查询以获取与给定单词关联的所有类型的列表。
例如我试过:
{
"id":null,
"name":null,
"name~=": "SOME_WORD",
"type":"/type/type",
"domain": {
"id": null,
"/freebase/domain_profile/category": {
"id": "/category/commons"
}
}
}
我发现这列出了所有Commons类型或类别,但尚未找到如何缩小给定输入的范围。
[{
"id": null,
"name": null,
"type": "/freebase/domain_profile",
"category": {
"id": "/category/commons"
}
}]
答案 0 :(得分:4)
有几种不同的方法可以做到这一点,每种方式都有不同的权衡。
将Search API与此类
一起使用https://www.googleapis.com/freebase/v1/search?indent=true&filter=%28all%20name {全}:%22uss%20constitution%22%29
您将获得如下所示的JSON结果:
{
"status": "200 OK",
"result": [
{
"mid": "/m/07y14",
"name": "USS Constitution",
"notable": {
"name": "Ship",
"id": "/boats/ship"
},
"lang": "en",
"score": 1401.410400
},
...
您可以通过将“{full}”切换为“{phrase}”来使匹配更加自由,这将为您提供子字符串匹配,而不是精确匹配。
注意事项: - 你只会得到一个“值得注意的类型”,它由Freebase的(未知)算法修复 - 我认为没有办法同时获得USS宪法和美国标准宪法结果 - 您可以通过添加& mql_output = {“type”:[]}来获取所有类型的列表,但是您将失去“值得注意的”类型。我认为没有办法在一次通话中同时获得两者。
此查询返回您想要的基本信息:
[{
"name~=":"uss constitution",
"type":[],
"/common/topic/notable_types" : []
}]
注意事项:
根据您要完成的任务,您可能需要比此更复杂的东西(以及对Freebase中的内容有更深入的了解),但这应该让您了解基础知识。
答案 1 :(得分:0)
你有没有尝试过:
[{
"name": "David Bowie",
"type": []
}]