When creating a new Object Type in the Ontology management app, it asks for a backing dataset. Is there a way to create and Object Type without a backing dataset?
When creating a new Object Type in the Ontology management app, it asks for a backing dataset. Is there a way to create and Object Type without a backing dataset?
Not currently. To ensure that access to objects data is correctly secured, a backing dataset is used to derive user access permissions to objects of a given Object Type, and therefore is required.
If you’re looking to build out the ontology before connecting and pipelining data through Foundry, the simplest way would be to create an empty dataset for each Object Type you need. You can replace the objects backing dataset at a later date once the data is ingested into Foundry.
The easiest way to create these empty datasets is to use Fusion and its ability to sync regions of a spreadsheet to a dataset.
Create a new Fusion spreadsheet and make sure to save it in a place accessible to users who you want to see the resulting Object Types.
Add some column headers in a new row. These will mark the columns which will become the columns of the dataset, and ultimately properties of your Object Type
Optionally, you can add some hard-coded example data underneath these headers if you want to create placeholder objects.
Select the headers (and the example data) and use the “Sync table to dataset” button under the “Data” tab to create a Table and sync this to a dataset:

You can use the same button again, or the “…” next to the Table name on the spreadsheet, to manage the sync and ensure the column types match the types you want for your object properties:

You can't currently create an Object Type without a backing dataset. An alternative to creating a dataset in Fusion as mentioned in the other answer is to create an empty backing dataset via Code Repositories.
An example of the code required can be found below:
from transforms.api import transform_df, Output
from pyspark.sql import types as T
@transform_df(
Output("/Company/Ontology/proposals"),
)
def proposals(ctx):
schema = T.StructType([
T.StructField("creation_time", T.TimestampType()),
T.StructField("created_by", T.StringType()),
T.StructField("content", T.StringType()),
T.StructField("priority", T.IntegerType()),
])
return ctx.spark_session.createDataFrame([], schema)
This code can also be found in documentation at [URL]/workspace/documentation/product/transforms/create-empty-ontology-dataset.
The main advantages of this method over creating a dataset through Fusion are: