Cryptograss:Connectome/Verifying ensembles: Difference between revisions

From PickiPedia: A knowledge base of bluegrass, old time psychedelic jams, and other public domain music
Jump to navigationJump to search
Re (talk | contribs)
Spec for the per-person per-source ensemble verification table (via create-page on MediaWiki MCP Server)
 
Re (talk | contribs)
blu code-check fixes: not a table, Bandcamp as a block, Sideman --album (no Liner), action=remove, nowiki, two-line footer (via update-page on MediaWiki MCP Server)
Line 1: Line 1:
<proposed by="Re">The '''ensemble verification table''' is the user-facing shape for a person to check, record by record and source by source, who was on a record. It is the ingest point for Sideman, Rambler and Liner output — a person reads it and says yes, per claim — and it is the stored twin of the display-only {{Ensemble}}.</proposed>
<proposed by="Re">The '''ensemble verification''' is the user-facing shape for a person to check, record by record and source by source, who was on a record. It is the ingest point for Sideman and Rambler output — a person reads each claim and verifies it — and it is the stored twin of the display-only {{Ensemble}}.</proposed>


== Shape ==
== Shape ==


{{Bot_proposes|One table per record page. A row exists per person per source: the same musician from MusicBrainz and from Discogs is two rows, because the two sources may say different things and each claim is verified on its own.|by=Re}}
<proposed by="Re">Each claim is its own <nowiki><nowiki>{{Record personnel}}</nowiki></nowiki> line wrapped in a <nowiki><code>{{proposed}}</code></nowiki> marker. It is deliberately '''not''' a wikitable: a line beginning with <code>|</code> or <code>!</code> is one the verification gate refuses to mark (<code>cannotCarryMarker</code> in {{Nowiki|PickiPediaVerification Hooks.php}}), so a table row a bot wrote could never be verified at all.</proposed>


{{Bot_proposes|Each table:|by=Re}}
<proposed by="Re">The verify gadget already puts one Verify button on each claim: it finds <code>.pv-proposed</code> and <code>.claim-unverified</code> spans and each {{Nowiki|{{Record personnel}}}} call renders one div per person, so claim and button line up.</proposed>


