Description
In the table-schema.md spec it says:
https://github.com/frictionlessdata/specs/blob/master/specs/table-schema.md#descriptor
The descriptor MAY have the additional properties set out below and MAY contain any number of other properties (not defined in this specification).
If a user of the specification wanted to add a property to be used in their organisation: which naming convention should the user use?
E.g. we would like to add a "cfVariable": "http://cfconventions.org/Data/cf-standard-names/71/build/cf-standard-name-table.html#air_temperature". Naming it just cfVariable has some problems:
-
people finding a cfVariable property in a table schema might assume that it is a Frictionless Data standard and either use it or expect everyone to use it, expect the Frictionless Data tools to support it, etc.
-
if in the future Frictionless Data wanted to introduce cfVariable with different semantics or a different format it could cause incompatibility problems (e.g. we might just use a string to identify the version and the variable but it could also be a dictionary to identify the version and the variable).
-
currently the validation of schema files can be less strict as unknown properties now are ok (it could be one of the "other properties not defined in the specification") but perhaps it is a typo of an optional property
Prefixing the "additional properties" as "x-" (used by HTTP protocol but it seems that it has been deprecated1 in the HTTP case, or just "_" would help and is simple enough to identify non-official properties.
I've also thought of adding a prefix that would identify the organisation who introduced the property. E.g. if in the Swiss Polar Institute we wanted to use cfVariable it could be "spi_cfVariable". Two organisations could add the same property name using two "bas_cfVariable" if it had a different format/meaning.
Related and closed in favour of this
- Use Namespaces to add terms from other Metadata Schemes Use Namespaces to add terms from other Metadata Schemes #403
- Encapsulated extensibility Encapsulated extensibility #103
Metadata
Metadata
Assignees
Type
Projects
Status