When you define your Ontology, you can use a wide variety of types to represent real-world definitions of the data you brought into Foundry. The types used in Foundry are categorized as Ontology types or data types:
The following types are available to build and define your Ontology.
An object type is a schema definition of a real-world entity or event, comprised of individual objects. For example, both JFK
and LHR
can be objects of an Airport
object type.
Learn more about object types.
A property of an object type is a characteristic that informs a real-world entity or event. For example, if LHR
is an object type of Airports
, name
and country
are properties of Airports
. For the LHR
object, the property values would be the following:
A shared property is a property that can be used on multiple object types in your Ontology. Shared properties allow for consistent data modeling across object types and centralized management of property metadata.
Learn more about shared properties.
A link type is the schema definition of a relationship between two object types. A link refers to a single instance of that relationship between two objects.
An action type is the schema definition of a set of changes or edits to objects, property values, and links that a user can make all at once. Action types also include the side effect behaviors that happen when an Action occurs. Once an action type is configured in the Ontology, end users can make changes to objects by applying Actions.
Learn more about action types.
An interface is an Ontology type that describes the shape of an object type and its capabilities. Interfaces provide object type polymorphism, allowing for consistent modeling of and interaction with object types that share a common shape.
Learn more about interfaces.
The following types are available to represent data values.
Field types are the set of primitive types supported for fields in datasets. These types include Boolean
, String
, Integer
, Long
, Array
, and so on. Review our documentation on supported field types for a complete list of available field types.
Base types are used to define properties on objects. The base type of a property determines the set of operations available for that property in user applications. All field types are valid base types except for Map
, Struct
, Decimal
, and Binary
types.
Base types also include the following advanced types:
All base types may be used in arrays to represent multiple values for a property, excluding the Vector
and Time series
types.
Value types are semantic wrappers around a field type comprised of metadata and constraints that can enhance type safety, improve expressiveness, and provide additional context. Value types encapsulate domain-specific data types and enforce data validation in a manner reusable across the platform. Commonly used value types include email addresses, URLs, UUIDs, and enumerations.
While field types and base types are defined statically, value types are customized within the context of a given space. As a result, users cannot create new field types or base types but are able to create value types dynamically.