在Freebase MQL中,如何编写查询以获取组织的父级名称?

时间:2012-07-11 16:25:19

标签: freebase mql

我需要得到父母的组织清单。在freebase.com的查询编辑器中,我使用以下查询:

{   “id”:“/ en / daihatsu_motor_company”,   “/机构/组织/父”:{ID:空} }

我得到以下结果:

{   “code”:“/ api / status / ok”,   “结果”:{     “/ organization / organization / parent”:{       “id”:“/ m / 04kjl82”     },     “id”:“/ en / daihatsu_motor_company”   },   “状态”:“200 OK”,   “transaction_id”:“cache; cache03.p01.sjc1:8101; 2012-07-10T22:54:06Z; 0030” }

但是,我期待id:toyota_motor_corporation。

从freebase.com的查询编辑器,我可以点击id(“id”:“/ m / 04kjl82”),这是一个链接,可以查看我需要的信息:

http://www.freebase.com/view/m/04kjl82

如何直接获取母公司的名称或其ID(在示例toyota_motor_corporation中)?

谢谢,

2 个答案:

答案 0 :(得分:1)

您的查询返回父和子之间的组织关系的ID。你想要的是父母,你可以通过以下查询得到它:

{
  "id": "/en/daihatsu_motor_company",
  "/organization/organization/parent": {
    "parent": null
  }
}​ 

返回

{
  "code":          "/api/status/ok",
  "result": {
    "/organization/organization/parent": {
      "parent": "Toyota Motor Corporation"
    },
    "id": "/en/daihatsu_motor_company"
  },
  "status":        "200 OK",
  "transaction_id": "cache;cache03.p01.sjc1:8101;2012-07-11T21:50:01Z;0045"
}

答案 1 :(得分:1)

Claudio的答案很接近,但如果你真的想要这个ID,你需要稍微调整一下查询,因为返回的默认属性是名称,而不是ID。这将为您提供ID:

{
  "id": "/en/daihatsu_motor_company",
  "/organization/organization/parent": {
    "parent": {"id":null}
  }
}​

将返回

  "result": {
    "/organization/organization/parent": {
      "parent": {
        "id": "/en/toyota_motor_corporation"
      }
    },
    "id": "/en/daihatsu_motor_company"
  }

话虽如此,您应该考虑using the MID而不是ID,因为这是目前推荐的标识符。