Problem
The Material Category Analysis section on tutorials/zenodo_isamples_analysis.qmd shows empty results after the column alias fix in PR #56.
Root cause
The Jan 2026 wide parquet (isamples_202601_wide_h3.parquet) stores material categories as p__has_material_category BIGINT[] — an array of row IDs (foreign keys) pointing to IdentifiedConcept nodes in the narrow format. The old export format had has_material_category as a plain string ("rock", "sediment", etc.).
The current fix maps has_material_category to NULL so the page loads without errors, but the material breakdown charts are empty.
Fix options
- Pre-compute a lookup table in a small parquet file mapping row IDs → concept labels (similar to
facet_summaries.parquet), and join at query time
- Add denormalized string columns to a future wide parquet build (e.g.,
has_material_category_label VARCHAR)
- Rewrite queries to join wide + narrow at runtime (expensive for browser-based DuckDB-WASM)
Option 1 is probably the best balance of effort vs. result.
Affected sections
- Section 9: Material Category Analysis (bar chart, drill-down by source)
- Any query referencing
has_material_category as a string
Context
Problem
The Material Category Analysis section on
tutorials/zenodo_isamples_analysis.qmdshows empty results after the column alias fix in PR #56.Root cause
The Jan 2026 wide parquet (
isamples_202601_wide_h3.parquet) stores material categories asp__has_material_category BIGINT[]— an array of row IDs (foreign keys) pointing toIdentifiedConceptnodes in the narrow format. The old export format hadhas_material_categoryas a plain string ("rock","sediment", etc.).The current fix maps
has_material_categorytoNULLso the page loads without errors, but the material breakdown charts are empty.Fix options
facet_summaries.parquet), and join at query timehas_material_category_label VARCHAR)Option 1 is probably the best balance of effort vs. result.
Affected sections
has_material_categoryas a stringContext