Skip to content

Future: cluster review workspace for value reconciliation #125

Open

Description

@devnull03

Overview

Build a dedicated cluster-review workspace after qrate has grouped diagnostics and a reusable value-clustering crate.

The workspace will let catalogers review related displayed values as one decision. It will show frequencies, evidence, affected records, and a user-selected canonical value before any data changes.

This workflow is inspired by OpenRefine's Cluster and edit feature and its clustering design. qrate will use an independent implementation designed for its diagnostics and cataloging workflow. OpenRefine does not endorse qrate.

Scope

  • Show one card or review unit for each proposed value cluster.
  • Show each displayed form and its occurrence count.
  • Let the user select an observed or custom canonical value.
  • Let the user include or exclude individual members.
  • Show match evidence and the strategy that proposed the cluster.
  • Show sample rows and available thumbnails as context.
  • Support skip and explicit rejection judgments.
  • Persist review decisions so rejected clusters do not immediately return.
  • Apply accepted replacements as one undoable table edit.
  • Re-cluster after accepted changes without closing the review flow.
  • Filter and sort by confidence, reason, column, review state, and affected-row count.
  • Support future value-frequency facets, authority candidates, and mapping export.

Out of scope

  • Automatic entity merges.
  • Treating string similarity as proof of identity.
  • Building this workspace before grouped diagnostics land.
  • Copying OpenRefine source code, UI assets, or documentation text.

Task details

  1. Reuse structured pair and frequency results from the clustering crate.
  2. Keep the Problems panel as the passive entry point.
  3. Open the full workspace from a value-variant group or column action.
  4. Require a direct acceptable relationship between each member and the selected canonical value.
  5. Avoid unrestricted single-link clustering that can join unrelated endpoints.
  6. Send approved writes through table::write_cells as one undo step.
  7. Store negative and deferred judgments with stable normalized member keys.
  8. Add stale-data checks before an accepted review changes cells.
  9. Credit OpenRefine in the feature documentation.

Definition of done

  • A cataloger can review a proposed cluster without visiting every cell.
  • The workspace shows frequencies, match evidence, and representative record context.
  • No value changes until the cataloger confirms the selected mapping.
  • One undo restores every cell changed by one accepted cluster.
  • Rejected clusters stay rejected until their source values change.
  • The UI works with person, organization, place, subject, title, and controlled-label columns.
  • Authority-backed candidates remain distinct from syntax-only clustering.
  • Tests cover canonical selection, partial membership, stale data, rejection persistence, bulk undo, and re-clustering.
  • Documentation credits OpenRefine and states that qrate uses an independent implementation.

Dependency

Blocked by the grouped-diagnostics and reusable-clustering work tracked in PR #120.

Estimate

Large. Split implementation into review model, UI, persistence, and bulk-apply changes.

Type

Feature / follow-up

Notion: Not created yet. Add the Tasks Tracker URL before implementation starts.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions