Data model¶
TimeNet is a standardization layer. It registers, downloads, converts, and serves different time-series datasets in one on-disk format (TimeF). Then it gives you the data. TimeNet is not a training toolkit. These pages show the shape of that data:
- Datasets: versioned collections addressed by an
org/nameid. - Records: one recording with its sources, signals, annotations, and tasks.
- Sources: the devices and sensors in a record. They group its signals.
- Time series: one signal's values over time. A record has one or more.
- Annotations: scoped side-information in three shapes.
- Tasks: the labeled training targets built from a record.
The code examples follow one running example: a machine's vibration and temperature signals. But the same primitives describe any sensor stream, from an ECG to a market series.
Ingesting a dataset¶
To add a dataset, write one BaseConnector. The engine drives it through a
fixed pipeline. download fetches raw files. convert parses them without network I/O. The engine
derives the schema and stores one TimeF version. The version contains a manifest, a DuckDB control
database, and Parquet or Zarr Signal values. Reading it never runs connector code.
flowchart LR
D["download()<br/><i>I/O · fetch raw refs</i>"]
C["convert()<br/><i>CPU only</i>"]
S["derive_schema()<br/><i>types from data</i>"]
W["store()<br/><i>TimeFWriter</i>"]
R[("registry<br/>TimeF version")]
D --> C --> S --> W --> R