Closed camillemonchicourt closed 6 years ago
Premier jet de MCD par @ClaireLagaye pour la schema Contact faune V2, sur la base du premier document de définition (http://geonature.fr/documents/2017-04-GN2-Fonctionnalites-0.1.pdf) :
A discuter et à accorder avec les décisions qui seront prises sur les points :
Et à comparer aux standards Occurrences de taxon, métadonnées, sensibilité et aux nomenclature SINP pour s'en approcher le plus possible quand c'est pertinent.
A comparer aussi aux standards internationaux du GBIF.
Une première interrogation : Les valeurs des bibliothèques qui dépendent d'un groupe doivent-elles se baser sur taxonomie.bib_listes
ou sur les rangs taxonomies et groupes présents dans TaxRef ?
Je pencherai pour la deuxième solution pour s'appuyer sur moins possible sur taxonomie.bib_listes
.
Vocabulaires et nomenclature : Je suis en train de travailler sur une proposition d'organisation centrale (cœur de GeoNature). Pour ça, j'étudie les ressources disponibles et j'ai trouvé ceci : http://standards-sinp.mnhn.fr/nomenclature/ Je vous invite à prendre qq minutes pour y jeter un œil. Si on partage ce niveau d'information, ça nous aidera à discuter des options possibles. J'en fait un large usage dans les commentaires ci-dessous. En gros, on voit que l'INPN à fortement structuré de nombreux sujets sur lesquels nous avons déjà discutés, parfois longuement. Un vocabulaire existe avec des nomenclatures proposées et validées. Je travaille sur une proposition de structuration regroupant ces nomenclatures afin que l'on puisse les factoriser dans le cœur de GeoNature. On pourrait ainsi les utiliser dans n'importe quel module. Par exemple faire un test d'intégration au module Contactfaune. Voici qq exemples :
pour les stades / phénologies : http://standards-sinp.mnhn.fr/nomenclature/10-stade-de-vie-stade-de-developpement-du-sujet-occurrencestadedevie-23-06-2016/
pour ce qu'on a nommé "comportements" : http://standards-sinp.mnhn.fr/nomenclature/13-statut-biologique-occurrencestatutbiologique-23-06-2016/
pour ce qu'on a nommé "critères" : http://standards-sinp.mnhn.fr/nomenclature/14-methodes-dobservation-observationmethode-23-06-2016/
Autres exemples : http://standards-sinp.mnhn.fr/nomenclature/19-statut-de-la-source-16-08-2016/ - http://standards-sinp.mnhn.fr/nomenclature/2-code-dorigine-de-la-donnee-22-06-2016/
Rattachement des comportements, critères, stades et techniques aux listes. Nous avons 2 options possibles
1- Comme c'est proposé, rattachement aux listes. Avantage, c'est très souple car on créé les listes qu'on veut et on met les taxons qu'on veut dedans. inconvénients, c'est très lourd car il faut peupler toutes ces tables et si un taxon est oublié, on ne sais pas quelles valeurs proposer. Donc très risqué et difficile à maintenir. 2- On attache ces informations à taxref (group2_inpn est un bon candidat pour la plupart des cas) : avantages c'est l'inpn qui gère l'intégrité du rattachement et on peut proposer qq chose de stable par défaut et de très générique. Inconvénient, on perd de la souplesse.
Dans le cas du contact faune je suis plutôt pour l'option 2. A évaluer mais je pense que pour stade, critères et comportement au moins, on colle bien avec la hiérarchie taxonomique. Pour technique, j'y reviens plus loin.
Stade, sexe et effectif : On avait conclu un relevé par sexe et age. Je trouve cependant que ta proposition est intéressante en terme de modèle. On devrait pouvoir proposer dans le formulaire web une astuce d'ergonomie permettant pour un taxon d'ajouter plusieurs effectifs selon sexe et age disponibles. Par contre coté mobile, ce sera difficile et je pense qu'il faut en rester à la conclusion de la réunion : un enregistrement dans t_taxon_cfaune par sexe et age. http://standards-sinp.mnhn.fr/wp-content/uploads/sites/16/versionhtml/OccTax_v1_2_1/ Voir aussi ça : !!! http://standards-sinp.mnhn.fr/nomenclature/6-objet-du-denombrement-objetdenombrement-23-06-2016/ Le sexe parait être une notion simple, voici la nomenclature INPN : http://standards-sinp.mnhn.fr/nomenclature/9-sexe-occurrencesexe-23-06-2016/ C'est compliqué la nature !
Structuration générale : En travaillant avec Amandine on avait ébaucher une proposition de structuration plus générique. Je propose d'explorer cette structuration dans une autre base car cela remet à plat tout le MCD. Et comme nous en sommes resté à l'ébauche, il serait bon de d'abord tester pour évaluer la faisabilité et les conséquences. Le MCD proposé ici est une base de discussion très lisible.
Diffusion : quelle stratégie pour cette notion : http://standards-sinp.mnhn.fr/nomenclature/5-niveaux-de-precision-de-diffusion-souhaites-niveauprecision-23-06-2016/ Niveau de rattachement (observation, jeu de données, les deux ?)
Geom : http://standards-sinp.mnhn.fr/wp-content/uploads/sites/16/versionhtml/OccTax_v1_2_1/ Pour le contact faune, certains ont demandé de pouvoir saisir des lignes et polygones. Il faut noter que dans ce cas, nous devrons gérer le champ "insee" en nn (ou dupliquer l'observation pour chacune des communes. A discuter.
Organismes : http://standards-sinp.mnhn.fr/wp-content/uploads/sites/16/versionhtml/OccTax_v1_2_1/ Ceci veut dire qu'il nous ajouter à UsersHub un organisme "indépendant" au moins. Je crois que "inconnu" existe déjà.
Détails : Pourquoi un id_nom ET un cd_nom dans t_taxon_cfaune ? Au passage, pour info, on réfléchi a supprimer le id_nom et ne plus faire référence qu'au cd_nom.
Déterminateur : est-ce qu'on doit obligatoirement enregistrer les déterminateurs dans t_roles, ou met-on un champ libre ? Attention, en l'état, si un utilisateur veut saisir un déterminateur qui n'est pas présent dans UsersHub, il ne pourra pas le faire.
t_taxon_cfaune.v_taxref : le standard sinp rattache cette information au jeu de données (lot)
t_taxon_cfaune.effectif : ce champ ne fait-il pas doublon avec cor_stade_effectif.effectif ? Sur ce point, voir ceci : http://standards-sinp.mnhn.fr/nomenclature/21-type-de-denombrement-16-08-2016/ Doit-on intégrer ces notions ? Discussion à compléter ici : https://github.com/PnEcrins/GeoNature/issues/187
t_taxon_cfaune.valide : la valeur de ce champ devrait être plus complexe qu'un simple booléen :
t_taxon_cfaune.etat_biologique : à ajouter ? Obligatoire ? valeur par défaut ? http://standards-sinp.mnhn.fr/nomenclature/7-etat-biologique-de-lobservation-occurrenceetatbiologique-23-06-2016/
prelevement : je propose un id_prelevement (integer PK machine) ET un num_prelevement (varchar champ libre pour l'identification de l'échantillon par l'utilisateur)
medias : prévoir l'ajout de médias attachés à t_taxon_cfaune (nn)
t_obs_faune.altitude*3 : ne devrait-on pas conserver une seule altitude et gérer l'altitude à retenir via l'application et les triggers ?
t_obs_faune.pdop : je ne sais plus si les gps fournissent une valeur décimale ou integer. Si on conserve ce champ, on doit implémenter sa valeur depuis les appli mobile. ce n'est pas le cas actuellement. https://github.com/PnEcrins/GeoNature-mobile/issues/13
t_obs_faune.précision : qq notions intéressantes et normalisées : http://standards-sinp.mnhn.fr/nomenclature/23-type-dinformation-geographique-16-08-2016/ http://standards-sinp.mnhn.fr/nomenclature/3-nature-dobjet-geographique-natureobjetgeo-23-06-2016/
Doit-on permettre l'observation de taxons domestiques : http://standards-sinp.mnhn.fr/nomenclature/8-niveau-de-naturalite-occurrencenaturalite-23-06-2016/
Informations optionnelles : http://standards-sinp.mnhn.fr/wp-content/uploads/sites/16/versionhtml/OccTax_v1_2_1/ On peut envisager de mettre ces champs dans la base et d'activer ou non leur présence dans le formulaire selon une liste de paramètres permanents (lié à l'instance de GeoNature) et/ou rattaché à chaque jeu de données.
Notion de jeu de données et de regroupement : http://standards-sinp.mnhn.fr/wp-content/uploads/sites/16/versionhtml/OccTax_v1_2_1/ Il y a là de quoi faire des choses très intéressantes mais potentiellement complexes. A creuser.
Pseudo champs : http://standards-sinp.mnhn.fr/wp-content/uploads/sites/16/versionhtml/OccTax_v1_2_1/
Comment procède t-on pour les modifications à venir ? A t-on les droits en écriture sur cette base ? Passe t-on obligatoirement par Claire pour les modifications, même mineures (exemple : renommer la table bib_lots en t_lots ou t_jeux_donnees pour reprendre le vocabulaire SINP)
Je vous invite aussi à lire aussi cette FAQ: http://standards-sinp.mnhn.fr/faq-occurrences-de-taxons-v1-2-1/
GIL :
J'ai créé un fichier sql introduisant qq notions concernant les nomenclatures de l'INPN. Je n'ai encore pris le temps d'importer toutes les nomenclatures qui nous seraient utiles mais j'ai une requête ligne 1159 qui permet de traiter les fichiers csv dispo sur le site de l'inpn : http://standards-sinp.mnhn.fr/nomenclature/. Il faut ajouter une colonne (en premier) contenant le N° du type de nomenclature. Je le ferai plus tard si on valide le principe.
Si dans ta base il y a déjà les schémas utilisateurs et taxonomie, tu peux ne prendre que la partie à partir de la ligne 875.
A noter, j'avais commencé à travailler sur une notion de vocabulaire que la notion de nomenclature remplace. J'ai tout laissé, c'est un brouillon.
J'ai surtout commencé à tester la factorisation des nomenclatures et le rattachement des stades à taxref plutôt qu'aux listes. La table "contactfaune.bib_stades_cfaune" serait remplacée par la table "meta.t_nomenclatures" et la table "contactaune.cor_stade_liste" par la table "contactfaune.cor_taxref_stade_vie". Le travail est à poursuivre sur la même logique avec les autres notions (comportement, critères, techniques, etc...).
J'ai aussi commencé à tester la notion de paramètres en base mais ce n'est pas du tout abouti.
Gil et Amandine ont ensuite retravaillé cela et vont proposer une nouvelle version du MCD, à discuter.
Voici donc la nouvelle version du MCD :
Et les commentaires de @gildeluermoz :
Voici un modèle provisoire découlant de nos échanges avec @amandine-sahl lors du GTSI. Les évolutions majeures concernent le schéma contact faune qui est maintenant totalement indépendant des autres.
Prochaine étape :
GIL :
J'ai principalement intégré les nomenclatures INPN permettant de gérer les occurrences de taxons (les 254 premières nomenclatures). J'ai mis en place avec l'aide d'Amandine la hiérarchie. J'ai également commencé à créer qq liens entre nomenclature, règne et group2_inpn dans "taxonomie.cor_nomenclature_taxref", juste pour tester. J'ai du légèrement modifier une contrainte pour permettre l'affectation d'une nomenclature à tout un règne (on ne peut pas laisser le champ group2_inpn null car il fait parti de la clé primaire). Remplir cette correspondance va être ardu et long.
AMANDINE
Je n'ai pas compris pourquoi il y avait une table spécifique bib_techniques_obs. Elle pourrait rentrer dans la table nomenclature et gérer les restrictions via la table relation, Ce qui éviterait les tables spécifiques. Cela créerait 2 vocabulaires techniques d'observation et champ d'application (ou un autre nom) et une relation de type condition d'utilisation ou restriction d'usage Qu'est-ce que c'est que cette table meta.bib_vocabulaires?
GIL
Tout ça est en cours. Bib_vocabulaires doit être supprimée. La bib_techniques obs doit aussi être intégrée à la nomenclature bien sur. Mais comme il y a des liens avec les group inpn qui sont fait, je ne voulais pas les perdre avant d'avoir fait l'intégration. Il y a d'autres tables à nettoyer.
GIL
Le champ
id_numerisateur
est actuellement dans la table des occurrences de taxons. Est-ce que vous êtes d'accord sur le fait qu'il devrait plutôt se situer dans la table des releves (avec la date, le geom, l'altitude, etc...) ?Sinon, j'ai intégré les techniques d'observation dans la
t_nomenclature
et j'ai récupéré les liens avec les règnes ou les group2_inpn utilisables. J'ai aussi fait une vue des techniques d'observation dans le schéma contact faune. usage SELECT FROM contactfaune.v_techniques_observations WHERE group2_inpn = 'Oiseaux'; SELECT FROM contactfaune.v_techniques_observations WHERE regne = 'Plantae'; --bon c'est pas de la faune mais si on fait un seul contact ça anticipe l'affaire.Le soucis c'est que tous les group2_inpn ne sont pas décrits. Dans le cas d'un taxon dont le group2_inpn n'est pas renseigné dans
taxonomie.cor_taxref_nomenclature
, je pense qu'il faut renvoyer toutes les techniques. Pour ça, je creuse l'idée d'une fonction (la plus générique possible) et qui teste si le group2_inpn ou le regne du est présent. Si ou on renvoie une liste filtrée, sinon, on renvoie une liste de toutes les nomenclatures du type demandé.
GIL :
Quelques infos sur les évolutions du MCD.
medias.t_medias
et le schémas taxonomie
(on gère les médias taxhub à part jusqu'au bout de la logique)entity_name
et entity_value
dans la table medias.t_medias
schema.table.field
déclaré dans le champ entity_name
entity_value
, on vérifie que l'id de l'observation de rattachement existe. (TODO : gérer les exceptions avec les RAISE et lever une erreur qui cause si on return false).nom_taxon_saisi
--> nom_cite
(= vocabulaire sinp)contactfaune.v_techniques_observations
TODO :
actif
(default = true) et l'utiliser dans la vue contactfaune.v_techniques_observations
Ci-joint les SQL des 3 schémas (+data_nomenclatures
+ qq complément taxonomie) si vous voulez faire une install en local (DROP SCHEMA meta CASCADE
d'abord + contacfaune
+ medias
).
Et un schéma dev
pour sauvegarder qq trucs potentiellement utiles.
Dernières versions ici : https://github.com/PnX-SI/GeoNature/blob/docker/data/modules/contact/contact.sql et compléments (synthese, métadonnées, nomenclatures...) dans https://github.com/PnX-SI/GeoNature/tree/docker/data/core
Dernière discussion sur l'organisation des schemas et des nomenclatures : https://github.com/PnX-SI/GeoNature/commit/46904bfe5bd398d20bae8e4ed178cf465eb45e6f#commitcomment-23545214
Banzaï, on bascule le MCD en anglais !
Non on parle là des noms des champs. Basculer tous les champs en anglais et non plus en FR.
---- Modification de la BDD----
Schéma nomenclature
SENSIBILITY Modification/ ajout de colonnes :
CONTACT
Relevés
Modification:
Occurrences Modification :
Correspondance dénombrement (Cor_stage_sexe_number)
Modification :
Après traduction de la BDD en anglais, intégration du multilingue et pas mal d'évolutions, voici une nouvelle version du MCD (y aurait encore de quoi faire pas mal d'ajustements des blocs mais c'est looooooooooooong !)
Le MCD et le formulaire avancent. On peut désormais attribuer des valeurs par défaut à de nombreux champs (définis dans la BDD en fonction du regne/group2_inpn du taxon et éventuellement de l'organisme de l'utilisateur connecté). On peut masquer certains champs pour insérer de manière transparente sa valeur par défaut
Module renommé en OCCTAX - https://github.com/PnX-SI/GeoNature/issues/277
Concernant l'UUID (id_sinp) de chaque OCCURRENCE, on stocke l'UUID au niveau du dénombrement pour pouvoir remonter une info précise de dénombrement dans la synthèse et les exports SINP. Une observation d'un taxon avec 2 dénombrements = 2 lignes dans la synthèse et les exports SINP.
Vu avec le MNHN :
En attente de la bascule du dénombrement vers le concept de descriptif du sujet, voilà la réponse que j'avais pu faire à l'OAFS qui avait la même problématique :
si vous avez un dénombrement global, sans plus d'informations : une seule occurrence avec son UUID
si vous avez le cas 2 mâles, 3 femelles : deux occurrences (donc deux lignes), chacune avec son UUID, l'une pour 2 mâles, l'autre pour 3 femelles.
On a désormais une première version stabilisée du MCD du module OCCATX (ex-Contact). Les compléments/ajustements seront traités dans des tickets spécifiques.
Voir le standard Occurences de taxons du SINP : http://standards-sinp.mnhn.fr/occurrences_de_taxons_v1-2-1/
Et les nomenclatures : http://standards-sinp.mnhn.fr/nomenclature/