1

在 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但无法提出过滤操作数。

有任何想法吗?

4

1 回答 1

0

我不知道您使用的是哪个 API,但如果您要使用Freebase Search API,您将获得mid实体的 ,然后将其插入到适合该实体的另一个搜索中。下面的代码(在带有 jQ​​uery 的 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"
                    }
                }]
            }
        }]
    }

--此代码取自 Jamie Taylor 在 2011 年发表的 I/O 演讲的幻灯片

于 2013-06-29T00:06:02.240 回答