The Open Semantic Interchange (OSI) format is an open community standard (Apache 2.0) for exchanging semantic data models between tools. Use this export to share the structure of your data products: tables, columns, and foreign-key relationships, with downstream BI, AI, and semantic-modeling tools. Snowflake is the primary validated consumption target. For what the standard covers, see Built on open standards.

The export produces one format: OSI YAML, the semantic model as a plain OSI YAML document, downloaded as a .yaml file. OSI is vendor-neutral, so the same document can be fed to Snowflake or to any other OSI-compatible tool.

Tip

To export any object as Excel, Word, or PDF instead, see Object export.

Export a data product

OSI YAML is offered only where a data product can be reached. Where the export covers a whole application or space, it appears when that application or space is set up to hold an object type marked as a data product — whether or not it holds one yet. Where the export covers a single object, that object’s own type must be the data product type.

  1. Open the export dialog from one of these places:
    • A single data product: open its object detail page and click Export next to the object title, or click the three dots on the object’s row in the left panel and select Export.
    • Selected data products: in an app’s or space’s Objects table (for example, the Data Product Catalog app), select one or more data product rows and click Export in the table’s action bar.
    • A whole application or space: in the left panel, click the three dots on the application or space header and select Export objects.
  2. Select OSI YAML.
  3. Click Export. The export runs as a background task.
  4. In the top-right of Dawiso, click the notification bell button. Look for the notification that says Export of objects to file has finished: Click to download for the download link.

Two surfaces never offer an OSI export: a dashboard or page that belongs to neither an application nor a space, and the Download objects dialog on the space header.

Tip

The generated YAML file describes the output ports of the selected data products: the underlying tables and columns they reference, plus foreign-key relationships between them.

What is left out

An output port is skipped when no tables are attached to it. The port’s Output Port Type — API, File, SQL, and the rest — plays no part in the decision. An object is skipped when it is not a data product, or when it is a data product whose output ports were all skipped.

A skipped port is a warning: the export still produces a file, covering the ports that do have tables. The notification reports the outcome only. Which objects and output ports were left out is recorded against the export task in Settings > General > Task log — open the task and read the Message column.

Warning

If every selected object is skipped, the export fails: Nothing was exported — none of the selected objects is a Data Product with exportable tables. For the causes and fixes, see Troubleshooting data products.

Running the model in Snowflake

The downloaded .yaml is the vendor-neutral OSI document. To create a Snowflake semantic view from it, wrap it in a CALL SYSTEM$CREATE_SEMANTIC_VIEW_FROM_OSSIE_YAML statement in a worksheet, naming the target database and schema yourself.

Dawiso can build that statement for you, but only through the export API, not from the export dialog: call POST /api/mr-object/format/6/export-async?wrapForSnowflake=true and the result is delivered as a runnable .sql file. Dawiso derives the target database and schema from the tables of the exported data product.

When it cannot name a safe target, it comments the whole statement out and puts a note at the top explaining why, so a script cannot create the semantic view in the wrong schema or against the wrong table. Two situations produce that file:

  • The exported datasets do not resolve to one Snowflake database and schema. The note opens with TARGET NOT RESOLVED and asks you to replace the <DATABASE>.<SCHEMA> placeholder before uncommenting the statement.
  • A dataset source is not a plain database.schema.table reference. The note opens with SOURCE NOT USABLE IN SNOWFLAKE, names the source, and asks you to correct it before uncommenting the statement.

OSI specification version

An administrator sets the version identifier written into every OSI export in Settings > General > Features, under OSI export, in the OSI spec version field. The default is 0.1.1, the version accepted by Snowflake’s SYSTEM$CREATE_SEMANTIC_VIEW_FROM_OSSIE_YAML procedure. A new value takes effect on the next export; no restart is required.

The value must be 1–64 characters, using only digits, letters, dot, hyphen, plus and underscore. It cannot be blank, so the field does not clear back to the default — type the value in full. Dawiso writes whatever passes that rule into the document without validating it against an OSI schema, so a version other than 0.1.1 exports successfully; whether the consuming tool accepts it is up to that tool.

Warning

An environment variable set in the deployment configuration overrides the stored value, and Dawiso then refuses to save the field in Settings. A version supplied that way skips the Settings validation, so it can break the character rule — the export then fails, naming the configuration key and the overriding variable: OSI specification version '<value>' is not usable: expected 1-64 characters from [0-9A-Za-z.-+_]. Change such a value in the deployment configuration.