Isilex Édition collaborative de données XML

Le Web Server Jetty

Le serveur Web (jetty)

Le serveur Web d'Isilex est le serveur Web de Basex. C'est un serveur web java basé sur une philosophie d'usage dénommée REST inventée par Roy Fielding dans les années 1990 qui permet d'associer à une URL un algorithme de programmation.

Lorsque vous téléchargez Isilex, il est "prêt à l'emploi" sur n'importe quelle plateforme.
Il suffit de le démarrer; vous voyez une petite règle apparaître dans le system tray près de l'horloge: vous cliquez sur "ouvrir Isilex" et voilà ! Vous pouvez commencer à travailler dessus immédiatement. Cela signifie que vous pouvez commencer à saisir des fiches d'annotations, du corpus.

Comme il est programmé en java, Basex et sa surcouche Web Isilex, fonctionnent sur n'importe quelle plateforme sans besoin d'installer.

Utiliser Isilex comme serveur Web (8984 ?)

Autrement dit, comment passer du port 8984 au port 80 ? Deux solutions existent: soit vous souhaitez faire de Jetty votre serveur principal. Auquel cas, il faut modifier le servlet dans le fichier de configuration Web.xml du sous répertoire Jetty d'Isilex. Éteindre Isilex; accéder aurépertoire webapp/WEB-INF et ouvrir web.xml avec un éditeur de texte. Modifier le port et redémarrer Isilex. That's it ! isilex est à l'écoute sur le port que vous avez configuré (le port 80 étant le port http).

Si, comme cela arrive souvent, votre serveur "tourne" à côté d'un autre serveur plus "classique" comme Apache ou Nginx, alors il faut implémetner une redirection Apache ou Nginx vers le port 8984. Vous trouverez des information ici pour Nginx et vous trouverez des informations sur les hôtes virtels pour Apache ici.

Ajouter des fonctionnalités

La force d'Isilex est d'être un bundle prêt à l'emploi. Mais le chercheur qui serait désireux de travailler en profondeur ses propres applications trouverait très facilement le moyen d'implémenter de nouvelles perspectives.

A la racine d'isilex, le chercheur trouvera un répertoire "webapp" contenant un fichier "Additional.xqm". Il suffit alors d'ajouter dans ce fichier les fonctions Rest qui lui permettront d'implémenter ses propres essais (pour en savoir plus sur la syntaxe XQuery des fonctions Rest: http://docs.basex.org/wiki/Repository).

Isilex met enfin à la disposition du chercheur une petite collection de fonctions issues de sa propre bibliothèque. Quelles fonctionnalités ?

Pour créer une page "Hello World", il suffit donc d'ouvrir le fichier additional.xqm, de se placer à la fin et d'ajouter les linges de code suivantes:

1. declare %rest:path('/monAppli') 
2. %output:method('xhtml')
3. function isilex:monAppli()
4. {
5. isi:template('Hello World')
6. };

Et c'est tout. Une fois sauvé, on ouvre son application à l'adresse http://localhost:8984/monAppli et ... magie: l'application est disponible.

XQM ?

Le développement de nouvelles fonctions XQM est très documenté sur le web. On trouvera à l'adresse http://docs.basex.org/wiki/Repository la description du format des URL attendues par Basex. Le fichier additional.xqm contient un exemple très simple de fonction. L'idée générale, si on ne connaît pas le principe, consiste à déclarer une URL sur son site et à la lier à une fonction qui "fait des choses" sur les bases de données XML.

 

Les fonctions prêtes-à-l'emploi

Il existe trois fonctions prêtes à l'emploi dans Isilex, qui permettent de créer un affichage de page en un clic, de rendre accessible un texte traduit et de valider une fiche au format XSD enregistré.

isi:template($contenu)

(lire en l’occurrence, la fonction nommée « template » au sein de l’espace de nommage « isi » de l’application Isilex qui reçoit une variable dénommée « $contenu » sous forme d’un fragment XHTML) permet de créer automatiquement un affichage au format CSS du site incluant toutes les bibliothèques nécessaires.  ;

isi:lang-text($text)

(lire ici, la fonction nommée « lang-text » au sein de l’espace de nommage « isi » de l’application Isilex qui reçoit une variable dénommée « $text » sous forme d’une chaîne de caractères) permet de renvoyer un texte dans la langue du site (français ou anglais par défaut) pour peu que la variable équivalente existe dans le tableau de configuration du site ;

isi:validateXML($fiche)

permet de tester et de récupérer les erreurs d’une fiche XML (ici nommée « $fiche » en tant que fragment XML) au regard du schéma de contrainte défini dans la  base XSD.

Comment ajouter des fonctions ?