-
Notifications
You must be signed in to change notification settings - Fork 4
SERVICE VISU CONTENTSEARCH
J'ai un document pour lequel la recherche plein texte est possible (ie, nqamoyen > 060.00, cf exemple dans service OAIRecord)
Ce service renvoie une liste d’occurrences d’un mot donné au sein d’un document.
- Verbe
ContentSearch: http://gallica.bnf.fr/services/ContentSearch
Paramètres:
-
ark: (paramètre obligatoire) identifiant ARK du document numérique, de la forme bpt6kxxxxx ou btv1bxxxxx. -
query: (paramètre obligatoire) termes de la recherche à trouver dans ce document -
page: (paramètre optionnel) numéro d'ordre de page sur laquelle effectuer la recherche. Il s'agit du numéro de la balise<ordre>du verbe Pagination. à n'utiliser que pour récupérer la position sur l'image où se situe le mot -
startResult: (paramètre optionnel) il est utiliser pour paginer l'intégralité des résultat sachant que nous bloquons à 10 le nombre d'éléments retourné par le service.
Pour obtenir les pages avec un extrait on 'utilise pas le paramètre page
- Exemple :
http://gallica.bnf.fr/services/ContentSearch?ark=bpt6k5460422k&query=hugo
<?xml version="1.0" encoding="UTF-8"?>
<results ResultsGenerationSearchTime="0:00:00.050" countResults="4" searchTime="50">
<query>hugo</query>
<items>
<item>
<altoid/>
<p_id>PAG_357</p_id>
<p_width/>
<p_height/>
<content>e V. <span class='highlight'>HUGO</span></content>
<events/>
</item>
<item>
<altoid/>
<p_id>PAG_173</p_id>
<p_width/>
<p_height/>
<content>quelque chose comme si on envoyait à <span class='highlight'>Hugo</span> une petite grammaire de Lhomond : « la grammaire est l'art d'écrire et de parler correctement</content>
<events/>
</item>
<item>
<altoid/>
<p_id>PAG_355</p_id>
<p_width/>
<p_height/>
<content>Et rappelons le jugement éloquent, porté par Victor <span class='highlight'>Hugo</span> en 1848 : ee Deux républiques sont possibles</content>
<events/>
</item>
<item>
<altoid/>
<p_id>PAG_10</p_id>
<p_width/>
<p_height/>
<content>et tua aussi don <span class='highlight'>Hugo</span> de Car</content>
<events/>
</item>
</items>
</results>Ici 4 pages ont répondu pour le document
La réponse est contenue dans la balise <results>. L'attribut countResults permet de connaître le nombre de pages ayant au moins une occurrence.
Chaque occurrence trouvée est placée dans une balise <item>, elles mêmes contenues dans une balise <items>.
L'attribut score est le score donné par le moteur de recherche, et n'est pas exploité dans l'interface.
-
<p_id>: numéro de page du document numérique contenant un extrait -
<content>: flux HTML contenant un extrait pour cette page avec un taggage de la partie qui correspond à la recherche (contenu de la balise<span class="highlight">). Le visualiseur image/mosaïque pour les documents de type image, cartes, manuscrits exploite cette donnée pour afficher la légende surlignée. -
les autres balises sont vides mais présentes pour des raisons de compatibilité historique
Si je veux savoir où se situe le mot dans l'image je vais utiliser le paramètre page
Ci-dessus j'avais par exemple <p_id>PAG_173</p_id>
Je récupère la partie numérique du contenu et j'interroge comme suis : http://gallica.bnf.fr/services/ContentSearch?ark=bpt6k5460422k&query=hugo&page=173
<?xml version="1.0" encoding="UTF-8"?><results ResultsGenerationSearchTime="0:00:00.044" countResults="1" searchTime="44">
<query>hugo</query>
<items>
<item>
<altoid countResults="1">
<altoidstring height="47" hpos="514" vpos="915" width="101">PAG_00000173_ST000061</altoidstring>
</altoid>
<p_id>PAG_173</p_id>
<p_width>1153</p_width>
<p_height>2138</p_height>
<content/>
<events/>
</item>
</items>
</results>-
<altoid>contient des informations détaillées de chaque mot trouvé sur l'image. L'attributcountResultsrenseigne sur le nombre de mots trouvés : -
<altoidstring>: il s'agit d'un rectangle représentant le mot. Les attributs: -
<height>: détermine la hauteur du rectangle en pixels. -
<width>: détermine la largeur du rectangle en pixels. -
<hpos>: détermine la position X du rectangle sur la page en pixels -
<vpos>: détermine la position Y du rectangle sur la page en pixels. Ces informations ont été générées par le logiciel de reconnaissance de caractères, et se basent sur la taille physique du fichier master numérisé: -
<p_id>: numéro de page du document numérique contenant un extrait -
<p_width>: largeur en pixels du fichier master. -
<p_height>: hauteur en pixels du fichier master
Ainsi on sait que le mot hugo sur la page 173 (dont l'image mesure 1153 pixel de large et 2138 de haut) est contenu dans une boîte dont le coin haut/gauche se situe a 514 pixel du bord gauche et 915 pixel du haut. Cette boîte mesure 47 pixels de haut et 101 pixels de large. Je rappelle ces dimension sont donnée par rapport à la taille donnée dans p_width et p_height.
On renvoie systématiquement une version réduite de l’image (png ou jpeg) par rapport au master original (généralement tif), les valeurs de positions affichées doivent donc être calculées par rapport à des coordonnées correspondant aux dimensions du fichier original.
##TIPS Pour obtenir le texte brut d'un document on peut utiliser le qualifier texteBrut Soit le document suivant sur gallica : http://gallica.bnf.fr/ark:/12148/bpt6k5619759j J'ajoute à la fin de l'url ".textBrut" http://gallica.bnf.fr/ark:/12148/bpt6k5619759j.texteBrut J'obtient alors tout le texte du document (avec en entête les informations bibliographiques)
Si je veux une partie du tocument, j'utilise le qualifer f[X]n[y], en plus du qualifier texteBrut, où X est le numéro de la page à partie de laquelle je veux le texte, et n le nombre de page suivante exemple: http://gallica.bnf.fr/ark:/12148/bpt6k5619759j/f5n2.texteBrut
Parsing classique d'un flux xml, pas de difficultés