-
Notifications
You must be signed in to change notification settings - Fork 16
Description
The documentation (doc key) for timestamps of SpikeEventSeries states that it should be a required property:
nwb-schema/core/nwb.ecephys.yaml
Lines 97 to 115 in 0c7896b
| - name: timestamps | |
| dtype: float64 | |
| dims: | |
| - num_times | |
| shape: | |
| - null | |
| doc: Timestamps for samples stored in data, in seconds, relative to the | |
| common experiment master-clock stored in NWBFile.timestamps_reference_time. | |
| Timestamps are required for the events. Unlike for TimeSeries, timestamps are | |
| required for SpikeEventSeries and are thus re-specified here. | |
| attributes: | |
| - name: interval | |
| dtype: int32 | |
| value: 1 | |
| doc: Value is '1' | |
| - name: unit | |
| dtype: text | |
| value: seconds | |
| doc: Unit of measurement for timestamps, which is fixed to 'seconds'. |
The definition of timestamps in TimeSeries is here:
Lines 197 to 214 in 0c7896b
| - name: timestamps | |
| dtype: float64 | |
| dims: | |
| - num_times | |
| shape: | |
| - null | |
| doc: Timestamps for samples stored in data, in seconds, relative to the | |
| common experiment master-clock stored in NWBFile.timestamps_reference_time. | |
| quantity: '?' | |
| attributes: | |
| - name: interval | |
| dtype: int32 | |
| value: 1 | |
| doc: Value is '1' | |
| - name: unit | |
| dtype: text | |
| value: seconds | |
| doc: Unit of measurement for timestamps, which is fixed to 'seconds'. |
My understanding of inheritance in the specification is the following: If a dataset/attribute/link or a key of these are not defined in a sub-type, it inherits the value from its parent, or the nearest ancestor that defines the basic data type / key.
But that does not seem to be the case here. The only difference from the specification of timestamps in the SpikeEventSeries and in the TimeSeries is that the quantity is missing in SpikeEventSeries/timestamps. When the quantity is missing, the default value should be used, which in this case is 1 (required).
However, if the quantity should be determined based on inheritance, the SpikeEventSeries/timestamps dataset should be optional. I have tried to find an explanation in the NWB Specification Language documentation for which interpretation to use, but have not found anything.
In my understanding, the SpikeEventSeries/timestamps should look like this:
- name: timestamps
quantity: 1basically just redefining the quantity, but not re-specifying all the unchanged specification keys