Skip to content

Implement an interface to inspect results #2

Description

@4ment

Overview

Create an interactive web-based GUI for exploring and inspecting cpplink linkage results.

The GUI should use Python to run a local web server, with an HTML/JavaScript frontend. All linkage results and metadata should be stored in a DuckDB database, which acts as the query layer between the cpplink output and the web application.

The objective is to make it easy to investigate individual records, pairwise matches, clusters and model scores without loading the complete result set into memory.

Architecture

DuckDB should be the primary storage and query layer for the GUI.

The Python server should provide a thin API over DuckDB rather than maintaining a separate in-memory representation of the complete results.

The frontend should request only the data required for the current view.

Result database

Design a DuckDB schema capable of storing all information required to inspect linkage results.

The exact schema should be designed based on the existing cpplink output, but should support at least:

Records

Store the source records involved in linkage.

Potential fields:

  • Dataset/source identifier
  • Record ID
  • Cluster ID
  • Original field values
  • Relevant metadata

Pairwise comparisons

Store pairwise comparison results.

Potential fields:

  • Record ID A
  • Record ID B
  • Cluster ID
  • Match score
  • Match probability, where available
  • Comparison levels
  • Per-field comparison results
  • Per-field score/log-likelihood contribution

Clusters

Store cluster-level information where useful.

Potential fields:

  • Cluster ID
  • Number of records
  • Number of pairwise links
  • Cluster-level statistics

The schema should avoid unnecessary duplication of large values.

Record search

Allow users to search for records by ID.

The record page should display:

  • Record ID
  • Original field values
  • Cluster ID
  • Number of linked records
  • Strongest matches
  • Links to the containing cluster

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

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions