Files
cs249r_book/periodic-table/table.schema.json
Vijay Janapa Reddi 13b4d968a4 polish(periodic-table): resolve taxonomy grid constraints, clarify titles, and refine framework limitations
- Refactored table.yml to expand grid from 15 to 18 columns, perfectly aligning elements to their block columns without visual impurity.
- Updated schema validation and SVG layout logic to handle 18-col bounds.
- Re-generated periodic_table_hero.svg with the new clean grid layout.
- Switched 'Constraint-Driven Lowering Heuristic' to 'Constraint-Driven Structural Search' to emphasize generative design over compiler semantics.
- Fixed paper.tex title to remove academic jargon ('Generative Design Space').
- Styled code listings with custom 'elegant' light-theme formatting.
- Added Mamba compound visual figure to the limitations section.
- Added 'Predict the Paper' table to validate the heuristic empirically.
- Generated and included 'Nomenclature' table of all 90 elements.
- Re-added 'Framework Tax' limitation acknowledging software bottlenecks.
2026-04-08 19:49:37 -04:00

121 lines
4.1 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://mlsysbook.ai/periodic-table/table.schema.json",
"title": "Periodic Table of ML Systems",
"description": "Single source of truth for the Periodic Table of ML Systems. Consumed by the standalone HTML emitter and the StaffML React app. Cross-reference invariants (bond resolution, formula resolution, no cell collisions) are enforced by the validator script in addition to this schema.",
"type": "object",
"required": ["version", "title", "blocks", "rows", "elements", "compounds"],
"additionalProperties": false,
"properties": {
"version": { "type": "string", "pattern": "^\\d+\\.\\d+(\\.\\d+)?$" },
"title": { "type": "string" },
"subtitle": { "type": "string" },
"blocks": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"required": ["key", "name", "sub", "color", "cols"],
"additionalProperties": false,
"properties": {
"key": { "type": "string", "enum": ["R", "C", "X", "K", "M"] },
"name": { "type": "string" },
"sub": { "type": "string" },
"color": { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" },
"cols": {
"type": "array",
"minItems": 1,
"items": { "type": "integer", "minimum": 1, "maximum": 18 }
}
}
}
},
"rows": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"required": ["index", "key", "name"],
"additionalProperties": false,
"properties": {
"index": { "type": "integer", "minimum": 1, "maximum": 8 },
"key": { "type": "string", "pattern": "^[a-z_]+$" },
"name": { "type": "string" },
"tagline": { "type": "string" }
}
}
},
"elements": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"required": ["id", "sym", "name", "block", "row", "col", "desc", "bonds", "why"],
"additionalProperties": false,
"properties": {
"id": { "type": "integer", "minimum": 1 },
"sym": { "type": "string", "pattern": "^[A-Z][a-z]$" },
"name": { "type": "string", "minLength": 1 },
"block": { "type": "string", "enum": ["R", "C", "X", "K", "M"] },
"row": { "type": "integer", "minimum": 1, "maximum": 8 },
"col": { "type": "integer", "minimum": 1, "maximum": 18 },
"year": { "type": ["string", "null"] },
"desc": { "type": "string", "minLength": 1 },
"bonds": {
"type": "array",
"items": { "type": "string", "pattern": "^[A-Z][a-z]$" }
},
"why": { "type": "string", "minLength": 1 }
}
}
},
"compounds": {
"type": "array",
"items": {
"type": "object",
"required": ["section", "items"],
"additionalProperties": false,
"properties": {
"section": { "type": "string" },
"hint": { "type": "string" },
"items": {
"type": "array",
"items": {
"type": "object",
"required": ["name", "formula"],
"additionalProperties": false,
"properties": {
"name": { "type": "string" },
"formula": { "type": "string", "minLength": 1 }
}
}
}
}
}
},
"known_collisions": {
"type": "array",
"description": "Documented intentional symbol collisions. Lookup behavior is last-wins; consumers may disambiguate by id or by (row, col).",
"items": {
"type": "object",
"required": ["sym", "ids", "note"],
"additionalProperties": false,
"properties": {
"sym": { "type": "string", "pattern": "^[A-Z][a-z]$" },
"ids": {
"type": "array",
"minItems": 2,
"items": { "type": "integer", "minimum": 1 }
},
"note": { "type": "string" }
}
}
}
}
}