Freebase货币查询

时间:2012-11-01 19:08:10

标签: freebase

我有一点问题,也许你可以帮助我。我正试图从freebase获得“货币功能”。所以我试着这样做:“/ base / schemastaging / person_extra / net_worth”:null但是,我无法获得写在freebase上的值(例如,使用Madonna,它是650,000,000)。你知道吗,为什么它不起作用?

1 个答案:

答案 0 :(得分:3)

首先,正如属性路径所示,/ base / schemastaging / person_extra / net_worth正在暂时上演,因此最终的属性ID将是其他内容(按照mailing list讨论新架构)。除了实验之外,你不应该使用这个属性。

您没有看到以下查询所需的数据的原因是因为此属性是CVT

{
  "id":   "/en/madonna",
  "type": "/base/schemastaging/person_extra",
  "net_worth": null
}

CVT值是需要扩展以访问所需值的复杂对象。在这种情况下,net_worth是一个CVT,这样我们就可以记录一个人在不同时间点的净值。

如果您展开查询以包含/measurement_unit/dated_money_value中的相关属性,则会看到您所追踪的数据。

{
  "id":   "/en/madonna",
  "type": "/base/schemastaging/person_extra",
  "net_worth": {
    "amount":     null,
    "currency":   null,
    "valid_date": null
  }
}

另一个问题,在这个例子中并不明显,因为可能存在多个日期货币值,您需要使查询更精确,以便只获得最新值。你可以这样做;

{
  "id":   "/en/madonna",
  "type": "/base/schemastaging/person_extra",
  "net_worth": {
    "amount":     null,
    "currency":   null,
    "valid_date": null,
    "sort":       "-valid_date",
    "limit":      1,
    "optional":   true
  }
}​

更新:使净值成为可选属性值。