在 Freebase API 中,我想将相关对象获取到 Freebase 中的对象。例如:
当我输入“Michael Jordan”(http://www.freebase.com/m/054c1)时,它应该返回“Chicago Bull's”(http://www.freebase.com/m/0jm74)。
我浏览了https://developers.google.com/freebase/v1/search-cookbook但无法提出过滤操作数。
有任何想法吗?
在 Freebase API 中,我想将相关对象获取到 Freebase 中的对象。例如:
当我输入“Michael Jordan”(http://www.freebase.com/m/054c1)时,它应该返回“Chicago Bull's”(http://www.freebase.com/m/0jm74)。
我浏览了https://developers.google.com/freebase/v1/search-cookbook但无法提出过滤操作数。
有任何想法吗?
我不知道您使用的是哪个 API,但如果您要使用Freebase Search API,您将获得mid
实体的 ,然后将其插入到适合该实体的另一个搜索中。下面的代码(在带有 jQuery 的 Javascript 中)将输入可能性限制为 Mr.Jordan 所在的字段,然后将其插入到篮球运动员的属性中:前球队。
$(function()
{
$("#myInput").suggest().bind("fb-select", function(e, data)
{
var topic_service = 'https://wwwlgoogleapis.com/freebase/v1/topic';
var params = {
'filter' : '(all type:/sports/sports_award_winner)'
};
$.getJSON(topic_service + data.id + '?callback=?', params, function(topic)
{
var teams = data.property['/basketball/basketball_player/former_teams']['values'];
for ( var i = 0; i < teams.length; i++)
{
alert(teams[i]);
}
})
})
});
对于更一般的类型,您可以在不限制搜索的情况下执行此操作,但是您必须查询该实体持有哪些属性,然后将其用作过滤器来获取您所追求的数据。
另一方面...
如果你不知道 Jordan 打篮球,或者篮球运动员的属性是什么,你可以调用链接的 id,找到这些链接的属性,然后在这些链接上查询这些属性:
{
"mid": "/en/michael_jordan",
"type": [{
"id":null,
"properties": [{
"id":null,
"links": [{
"source": {
"id": "/en/michael_jordan"
},
"target": {
"id": null,
"optional": true,
},
"optional": true,
"target_value": null
}],
"master_property": {
"optional": true,
"links": [{
"source": {
"id": null
},
"target": {
"id": "/en/michael_jordan"
}
}]
}
}]
}