Cryptograss:Connectome

From PickiPedia: A knowledge base of bluegrass, old time psychedelic jams, and other public domain music
Jump to navigationJump to search

The connectome is PickiPedia's knowledge graph of people, songs, records, shows and releases — who played on what, when, and where.[unverified]

Data model

Three entities from studio.lua (commit 3ffd310, block 26,283,184):[unverified]

composition : A [[Song:]] page. What was played: title, writers, key, tempo.[unverified]
cut : One recording of a composition — one lineup, one day, one studio. Created by {{Studio cut}}, which writes a Has cut subobject on the composition page. Its identity is block height + studio.[unverified]
appearance : A cut placed on a record, at a track number. Written by {{Studio cut}} as part of the same subobject.[unverified]

Properties

Property On page type Points to Count Set by
Has cut Song subobject (cut details) 147 subobjects on 20 songs {{Studio cut}}
Has performer Song (inside Has cut subobject) Person page 125 rows {{Studio cut}}
Has instrument Song (inside Has cut subobject) instrument name (string) 155 edges {{Studio cut}}
Has record Song (inside Has cut subobject) Record page (main namespace) 22 rows {{Studio cut}}
Has track number Song (inside Has cut subobject) number per appearance {{Studio cut}}
Has release Record (subobject) Release page (CID) 1: 4masks {{Record release}}
Has release version Record (subobject) version label (text) 1: RC1 {{Record release}}
Is current release Record (subobject) boolean 1 {{Record release}}
Has current release Record page Release page (CID) 1: 4masks {{Record release}} (current=yes)

The five {{Studio cut}} counts are from blu's live audit of 26 Oct (block ~26,277,000); no cuts have been added since. The four {{Record release}} counts are from reading the one record that uses it, 4masks, at block 26,283,184.[unverified]

Each Has performer row pairs with a Has instrument edge: one person, one instrument. A person playing three instruments on a cut gets three edges. This is the grain the magenta trail search uses.[unverified]

Records and releases

A record page (main namespace, e.g. 4masks) describes an album: its artwork, tracklist, credits. A release is one published version of a record, stored in the [[Release:]] namespace. Its page title is its IPFS CID.[unverified]

{{Record release}} links a record to one release. Use it once per version, and mark one version current:[unverified]

{{Record release|cid=<CID>|version=RC1|current=yes}}

[unverified]

Parameters: cid (the IPFS CID, which becomes Release:<cid>), version (a label: RC1, final, remaster), current (yes on the one to serve — at most one per record).[unverified]

It stores a subobject per version (Has release, Has release version, Is current release), and on the current one also sets Has current release on the record page itself, so one lookup goes from a record to its audio:[unverified]

{{#ask: [[4masks]] |?Has current release }}

[unverified]

With {{Studio cut}}'s Has record, the chain Song → cut → record → current release → CID is properties all the way, not a sentence of prose.[unverified]

Status at block 26,283,184:[unverified]

The four Property pages exist, but their Has type declarations sit inside Bot_proposes wrappers, so the types apply only after a person verifies them at Special:VerifyBotEdits. Until then, Has release version and Is current release render as page links (RC1 and True show up as red links).[unverified]

Current shape

  • 20 songs with cuts, plus Song:Masks and Song:August/mock with none[unverified]
  • 19 people[unverified]
  • 155 instrument-level performer edges; Justin accounts for roughly 50 of them as a cut vertex, so trail search needs a weighting penalty to avoid one-hop paths through him[unverified]
  • 22 Has record rows across 3 records[unverified]
  • 1 of 3 records (4masks) has a Has current release; the other two have no CID at all[unverified]
  • 4 red-linked performer pages: David Grier, Luna Lavender, Jeff Fehlauer, Ice Quilitz[unverified]

Shows

Pages titled Show:Artist-BlockHeight (main namespace, not a separate namespace) link performers to a venue and block height. Property:Venue is used on 8 show pages. Property:Has venue is used on 4 jam and festival pages. These may be duplicates of the same idea — under review by blu.[unverified]