Data model TTL export (Wave S)
Open-FDD can export the package Mapping inventory as RDF Turtle. This is a derived view — not the FDD source of truth.
Contract
| Layer | Role |
|---|---|
Package zip maps → columns.csv roles |
SoT for DataFusion FDD / analytics |
| Mapping JSON export | Same inventory as JSON |
| Mapping Export TTL / View TTL as text | Same inventory as compact Turtle (text/turtle) |
GET /api/csv/import/package/mapping/ttl?building_id=… |
JWT + building ACL; agents/MCP can fetch without SPA |
GET …/mapping/haystack.ttl / …/haystack-projection |
Strict Haystack (ofdd_haystack_projection_v1) from native semantic meta — not this native TTL |
GET …/mapping/semantic-meta |
Native openfdd_semantic_meta_v1 JSON |
Turtle subjects use safe IRI segments; opaque names become reversible
enc_<utf8-hex> (SPA and central must stay UTF-8 parity — not FNV/UTF-16).
Non-goals
- No SPARQL / Oxigraph on the FDD request path.
- Do not invent Brick/Haystack roles in RDF that the zip does not map.
- Do not treat downloaded
.ttlas an ingest or authoring format. - Do not claim lossless JSON↔TTL (legacy Haystack projection declares
ofdd:claimsLosslessJson false— see RDF vocabulary notes). - Native package TTL (
openfdd_data_model_v2) is not strict Haystack — see JSON/RDF crosswalk.
See also: docs/agent/PACKAGE_AUTHORING.md,
Engineering quantities,
Mapping page (map-download-ttl, map-view-ttl-text).