sigmf/SigMF

NCD `core:dataset` field is not robust to renaming of files.

jacobagilbert opened this issue · 0 comments

Summary:

Non conforming SigMF datasets require use of the global scope core:dataset field, which explicitly specifies the full data filename associated with the SigMF recording. When managing SigMF datasets, a common operation is renaming of files. SigMF is inherently a bit annoying when it comes to that as you need to rename both the meta and data file, but when it comes to NCDs you also need to manually edit the schema and update the core:dataset field.

Even with NCDs, it is very common for meta and data files to share the same basename, for example abc.tmp might be the NCD and then for abc.sigmf-meta to be created to store annotations. This should be encouraged.

Proposal:

  1. SigMF should STRONGLY RECOMMEND the use of common basenames for NCDs as a best practice.
  2. SigMF should permit the ability to specify the NCD by extension only. This could be through the use of a prohibited character such as * such that "core:dataset": "*.tmp" in the file abc.sigmf-data would explicitly specify abc.tmp as the NCD dataset, and if the meta and datafiles are renamed to xys.sigmf-data, xyz.tmp would be specified without a user renaming the metadata field.

This has the advantage that it removes a user footgun for NCDs, and also supports data integrity by keeping file checksums intact. It has a notable disadvantage in that parsing software for NCDs would need to check for this character parsing the field. It also increases complexity of the specification slightly.