【问题标题】:How to get aliases from Freebase?如何从 Freebase 获取别名?
【发布时间】:2012-05-11 16:20:23
【问题描述】:

我只想从 Freebase 获得一个人可以拥有的不同别名。我的 PHP 查询是:

$query = array(
    array(
        'id' => NULL, 
        'alias' => NULL, 
        'name' => "Barack Obama", 
        'type' => "/people/person"
    )
);

结果是:

Array ( 
    [code] => /api/status/error 
    [messages] => Array ( 
        [0] => Array ( 
            [code] => /api/status/error/mql/type 
            [info] => Array ( 
                [expected_type] => /people/person 
                [property] => alias 
            ) 
            [message] => Type /people/person does not have property alias 
            [path] => 
            [query] => Array (
                [0] => Array (
                    [alias] => 
                    [error_inside] => . 
                    [id] => 
                    [name] => Barack Obama 
                    [type] => /people/person 
                ) 
            ) 
        ) 
    ) 
    [status] => 200 OK 
    [transaction_id] => cache;cache01.p01.sjc1:8101;2012-05-11T16:17:29Z;0082 
)

有人可以帮我吗?

【问题讨论】:

    标签: php freebase mql


    【解决方案1】:

    属性的全名是/common/topic/alias。除非该属性属于您正在使用的类型或者是 /type/object 的属性,否则您需要完全指定它。

    您可以将类型更改为 /common/topic(因为您似乎根本没有使用 /people/person)或将属性更改为 /common/topic/alias。

    【讨论】:

    • 伟大的汤姆,我第一次得到别名!唯一的问题是我还收到以下错误消息:code[message] => 唯一查询最多可能有一个结果。 code。你知道为什么吗?
    • 请注意,即使我将 "alias":null 替换为 "alias":[],也会出现错误。我不明白为什么。
    • 如果没有更多上下文,很难说出问题所在。应该有一个“error_inside”:“。”对在问题所在点的查询中返回。如果问题当时发生,您对 "alias":[] 的更改应该已经解决了它,但也许其他地方存在问题。
    • 这里是输出(我剪切了数组的一些元素): Array ( [code] => /api/status/error [messages] => Array ( [0] => Array ( [code] => /api/status/error/mql/result [info] => Array ( [count] => 10 [result] => Array ( [0] => Barack Hussein Obama, Jr. [1] => Barack Hussein Obama [2] => President Obama ... [9] => Obama, Barack ) ) [message] => 唯一查询最多可能有一个结果。得到 10 [path] => alias [query] => 数组 ( [0] => 数组 ( [alias] => [error_inside] => 别名 [id] => [name] => Barack Obama [type] => /common/topic ) ) ) [status] => 200 OK [transaction_id] =>...)
    • 别名属性的值可以出现多次。您的查询应该是“别名”:[] 而不是“别名”:null。如果您想要的不仅仅是英文别名,请使用类似 "alias":[{"lang":null,"value":null}]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多