Documentation du module de gestion des signets (Bookmarks)

Adrien Di Mascio

Etienne HERMAN

Sylvain THENAULT


Table des matières

Installation
Paramètres
Recette permettant la mise à jour des signets : Update_bmf
Parse_bmf
update_bmf
Recette permettant de vérifier quelles pages ont été modifiées : check_site
get_nodes
Compute_checksum
replace_nodes
get_xslt_result
write_xml_file
Trier les signets
Ressources
Améliorations à venir

Résumé

Le objectif de ce module est de fournir des recettes aidant à la gestion des signets. Ce module est constitué de plusieurs recettes premettant de :

  • créer à partir de fichiers de signets de différents format un fichier bookmark présent dans l'arborescence de Narval (au format XBEL), et le mettre à jour

  • vérifier quelles pages, parmi celles désignées par les signets, ont été modifiées depuis la dernière visite.

  • trier les signets par thèmes.

Le module fait partie du groupe Infopal.

Installation

Utilisez l'outil de manipulation des paquetages de Narval, npm ou Horn pour installer le paquetage Infopal téléchargeable depuis le site ftp .

Paramètres

Il est nécessaire de spécifier le fichier de bookmarks à utiliser, en l'ajoutant au fichier $NARVAL_HOME/data/memory.xml.

  • Si votre fichier est un bookmarks html de netscape, alors l'ajouter entre deux balises, comme dans l'exemple ci-dessous :

    <bookmark-file type="netscape">$HOME/.netscape/bookmarks.html</bookmark-file>
          
    où $HOME représente votre répertoire utilisateur.

  • En revanche, si votre fichier est une suite d'url, alors l'ajouter entre deux balises, comme dans l'exemple ci-dessous :

    <bookmark-file type="raw">$HOME/revpresse.txt</url>
           

Recette permettant la mise à jour des signets : Update_bmf

La recette est consituée de deux actions :

Parse_bmf

Les signets sont stockés dans des formats propres aux navigateurs utilisés (le format utilisé par Lynx n'est pas le même que celui utilisé par Netscape ou encore Explorer). Cette première étape consiste donc à convertir ce fichier au format XBEL. Une fois cette étape effectuée, l'élément XBEL généré se trouve en mémoire de Narval, mais il n'est pas stocké dans un fichier.

update_bmf

Cette étape va regarder si un fichier de signets au format XBEL est présent dans le répertoire $NARVAL_HOME/data.

  • Si c'est le cas, elle le met à jour : supprime les signets qui ne sont plus présents, ajoute les nouveaux, utilise la hiérarchie actuelle des signets de l'utilisateur, etc. On ne se contente pas de recopier le fichier obtenu à la première étape, car le fichier dans $NARVAL_HOME/data est susceptible de contenir des informations spécifiques sur les pages visitées (attributs checksum, changed) qui servent notamment à vérifier si les pages ont été modifiées (cf. recette check_site).

  • Si le fichier n'existe pas, cette étape se contente de le créer en recopiant l'élément XBEL obtenu à l'étape précédente.

Recette permettant de vérifier quelles pages ont été modifiées : check_site

Grâce à la recette précédente, on a mis à jour le fichier $NARVAL_HOME/data/bookmarks.xbel. Cette recette va donc permettre de tester quelles pages de signets ont été modifiées depuis la dernière visite. L'emplacement de la page HTML qui sera créée par cette recette peut être paramétrée en éditant la recette dans Narval et en modifiant la valeur de l'élément "html-file" dans les arguments de get_xslt_resut.(par défaut file://$NARVAL_HOME/data/modified_pages.html)

Le principe général est le suivant : on récupère un fichier de signets au format XBEL. On en extrait les différents signets et on calcule pour chacun un checksum pour la page Web correspondante et on compare avec l'ancien checksum si on en possède un. On sait alors si les pages ont été modifiées. On construit alors une page HTML listant l'ensemble des pages modifiées.

get_nodes

Cette étape sert à récupérer les éléments bookmark d'un fichier XBEL. On peut modifier la source (l'emplacement du fichier XBEL) en éditant la recette et en modifiant la valeur de xml-repository dans arguments. Les éléments ainsi récupérés sont placés dans la mémoire de Narval et pourront être directement utilisables par l'étape suivante.

Compute_checksum

Cette étape va travailler sur chaque élément bookmark mis en mémoire par l'étape précédente. Pour chaque signet, l'algorithme est le suivant :

  • On récupère l'url référencée par le signet

  • On calcule un checksum sur cette page

  • Si l'élément bookmark possédait déjà un attribut checksum, on le récupère et on le compare au checksum que l'on vient de calculer. S'ils sont identiques, la page n'a pas été modifiée depuis le dernier test, on met alors l'attribut changed à no. Sinon, la page a été modifiée, on met donc l'attribut changed à yes, et on met à jour la valeur du checksum,

  • Si l'élément ne contenait pas d'attribut checksum, alors on met l'attribut changed à yes, et on intialise la valeur de l'attribut checksum avec la valeur que l'on vient de calculer.

Cette étape crée en mémoire de Narval un élément bookmark pour chaque signet trouvé dans le fichier XBEL.

replace_nodes

Cette étape va mettre à jour le fichier XBEL en remplaçant les éléments bookmark du fichier XBEL par les éléments en mémoire de Narval générés par l'étape précédente.

get_xslt_result

Cette étape est une transformation. Elle va parcourir le fichier XBEL mis à jour à l'étape précédente et va lister l'ensemble des pages modifiées en se basant sur la valeur des attributs changed des éléments bookmark. Le résultat de cette transformation est un élément xhtml en mémoire de Narval.

write_xml_file

Cette étape va récupérer l'élément xhtml généré par l'étape précédente et l'écrire dans le fichier $NARVAL_HOME/data/modified_pages.html. L'emplacement de ce fichier est paramètrable en éditant la recette.

Trier les signets

La recette classify permet de trier vos signets de manière adaptive. La méthode des centres mobiles est toujours utilisée et si il y a assez de signets à trier, alors la méthode TF-IDF (Term Frequency - Inverse Document Frequency) est également utlisée. Voir la documentation de l'action Classify.classify si vous voulez un meilleur controle du tri.

Après quelques instants, vous obtiendrez dans les deux cas un fichier $NARVAL_HOME/data/bookmarks_sorted.html.

Ressources

Des sites web tel que NewsIsFree mettent à votre disposition de nombreux canaux rss extraits de différents sites.

Améliorations à venir

Pour l'instant, seul les signets de Netscape/Mozilla, les fichiers textes contenant une liste d'url et les fichiers au format XBEL sont gérés. Il est donc prévu de permettre de traiter les navigateurs Explorer, Lynx (une version Beta est disponible) et Opera et d'autres par la suite.

Permettre de fournir des informations plus précises sur les pages qui ont été modifiées. Par exemple, permettre de préciser quelles parties de la page ont été modifiées.