Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/doriantaylor/owl-data-cube-viz

Data Cube Visualization Ontology
https://github.com/doriantaylor/owl-data-cube-viz

Last synced: 24 days ago
JSON representation

Data Cube Visualization Ontology

Awesome Lists containing this project

README

        

## Data Cube Visualization Ontology

Author
Dorian
Taylor

Version
0.1

Created
October 12, 2016

Namespace URI

Preferred Namespace Prefix
qbv

This is a small vocabulary that augments RDF Data Cube with a mechanism
for matching data visualizations.

Context: we *have* a
Data Cube resource and we
*want* to apply the appropriate visualization to it. Rather, we may have
*several* of these resources and we want to dispatch them to one or more
visualization mechanisms.

This document does not specify the visualization mechanism, it merely
points to it. Indeed, the mechanism need not strictly be
*visualization*, but rather any kind of representational transformation.

We can imagine, much like we do with
CSS or
Fresnel, using the identity, structure and content of
the source data to inform the dispatching. Let us begin by taking a
census of the different features of Data Cube:

- The classes, `qb:DataSet`, `qb:ObservationGroup` and `qb:Slice`,
- Subclasses of these classes,
- Individual instances of these classes.

This is a good start, however we are much more likely to encounter
instances of `qb:DataSet` proper, which only vary in terms of their
`qb:DataStructureDefinition`. Therefore:

- References to specific `qb:DataStructureDefinition` resources,
- `qb:Slice` resources that reference a particular `qb:SliceKey`.

Still, up to this point, the selection criteria all depend on knowing
the identity of the resource, class, data structure, or slice key. In
the likely case that any of these are generated programmatically, it
will be necessary to match visualizations based on *content*. For
example:

- If a structure has one `qb:dimension`, dispatch to visualization
`A`; if two, dispatch to `B`; otherwise leave it alone
- Or if a `qb:dimension` is known to be an interval or datetime, then
dispatch to a
time series
- Or if a `qb:dimension` is a zone on a map, forward to a
choropleth
- Or if `qb:measure` properties contain descriptive statistics, then
dispatch to a
box plot
- Or if the resource being rendered is a `qb:Slice` that fixes a
particular dimension, like the month of a year, forward to a
year-over-year time series…

As such, we need to be able to dispatch based on the quantity and
content of `qb:dimension`, `qb:measure` and `qb:attribute` properties.

#### TODO

- Describe a candidate selection algorithm
- Handle qb:attribute/qb:AttributeProperty meaningfully
- Some kind of proscription or negation mechanism, to specify rules we
*don't* want to match

As usual, the master machine-readable spec is embedded in this document,
and there are
RDF/XML and
N3/Turtle variants.

## Classes

#### Selector

The selector is the main entity that ties together the instructions for
matching data sets with the processing target.

> Since a `qbv:Selector` is a `qb:ComponentSet`, we can reuse
> `qb:dimension`, `qb:measure` and `qb:attribute`.

Subclass of:
qb:ComponentSet

In domain of:
qbv:class

qbv:instance

qbv:structure

qbv:target

qbv:fix

qbv:dimensions

qbv:min-dimensions

qbv:max-dimensions

## Properties

### Object Properties

#### class

Designates a class that should be chosen by this selector.

> If unspecified, we should assume the selector matches the union of
> `qb:DataSet`, `qb:Slice`, and `qb:ObservationGroup`.

Domain:
qbv:Selector

Range:
rdfs:Class

Back to Top

#### instance

Designates an explicit resource which will be the data source for the
selector.

Domain:
qbv:Selector

Back to Top

#### structure

Designates an explicit resource which will be the data source for the
selector.

Domain:
qbv:Selector

Range:

qb:DataStructureDefinition

qb:SliceKey

Back to Top

#### target

Designates the target of the selector, the resource that will perform
the operation. This resource can be anything (e.g. a program, or an XSLT
transform).

Domain:
qbv:Selector

Back to Top

#### fix

Designates a component property which is fixed in a qb:Slice.

Domain:
qbv:Selector

Range:
qb:ComponentProperty

Back to Top

### Datatype Properties

#### dimensions

Specifies the exact number of data dimensions the target is capable of
rendering.

Domain:
qbv:Selector

Range:
xsd:positiveInteger

Cardinality:
1

Back to Top

#### min-dimensions

Specifies the minimum number of data dimensions the target is capable of
rendering.

Domain:
qbv:Selector

Range:
xsd:positiveInteger

Cardinality:
1

Back to Top

#### max-dimensions

Specifies the maximum number of data dimensions the target is capable of
rendering.

Domain:
qbv:Selector

Range:
xsd:positiveInteger

Cardinality:
1

Back to Top