Proposal: ThoughtSpot converter (bidirectional, TML ↔ Ossie)

Open
#285 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
38/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
python
Domain
data, tooling

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.

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.

Dominant language
Python
Stars
2.2k
Forks
280
Avg merge
2d 7h
Merged PRs (30d)
32

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from apache/ossie

All issues in apache/ossie

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.