Isilex Édition collaborative de données XML

IsilexLite est un Serveur Web, un CMS (Content Management System ou Gestionnaire de contenu Web) et un gestionnaire de bases de données XML lié à BaseX codé en XQuery par Xavier-Laurent Salvador et Sylvain Chea. Vous pouvez même créer vos propres Doodle CoNote ! C'est aussi un gestionnaire privé de Réseau Social: il fédère les idées. En mode CMS, vous éditez des pages associées à des données. En mode "Social Network", vous privilégiez les échanges et les commentaires. Dans les deux cas, vous produisez une ressource XML de haute qualité.</p>

C'est le couteau suisse du travail d'équipe. Contrairement àWordPress, qui ne vous permet pas de publier vos données en ligne et qui exige que vous disposiez d'un service d'hébergement, Isilex une fois démarré sert votre site Web sur votre réseau de laboratoire ou votre entreprise, vous permet de modifier vos données et de les publier. Il permet par exemple d'intégrer facilement des contenus Multimedias et de gérer des fiches liées. Voulez-vous voir des exemples d'utilisation?  

Avec IsilexLite, je peux:

  • - Créer un corpus, seul ou à plusieurs et le publier sur le web
  • - Créer des groupes de rédacteurs par taches de projets.
  • - Exporter en .odt (Office) ou en PDF mes données: par fiche ou par lots
  • - Marquer en un clic toutes les occurrences, même conjuguées, d'un mot dans une fiche
  • - Modifier les pages Web du site en un clic
  • - Modifier les données de la base XML en un clic
  • - Demander la validation des données par le modérateur du projet
  • - Modifier la configuration du site
  • - Gérer très facilement un site bilingue
  • - Créer un forum
  • - Créer un Réseau social interne au service ou à l'entreprise

 [Breaking news: Isilex is proud to announce, Cozette Griffin-Kremer (CRBC, Brest), Guoqiang Li (Université Paris Ouest), Perrine Mane (CNRS), Charlotte von Verschuer (EPHE) publish Dictionary of Traditional Agriculture, English-French-Chinese-Japanese Dicat  in collaboration with Isilex (Philippe Pons)] 

Editer des données XML

Saisir une fiche dans Isilex

Il existe deux façons de saisir des fiches dans Isilex: par le masque de saisie ou par l'éditeur XML.

Pour enregistrer une nouvelle entrée dans Isilex, remplir les différents champs du masque de saisie:

- "Form" regroupe les informations concernant la forme d'un mot:
- le champs "Orth" permet de renseigner une forme orthographique
- le champs "Pron" donne des informations sur la prononciation du mot

- "GramGrp" regroupe les informations d'ordre grammaticales:
- le champs "Gram" donne des informations grammaticales sur le mot

- "Etym" donne des informations sur l'étymologie du mot

- "Sense" regroupe les informations relatives à un des sens du mot:
- le champs "Usg" donne des informations sur l'usage du mot (par ex. "archaïque").
- le champs "Def" donne une définition du mot
- le champs "Note" permet d'ajouter des commentaires

- "Cit" regroupe les informations sur une citation du mot dans une source donnée:
- le champs "Quote" permet d'indiquer une citation dans laquelle se trouve le mot. Les champs suivants donnent des précisions sur la source de la citation:
- le champs "Date" contenient la date d'édition de la publication
- le champs "Title" contient le titre de l'ouvrage
- le champs "Author" contient le nom de l'auteur de l'ouvrage
- et le champs "Editor" contient le nom d'un éditeur de l'ouvrage.

Le rédacteur a aussi la possibilité d'ajouter autant de champs qu'il le souhaite (par exemple, deux champs "Orth"), ou alors d'ajouter directement d'autres groupes de champs (tous les champs concernant la "Form", le "GramGrp", le "Sense", ou la "Cit").

</div>

      </div>

Editer des Corpus XML TEI

Édition de corpus

Isilex est pensé pour être un outil d'édition de corpus en ligne à plusieurs. Pour se faire, Isilex est basé sur un système d'édition de fiches utilisées pour annoter le corpus. L'annotation se fait sur la base du champ "orth": lorsque Isilex rencontre dans un corpus une forme lemmatisée de "orth", il insère un hyperlien en appel de note.

Le corpus quant à lui est très simple à gérer à traverisicorpus. On téléverse un corpus et celui-ci est immédiatement exploitable dans le moteur de recherches, et avec le système d'annotation.

Il est possible d'éditer le corpus, soit en ligne, soit par lot; d'éditer des pdf; d'intervenir directement sur la base soit en ligne soit via Basex. Enfin, il est possible de modifier le CSS en ligne.

Pour modifier le corpus

Une fois téléchargé un corpus, il suffit de cliquer directement dans le texte.

Le menu apparaît permettant de sauver directement les modifications, de visualiser le balisage intégré ou de consulter l'epub en ligne.

La philosophie Rest

Il faut bien comprendre la philosophie d'Isilex: basé sur une solution entièrement noSQL et intégralement XML, Isilex est pensé pour d'un côté intégrer du texte et de l'autre saisir des fiches d'annotations qui ont pour but de de venir des notes de corpus, le tout étant lié par un moteur de recherches sémantique. Le lien se fait en exploitant les bibliothèques Full-Text d'XQuery pour la lemmatisation, l'indexation et le stemming.

C'est donc un logiciel d'automatisation de publications de données en ligne: je publie un texte ou un corpus (par téléchargement); mon équipe saisit des fiches. Les deux se croisent.

Dans sa verion Lite, isilex est orienté soit Corpus, soit lexique. Le croisement des deux se fait par un développement spécifique.

Les fiches d'annotations

L'alphabet (en haut à droite) dans Isilex renvoie à une collection de fiches XML au format TEI/ Dictionnaire. Lorsque dans le corpus prioritaire, Isilex rencontre une forme dont il existe une fiche, il crée alors une annotation, un renvoi par un hyperlien, en marge du texte du corpus.

Isilex est donc un outil orienté vers l'édition Web.

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 ?