Data model

Analysis structure

A Quiver analysis is constructed by one or more cards that can depend on each other, that form an analysis graph.

You can see the analysis graph and even conduct analysis in graph mode. Cards are represented by nodes on the graph. Inputs and outputs are represented by the links between cards. Cards at the top of the graph are "data" cards and represent the data used in the analysis. Cards that take other cards as input are known as "transformation" or "visualization" cards.

You can also see card dependencies when performing analyses in canvas mode.

Card inputs and outputs

Every parameter, transformation and visualization card in Quiver can take zero or more required inputs and produce zero or more outputs. Inputs and outputs have definitive types.

For example:

  • The rolling aggregate time series transformation takes a transform table as input and produces a transform table as output.
  • The numeric aggregation transform takes an object set as input and produces a number as output.
  • A line chart, bar chart, and pie chart takes an object set as input and produces a categorical chart as output.
  • A pivot table takes an object set as input and produces a pivot table as output.

The possible input types and the returned output type for each card are annotated as [input_types > output_types] next to each operation in the cards search window.

Input and output type for each card in the cards search window

The same [input_types > output_types] annotation is also used in the next actions menu:

Input and output type for each card in the next actions menu

And when adding a parameter:

Input and output type for each parameter type

The output type of each Quiver card is also shown in the card header.

Image showing card output type in header

Construct an analysis

Add cards to an analysis either by searching for them or adding them through the next actions menu.

Cards can only be chained together when one card's output type matches another cards's input type. Quiver ensures that card input and output types are compatible in the following ways:

  • When configuring inputs for a Quiver card, only cards with compatible output types are shown for selection.
  • The next actions menu for a selected card will only show compatible cards.

To save screen space, if a card can take more than two input types, a multi type icon (Multi type data pill) will be used to indicate that multiple types could be used instead of listing inline all the possible types. To see the complete list of supported input types, hover the cursor over the multi type icon.

Card search dialog highlighting the create array transform and the multiple input types it can take as input.

Supported input and output types

The full list of Quiver supported input and output types is provided below.

Value types

Value types represent individual values as opposed to data types that represent a group or a set of values.

The following value types exist:

  • Number: Denoted by Number (Number data pill)
  • String: Denoted by String (Number data pill)
  • Boolean: Denoted by Boolean (Boolean data pill)
  • Timestamp: Denoted by Time (time data pill)
  • Duration unit: Describing a period of time such as day or minute, denoted by Duration unit (Duration unit data pill)
  • Range: Representing a range of values between start and end values, denoted by Time range (Time range data pill) or Number range (Number range data pill)
  • Array: Denoted by Array (Array data pill) , String array (String array data pill), Number array (Number array data pill), Boolean array (Boolean array data pill) or Time array (Time array data pill)
  • None: Representing situations when a card does not require an input or does not produce an output, denoted by None (None type data pill). Examples include the text card which accepts freeform Markdown text, or the duration unit parameter which outputs duration unit values but does not accept other data on your analysis as input.

Data types

Data types represent a group or set of values, with possible different value types.

The following data types exist:

  • Single objects: Data such as the object title, properties and links, for a specific Ontology object type, denoted by Single object (Single object data pill)
  • Sets of objects: Data such as the object titles, properties and links, for a group of Ontology objects of a specific type, denoted by Object set (Object setdata pill)
  • Materialization: Indexed data from the Ontology that contains the latest state of each object instance by combining data from both input datasources and user edits, denoted by Materialization (Materialization data pill)
  • Time series: A series of alphanumeric values over time, usually at a regular interval, denoted by Time series (Time series data pill)
  • Events: Data representing information with start and end timestamp, denoted by Event set (Event set data pill)
  • Tabular data: Data in a row and column format, denoted by Transform table (Transform table data pill) or Pivot table (Pivot table data pill)

Visualization

While all visualizations plot data, some also output aggregated data of a definitive type. This aggregated data can be used as an input to specific cards.

These visualization types exist:

  • Categorical charts such as bar chart, line chart, and pie chart are visualization types that plot data but also output aggregated data that can be used as an input to other cards that accept categorical data as an input, such as a transform table or a categorical formula plot. Denoted by Categorical chart (Categorical charts data pill).
  • Time series group: A visualization type that, in addition to plotting multiple time series on a chart, also outputs a set of time series that can be used as an input to a transform table for apply batch operations. Denoted by Time series group (time series group data pill).
  • Time series chart: The card container onto which time series plots are displayed. A time series plot is the specific line representation of the data in a time series. Multiple plots can be displayed on the same chart.
  • Time series scatter plot: A 2-dimensional visualization that plots two time series against each other, denoted with Time scatter plot (Time scatter plot data pill).
  • None: Denoted with None (None data pill) refers to cards where only a view is provided, such as an object table view, an object list, a vega plot, a time series heat grid, a waterfall plot, a map view, or a scatter plot regression. The None value type cannot be used as input to other cards.

Global identifiers (IDs)

Unique Quiver global identifiers (or global IDs in short) in the form of $A are automatically assigned to all Quiver data cards, data sources and parameters when added to the analysis.

Identify global IDs

The specific global ID values could be found in various places across the Quiver application:

  • Next to each card and plot in the Analysis content panel
  • Next to each parameter in the parameters panel
  • For each card in the card header and editor panel
  • For each parameterized input value in a card editor panel
  • In the legend of a time series chart for each time series plot.
  • In the axis of a time series chart for each shared axis.

"Image showing a global ID"

Use global IDs

Global IDs are used in formulas and Vega plot configurations to reference data sources, such as time series plots, transform tables, charts, arrays, or scalar values. For example, you can reference a transform table with its global ID (like $B) in the data section of a Vega plot. To reference specific columns in a transform table, use the syntax $A.column_name. Similarly, you can reference scalar values using the global ID of a numeric metric card (like $C).