You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Data Schematic: add visual cues denoting agent/machine/human produced/curated/verified data #4474
Investigation notes: current state & suggested shape
What exists today
Provenance in the Data Schematic is document-level only, never per-field:
x-qsv.generated_by — describegpt bakes a full attribution block into the schema (tool+version, command line, model, API URL, language, timestamp). viz renders it in three places: the dictionary drawer footer, the page footer, and the tour's meta panel (Model: line).
WARNING lines — describegpt appends per-prompt-type warnings ("Label and Description generated by an LLM… Verify before using!"). That's the closest thing to an "AI-generated" cue, and it's a blunt block of text, not a per-datum hint.
x-qsv.tour.generated_by — same convention on the tour envelope.
Mapping the six categories onto current reality
Category
Today
1. Deterministic computed
Everything from the stats cache: chart geometry, types, cardinality, min/max, the self-inferred dictionary fallback. Implicitly computed — no marker.
2. Deterministic + human-verified
No mechanism.
3. AI-generated
describegpt's title / description / x-qsv.tags / content_type / tour narration. Only detectable by the presence of generated_by.
4. AI + human-verified
No mechanism. A human editing an LLM dictionary leaves no trace (viz deliberately tolerates hand-edited sidecars and re-validates on read).
5. AI + adversarial AI review
No mechanism. Closest is --two-passDictionaryRefine, but that's same-model cross-field refinement, not adversarial review — and it re-emits as PromptType::Dictionary, erasing even that distinction.
6. Human-generated
A hand-written dictionary — detectable only by the absence of a describegpt attribution block.
Categories 2, 4, 5 need a new schema contract; 1, 3, 6 are inferable today from what's already stored.
Suggested shape (two phases)
Phase 1 — no schema change, inference only. viz can already classify coarsely: dictionary text with generated_by present ⇒ AI (✨-class badge); absent ⇒ human/unknown (👤); stats-derived facts and self-inferred labels ⇒ computed (⚙️). Render as a small badge + hover tooltip (title / aria-label) in the dictionary drawer rows, KPI tile corners, panel subtitles, and tour popovers, with a legend next to the existing attribution footer. This covers 3 of the 6 categories and establishes the visual language.
Phase 2 — explicit x-qsv.provenance contract, per-property (and on the tour envelope), loosely aligned with W3C PROV vocabulary for portal interop (relevant to the CKAN/DCAT angle):
The version-1 x-qsv.tour envelope pattern (Rust builds the envelope, LLM supplies prose only) is the right precedent for provenance — keep the machine-readable part out of the LLM's hands.
Activity
[-]Data Schematic: add visual cues denoting agent/human produced data[/-][+]Data Schematic: add visual cues denoting agent/machine/human produced/curated/verified data[/+]jqnatividad commentedon Aug 27, 2026
Investigation notes: current state & suggested shape
What exists today
Provenance in the Data Schematic is document-level only, never per-field:
x-qsv.generated_by— describegpt bakes a full attribution block into the schema (tool+version, command line, model, API URL, language, timestamp). viz renders it in three places: the dictionary drawer footer, the page footer, and the tour's meta panel (Model:line).x-qsv.tour.generated_by— same convention on the tour envelope.Mapping the six categories onto current reality
title/description/x-qsv.tags/content_type/ tour narration. Only detectable by the presence ofgenerated_by.--two-passDictionaryRefine, but that's same-model cross-field refinement, not adversarial review — and it re-emits asPromptType::Dictionary, erasing even that distinction.Categories 2, 4, 5 need a new schema contract; 1, 3, 6 are inferable today from what's already stored.
Suggested shape (two phases)
Phase 1 — no schema change, inference only. viz can already classify coarsely: dictionary text with
generated_bypresent ⇒ AI (✨-class badge); absent ⇒ human/unknown (👤); stats-derived facts and self-inferred labels ⇒ computed (⚙️). Render as a small badge + hover tooltip (title/aria-label) in the dictionary drawer rows, KPI tile corners, panel subtitles, and tour popovers, with a legend next to the existing attribution footer. This covers 3 of the 6 categories and establishes the visual language.Phase 2 — explicit
x-qsv.provenancecontract, per-property (and on the tour envelope), loosely aligned with W3C PROV vocabulary for portal interop (relevant to the CKAN/DCAT angle):source: "ai"on what it authors--review-model(different model, adversarial prompt) could stampverified: "ai"qsv schemahelperThis unlocks categories 2/4/5.
Implementation considerations
x-qsv.tourenvelope pattern (Rust builds the envelope, LLM supplies prose only) is the right precedent forprovenance— keep the machine-readable part out of the LLM's hands.🤖 Generated with Claude Code
jqnatividad commentedon Sep 4, 2026
Also check DTPR for AI
https://www.dtpr.ai/en