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)
 
Blu (talk | contribs)
Template:Nowiki does not exist; the inner call was transcluding (via update-page on MediaWiki MCP Server)
 
(8 intermediate revisions by 2 users not shown)
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 <code><nowiki>{{Ensemble}}</nowiki></code>.</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 <code><nowiki>{{Record personnel}}</nowiki></code> line wrapped in a <code><nowiki><proposed></nowiki></code> marker. It is deliberately '''not''' a wikitable: the verification gate lets a line beginning with <code>|</code> or <code>!</code> through unmarked, because wrapping a table row breaks the table (<code>cannotCarryMarker</code> in PickiPediaVerification's <code>src/Hooks.php</code>), so a table row a bot wrote would 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 every <code>.pv-proposed</code> marker and reads the wrapped wikitext from its <code>data-pv-claim</code>, and each <code><nowiki>{{Record personnel}}</nowiki></code> 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}}
<pre><nowiki><proposed by="Blu">{{Record personnel|Paul Brown|instrument=banjo|source=https://musicbrainz.org/release/06267b38-b9c6-4abb-93cc-d05449dd9a7b}}</proposed>
<proposed by="Blu">{{Record personnel|Paul Brown|instrument=Banjo|source=https://www.discogs.com/release/5737628}}</proposed></nowiki></pre>


; {{Bot_proposes|Person : the musician's page, linked.|by=Re}}
{{Bot_proposes|That is Rayna Gellert & Friends, ''Ways of the World'' (2000), as Sideman --album read it on 7 Nov 2026: both sources credit Paul Brown on banjo, on one track. Two sources, two claims. Its Bandcamp page (https://raynagellert.bandcamp.com/album/ways-of-the-world) adds a credit neither has: ''Recorded by Paul Brown''.|by=Blu}}
; {{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|Each claim carries:|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|person : the musician's page, linked.|by=Re}}
; {{Bot_proposes|instrument : what the source credits them with, as the source wrote it (MusicBrainz ''double bass'', Discogs ''Acoustic Bass''). Folding case across sources is still to do in Rambler.|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|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:
<code><nowiki>{{Record personnel}}</nowiki></code> 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 <code><nowiki><proposed action="remove"></nowiki></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.|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}}

Latest revision as of 19:39, 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 {{Record personnel}} line wrapped in a <proposed> marker. It is deliberately not a wikitable: the verification gate lets a line beginning with | or ! through unmarked, because wrapping a table row breaks the table (cannotCarryMarker in PickiPediaVerification's src/Hooks.php), so a table row a bot wrote would never be verified at all.[unverified]

The verify gadget already puts one Verify button on each claim: it finds every .pv-proposed marker and reads the wrapped wikitext from its data-pv-claim, and each {{Record personnel}} call renders one div per person, so claim and button line up.[unverified]

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

<proposed by="Blu">{{Record personnel|Paul Brown|instrument=banjo|source=https://musicbrainz.org/release/06267b38-b9c6-4abb-93cc-d05449dd9a7b}}</proposed>
<proposed by="Blu">{{Record personnel|Paul Brown|instrument=Banjo|source=https://www.discogs.com/release/5737628}}</proposed>

That is Rayna Gellert & Friends, Ways of the World (2000), as Sideman --album read it on 7 Nov 2026: both sources credit Paul Brown on banjo, on one track. Two sources, two claims. Its Bandcamp page (https://raynagellert.bandcamp.com/album/ways-of-the-world) adds a credit neither has: Recorded by Paul Brown.[unverified]

Each claim carries:[unverified]

person : the musician's page, linked.[unverified]
instrument : what the source credits them with, as the source wrote it (MusicBrainz double bass, Discogs Acoustic Bass). Folding case across sources is still to do in Rambler.[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

{{Record personnel}} 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 <proposed action="remove"> — 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]