Pazz N Jop Product Report Spec

Chuck Eddy suggested reviving the Pazz & Jop Product Report, a short-lived (1976-77) feature Robert Christgau ran at the Village Voice. Christgau recruited ten rock critics (Lester Bangs, Ken Emerson, Stephen Holden, Greil Marcus, Perry Meisel, Jim Miller, John Morthland, Wayne Robins, Susan Shapiro, and Ed Ward) and had them recommend up to ten records per month, assigning each points from 1-10 (except 4, 6, and 9). He also let them pick on up to four records per month, assigning them demerits of -1 through -4. Each month he tallied up the points, subtracted the demerits, and published a top-10 ranking of current records (defined as records that got a new vote during the month, although the totals were cumulative). An example of the published results is here.

Christgau's poll was intended to provide a carefully calibrated cross section of expert critical opinion. Chuck suggested that the poll be conducted by the group of (mostly) amateurs who coalesced in the comments section of Christgau's Expert Witness blog, and who continue to share news and opinions in the Facebook "Expert Witness" group: the results should be slightly more catholic than Christgau's own views but strongly oriented in that direction. (Since Christgau is no longer writing his blog, his grades have remained private aside from a few hints, so part of the utility of such a project would be to synthesize Christgau-like consumer guidance.)

Here's a quick design for such a system.

Database Tables

Table album: describes a virtual album, subject to rating. Multiple releases are collapsed into a single entry.

  • id: Sequentially assigned album index, for joins.
  • artist: Album's artist attribution.
  • title: Album's title, including subtitle if significant. If extra information needs to be provided to distinguish from other albums with same title, include here inside brackets.
  • label: Album's label information. Multiple label entries may be listed, separated by semicolon/space. Labels may include a two-letter nation specification in brackets; e.g., "Epic [UK]"; label entries may also include a set of qualifiers in braces specifying media and release date; e.g., "{CDV:YYYY-MM-DD}"; where C=CD, D=Digital, V=Vinyl, YYYY-MM-DD indicates release date.
  • attr: Album attributes, from a fixed list where multiple values can be true. Need to enumerate all values.
  • rdate: Album's preferred release date (US if available).
  • vdate: Album's most recent vote date.

Table tag: An attribute linked to an album. One probable use for this would be to implement a genre system.

  • id: Sequentially numbered tag index, for joins.
  • name: Tag name.
  • type: Tag type.

Table atag: Album-tag tuple joins.

  • tid: Tag id, from table tag.
  • aid: Album id, from table album.

Table user: An entry for each voter recognized by system.

  • id: Sequentially assigned user index, for joins.
  • uname: User name, for login, must be unique.
  • pname: Print name.
  • eaddr: Email address.
  • uri: Website URI (optional).
  • pwd: Encrypted password.
  • capa: User capabilities bitset. Most users can update album info and vote for themselves, although some may only do one or the other. Need a full list of transactions that need independent permissions. One thing that could be implemented here would be a limited set of list memberships (say, up to eight; much more would require an additional table).
  • note: Note about the user (optional).

Table vote: Vote table:

  • user_id: Index into user table.
  • album_id: Index into album table.
  • vote: Vote total. This assumes positive and negative votes are exclusive.
  • note: Optional note to go along with vote.
  • time: Timestamp for when vote last updated.