Subversion Repositories eFlore/Projets.eflore-projets

Rev

Show changed files | Directory listing | RSS feed

Filtering Options

Rev Age Author Path Log message Diff
1131 3667 d 0 h aurelien /branches/v5.10-bambouseraie/ Création de la branche 5.10 bambouseraie qui permet une recherche étendue contenant le nom d'auteur  
1111 3719 d 19 h mathias /trunk/services/ Chorodep : ajout du service "infos-espece" qui retourne les mêmes infos que celui de gentiana-services (nom_sci, num_nom, num_tax, noms vernaculaires français, statuts de protection, nombre de départements où l'espèce est présente)
Bricolage de sptb
La classe parente des services (Commun) avait un constructeur foutu à l'envers - ajout de la méthode init() bien pratique
 
1103 3734 d 1 h mathias /trunk/services/ Ajout d'un service Noms à chorodep  
961 4034 d 17 h raphael /trunk/services/ cartes: fixes temporaires (anti-notices) en attendant la story sur l'uniformisation du caractères de séparation des "compléments" dans les ontologies  
952 4037 d 18 h raphael /trunk/services/modules/0.1/ tests: quelques bugfixes cf php bug #42197  
951 4037 d 20 h raphael /trunk/services/modules/0.1/ ontologies: mutualisation de la fonction éclatant des valeurs multiples de "complements", basé sur le séparateur ","  
946 4037 d 23 h raphael /trunk/services/ tests: retour plus adéquat en cas d'absence de la version de la table de projet demandée et correction des tests en conséquence  
941 4042 d 18 h aurelien /trunk/services/modules/0.1/ Ajout d'un paramètre référentiel à la méthode de récupération des taxons parents (au lieu de l'extraire de la config)  
940 4042 d 18 h aurelien /trunk/services/ Ajout ébauche service liste rouge + factorisation de la methode de récupération de hierarchie des taxons dans commun.php  
937 4043 d 22 h raphael /trunk/services/modules/0.1/ tentative interrompue, de créer une alternative à CommunNomsTaxons pour:
- en faire un *toolkit* *véritablement* réutilisable (cf classes éponymes dans bdtfx et isfan)
- faire remonter les boucles effectuant des requêtes MySQL des niveaux d'imbrications les plus
enfouis vers les niveaux supérieurs où ils pourraient potentiellement être factorisés.

NB: une réécriture totale s'avèrerait finalement de loin la meilleure option mais du code réutilisable
passe par la statification des functions/outils présentes dans Commun qui ne dépendent en aucun cas
(ou presque) de l'instanciation d'une classe.
 
899 4066 d 0 h raphael /trunk/services/modules/0.1/commun/ api/aide: correction de "service.wikini" (suppression du "." dans le nom de page)
afin de pointer vers une page wikini valide.
 
847 4089 d 21 h aurelien /trunk/services/modules/0.1/commun/ Correction des noms trop longs par troncage (temporaire normalement)  
837 4090 d 18 h raphael /trunk/services/modules/0.1/commun/ meta-données: ajout d'un cache pour les ontologies redondantes  
830 4091 d 22 h raphael /trunk/services/modules/0.1/commun/ aide: en cas d'erreur, ne pas générer d'E_NOTICE de variable non-existente ce qui ne pourrait qu'amplifier le problème  
807 4096 d 20 h raphael /trunk/services/modules/0.1/ chorodep|bdtxa/cartes: factorisation du code de génération du fichier de carte PNG, dans Commun  
801 4097 d 20 h raphael /trunk/services/ cache: fix de l'obtention de la durée du cache auprès de Commun  
768 4120 d 21 h raphael /trunk/services/modules/0.1/ ontologies/sptb: correction de notices + traçage des requête mysql + compat PHP-5.2  
767 4120 d 23 h raphael /trunk/services/modules/0.1/ services: ajout de debug aux requêtes SQL + correction d'un masque pour le service de noms bdtxa  
758 4128 d 18 h raphael /trunk/services/modules/0.1/commun/ ontologies communes: correction de 2 notices PHP dans le cas de l'absence de passage de
masque et de retour_champs.
Ex: /service:eflore:0.1/bdnt/ontologies/rangTaxo:220/nom
 
733 4152 d 21 h raphael /trunk/services/modules/0.1/commun/ ontologies: support de requêtes multi-critères pour les ontologies (partie 2/2).
Lorsque des ontologies sont demandées, celles-ci peuvent désormais être regroupées
au sein d'une même requête.
La modification, portée à Commun/Ontologie.php affecte donc les web-services n'ayant *pas*
redéfini leur classe d'accès aux ontologies, c'est à dire (au 28/06/2013):
* nvjfl
* bdnt

Exemple:
Avant, 3 requêtes:
/service:eflore:0.1/nvjfl/ontologies/numStatut:1
/service:eflore:0.1/nvjfl/ontologies/numStatut:2
/service:eflore:0.1/nvjfl/ontologies/genreNombre:10

Après, 1 requête:
/service:eflore:0.1/nvjfl/ontologies/numStatus:1,numStatus:2,genreNombre:10

Dans le seul cas d'une requête multi-critères le format de retour du web-service
a été modifié: Un ensemble de clef-valeurs est retourné dans lequel chaque clef
représente le nom d'un des critères demandés.
Si un critère ne correspond à rien dans la BDD, celui-ci est absent de l'ensemble retourné.


$ ddiff \
<(GET "http://eflore/$i"|json_pp) \
<(GET "http://www.tela-botanica.org/$i"|json_pp)

# service:eflore:0.1/nvjfl/noms-vernaculaires/attributions?masque.nt=1382&masque.lg=fra&retour.champs=conseil_emploi
# 2 appels d'ontologies nvjfl, résultat identique

# service:eflore:0.1/bdtxa/taxons/13517/relations/inferieurs
# 1 appel d'ontologie bdnt/nom, résultat identique

$ diff \
<(GET http://eflore/service:eflore:0.1/bdnt/ontologies/rangTaxo:70|json_pp) \
<(GET http://eflore/service:eflore:0.1/bdnt/ontologies/rangTaxo:70,rangTaxo:-1|json_pp) \
|grep -v rangTaxo:70
# même résultat (-1 n'existe pas)

Le comparatif suivant provient de l'étude de la requête suivante,
représentative d'une recherche de nom commun (cf: Cel/export XLS):
"/service:eflore:0.1/nvjfl/noms-vernaculaires/attributions?masque.nt=1382&masque.lg=fra&retour.champs=conseil_emploi"

Avant Après
Requêtes HTTP 3 2
Connexions SQL 4 3
SELECT 15 10
Temps sur 300 (*) 1m36 1m30

(*) $ time \
mysql -N tb_eflore<<<"SELECT num_taxonomique FROM bdtfx_v1_01 WHERE num_nom = num_nom_retenu ORDER BY ORD(SUBSTRING(nom_sci, 4, 1)) LIMIT 300;" | \
xargs -i -t -n 1 curl -so /dev/null "http://eflore/service:eflore:0.1/nvjfl/noms-vernaculaires/attributions?masque.nt={}&masque.lg=fra&retour.champs=conseil_emploi";

Le faible différentiel de temps observable s'explique partiellement par le fait que toutes les recherches de nom vernaculaire
n'aboutissent pas systématiquement à l'émission de plusieurs requêtes d'ontologie.
Le différentiel n'en reste pas moins décevant.
 

Show All