Freebase MQL查询检索不一致的结果

时间:2012-11-06 11:53:05

标签: freebase

当我在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的名单。

1 个答案:

答案 0 :(得分:1)

并非所有相册都记录了主要版本。除非您真的关心这一点,否则我会放宽您的约束并使用this之类的查询:

[{
  "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。你可以通过按发布日期对所有版本进行排序,然后只选择第一个版本(假设它很有可能成为主要版本)来获得更好的效果。

生成的查询看起来像this

[{
  "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
    }]
  }]
}]​