Le format du champs seg a évolué : comment doit-il être ?
Le fichier format-analysis.org (https://github.com/vidjil/vidjil/blob/master/doc/format-analysis.org) donne des exemples de format pour seg mais ne définit pas formellement (sauf erreur de ma part) comment il doit être. Par exemple la question se pose pour la e-value. Elle est pour l'instant stockée dans seg['_evalue'] mais cela semble ensuite supprimé par convertSeg dans model_loader.js. Heureusement la e-value est sauvegardée dans le champ eValue du clone avant la réécriture (par la fonction computeEValue). Mais un nouvel appel à computeEValue rendrait la e-value indéfinie : le champ seg ayant été réécrit, seg['_evalue'] n'existe plus (j'ai écrit un test pour ça, cf. 2edf5eb7)
Donc comment la e-value doit-elle être stockée dans le champs seg ? Et la question se pose plus généralement pour le format attendu pour seg.
C'est une bonne question. Si on décide de spécifier, la référence doit être... format-analysis.org, et on part de cela, même si (temporairement) le browser ou le c++ ne le respecte pas. C'est d'autant plus important si on interagit avec d'autres logiciels : on doit avoir une référence claire (et changer la version, 2016a, si on fait des choses incompatibles), et non pas se référer à des détails/bugs du browser ou du c++. Le fait que le browser puisse faire des "bêtises" comme ici avec seg._evalue est un point indépendant qui ne concerne pas la définition du format.
Après, on peut avoir des choses non spécifiées (quelque part, chaque programme d'analyse peut rajouter des trucs dans le format).
Quelque chose d'intermédiaire serait de spécifier comment on encode des valeurs génériques (numériques, autres)... on le fait déjà pour les "features".
Même si des logiciels ajoutent des éléments qui leur sont propres dans le fichier, cela doit être spécifié. Quelle est la manière d'ajouter des données spécifiques à chaque logiciel ?
Concernant le browser, il ne fait pas spécialement de bêtises. Il suit la spéc stricte du format seg. Et comme un champ comme la e-valeur n'est pas prévu pour le seg (mais seulement des champs avec des start et des stop), ce champ-là passe à la trappe. Pour corriger le problème, il faut donc savoir comment doivent-être spécifiés ces champs.
b354da20, suite à audio du 7 juillet.
Pris en compte dans le browser : 987b107f