Skip to content

Proposal to Adopt Semantic Operator as a Kubeflow Subproject - #1024

Open
vara-bonthu wants to merge 4 commits into
kubeflow:masterfrom
vara-bonthu:proposal/semantic-operator
Open

Proposal to Adopt Semantic Operator as a Kubeflow Subproject#1024
vara-bonthu wants to merge 4 commits into
kubeflow:masterfrom
vara-bonthu:proposal/semantic-operator

Conversation

@vara-bonthu

Copy link
Copy Markdown
Contributor

Summary

This PR proposes adopting Semantic Operator as a Kubeflow subproject.

Semantic Operator is a Kubernetes operator and stateless semantic server that operationalizes an Apache Ossie semantic layer on existing data platforms.

It allows organizations to define certified metrics, dimensions, relationships, and governance policies once as Kubernetes resources. AI agents select these certified business concepts instead of generating SQL. Semantic Operator validates each request, applies governance, and deterministically generates one SQL statement for StarRocks or Trino.

Why this belongs in Kubeflow

Semantic Operator adds a governed data-access layer for AI agents, applications, BI tools, and Kubeflow workloads.

Potential integrations include:

  • Kubeflow Pipelines
  • KServe
  • Kubeflow Model Registry
  • Kubeflow Trainer
  • Kubeflow Notebooks
  • Kubeflow Profiles
  • Kubeflow Spark Operator

Kubeflow would provide vendor-neutral governance and a community home for developing this capability.

What this PR adds

  • The completed Kubeflow subproject application
  • Project architecture and functionality
  • Existing and potential Kubeflow integrations
  • Security and isolation model
  • Current maturity and known gaps
  • Governance and repository transfer plan
  • Maintainer commitment from Vara Bonthu and Manabu McCloskey

Proposal links

Proposed destination

kubeflow/semantic-operator

We welcome feedback from the Kubeflow Steering Committee, Working Group leads, maintainers, users, and potential contributors.

Signed-off-by: vara-bonthu <vara.bonthu@gmail.com>
@google-oss-prow

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign chasecadet for approval. For more information see the Kubernetes Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@andreyvelich andreyvelich left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks great, thank you for this @vara-bonthu! I left a few thoughts.
I am super excited to see this moving forward!

/assign @kubeflow/kubeflow-steering-committee

- A deterministic planner that emits one governed SQL statement per request
- Compile-time row, column, and metric authorization
- MCP, REST, and governed SQL-view interfaces
- StarRocks and Trino dialects and query clients

@andreyvelich andreyvelich Aug 18, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you have plans to integrate all dialects that Apache Ossie supports?
https://github.com/apache/ossie/blob/main/core-spec/spec.md#dialects

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We plan to expand dialect support based on community demand, but we should not commit to implementing every dialect immediately.

There are two related layers here. Apache Ossie dialects describe expressions in a semantic model, while Semantic Operator also needs an executable query-engine integration consisting of SQL emission, connectivity, schema introspection, and conformance testing. Today, Semantic Operator supports StarRocks and Trino query engines and consumes ANSI_SQL expressions, with a StarRocks specific extension where needed. This architecture makes additional engines pluggable through separate dialect and database-client interfaces.


The core architecture is vendor-neutral. Query engines implement a dialect and database-client interface. Catalog sources and metadata enrichers use separate extension interfaces. StarRocks and Trino are implemented today. The design does not require a specific cloud provider, model provider, catalog, object store, or Kubernetes distribution.

AWS Glue is one optional catalog source. DataHub and engine information schemas are also supported. Additional engines and catalogs can be added without changing the semantic model or serving interfaces.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


https://kubedai.github.io/semantic-operator (Private repo)

The documentation can move or redirect to a Kubeflow-managed location after acceptance.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you have plans to create dedicated website similar to: https://spark.kubeflow.org/en/latest/ ?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes. The project already has a dedicated documentation website with detailed docs, currently published through GitHub Pages at kubedai.github.io/semantic-operator. Its build and deployment workflow is maintained in the repository.

After transfer, we plan to publish it from Kubeflow managed infrastructure under a Kubeflow domain, similar to the Spark Operator documentation, and preserve or redirect the existing URLs.


Documentation: https://kubedai.github.io/semantic-operator (Private repo)

### Security Profile

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@franciscojavierarceo @thesuperzapper @chasecadet @juliusvonkohout Do we want to have section which identifies Kubeflow maturity requirements for the new project (e.g. Experimental, Incubating, Graduated)?
Or we want to say that all newly joined projects will be Experimental first?
https://github.com/kubeflow/community/blob/master/subprojects/maturity_requirements.md#graduated

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We would be comfortable entering as an Experimental or Incubating project

Comment thread subprojects/1023-semantic-operator/README.md Outdated
- Define a security response and release process
- Establish baseline project and adoption metrics

#### Kubeflow integration

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any potential interest to integrate this into Kubeflow Community Distribution?
cc @juliusvonkohout @tarekabouzeid

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, we are interested in eventual integration with the Kubeflow Community Distribution.
We propose doing this in stages - first complete the repository transfer and establish a supported release, then add manifests and integration tests, and finally work with the distribution maintainers on inclusion.

The initial donation remains independently installable through Helm and does not assume immediate distribution inclusion.


Semantic Operator is different from an LLM text-to-SQL gateway. The LLM is not trusted to construct joins, aggregations, policies, or SQL. It can select from certified semantic concepts exposed through MCP. The server validates that request and creates deterministic SQL from a versioned model.

The proposal also does not ask Kubeflow to own Apache Ossie. Semantic Operator is an independent Kubernetes implementation that consumes the Apache Ossie specification and adds Kubernetes lifecycle, schema drift checking, governance, serving protocols, and query-engine integrations.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shall we say that the goal is to also work closely with Apache Ossie community to reduce number of breaking changes and to promote this operator as a reference architecture of the spec?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, agreed. We want to work closely with the Apache Ossie community, track specification changes, contribute implementation feedback, and reduce avoidable compatibility breaks.

We would also like Semantic Operator to serve as a Kubernetes reference implementation of the specification, subject to Apache Ossie community alignment. We will maintain a versioned compatibility matrix and keep Kubernetes specific governance and lifecycle extensions outside the Ossie document.

Comment thread subprojects/1023-semantic-operator/README.md Outdated

## Proposed Working Group

The maintainers propose the Kubeflow Data Working Group as the initial home because Semantic Operator governs access to analytical data and complements Spark Operator. The Steering Committee and Working Group chairs may identify a different or joint home based on the project's agent, serving, and metadata integrations.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As we discussed offline, I think newly formed Agents WG should cover the scope of this project: #1025
This could be a great candidate to move forward with this WG.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed. The Agents Working Group is a strong primary home because MCP based governed data access for agents is central to the project. I will update this wording

vara-bonthu and others added 3 commits August 18, 2026 09:25
Co-authored-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
Signed-off-by: Vara Bonthu <vara.bonthu@gmail.com>
Co-authored-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
Signed-off-by: Vara Bonthu <vara.bonthu@gmail.com>
Signed-off-by: vara-bonthu <vara.bonthu@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants