ecolabdata / ecospheres

Portail des données de la transition écologique et de la cohésion des territoires
https://ecologie.data.gouv.fr
2 stars 0 forks source link

Mise en place de la notion de regroupements de facteurs dans le modèle de données #428

Open DanFluture275 opened 1 month ago

DanFluture275 commented 1 month ago

En utilisant les principes du modèle de données actuels (infos stockées dans les extras du bouquet), ajouter la notion de regroupements de facteurs, avec les propriétés suivantes :

Todo :

abulte commented 3 weeks ago

L'idée est de faire au plus simple pour la première version, avec dans l'idée de refactor tout ça dans le cadre de l'évolution plus générale du modèle du bouquet.

Limites connues de la structure :

export interface DatasetProperties {
  title: string
  purpose: string
  uri: string | null
  id: string | null
  availability: Availability
  group?: string
  // those are "local" properties, not stored on data.gouv.fr
  remoteDeleted?: boolean
  remoteArchived?: boolean
}

@at-github @narduin @streino WDYT?

abulte commented 3 weeks ago

Re clone : pas de difficulté particulière, au moment de la préparation du clone, on garde les attributs group renseignés dans le bouquet original.

at-github commented 3 weeks ago

Dans le cas d'une liste de suggestions de regroupements, il faudra parcourir chaque DatasetProperties ? Est-ce que ça ne vaudrait pas le coup d'avoir une telle liste dans le bouquet, et dans le dataset un moyen pour faire la liaison ?

streino commented 3 weeks ago

LGTM.

@at-github on aura déjà créé la structure par group à ce stade, et donc utilisable pour la liste de suggestions, non ?

abulte commented 3 weeks ago

Dans le cas d'une liste de suggestions de regroupements, il faudra parcourir chaque DatasetProperties ? Est-ce que ça ne vaudrait pas le coup d'avoir une telle liste dans le bouquet, et dans le dataset un moyen pour faire la liaison ?

Effectivement c'est l'alternative, mais ça nécessite de traiter un modèle un peu plus complexe (relationnel simulé dans du JSON) et je ne suis pas sûr que ça apporte beaucoup plus vs le modèle flat.

Re la liste, comme disait @streino, ça sera effectivement les clés du Map calculé pour l'affichage, donc pas de sujet là-dessus AMHA.

narduin commented 2 weeks ago

C'est très clair.

Avec le stockage du group dans le DatasetProperties, ça permettra quand même à un dataset d'être utilisé et groupé dans différents bouquets et différents regroupements ?

abulte commented 2 weeks ago

@narduin Bonne question !

Un DatasetProperties est une jointure entre un bouquet et un jeu de données.

Si on veut utiliser le même jeu de données dans différents bouquets, pas de problème : les DatasetProperties associés sont parfaitement indépendants.

Si on veut utiliser plusieurs fois le même jeu de données dans le même bouquet et dans des regroupements différents, pas de problème : on crée deux DatasetProperties avec deux groupes différents (et potentiellement des libellés et description différents) et le même id (mauvais nommage, c'est l'id du jeu de données). Ce sont deux facteurs différents et indépendants.

Si on veut utiliser plusieurs fois le même jeu de données dans le même bouquet et dans le même regroupement, pas de problème : idem ci-dessus mais avec le même groupe. Ce sera bizarre dans le cas où tout est identique (groupe, libellé, description, jeu de données), mais d'un point de vue usager ça ne devrait pas arriver et on a le même comportement aujourd'hui si on ajoute plusieurs fois le même jeu de données à un bouquet. C'est l'ordre dans la liste qui fait et fera foi pour identifier un DatasetProperties.

Dites-moi si je me trompe :-)