4.2 KiB

Data Views

Introduction

Publishers and users of data want data presented in tables, graphs maps to make it more human "readable".1 We use the term "view" or "data view" ofr all these various ways of presenting data in more human "readable" ways.

graph LR
  data[Your Data] --> table[Table]
  data --> grap[Graph]

At base, views need:

  • A descriptive language: for specifying views such as tables, graphs and maps (and their source data).
  • Rendering tools: take those specifications and render actual "live on the web" tables, graphs and maps from those specifications (and their source data)

In addition, we may want:

  • Wizards: to enable (non-technical) users to create tables, graphs, maps etc -- and to select the input data to power them.
  • Explorers: that build on the views and wizards to allow users to do interactive data exploratio via live filtering and viewing.
  • Dashboards that combine tables, charts, maps etc (often with widgets that allow users to adjust these e.g. to select a country that updates associated charts).

[!tip]Often when we say "view" we identify with the particular presentation such as the table or graph. E.g. we say "this table is a view of that data". However, when you stop and think, strictly a view is more than that, for example it includes the title for the table. Formally, for us a view will include the combination of the presentation specification, the data sources that feed, plus any general metadata such as a title and description.

Definitions

  • Preview: a display (of a sample) of a resource
  • Previewer: a method for previewing specific raw data types e.g. csv, excel, json, xml, text, geojson etc …
  • Viz: visualizations e.g. table, graph, map, ...
  • Viz Builder: a UI for creating graphs, maps etc
  • Query UI: a UI for building queries of a dataset
  • Explorer: Query UI + Viz Builder + Viz (renderer)

Features

Definitions for feature clusters

  • View: "(pre)view" a variety of data formats, most importantly tabular and geodata, and extending to PDFs, JSON HTML etc.
    • Tabular:
    • Geo:
    • Chart:
    • Maps:
    • Everything else: this is more a preview
    • Pluggable system
    • Resource proxy (cors issues)
  • Data Explorer: think "tableau lite", a rich app for querying/loading data and then displaying that in tables, charts, maps etc.
    • Builders:
      • Query Builder:
      • Chart Builder: a wizard for building charts
      • Map Builder
        • Lite: set popups etc.
        • Complex: think carto
  • Rich Viz: bespoke, complex visualization
  • Dashboard: something that has many widgets displayed at once
    • Basic: no linkage between widgets (basic controls)
    • Complex: linkage between widgets (e.g. zooming on the map changes the map, or clicking the map changes the charts)

CKAN v2

In CKAN v2 and earlier this is provided by the internal view object plus ReclineJS.

  • Controller / Template = frontend controller, templating library or even browser JS
  • "Data Factory" is a fancy name for any business logic that automatically adds views to a dataset. In CKAN 2 this happens as part of the resource creation logic
graph TD


subgraph Backend
  dataset --user uploads --> storage
  dataset --user uploads --> metastore
end

subgraph "Data Factory"
  metastore --> viewgen[View Enhancer]
  viewgen --> metastore
end

user -- user creates/edits a view --> metastore

subgraph "Controller / Template"
  storage -- download the file --> visitor
  metastore --renders  table--> visitor
  metastore --renders graph--> visitor
end

The sequence of it ...

graph LR

fileupload --> store
store --> enhance[Enhance - auto add views]
enhance --> render
enhance --> useredit[User edits views]
useredit --> render

CKAN v3

In CKAN v3 and DataHub these are provied through the use of Frictionless (Data Package) "Views" and associated tooling.

See:

For more on the technical background see the Views Design page ».


  1. for an introduction to the power and art of visual presentation data see e.g. Tufte Visualizing Information. ↩︎