2

如果我查看乐队“311”的 Freebase 页面,我会看到 Chad Sexton 列出。

http://www.freebase.com/view/en/311

我正在尝试查询乐队的成员:

{
            "name"  : "311",
            "/music/artist/album" : [{"name":null, "id":null, "optional": true}],
            "type|=" : ["/music/artist","/music/musical_group"],
            "/award/award_winner/awards_won" : ["award":null, "optional" => true],
            "/award/award_nominated_work/award_nominations" : ["award":null, "optional" => true],
            "/music/artist/supporting_artists":[{}]
}

我以为supporting_artists 会返回乐队成员的名字,但数组总是空的。

但是,如果我查询与 Chad Sexton 相关的所有属性,我看不到 311 被提及。但他在 Freebase 网页信息页面上被列为成员(这是正确的)。

{
  "*":    null,
  "name": "Chad Sexton",
  "type": "/music/artist"
}

如何获取乐队成员姓名和乐队信息?

4

1 回答 1

3

如果您转到311 的编辑页面,您会看到支持艺术家的属性为空。乐队成员在音乐组类型下的页面下方进一步列出。

您可以通过将其更改为如下所示来查看查询中的乐队成员:

{
  "name":          "311",
  "/music/artist/album": [{
    "name":     null,
    "id":       null,
    "optional": true
  }],
  "type|=": [
    "/music/artist",
    "/music/musical_group"
  ],
  "/award/award_winner/awards_won": [{
    "award":    null,
    "optional": true
  }],
  "/award/award_nominated_work/award_nominations": [{
    "award":    null,
    "optional": true
  }],
  "/music/musical_group/member": [{
    "member" : {}
  }]
}​

您必须在 /music/musical_group/member 中查询 member 的原因是Musical Group Membership是一个Compound Value Type。它使查询稍微复杂一些,但它是必要的,以便正确建模乐队的复杂关系,在乐队的整个生命周期中,可能有许多不同的成员加入、离开和切换角色。

于 2010-05-02T07:16:54.600 回答