Cryptograss:Connectome/Verifying ensembles: Difference between revisions
Spec for the per-person per-source ensemble verification table (via create-page on MediaWiki MCP Server) |
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 | <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 == | ||
{{ | <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> | ||
<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> | |||
{| | {{Bot_proposes|One claim per person per source runs like:|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|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|Each claim carries:|by=Re}} | ||
{{Bot_proposes|Sideman --album reads MusicBrainz, then Discogs, then | ; {{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 | <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|To hold several sources per person and a scope it grows, pending Justin's decision, to:|by=Re}} | |||
: {{Bot_proposes|<code>sources=</code> accepting several URLs (one | : {{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 | {{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| | {{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]