Dilib, module SxPath, commande SxmlSelect

De Wicri Outils
(Redirigé depuis SxmlSelect (Dilib))
LogoDilib.gif
Panneau travaux.png
Bibliothèque Dilib (ressources numériques)
Module SxPath

La commande SxmlSelect permet d'extraire des chaînes ou des éléments d'un flux de documents suivant la recommandation Sxml.

 

Premier exemple

Les commandes :

SxmlSelect -g doc/kw/e -p @g1 <<...
<doc><tit>a</tit><kw><e>m1</e><e>m2</e></kw></doc>
...
 
SxmlSelect -g doc/child::kw/child::e -p @g1 <<...
<doc><tit>a</tit><kw><e>m1</e><e>m2</e></kw></doc>
...

produisent :

<e>m1</e>

Synopsis

SxmlSelect
[-n nullString ] ...
[-g sxPath ] ...
[-s sxPath [sxPath]...] ...
[-t traceLevel]
[-c]

Sélecteurs

Sélecteur -g (grep)

Un sélecteur de type grep applique un SxPath aux enregistrements Sxml du flot d'entrée afin de rechercher le premier nœud qui le vérifie.

Si le SxPath n'est pas vérifié, l'enregistrement d'entrée n'est pas traité et la commande passe au suivant.

Si le SxPath est vérifié le résultat est déposé dans la variable interne @gn ou n est le rang, numéroté à partir de 1, de la spécification d'entrée.

Sélecteur -s (set)

Un sélecteur de type set applique un SxPath aux enregistrements Sxml du flot d'entrée afin de sélectionner l'ensemble des nœuds qui le vérifient.

Exemple

A partir de la version V0.5.95

SxmlSelect -s book/aut/a/1 -s book/kw/li/1 -p @s1 -p @s2 <<...
<book><tit>Ma Dalton</tit><aut><a>Goscinny</a><a>Uderzo</a></aut><kw><li>Lucky Luke</li><li>Ma Dalton</li></kw></book>
...

produit:

Goscinny	Lucky Luke
Goscinny	Ma Dalton
Uderzo	        Lucky Luke
Uderzo	        Ma Dalton

Sélecteur -c (combination)

Le sélecteur -c est associé à un sélecteur -s. Il permet de générer des combinaisons de termes ou d'éléments xml.

Par exemple, le script :

SxmlSelect -g book/tit/1 -s book/kw/li/1 -c -p @g1 -p @s1 -p @c1 <<...
<book><tit>Objectif lune</tit><aut><a>Hergé</a></aut><kw><li>Tintin</li><li>Milou</li><li>Haddock</li></kw></book>
...

produit :

Objectif lune	Tintin	Milou
Objectif lune	Tintin	Haddock
Objectif lune	Milou	Haddock

Cette option est disponible à partir de la version V0.6.18.

Provisoirement, un seul sélecteur -c est autorisé.

Sélecteur -C (combination de couples triés)

Le sélecteur -c est associé à un sélecteur -s. Il permet de générer des combinaisons de 2 termes ou d'éléments xml. Ces termes sont triés 2 à 2.

Un sélecteur -C ne peut être associé qu'à un seul sélecteur -s.

Par exemple, le script :

SxmlSelect -g book/tit/1 -s book/kw/li/1 -C -p @g1 -p @s1 -p @c1 <<...
<book><tit>Objectif lune</tit><aut><a>Hergé</a></aut><kw><li>Tintin</li><li>Milou</li><li>Haddock</li></kw></book>
...

produit :

Objectif lune	Milou	Tintin
Objectif lune	Haddock	Tintin
Objectif lune	Haddock	Milou

Cette option est disponible à partir de la version V0.6.18.

Options

Option -n (Null Value)

L'option -n force l'impression d'un document en cas d'échec d'une sélection de type Grep, en donnant à la variable associée le paramètre de l'option.

Exemple :

     HfdCat Data/Main/Merge/biblio.hfd    \
   | SxmlSelect -n NONE -g record/TEI/teiHeader/fileDesc/publicationStmt/idno@type=doi/1 -p @g1 -p @1

provoque :

10.3389/fneur.2015.00122        000000
10.3389/fnhum.2015.00307        000001
   ...
10.1002/14651858.CD002815.pub2  000057
NONE    000058
10.3389/fnins.2013.00279        000059

Impression

Options -p (print)

Exemples

Extraction de triplets (Date, RBID, auteur).

     HfdCat $EXPLOR_AREA/Data/Main/Exploration/biblio.hfd                                         \
       | SxmlSelect -g record/TEI/teiHeader/fileDesc -p @g1                          \
       | SxmlSelect -g fileDesc/publicationStmt/date/1 -p @g1                        \
                    -g fileDesc/publicationStmt/idno@type=RBID/1 -p @g2              \
                    -s fileDesc/sourceDesc/biblStruct/analytic/author/name/1 -p @s1

Sur la base wicri-sante.fr:Wicri:MovDisordV2, elle produit une liste de type :

2015    pubmed:25545816 Lucas N Rnberger
2015    pubmed:25545816 Christine Klein
2015    pubmed:25545816 Simon Baudrexel
   ...
2011    ISTEX:CD906250882BD7CBEE75696ACB8E657735DED4CE  Lynn Rochester
2011    ISTEX:CD906250882BD7CBEE75696ACB8E657735DED4CE  Katherine Baker
2011    ISTEX:CD906250882BD7CBEE75696ACB8E657735DED4CE  Alice Nieuwboer
2011    ISTEX:CD906250882BD7CBEE75696ACB8E657735DED4CE  David Burn
2011    ISTEX:3D760E5C4F746C4428E009CAA49E0F3DA7835704  Renato P. Munhoz

Explications :

  • La première commande SxmlSelect extrait la partie fileDesc des documents Sxml extraits du la structure HFD.
  • La deuxième extrait les triplets proprement dits
    • la sous-commande -g permet d'extraire la première date
    • la deuxième permet d'extraire le premier RBID (dans une application multi-source l'option -s serait déconseillée)
    • la troisième extrait tous les auteurs.

Options

-b script
-n
no input : permet de tester les scripts avec l'option -b