Skip to content

Single source of truth for metadata #334

@infojunkie

Description

@infojunkie

The existence of 3 manually-maintained metadata files is a source of inconsistency and human error. There are documented cases such as #322, #290, #196, #193 .

Typically, such issues would be addressed with a "single source of truth" approach, where these 3 currently unrelated files would be unified. This can take many shapes:

  • A single JSON where the proper hierarchy is expressed. From my limited understanding, this would be ranges => glyphnanes, with classes expressed as a list attribute of glyphnames. This approach still risks that duplicate classes be mistyped.
  • A single JSON with JSON schema support (see Proposal / Feature Request: JSON Schema for SMuFL Metadata files #313) where classes can be defined separately and referenced by glyphnames.
  • A relational database (e.g. SQLite) where the 3 files would be represented as tables, with foreign keys and referential integrity constraints added to ensure consistency.

It would still be possible to retrieve the current JSON files from whatever format is chosen, by crafting the corresponding queries (e.g. jq for JSON, SQL for SQLite) that recreate these files from the source. It also would provide a template for other application-specific queries, e.g. listing the glyph names of accidentals.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions