Semantic Model
This page defines the canonical JSON-LD object model for rendered pages in _site.
Canonical Entity IDs
- Person:
https://www.just3ws.com/id/person/mike-hall - Interview:
https://www.just3ws.com/id/interview/<interview-id> - VideoObject:
https://www.just3ws.com/id/video/<video-asset-id>
IDs are deterministic and stable across builds.
Supporting Governance Data
- Navigation contract:
_data/navigation.yml - Taxonomy vocabulary and allowed patterns:
_data/taxonomy.yml
Route Contracts
/- must expose
PersonJSON-LD.
- must expose
/home/- must not expose resume
PersonJSON-LD.
- must not expose resume
/videos/<id>/- must expose
VideoObjectwith@id,name,description,url,uploadDate.
- must expose
/interviews/<id>/- must expose
Interviewwith@id,name,url,datePublished,interviewer, andmainEntityOfPage. - should link to canonical
VideoObjectbysubjectOf.@idwhen asset data exists.
- must expose
- Index routes (
/interviews/,/videos/,/oneoffs/,/scmc/)- must expose
CollectionPagewithmainEntityset toItemList. - each
ListItemshould reference canonical IDs for the underlying entity.
- must expose
- Pages with visual breadcrumbs
- must expose
BreadcrumbListJSON-LD aligned with rendered breadcrumb links.
- must expose
- Blog posts (
/YYYY/...)- must expose
Articlewithheadline,datePublished,dateModified, andmainEntityOfPage.@id.
- must expose
Validation and Artifacts
- Semantic contract validator:
bin/validate_semantic_output.rb - Coverage report:
tmp/schema-coverage-report.json - Graph artifact generator:
bin/visualize_semantic_graph.rb - Graph outputs:
tmp/schema-graph.dottmp/schema-graph-summary.json
- Snapshot page generator:
bin/generate_semantic_snapshot_page.rb - Snapshot page output:
docs/architecture/semantic-graph.md
Visualization Workflow
- Refresh build and semantic artifacts:
./bin/pipeline ci
- Generate snapshot docs page:
./bin/pipeline semantic-snapshot
- Review published snapshot:
/docs/architecture/semantic-graph/