{| class="wikitable"
{{Bot_proposes|One claim per person per source runs like:|by=Re}}
! Person !! Source !! Scope !! Bandcamp (verbatim) !! Verify
|-
| [[Tony Rice]] || [https://musicbrainz.org/release/750499ef-cec3-4c3c-9e8d-2caacff30e0e MusicBrainz] || release || || 🔳
|-
| Tony Rice || Discogs || release || Recorded by Paul Brown || 🔳
|}


{{Bot_proposes|Columns:|by=Re}}
<nowiki><proposed>{{Record personnel|Tony Rice|instrument=guitar|source=https://musicbrainz.org/release/750499ef-cec3-4c3c-9e8d-2caacff30e0e}}</proposed></nowiki>


; {{Bot_proposes|Person : the musician's page, linked.|by=Re}}
{{Bot_proposes|Each claim carries:|by=Re}}
; {{Bot_proposes|Source : every source that named them, the cell linking the source URL. MusicBrainz, Discogs, Bandcamp, and a person's testimony (linked to its message) each count as one.|by=Re}}
; {{Bot_proposes|Scope : track or release — whether the source credited them to a specific track or to the whole record. Track is higher resolution.|by=Re}}
; {{Bot_proposes|Bandcamp (verbatim) : the Bandcamp credits text, copied word for word, never parsed into names. Present only when a Bandcamp source exists; the raw string sits in its own column so a person maps the names, not the tool.|by=Re}}
; {{Bot_proposes|Verify : one control per row; a person marks the claim true or false, or leaves it for later.|by=Re}}


== What feeds a row ==
; {{Bot_proposes|person : the musician's page, linked.|by=Re}}
; {{Bot_proposes|instrument : what the source credits them with (the tool folds case, but never reorders or renames).|by=Re}}
; {{Bot_proposes|source : the URL the claim came from — MusicBrainz, Discogs, or Bandcamp — linked, so verification reads the source in the same breath as the claim. A person's testimony is a source too, linked to its message.|by=Re}}
; {{Bot_proposes|scope : track or release — whether the source credited the person to a specific track or to the whole record. Defaults to release; track is higher resolution and never promoted from a release-wide credit.|by=Re}}


{{Bot_proposes|Sideman --album reads MusicBrainz, then Discogs, then (given a URL) Bandcamp, and keeps each source apart. Rambler and Liner produce the same per-source shape. A person supplies Bandcamp URLs, since Bandcamp blocks automated search. None of the tools writes to the wiki; this table is where a human says yes.|by=Re}}
{{Bot_proposes|Two claims for the same musician from two sources stay two claims; each is verified on its own. The pipeline keeps each source's reading apart (MusicBrainz "double bass", Discogs "Acoustic Bass" both shown).|by=Re}}
 
== Bandcamp ==
 
{{Bot_proposes|Bandcamp credits have no people in them, so they cannot sit on a person's claim row. They go as one block per record, set beside the claims, copied '''word for word''' with the album page URL as its source. A person reads the block and maps the names; the tool never parses them.|by=Re}}
 
== What feeds a claim ==
 
{{Bot_proposes|Sideman <code>--album</code> reads MusicBrainz, then Discogs, then — given a URL — Bandcamp, and keeps each source apart. Rambler produces the same per-source shape. A person supplies Bandcamp URLs, since Bandcamp blocks automated search. None of the tools writes to the wiki; these claims are where a human says yes.|by=Re}}


== The data model this needs ==
== The data model this needs ==


<proposed by="Re">
<proposed by="Re">
{{Record personnel}} today stores one source= and no scope:
{{Nowiki|{{Record personnel}}}} today stores one source and no scope: [[Property:Has personnel|Has personnel]] (person), [[Property:Has instrument|Has instrument]] (text), [[Property:Cites url|Cites url]] (one URL).
</proposed>
</proposed>


: {{Bot_proposes|[[Property:Has personnel{{!}}Has personnel]] (person), [[Property:Has instrument{{!}}Has instrument]] (text), [[Property:Cites url{{!}}Cites url]] (one URL).|by=Re}}
{{Bot_proposes|To hold several sources per person and a scope it grows, pending Justin's decision, to:|by=Re}}
 
<proposed by="Re">To hold several sources per person and a scope, {{Record personnel}} grows — pending Justin's decision — to:</proposed>


: {{Bot_proposes|<code>sources=</code> accepting several URLs (one row per source is then one subobject per source), and|by=Re}}
: {{Bot_proposes|<code>sources=</code> accepting several URLs (one subobject per source per claim), and|by=Re}}
: {{Bot_proposes|<code>scope=track{{!}}release</code>, defaulting to release.|by=Re}}
: {{Bot_proposes|<code>scope=track{{!}}release</code>, defaulting to release.|by=Re}}


{{Bot_proposes|Until that lands, one source per person and no scope is what the template can store. The table can still be drawn; only the multi-source and scope columns wait on the model.|by=Re}}
{{Bot_proposes|Until that lands, one source per person and no scope is all the template can store; the spec still holds, and the multi-source and scope columns wait on the model.|by=Re}}


== Verification ==
== Verification ==


{{Bot_proposes|Each row's Verify posts to the existing Bot_proposes / Special:VerifyBotEdits flow, one claim at a time, so a source that names the record without the track is never taken as a track claim. Bandcamp text is verified verbatim against the page it cites, not against the names a reader might infer from it.|by=Re}}
{{Bot_proposes|A claim is verified or it is proposed for removal with <nowiki><code>action="remove"</code></nowiki> — there is no "untrue" state; a wrong claim is struck and proposed for removal, not marked false. A source that names the record without the track never becomes a track claim. Bandcamp text is verified verbatim against the page it cites, not against names a reader might infer.|by=Re}}


{{Bot_proposes|Redeploy: none. Worked on by: re (spec draft), blu (shape, code check), Justin (data-model decision), in #connectome|by=Re}}
{{Bot_proposes|Redeploy: none. Worked on by: re (spec draft), blu (shape, code check), Justin (data-model decision), in #connectome|by=Re}}

Revision as of 19:38, 7 November 2026

The ensemble verification is the user-facing shape for a person to check, record by record and source by source, who was on a record. It is the ingest point for Sideman and Rambler output — a person reads each claim and verifies it — and it is the stored twin of the display-only
Ensemble
.[unverified]

Shape

Each claim is its own <nowiki>{{Record personnel}}</nowiki> line wrapped in a <code>{{proposed}}</code> marker. It is deliberately not a wikitable: a line beginning with | or ! is one the verification gate refuses to mark (cannotCarryMarker in Template:Nowiki), so a table row a bot wrote could never be verified at all.[unverified]

The verify gadget already puts one Verify button on each claim: it finds .pv-proposed and .claim-unverified spans and each Template:Nowiki call renders one div per person, so claim and button line up.[unverified]

One claim per person per source runs like:[unverified]

<proposed>{{Record personnel|Tony Rice|instrument=guitar|source=https://musicbrainz.org/release/750499ef-cec3-4c3c-9e8d-2caacff30e0e}}</proposed>

Each claim carries:[unverified]

person : the musician's page, linked.[unverified]
instrument : what the source credits them with (the tool folds case, but never reorders or renames).[unverified]
source : the URL the claim came from — MusicBrainz, Discogs, or Bandcamp — linked, so verification reads the source in the same breath as the claim. A person's testimony is a source too, linked to its message.[unverified]
scope : track or release — whether the source credited the person to a specific track or to the whole record. Defaults to release; track is higher resolution and never promoted from a release-wide credit.[unverified]

Two claims for the same musician from two sources stay two claims; each is verified on its own. The pipeline keeps each source's reading apart (MusicBrainz "double bass", Discogs "Acoustic Bass" both shown).[unverified]

Bandcamp

Bandcamp credits have no people in them, so they cannot sit on a person's claim row. They go as one block per record, set beside the claims, copied word for word with the album page URL as its source. A person reads the block and maps the names; the tool never parses them.[unverified]

What feeds a claim

Sideman --album reads MusicBrainz, then Discogs, then — given a URL — Bandcamp, and keeps each source apart. Rambler produces the same per-source shape. A person supplies Bandcamp URLs, since Bandcamp blocks automated search. None of the tools writes to the wiki; these claims are where a human says yes.[unverified]

The data model this needs

Template:Nowiki today stores one source and no scope: Has personnel (person), Has instrument (text), Cites url (one URL).[unverified]

To hold several sources per person and a scope it grows, pending Justin's decision, to:[unverified]

{{{1}}}[unverified]
{{{1}}}[unverified]

Until that lands, one source per person and no scope is all the template can store; the spec still holds, and the multi-source and scope columns wait on the model.[unverified]

Verification

A claim is verified or it is proposed for removal with <code>action="remove"</code> — there is no "untrue" state; a wrong claim is struck and proposed for removal, not marked false. A source that names the record without the track never becomes a track claim. Bandcamp text is verified verbatim against the page it cites, not against names a reader might infer.[unverified]

Redeploy: none. Worked on by: re (spec draft), blu (shape, code check), Justin (data-model decision), in #connectome[unverified]