Timeseries Storage#

Note

This feature is new in Brick v1.2

It is possible to embed within a Brick model the metadata indicating where timeseries data is stored and how particular Points are identified — this enables the automatic retrieval of timeseries data. This metadata is associated with Brick Point instances, which represent sources of data, through the ref:hasExternalReference property. These all use the ref-schema schema for external references; this schema is packaged with the Brick ontology.

The ref:hasExternalReference property relates a Brick Point instance to a ref:TimeseriesReference object. This object has exactly one ref:hasTimeseriesId property, whose value is a string denoting the identifier or primary key of the instance’s data in some database. The database itself is realized as an object and is related to the ref:TimeseriesReference through the ref:storedAt property.

At this point in time, Brick does not mandate what the properties are on the database instance. As best practices arise, this will be codified in a future release of Brick.

Simple Example#

:sensor1    a   brick:Temperature_Sensor ;
    brick:hasUnit unit:DEG_F ;
    ref:hasExternalReference [
        a ref:TimeseriesReference
        ref:hasTimeseriesId   "8f541ba4-c437-43ba-ba1d-5c946583fe54" ;
        ref:storedAt  :database ;
    ] ;
.

:sensor2    a   brick:Temperature_Sensor ;
    brick:hasUnit unit:DEG_F ;
    ref:hasExternalReference [
        a ref:TimeseriesReference ;
        ref:hasTimeseriesId   "38b5fa0e-407e-4a23-8800-6ec4f6d60785" ;
        ref:storedAt  :database ;
    ] ;
.

# the properties on the database instance are non-normative
:database   a   ref:Database ;
    rdfs:label  "Postgres Timeseries Storage" ;
    :connstring "postgres://1.2.3.4/data" ;
.