2

freebase クエリ ビルダーでこのクエリを実行すると、

[{
  "/type/object/id": "/en/michael_jackson",
  "/type/object/name": null,
  "/type/object/type": "/music/artist",
  "/music/artist/album": [{
    "id":            null,
    "name":          [],
    "release_type!=": "Single",
    "/music/album/primary_release": [{
      "name":       null,
      "track_list": [{name:null}]
    }]
  }]
}];​

アルバムとトラックのリストで適切な結果が返されますが、クエリを次のように変更すると

[{
  "/type/object/id": "/en/carly_rae_jepsen",
  "/type/object/name": null,
  "/type/object/type": "/music/artist",
  "/music/artist/album": [{
    "id":            null,
    "name":          [],
    "release_type!=": "Single",
    "/music/album/primary_release": [{
      "name":       null,
      "track_list": [{name:null}]
    }]
  }]
}];​

私は何も返さない。これらのクエリは両方ともhttp://www.freebase.com/queryeditorで試すことができます。誰かが私が間違っていることを指摘できますか? どちらもアーティストなので、Carly Rae Jepsen のアルバムとトラック リストも返さなければなりません。

4

1 に答える 1

1

すべてのアルバムに最初のリリースが記録されているわけではありません。これを本当に気にしない限り、制約を緩めて、次のようなクエリを使用します

[{
  "id": "/en/carly_rae_jepsen",
  "name": null,
  "type": "/music/artist",
  "/music/artist/album": [{
    "id":            null,
    "name":          null,
    "release_type!=": "Single",
    "/music/album/releases": [{
      "name":       null,
      "track_list": [{"name":null}]
    }]
  }]
}]​

クエリのその他の微調整:

  • 最後の「名前」は引用されていません
  • クエリはセミコロンで終了しません
  • /type/object はデフォルトであり、最近指定されたタイプに関連付けられたプロパティと同様に省略できます
  • name は単一値のプロパティであるため、[] ではなく null を使用します。

利用可能な場合はプライマリ リリースが必要であるが、クエリを制限しない場合は、"optional":true を使用できます。すべてのリリースをリリース日でソートし、最初のリリースのみを取得することで、さらに洗練されたものにすることができます (最初のリリースである可能性が高いと仮定して)。

結果のクエリは次のようになります

[{
  "id":   "/en/carly_rae_jepsen",
  "name": null,
  "type": "/music/artist",
  "album": [{
    "id":            null,
    "name":          [],
    "release_type!=": "Single",
    "primary_release": [{
      "optional": true,
      "name":     null,
      "track_list": [{
        "name": null
      }]
    }],
    "releases": [{
      "name":         null,
      "track_list": [{
        "name": null
      }],
      "release_date": null,
      "sort":         "release_date",
      "limit":        1
    }]
  }]
}]​
于 2012-11-06T13:49:24.413 に答える