Proposal: ThoughtSpot converter (bidirectional, TML ↔ Ossie)
- Dominant language
- Python
- Stars
- 2.1k
- Forks
- 267
- Avg merge
- 4d 20h
- Merged PRs (30d)
- 24
Description
ThoughtSpot would like to contribute a converter between ThoughtSpot's semantic model format (Model TML + Table TML, YAML) and the Ossie semantic model, following the established converter pattern.
## Scope
- **Bidirectional**: `tml_to_ossie` (import) and `ossie_to_tml` (export)
- **File-to-file, Python**, mirroring the `converters/databricks` package shape (fixtures including a TPC-DS pair, roundtrip + property-based tests, per-converter CI workflow)
- **`custom_extensions` with `vendor_name: THOUGHTSPOT`** for lossless roundtrip of ThoughtSpot-only concepts; one row added to the well-known vendor examples table in `core-spec/spec.md`
- **Mapping docs before code**: a construct-mapping document and an expression/function-mapping document (each function in `core-spec/expression_language.md` classified as direct ThoughtSpot formula equivalent, requiring a SQL passthrough function, or unmappable → converter issue) will be posted on this issue for community review **before** the code PR
## Proposed mapping sketch (high level)
| Ossie | ThoughtSpot |
|---|---|
| `datasets` | Model `model_tables` + Table TML (physical `source`) |
| `fields` | table columns / ATTRIBUTE formulas |
| `metrics` | MEASURE columns / formulas |
| `relationships` | Model `joins` |
| `ai_context` | synonyms, Spotter instructions |
| `custom_extensions[THOUGHTSPOT]` | join types, aggregation defaults, formats, other ThoughtSpot-only metadata |
Happy to adjust scope/shape based on feedback — the mapping documents will follow as comments on this issue.
— Damian Waldron (ThoughtSpot); damian.waldron@thoughtspot.com on the dev list.
Contributor guide
Research direction
Start by reading the converters/databricks package shape and the proposed mapping sketch. Review the construct-mapping and expression/function-mapping documents when posted, then use the TPC-DS fixtures, roundtrip and property-based tests, and per-converter CI workflow as completion checks; also verify the THOUGHTSPOT vendor row in core-spec/spec.md and the related expression-language coverage.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100