Make a single timeseries addressable and annotatable

Feature Request

🥅 Goal

As a researcher, who is working with sensor data to understand deviations in the manufacturing process I want to provide meta information as semantic annotation (i.e. to specify the unit of measurement, physical quantity) on the sensor measurements directly where the raw data is so that it remains connected to the timeseries no matter in what context the data is referenced to and so that the information can then be machine-read with the tools that are researched in the ODIX project.

🏅 Acceptance Criteria

  1. Single Timeseries can be accessed by its ID via REST

    1. Deprecate the timeseries /available endpoint.
    2. /timeseriesContainer/<container_id>/timeseries lists all timeseries including their IDs
    3. /timeseriesContainer/<container_id>/timeseries/<timeseries_id> returns a single timeseries specified by its timeseries id.
    4. The ID should be unique within a container.
    5. The returned timeseries does not return a payload.
  2. A single timeseries can be annotated with n semantic annotations on a container level

    1. Annotations are handled by the following endpoint /timeseriesContainer/<container_id>/timeseries/<timeseries_id>/semanticAnnotations
    2. Annotations can be created, deleted, retrieved

Special Testing hints

💣 Out of Scope

  1. Annotations to the different timeseries are visible in the Frontend
    1. Detail view on container level, where new annotations can also be added
    2. Read-Only Annotations in the detail view of the timeseries reference

💡 Hints

The "Units of measurement" ontology might be used in DLR to support that use case.

Image by @noheton image

🤔 Risks & Open Questions

Edited by Maximilian Heykeroth