gtoubiana / acte

Une librairie JavaScript qui simplifie la recherche généalogique.
http://gtoubiana.github.io/acte/
MIT License
0 stars 0 forks source link

CAPORA - étapes de conception 2014 #238

Closed gtoubiana closed 4 years ago

gtoubiana commented 7 years ago

CAPORA : Calcul Automatique de la Période Optimale de Recherche d’Acte

I. Prévisionnel des étapes de conception :

  1. Créer un Gabarit HTML avec Foundation ou Bootstrap
  2. Créer un Formulaire basique avec les NOM et Prénoms de la personne recherchée et les couples numérotés : Date d’acte / Age sur l’acte
  3. Créer le système d’Ajout automatique de nouvelles dates (JQUERY) avec animation
  4. Intégrer un Scripts de conversion des dates (Grégorien / Républicain / Hebraique / Julien) (JS)
  5. Calculer les périodes à partir de la date de l’acte et de l’age sur l’acte (JS)
  6. Afficher ces périodes sur la même ligne à droite des champs de formulaire
  7. Récupérer toutes les périodes dans un tableau (JS)
  8. Classer toutes les dates chronologiquement pour obtenir une période globale multi-segmentée dans un nouveau tableau
  9. Vérifier le nombre d’éléments dans le tableau :
    1. Si il y a moins de 2 éléments : ne rien afficher ou message d’erreur
    2. Si il y a exactement 2 éléments, la période optimale sera celle calculée précédemment et la probabilité sera de 50%
    3. Si il y a plus de 2 éléments :
      1. Comparer chaque segment avec chaque période d’acte pour obtenir le nombre de croisements et le nombre de jours en commun
      2. Classer les segments en fonction du nombre de croisements et de jours, de manière décroissante
  10. Afficher un tableau sur la page HTML comprenant le numéro de couple, Date d’acte, Age sur l’acte, début de période calculée, fin de période calculée, nombre de croisements, total des jours
  11. Convertir les dates en républicain (en fonction de la période) pour l’affichage
  12. Trouver une approche pour afficher des probabilités (%) au lieu des croisements et nombres de jours en commun (50% de chances que l’acte soit correct, % augmente avec le nombre de croisements et de jours en commun) Se renseigner sur les méthodes de calculs de probabilités
  13. Proposer le téléchargement des résultats en fichier .txt (PHP) utilisant le nom de la personne recherchée dans le titre
  14. Afficher un graphique interactif en svg ou canvas
  15. Ne pas utiliser JQUERY => http://blog.adtile.me/2014/01/16/a-dive-into-plain-javascript/ II. Proposition de calculs au 15/01/2014
  16. Récupérer les dates et ages ($date1, $age1, $date2, $age2…)
  17. Récupérer le nombre d’actes ou lignes de formulaire ($actes)
  18. Créer un tableau $periodesmin = [$minperiode1,$minperiode2,...] contenant le calcul des périodes minimum de naissances pour chaque ligne de formulaire ( $date1,$age1 => $minperiode1, $maxperiode1)
  19. Créer un tableau $periodesmax = [$maxperiode1,$maxperiode2,...] contenant le calcul des périodes maximum de naissances pour chaque ligne de formulaire ( $date1,$age1 => $minperiode1, $maxperiode1)
  20. Créer un tableau $periodes = [[$minperiode1, $maxperiode1], [$minperiode2, $maxperiode2],...] contenant les couples de valeurs
  21. Créer un tableau $chronoperiodes = [$minperiode1, $minperiode2, …, $maxperiode1, $maxperiode2, ... ] contenant toutes les périodes générées et les classer par ordre chronologique
  22. Comparer chaque couple de périodes de $chronoperiodes = [[$minperiode1, $minperiode2], [$minperiode2, $maxperiode1], ...] avec les périodes de $periodes = [[$minperiode1, $maxperiode1], [$minperiode2, $maxperiode2],...] et compter le nombre de fois où les périodes se croisent dans un tableau $croisements = [$croisments1, $croisments2, …]
  23. Calculer la durée de chaque couple de périodes de $chronoperiodes dans un tableau $durees = [$duree1, $duree2, …]
  24. PROPOSITION DE CLASSEMENT STATISTIQUE POUR LES $chronoperiodes :
    1. Chaque déclaration sur un acte peut être vraie ou fausse. probabilité de base de 50%.
    2. Plus les périodes se croisement, plus la valeur de $croisements augment et plus les probabilités augmentent.
      1. le minimum de croisements est 1
      2. le maximum est $actes
    3. Plus la période concernée (couples de $chronoperiodes) est de courte durée ($durees) et plus les probabilités augmentent.
      1. la plus courte durée est 1 jour
      2. le maximum $maxduree est la durée standard entre une $minperiode et une $maxperiode (est-ce que les années bissextiles entrent en compte ?)
    4. On peut envisager de compléter les 50% restants du point 1 en multipliant les valeurs du point 2 et du point 3 ou en travaillant sur 25% du point 2 et 25% du point 3.
      1. les valeurs du point 2 sont croissants et celles du point 3 décroissantes. Pour changer le sens de celle du point 3, il faut faire ($maxduree-$durees)
    5. Voir fichier Excel dans GoogleDrive