Skip to content

Open Semantic Interchange Format

Actian AI Analyst supports the Open Semantic Interchange (OSI) format for exporting and importing semantic layers across tools.

What is OSI?

OSI is a vendor-agnostic, open-source specification for semantic model exchange across AI agents, BI platforms, and analytics tools. It was initiated by Snowflake together with Salesforce, dbt Labs, and other players, and is governed as an open standard under the Apache 2.0 license. Participating organizations include Actian AI Analyst, Tableau, Qlik, ThoughtSpot, Omni, Sigma, Alation, Select Star, and others.

Actian AI Analyst to OSI Mapping

Actian AI Analyst EntityOSI EntityNotes
Environmentsemantic_modelContainer for the export
ModeldatasetsDirect mapping
Model.sourcePathdatasets.sourceFormatted as db.schema.table
Model.graindatasets.primary_keyArray of column names
Model.agentGuidancedatasets.ai_contextCombined with description
ModelDimensiondatasets.fieldsWith expression dialect
ModelDimension (temporal)fields.dimension.is_timeBoolean flag
ModelMeasuredatasets.fieldsai_context: "Measure. Unit: X..."
ModelRelationshiprelationshipsfrom_columns/to_columns as arrays
MetricmetricsExpression with dialect
GlossaryTermai_context"Also known as: term, synonym1..."

What's NOT Exported in OSI

OSI is a lightweight interchange format. The following Actian AI Analyst-specific features are not included:

  • Filters - OSI has no filters concept
  • Agents - No OSI equivalent
  • Glossary definitions - Only terms/synonyms are preserved as ai_context
  • Enum value descriptions - Only values are listed
  • Sample data - Not part of OSI spec

Info

For complete backups that preserve all details, use the Actian AI Analyst Lossless format instead.

OSI Output Example

# OSI (Open Semantic Interface) Export
# Generated by Actian AI Analyst
# Environment: My Analytics
# Exported at: 2026-01-28T10:30:00.000Z
---
semantic_model:
  - name: "My Analytics"
    description: "Exported from Actian AI Analyst"
    ai_context: "Source: actian-ai-analyst. Environment ID: env_123"

    datasets:
      - name: "orders"
        source: "mydb.analytics.orders"
        primary_key: ["order_id"]
        description: "Order transactions"
        fields:
          - name: "order_date"
            expression:
              dialects:
                - dialect: "ANSI_SQL"
                  expression: "order_date"
            dimension:
              is_time: true
            ai_context: "Time grains: DAY, MONTH, YEAR"
          - name: "total_amount"
            expression:
              dialects:
                - dialect: "ANSI_SQL"
                  expression: "SUM(amount)"
            ai_context: "Measure. Unit: USD. Precision: 2."

    relationships:
      - name: "orders_to_customers"
        from: "orders"
        to: "customers"
        from_columns: ["customer_id"]
        to_columns: ["id"]

    metrics:
      - name: "total_revenue"
        expression:
          dialects:
            - dialect: "ANSI_SQL"
              expression: "SUM(orders.amount)"
        description: "Total revenue"
        ai_context: "Anchor model: orders. Unit: USD."