Files
LabDataStorageEvaluation/docs/specs/11_reporting.md
administrator b173ac82a9 fix(docs): fix formatting issues in README.md
- adapt meta-/code-/obs- rules to the local Python benchmark pipeline
- replace db-sql-ddl, code-config-env-scope, test-e2e-pytest with pipeline equivalents
- add code-python-style, data-determinism, data-naming-units, bench-methodology, build-pipeline-tasks
- normalize specs and README typography to ASCII per code-data-formatting
- rewrite root CLAUDE.md trigger table; add .cursorrules and .gitignore
- specs: pipeline plan and task specs 00-11
- rules: 19 binding rule files adapted for this project
- docs: CLAUDE.md rule-trigger table
- config: .cursorrules commit convention, .gitignore excluding out/ and .venv/
- docs: rewrite README.md with pipeline diagrams, setup guide, result placeholders
- config: requirements.txt for the closed dependency list
- datagen: make_lab_config.py writes out/config/lab_config.yaml and .done marker
2026-07-11 13:39:13 -04:00

2.3 KiB
Raw Blame History

11 - Reporting: Tables, Charts, Weighted Scoring

Context / Goal

Aggregate all measurements and projections into the final decision document that clearly ranks the storage formats for laboratory use cases: analysis, report generation, search/filtering, archiving, inter-lab exchange.

Dependencies

09, 10 (and 02 for embedding process diagrams).

Processing instructions

Write report.py using matplotlib (PNG, 150 dpi, log scales where ranges span decades) into ./out/report/charts/, and assemble ./out/report/REPORT.md.

Tables

  1. Storage footprint: measured @150 MB + coefficients vs CSV + projected @600 GB/1.2 TB/6 TB (incl. compressed archival sizes).
  2. Q1-Q7 median wall time / peak RAM / CPU% / read MB, per format (measured).
  3. Q1-Q7 projected wall time @600 GB with IMPRACTICAL/FAIL flags.
  4. Hardware sizing & cost per format @600 GB.
  5. Weighted scoring matrix (see below).

Charts (each measured + each projected @600 GB)

  • C1: disk footprint bar (log).
  • C2: RAM requirement bar (log).
  • C3: per-query grouped bars Q1-Q7 wall time (log), one chart per query, 5 formats each.
  • C4: degradation curves - wall time vs data size (150 MB → 6 TB), one line per format, per query class (point read / indexed / full aggregation), log-log.
  • C5: stacked-bar weighted score.
  • C6: cost vs performance scatter @600 GB (x = est cost, y = geometric-mean query time, log-log).

Weighted scoring (agreed methodology)

Normalized 0-10 per metric, then weights: Search speed ×5 (0-50), RAM economy ×2 (0-20), Disk economy ×1 (0-10). Max 80. Search score = normalized inverse geometric mean of Q1-Q7 projected @600 GB (TIMEOUT/FAIL → 0). Present measured-scale and 600 GB-scale scoreboards side by side.

Narrative sections (concise, English)

  • Executive summary with the recommendation (expected, to be confirmed by data: PostgreSQL system of record; CSV retained as raw archive; hybrid JSON-LD for exchange; RDF as virtual layer only - reference Ontop OBDA).
  • Use-case mapping table: analysis / reports / search / archiving / exchange → recommended format(s).
  • Limitations: single-node, simulated data, extrapolation assumptions.

Output

  • ./out/report/REPORT.md + ./out/report/charts/*.png + all tables as CSV in ./out/report/tables/.
  • Marker ./out/.done/11.ok.