Skip to content

[discussion]: Descriptor vs properties #104

@signekb

Description

@signekb

Description

I think we need to be clearer on what we mean when we say descriptor and property/properties. I must say that I also find the distinction from the DataPackage standard confusing. Especially the fact that there are four descriptors and the rest are properties (DataPackage, DataResource, TableDialect, and TableSchema, respectively). I guess they have "chosen" these four to be descriptors bc they are the most essential ones in terms of describing the data itself?

Maybe you understand this distinction better, @martonvago ?
I've actually also asked about this distinction on the Frictionless Data Slack now.

Currently, our design docs include this definition:

Object Description
descriptor The standalone and complete metadata structure contained in a JSON file, for example, in datapackage.json.
properties Individual elements of the metadata structure or the structure as a whole.

For me, it becomes unclear/the definitions bleed into each other, with the last part of the properties description "or the structure as a whole".

One way we could simplify this (without also having to rename anything in Sprout to keep consistency) would be to say that we only refer to descriptors as the content of the datapackage.json file.

That definition could look something like this:

Object Description
descriptor A standalone and complete metadata structure (a JSON object) contained in a JSON file, such as datapackage.json, or loaded as a Python dictionary
property/properties Individual attribute(s) or metadata field(s), name-value pairs, of a descriptor, including nested properties.

This way, whenever we load everything from the datapackage.json file in a dict it's the descriptor, while every subpart of it is referred to as properties. This is, however, not completely aligned with the DataPackage specification.

Another alternative would be to completely ignore the term "descriptor" and use properties for everything, as we've done so far.

What do you think?

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions