Tela Nota

Aller au contenu | Aller au menu | Aller à la recherche

mercredi 11 juin 2008

iNaturalist.org - Un outil coopératif pour les naturalistes

iNaturalist.org - Un outil coopératif pour les naturalistes  : très Web2 (assemblage de Google Map pour la cartographie , de Flickr pour les photos et Wikipedia. pour le contenu), ce site, en anglais, est un projet de fin d'année de 3 étudiants de Berkeley , de très bonne idée (la timeline notamment), premier objectif : 1 000 observations !

vendredi 6 juin 2008

Récupérer des listes de discussion Yahoo sous EZMLM

Nous allons décrire une méthode pour

  • récupérer les messages de liste de discussion Yahoo dans un fichier mbox
  • alimenter et créer l'index d'une liste EZMLM à partir de messages stockés dans un fichier mbox
  • abonner une liste EZMLM à à une liste de discussion Yahoo.

Lire la suite

OpenID

OpenId permet d'avoir un seul mot de passe à se souvenir pour se connecter aux sites web. Il faut bien entendu que les sites web en question autorisent une identification à partir d'un OpenId.

Si vous créez un compte sur un site fournissant un service OpenId, il vous suffira d'utiliser l'OpenId fournit pour vous connecter sur tous les autres sites web permettant une identification par OpenId. C'est assez pratique, plus besoin de se souvenir de dizaines d'identifiants ou mots de passe...

Une ressource très complète sur la façon d'implémenter OpenId en PHP.

mardi 27 mai 2008

Des liens eflore à copier/coller

Pour faire référence à une plante de la flore en ligne de Tela Botanica, sur chaque fiche, afficher un lien "Citer", qui affichera le code HTML à copier-coller dans son blog, dans son site web ... Ainsi, le code suivant :

 <a href="http://www.tela-botanica.org/eflore/BDNFF/nn/182" target="_blank">Erable de Montpellier
 <img src="http://www.tela-botanica.org/cel/www/org.tela_botanica.Cel/tela.gif" border="none" alt="Erable de Montpellier" /></a>

Affichera

Erable de Montpellier Erable de Montpellier

dimanche 25 mai 2008

L'indexation des fiches d'eFlore

Les fiches sur les taxons présentent dans l'interface web eFlore sont très peu référencées dans Google et les autres moteurs de recherches. Ceci est dû à plusieurs problèmes :

  • des pages dynamiques accessibles via un formulaire
  • des adresses web ayant une forme suggérant que la page html est dans un dossier profond du site (plus de deux dossiers) : http://www.tela-botanica.org/eflore/BDNFF/4.02/nn/68767
  • pas de nom latin dans l'adresse web

Pour résoudre ce problème nous allons tenter l'utilisation de fichiers sitemap. Sitemap est un protocole utilisé par les principaux moteurs de recherche pour découvrir les pages qu'ils peuvent explorer, leurs fréquences de mise à jour, leurs dates de dernière modification... Si Sitemap n'était pas suffisant, nous envisagerons la modification des URLs d'eFlore. Bien entendu, nous préserverons l'accès via les liens actuels par un mécanisme de redirection transparent pour l'utilisateur.

Mise à jour du 27 mai 2008
Voilà, les fichiers Sitemap sont en place sur le serveur de Tela Botanica. Ils ont été enregistrés auprès de Google, Yahoo, LiveSearch (Mircrosoft) et Ask.com.
Le fichier robots.txt qui fournit des informations aux robots qui indexent le web indique aussi la présence de ces fichiers.
L'ensemble des fiches des taxons pour les projets BDNFF, BDAFN, BDNBE et BDNFM sont indiquées. Cela représente pas moins de 265 595 pages! Ils nous restent maintenant plus qu'à attendre et voir...

Les lexiques des LSID du TDWG

Tout d'abord quelques petites explications sur ce titre me semblent nécessaires. C'est quoi le LSID et le TDWG?

Le LSID, pour faire court, signifie "Life Science Identifiers". C'est une façon de nommer et de trouver de l'information liées aux sciences de la vie sur le web.

Le TDWG (Taxonomic Database Working Group), est un groupement international à but non lucratif qui vise à développer des standards et des protocoles pour partager des données sur la biodiversité. Une institution qui est là pour nous faciliter la vie, nous travailleurs de la base de données naturalistes! Alors, voyons voir un peu ce qu'il nous propose dans le cadre des LSID...

Les lexiques des LSID sont les éléments constitutifs de l'ontologie globale du TDWG. Ils fournissent les informations nécessaire pour décrire les objets échangés dans la communauté des organismes gestionnaire de données sur la biodiverstié. La première utilisation de ce vocabulaire a eut lieu dans le cadre du mécanisme de résolution des LSID - d'où son nom -, mais ils peuvent être utilisés dans n'importe quel format XML ou technologie du Web sémantique, afin d'exprimer les notions liées à la biodiversité.

Ce qui m'a semblé réellement intéressant dans cet énorme travail, c'est la mise à disposition libre et gratuite, d'informations sur la façon de structurer des informations. Il existe déjà de disponible plusieurs ontologies tels que :

D'autres sont encore en travaux :

  • Personne
  • Équipe
  • Citation de publication
  • Institution
  • Collection

Toutes ces ontologies sont gérées à l'aide d'un gestionnaire de version de fichiers et selon un protocole clairement définit et accessible.

Les normes de structuration de l'information naturaliste qui sont proposées par le TDWG peuvent, par exemple, nous permettre de mettre en place des services web permettant à deux sites web de se communiquer des informations entre eux. Mais elles vont surtout nous guider sur la façon de structurer nos données au sein de nos propres bases de données.

Disposer de tels documents peut nous faire gagner énormément de temps

Source :

  • TDWG : http://www.tdwg.org/
  • LSID : http://en.wikipedia.org/wiki/LSID

jeudi 22 mai 2008

Accès d'essai gratuit à Aluka jusqu'au 30 Juin 2008

Pour les amateurs de botanique, tous les types, holotypes, isotypes, lectotypes... que vous recherchez sont disponibles gratuitement en téléchargement, jusqu'au 30 juin 2008, sur le site Aluka

Profitez-en ! Accéder au visualisateur haute définition, aux métadonnées, aux vues agrandies, aux descriptions... juste en vous inscrivant gratuitement.

Information transmise par Philippe Birnbaum via Maryline.

mardi 20 mai 2008

Installation et test de Tapirlink

Tapirlink est une application Web, distribuée par le TDWG, pour fournir des ressources compatible TAPIR, à partir d'un modèle de données existant. Chaque ressource est définie par l'établissement d'une relation (mapping) entre celle-ci et la ou les tables du modèle de donnée correspondant, permettant ainsi, sans programmation, de rendre accessible des informations relatives à la biodiversité ou concernant la gestion de collections naturalistes dans un format standard d'échange de donnée (ABCD, DarwinCore).

Pas de problème particulier lors de l'installation, si ce n'est dans l'organisation du code source : en théorie seuls les répertoires www et admin doivent être visibles depuis le Web, mais cette configuration requière la création d'un sous-domaine pour être véritablement "propre", option que je n'ai pas retenu; du coup tous les utilitaires de l'application sont accessibles. Il est conseillé de protéger le répertoire admin par un .htaccess.

Suite à un message bloquant concernant la gestion des sessions, j'ai supprimé ce contrôle dans classes/TpConfigManager.php

/*
        // Check that session cookie path exists and is writable
        $session_save_path = session_save_path();

        $session_dir_ok = false;

        $msg = 'Session directory ('.$session_save_path.') ';

        if ( empty( $session_save_path ) )
        {
            $msg .= 'is not defined';
            TpDiagnostics::Append( DC_SERVER_SETUP_ERROR, $msg, DIAG_FATAL );
        }
        else if ( ! file_exists( $session_save_path ) )
        {
            $msg .= 'does not exist';
            TpDiagnostics::Append( DC_SERVER_SETUP_ERROR, $msg, DIAG_FATAL );
        }
        else if ( ! is_readable( $session_save_path ) )
        {
            $msg .= 'is not readable';
            TpDiagnostics::Append( DC_SERVER_SETUP_ERROR, $msg, DIAG_FATAL );
        }
        // TODO: this may not be necessary in UNIX FS
        else if ( ! is_writable( $session_save_path ) )
        {
            $msg .= 'is not writable';
            TpDiagnostics::Append( DC_SERVER_SETUP_ERROR, $msg, DIAG_FATAL );
        }
        else
        {
            $session_dir_ok = true;
        }

        if ( ! $session_dir_ok )
        {
            $error_msg = 'PHP session control is not working properly (check in '.
                         'your PHP configuration if session support is enabled, '.
                         'and also if session.save_path exists and is writable by '.
                         'the webserver)';

            TpDiagnostics::Append( DC_SERVER_SETUP_ERROR, $error_msg, DIAG_FATAL );
        }
*/

Un test rapide montre que tout semble fonctionner correctement ensuite :

Démarrage :

Ajout d'une ressource Tapir :

Description de la ressource :

Choix du format de sortie :

Mapping (mise en correspondance :

TapirLink permet ensuite de déclarer les ressources ainsi crées (à vérifier) et offre toute un lot de services : recherche, log des connexions, LSID resolver (?) etc.

Conclusion : un outil très puissant qui simplifie grandement la mise à disposition de données et permet de se concentrer sur la mise en correspondance des données ce qui n'est pas une mince affaire.

vendredi 16 mai 2008

Scratchpad : outils collaboratifs pour taxonomistes.

Scratchpad est une plateforme collaborative, basée sur Drupal, destinée aux taxonomistes pour construire, partager, gérer et publier leurs données sur le Web.

Quelques fonctionnalités :

  • Gestion de cartes de répartitions (basé sur Google Map)
  • Forum
  • Gestion de documents
  • Outils de construction de classifications
  • Gestion de bibliographie
  • Gestion de spécimens (avec export automatique vers le GBIF)
  • Outils de gestion d'images (upload/download, lien avec flickr)
  • Base de données sur mesure
  • Catalogage de séquences ADN
  • Gestion d'arbre phylogénétique au format Newick

Développé dans le cadre du Work Package 6 de l'EDIT (European Distributed Institute of Taxonomy), il est disponible sous forme d'espace de travail Web hébergés par le Musée d'Histoire Naturelle de Grande Bretagne, les contenus sont obligatoirement sous licence cc-nc-sa 3.0.

Commentaires : De très bonnes idées et outils (comparable à EOL), mais sur une trentaine de projets crées aucun ne semble véritablement actif (manque d'animation ?, structuration trop contraignante ?), la plateforme est toujours en cours de construction (mai 2008), les temps de réponse sont élevés ce qui rend peu pratique la navigation, les sources logicielles ne semblent pas disponibles ...

jeudi 15 mai 2008

Plugin multi-catégorie pour Dotclear

Indispensable, les multi-catégories pour Dotclear <2. Allez hop on installe sur ce blog (cf Admin/Outils/MultiCategories).

Naviguer dans un arbre

Vu depuis Iphylo, un exemple de navigation dynamique dans un arbre, avec de beaux effets de transition, remplacerait avantageusement la navigation par taxon,hiérarchique et statique, de eflore.

mercredi 7 mai 2008

Obtenir les coordonées GPS lors de la réponse renvoyée par Google Maps pour une recherche de lieu avec JAVA et GWT

Lors d'une requête de Géocoding (pour trouver les coordonnées d'un lieu à partir de son adresse), l'objet JSON renvoyé par Google Maps est assez obscur, il contient des tableaux qui contiennent des objets qui contiennent eux même des tableaux et des objets, etc... Les coordonnées GPS, qui sont les données qui nous intéressent en particulier, sont bien cachées. Voici un morceau de code qui envoie une requête avec un nom de lieu au serveur de google et récupère les coordonnées GPS, Pour l'afficher dans un fenêtre gwt avec un marqueur.

public void ChercherCommuneSurCarte(String location, final GoogleMap gmap, final Panel googleWindow)
 {  
     // les espaces dans la location sont remplacés par des tirets pour ne pas fausser l'url
	  location = location.replaceAll(" ","-");
     //	  
     // voici l'url à appeler pour la requête vers le serveur, il faut remplacer la valeur de key par la valeur donnée lors de l'enregistrement de
     // votre site sous google maps
     String url = "http://maps.google.com/maps/geo?q="+location+"&output=json&key="ABCDEUHOJHLKDJDuhuiefffe-zefzezf" ; 
         //
	  HTTPRequest.asyncGet(url, new ResponseTextHandler() 
         {
                // attend la réponse du serveur
		public void onCompletion(String responseText) 
               {		
                       // qui va nous renvoyer un objet JSON
			JSONValue responseValue = JSONParser.parse(responseText);
                       //
			if(responseValue.isObject() != null)
			{
				// on obtient le code de la réponse pour en vérifier la validité 
				float reponseCode = Float.parseFloat(responseValue.isObject().get("Status").isObject().get("code").toString());
				if(reponseCode == 200)
				{
					// l'objet Json reçu est complexe et la latitude et la longitude sont "cachées"
					// parmi un ensemble de variable que l'on doit fouiller
					JSONValue place = responseValue.isObject().get("Placemark").isArray().get(0);	
					JSONValue point = place.isObject().get("Point");
					JSONArray coord = point.isObject().get("coordinates").isArray() ;	
                                       //
					// on récupère latitude et longitude
					float X = Float.parseFloat(coord.get(1).toString());
					float Y = Float.parseFloat(coord.get(0).toString());	
                                       //	
					// on crée un marqueur
					LatLonPoint nCentre = new LatLonPoint(X,Y);
					GoogleMarker mk = new GoogleMarker(nCentre);
					mk.setIcon("obs.ico");
                                       //
					// qu'on pose sur la carte et on centre !
					gmap.setCenterAndZoom(nCentre, 10);
					gmap.addMarker(mk);
                                       // enfin on ouvre la fenêtre contenant la carte mise à jour
					googleWindow.show();
				}
				else
				{
                                        // si le code de la réponse != 200 alors il n'y a aucun résultat
					com.google.gwt.user.client.Window.alert("Aucune commune trouvée pour ce nom");
				}		
			}
			else
			{
                                // si l'objet JSON renvoyé est nul alors il y a un problème serveur ou dans la requete
				com.google.gwt.user.client.Window.alert("Erreur dans la requête : aucun résultat trouvé");
			}		
		}		  
	  });
  }

dimanche 4 mai 2008

Analyse des débuts de l'EOL par le IAG

Présentation par Roderic Page, du résultat d'une séance de travail IAG/BIG portant sur les débuts du projet Encyclopedia Of Life : est repris le constat déjà établi sur Iphylo : manque actuel (et crucial) de contenu. Des pistes d'amélioration : assembler des informations depuis d'autres projets (GBIF, Wikipedia etc.) comme le fait Ispecies ou alors utiliser l'annotation collective, pour améliorer le contenu, en s'inspirant de ce que propose Google pour les images ...

mercredi 23 avril 2008

TapirLink

TapirLink, fournisseur de données au format TAPIR vient de sortir, son auteur lance un appel à installation et test ce logiciel que l'on peut récupérer ici et valider au moyen du TapirTester.

vendredi 1 février 2008

Mysql, PhpMyAdmin et UTF-8

Pour correctement utiliser l'UTF-8 dans PhpMyAdmin 2.10 et supérieur.

Lire la suite