{"word_count": 606, "character_count": 5661}
Notes prises aux Digital Humanities 2016, pendant le workshop du 11/07/2016 : "eXist-db: more than a database. A basic Introduction to eXist-db and XQuery" par Wolfgang Meier, Magdalena Turska, Alexander Czmiel.Pour compléter, voir la documentation officielle du quick start et du development starter.InstallationInstaller la dernière version, celle en cours de développement : la 3.0Lancer le .dmg si vous êtes sur mac.Sinon le .jar : vérifier votre version de java, 8Vérifier les paramétrages sur la mémoire et le cache proposés dans la première fenêtre de dialogue (ne pas hésitez à augmenter les paramètres par défaut dans la limite des capacités de votre ordi), avant de lancer l'installation. Laisser tourner, sans interrompre.Ouvrir le menu principal d'eXistUne icône devrait maintenant apparaître dans la barre d'outil en haut de votre ordi, à droite (Mac) : cliquer dessus pour ouvrir le menu d'eXist-db :Cliquer sur Open Dashboard :Dans le Dashboard, chercher l'icône "eXide", où on pourra configurer nos programmes / applications XQuery :Créer sa propre applicationeXide est ouvert :Pour cela, à partir de la barre de menu supérieure, aller dans :Application &#62; New applicationRemplir le formulaire de saisie en plusieurs parties.Une fois l'application créée, on peut la retrouver en allant dans :File &#62; ManageLà, une boite de navigation permet de retrouver son applications dans db/apps/Par exemple db/apps/dhTestSamDans ce dossier on a par défaut 3 sous-dossiers- un dossier modules qui comprendra les différents module xquery (extension utilisée au choix .xqm ou .xql, .xqm seraient pas mal our des modules)- un dossier resources : css, js, img- un dossier templates : htmlMoteur LuceneA la racine, à noter un fichier important collection.xconf qui permet de paramétrer le fonctionnement du moteur de recherche Lucene pour notre application :par défaut on y trouve :&#60;collection xmlns="http://exist-db.org/collection-config/1.0"&#62;&#60;index xmlns:tei="http://www.tei-c.org/ns/1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"&#62;&#60;lucene&#62;&#60;fulltext default="none" attributes="false"/&#62;&#60;/lucene&#62;&#60;/index&#62;&#60;/collection&#62;Mais on peut le paramétrer comme suit (en indiquant les éléments tei où le moteur peut trouver notre contenu textuel dans nos ressources XML, ici dans le cas de morand : div1 et p :&#60;collection xmlns="http://exist-db.org/collection-config/1.0"&#62;   &#60;index xmlns:tei="http://www.tei-c.org/ns/1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"&#62;    &#60;lucene&#62;      &#60;text qname="tei:div1"/&#62;      &#60;text qname="tei:p"/&#62;    &#60;/lucene&#62;  &#60;/index&#62; &#60;/collection&#62;Toujours à la racine, on peut charger notre propre ressource XML TEI, même si c'est un fichier teiCorpus :Et là, cliquer sur l’icone updload (nuage) :une autre boite de dialogue s’ouvre, le DB Manager :Charger votre fichier XML TEI, dans notre exemple le fichier teiCorpus de la 1ère vague du projet Morand :NB : le "drag &#38; drop" fonctionne, mais je note un bug quand on passe via le bouton "upload file".On devrait donc maintenant avoir son fichier XML à la racine de notre application.Créer son premier fichier xquery :File &#62; NewOn obtient alors cette boite de dialogue, on sélectionne XQuery :Voici la syntaxe d'une requête simple dans exist :xquery version "3.0";declare namespace tei="http://www.tei-c.org/ns/1.0";declare namespace output="http://www.w3.org/2010/xslt-xquery-serialization";declare option output:method "html5";declare option output:media-type "text/html";(: doc("/db/apps/dhTestSam3/teiCorpus_Morand_1ere_vague.xml")//tei:TEI//tei:persName[@type='destinataire'][starts-with(., 'M') ] :)(: build a list with a loop - in this case the destinataire starting by M : a simple for iteration :) &#60;table&#62;        &#60;tr&#62;            &#60;th&#62;            {            for $expediteur in doc("/db/apps/dhTestSam3/teiCorpus_Morand_1ere_vague.xml")//tei:TEI//tei:persName[@type='expediteur']            return                &#60;li&#62;{$expediteur/text()}&#60;/li&#62;            }            &#60;/th&#62;        &#60;/tr&#62;         &#60;/table&#62;Pour faire fonctionner le moteur de recherche Lucene, voici un exemple de syntaxe :xquery version "3.0";declare namespace tei="http://www.tei-c.org/ns/1.0";declare namespace output="http://www.w3.org/2010/xslt-xquery-serialization";declare option output:method "html5";declare option output:media-type "text/html";&#60;html&#62;    &#60;head&#62;&#60;/head&#62;    &#60;body&#62;        &#60;h1&#62;Les correspondants du Roman des Morand&#60;/h1&#62;        &#60;form action=""&#62;            &#60;input type="text" name="qu"/&#62;            &#60;button type="submit"&#62;query&#60;/button&#62;        &#60;/form&#62;        &#60;ul&#62;                {                    let $query := request:get-parameter("qu",())                for $text in                     if (empty($query))  then                        &#60;li&#62;Please type a query term&#60;/li&#62;                    else                        doc("/db/apps/dhTestSam3/teiCorpus_Morand_1ere_vague.xml")//tei:p[ft:query(., $query)]                    return                    &#60;li&#62;{$text/string()}&#60;/li&#62;                }        &#60;/ul&#62;                &#60;/body&#62;&#60;/html&#62;&#160;Ce code devrait faire apparaître le petit moteur de recherche suivant :&#160;Voilà pour la première étape. Dans un prochain billet, nous parlerons de l'atelier suivant et de l'utilisation de la TEI Processing Model Toolbox.Pour compléter, voir la documentation officielle du quick start et du development starter.