Skip to content

Add Record ID to Incidents

🚀 Feature Request

Summary

Allow assignment of found incidents to records via record IDs to better align with user expectations in cultural heritage data. However this possibly contradicts the domain independence.

Problem to Solve / User Story

As a user working with cultural heritage data, I want to assign incidents to records using record IDs so that I can better track and interpret findings.

  • However, the system was designed to be domain-independent, and introducing record-based assignments might conflict with this principle.
  • In cases where record IDs are unavailable, a fallback numbering system (e.g., 1, 2, 3…) should be considered.
  • Additionally, the current method of identifying the ID for the constraint results in the QPM backend is unclear.

Proposed Solution

  • Introduce a general path in the data format specification file to extract record identifiers, such as </ancestor::lido:lido/lido:lidoRecID/text()> for LIDO.
  • Rework queries to return IDs with incidents.
  • Adapt the quality report from the execution API call to contain IDs.
  • Display IDs in the Constrainify Report View.
  • Ensure fallback logic for cases where no record ID is available.

Benefits

  • Enhances usability for users familiar with record-based thinking in cultural heritage data.
  • Provides clear assignment of incidents to records for improved analysis.
  • Maintains flexibility by allowing a fallback numbering system when record IDs are unavailable.

Possible Drawbacks

  • Potentially conflicts with the domain-independent approach originally planned.
  • Requires modifications to queries in QPM and the execution API call.
  • Requires modifications of the Constrainify Report View.
  • Additional complexity in handling cases where no record ID exists.

Additional Context

The decision to implement this should weigh the benefits for cultural heritage data users against the project’s original goal of domain independence.

Requirements or Dependencies

  • Modifications to data format specification files.
  • Updates to the QPM backend to include IDs in queriy result.
  • Updates to the report generation.
  • Execution API call adaptation.
  • UI updates in Constrainify Report View.

Alternatives Considered

  • Keeping the domain-independent approach without explicit record assignments.