Data Modeling in Gallia

October 14, 2022 ยท View on GitHub

This documents present the data model expected for manipulation with Gallia. WIP

Relates to json.md

Guidelines

  • No empty objects (use Option if may be missing)
  • No empty arrays (see next point)
  • Only one way to express null/missing; consider forbidding even empty string [res]?
  • No 2D (or more) arrays, use dedicated tensor objects if needed
  • Types:
    • TODO: add types (See BasicType.scala)
    • Flags: use optional boolean + one value for now
    • Binary data: use _Binary (introduced in 0.4.0)
  • Keys:
    • Keys for a given object level must be distinct
    • Keep keys simple: alphanumerical + underscore
    • Keys to convey semantics as much as possible (relates to semantics task
    • No "maps", favor including key in an object, so schemas can be defined against data; basically keys should not be arbitrary