Subversion Repositories eFlore/Projets.eflore-projets

Rev

Go to most recent revision | Hide changed files | Details | Compare with Previous | Blame | RSS feed

Filtering Options

Rev Age Author Path Log message Diff Changes
937 3892 d 4 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.
 
/trunk/services/modules/0.1/bdtfx/CommunNomsTaxons2.php
/trunk/services/modules/0.1/commun/Commun.php
899 3914 d 5 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.
 
/trunk/services/modules/0.1/commun/Aide.php
847 3938 d 3 h aurelien /trunk/services/modules/0.1/commun/ Correction des noms trop longs par troncage (temporaire normalement)  
/trunk/services/modules/0.1/commun/Commun.php
837 3939 d 0 h raphael /trunk/services/modules/0.1/commun/ meta-données: ajout d'un cache pour les ontologies redondantes  
/trunk/services/modules/0.1/commun/MetaDonnees.php
830 3940 d 3 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  
/trunk/services/modules/0.1/commun/Aide.php
807 3945 d 1 h raphael /trunk/services/modules/0.1/ chorodep|bdtxa/cartes: factorisation du code de génération du fichier de carte PNG, dans Commun  
/trunk/services/modules/0.1/bdtxa/cartes/TaxonsCartes.php
/trunk/services/modules/0.1/chorodep/cartes/TaxonsCartes.php
/trunk/services/modules/0.1/commun/Commun.php
801 3946 d 2 h raphael /trunk/services/ cache: fix de l'obtention de la durée du cache auprès de Commun  
/trunk/services/bibliotheque/CacheEflore.php
/trunk/services/modules/0.1/commun/Commun.php
768 3969 d 3 h raphael /trunk/services/modules/0.1/ ontologies/sptb: correction de notices + traçage des requête mysql + compat PHP-5.2  
/trunk/services/modules/0.1/commun/Ontologies.php
/trunk/services/modules/0.1/sptb/Statuts.php
767 3969 d 5 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  
/trunk/services/modules/0.1/bdtxa/Noms.php
/trunk/services/modules/0.1/cel/Images.php
/trunk/services/modules/0.1/commun/Commun.php
758 3976 d 23 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
 
/trunk/services/modules/0.1/commun/Ontologies.php
733 4001 d 3 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.
 
/trunk/services/modules/0.1/commun/Ontologies.php
732 4001 d 3 h raphael /trunk/services/modules/0.1/commun/ ontologies communes: fix cosmétiques.
1° usage du paramètre retour.champs qui n'était pas utilisé jusqu'ici et n'aurait
pas pu être utilisé dans le cas d'un retour.format différent de "max".

2° ajout d'un commentaire relatif aux SELECT imbriqués actuellement utilisés et
auxquel une série de JOIN serait à préférer.

3° clarification de formaterOntologiesId()

4° réécriture et renommage afficherDonnees() en calculerClassID().
Une variable est passée par référence en paramètre de la fonction et
les conditions imbriquées sont remplacées par des return rapides.
La gestion des champs demandés est améliorée.
 
/trunk/services/modules/0.1/commun/Ontologies.php
654 4092 d 23 h jpm /trunk/services/modules/0.1/commun/ Mise en formet et commentaires.  
/trunk/services/modules/0.1/commun/Commun.php
609 4313 d 5 h mathilde /trunk/services/modules/0.1/commun/ correction commentaire  
/trunk/services/modules/0.1/commun/Commun.php
597 4326 d 6 h mathilde /trunk/services/modules/0.1/commun/  
/trunk/services/modules/0.1/commun/Commun.php
593 4332 d 3 h mathilde /trunk/services/modules/0.1/commun/ ajout de nouvelles valeurs possibles pour navigation.limite  
/trunk/services/modules/0.1/commun/Commun.php
563 4359 d 1 h aurelien /trunk/services/modules/0.1/ correction d'un constructeur appelé sans paramètres qui causait une erreur  
/trunk/services/modules/0.1/commun/Commun.php
/trunk/services/modules/0.1/coste/Textes.php
/trunk/services/modules/0.1/nvjfl/NomsVernaculaires.php
536 4375 d 4 h gduche /trunk/services/ cache des webservices  
/trunk/services/bibliotheque/CacheEflore.php
/trunk/services/configurations/config_bdtfx.ini
/trunk/services/configurations/config_bibliobota.ini
/trunk/services/configurations/config_coste.ini
/trunk/services/configurations/config_eflore.ini
/trunk/services/configurations/config_nvjfl.ini
/trunk/services/modules/0.1/Projets.php
/trunk/services/modules/0.1/bdtfx/Noms.php
/trunk/services/modules/0.1/bibliobota/Publications.php
/trunk/services/modules/0.1/cel/Images.php
/trunk/services/modules/0.1/commun/Commun.php
/trunk/services/modules/0.1/commun/MetaDonnees.php
/trunk/services/modules/0.1/coste/Textes.php
/trunk/services/modules/0.1/nvjfl/NomsVernaculaires.php
/trunk/services/modules/0.1/wikipedia/Textes.php
535 4376 d 1 h mathilde /trunk/services/modules/0.1/commun/  
/trunk/services/modules/0.1/commun/Commun.php
457 4414 d 0 h mathilde /trunk/services/modules/0.1/commun/  
/trunk/services/modules/0.1/commun/Commun.php

Show All