2

少し問題があります。助けてもらえますか。フリーベースから「通貨機能」を取得しようとしています。だから私はやろうとしました: "/base/schemastaging/person_extra/net_worth": null しかし、freebase に書かれた値を取得できません (たとえば、マドンナでは 650,000,000 です)。なぜそれが機能しないのか知っていますか?

4

1 に答える 1

3

まず、プロパティ パスが示すように、/base/schemastaging/person_extra/net_worth はちょうど現在ステージングされているため、最終的なプロパティ ID は別のものになります (メーリング リストに従って、新しいスキーマについて議論してください)。実験以外の目的でこのプロパティを使用しないでください。

次のクエリで必要なデータが表示されない理由は、このプロパティが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
  }
}

この例から明らかではないもう 1 つの問題は、複数の日付付きの金額の値が存在する可能性があるため、最新の値のみを取得するためにクエリをより正確にする必要があることです。このようにできます。

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

更新:純資産をオプションのプロパティ値にしました。

于 2012-11-01T19:30:59.317 に答える