There are two types of meta-data:

  • stream metadata. They describe properties of a data stream which do not change within said stream
  • time-varying metadata. They describe properties of the data stream, but does change along a given stream. For instance, they can be used to add 'markers' within a stream to recognize certain positions.

Stream Metadata

The stream metadata document is a set of key-value pairs stored on a per-stream basis in pocolog logfiles. They are stored in the stream declaration block as YAML documents.

Rock-related standard meta-data:

  • rock_stream_type={annotations,property,attributes,port}
  • rock_task_model={for properties and ports, the task model name of the generating task}
  • rock_task_name={for properties and ports, the task full name, including namespace}
  • rock_task_object_name={for properties and ports, the name of the corresponding object}
  • rock_orocos_type_name={for properties and ports, the name of the type used by RTT}
  • rock_timestamp_field={name of the time field in the port type, which is used to specify the timestamps for the log entries.}

Time-varying metadata

Information that is used to describe properties of the data stream, but does change along a given stream. For this purpose, an arbitrary number of log streams, (if a single one, it is usually called "annotations") tagged with the rock_stream_type=annotations, and of type /logger/Annotations can be defined. The /logger/Annotations type is defined as:

struct Annotations {
  /** This assumes that stream names are unique in a single file
   * after discussion, we decided that it is a sane constraint,
   * as most of the tooling would be made a lot more complex otherwise.
   * Moreover, the stream index is not stable if you extract data out
   * of a file
   * Can be empty if no association whatsoever
  base::Time time;
  std::string stream_name;
  std::string key;
  std::string value;

This RG defines the following annotations for comments and log markers:

  • Comments: k="comment" v="arbitrary string"
  • Log Markers (<index> is an integer)
    • no assumption on region sequences (i.e. start 1; start 2; stop 2; stop 1 is valid)
    • k="log_marker_start" v="<index>;arbitrary comment string"
    • k="log_marker_stop" v="<index>;arbitrary comment string"
    • k="log_marker_abort" v="<index>;arbitrary comment string"
    • k="log_marker_event" v="arbitrary comment string"
    • k="log_marker_abort_all" v="arbitrary comment string"
    • k="log_marker_stop_all" v="arbitrary comment string"
    • Overview of the different types: Different Log Markers
Last modified 8 years ago Last modified on 02/17/14 22:41:42