Champs des fiches

Les champs des fiches constituent la masse la plus importante de données susceptibles d'être transmise par les différentes requêtes. La liste des champs à transmettre est indiquée soit par le paramètre fichefields, soit par la variante de champs à utiliser indiquée par le paramètre fieldvariant. Dans le cas d'absence des deux paramètres, c'est la variante par défaut qui est utilisée (voir la configuration des variantes de champs côté serveur avec le fichier fields.xml.

La valeur du paramètre fichefields ou de l'attribut @fields de l'élément <fiche> dans fields.xml est une liste de champs séparés par une virgule avec les valeurs suivantes :

  • -codefiche : par défaut, le code de la fiche est toujours inséré, ce paramètre permet de l'éviter
  • codecorpus : code du corpus
  • codebase : code de la base
  • basename : nom de la base tel que dans l'URI de la fiche
  • corpusname : nom du corpus tel que dans l'URI de la fiche
  • ficheid : Partie identifiant de la fiche dans l'URI
  • titre : titre de la fiche
  • soustitre : sous-titre de la fiche
  • href : url de la fiche
  • lang : langue de la fiche
  • annee : année de la fiche
  • date : date de la fiche
  • ficheicon : icone spécifique de la fiche
  • icon : icone qui est l'icone spécifique de la fiche s'il existe, sinon l'icone de la base de la fiche
  • geo : latitude et longitude
  • mtitre : retourne le titre marqué, c'est à dire avec les indications de position des chaines de la recherche (voir ci-dessous) ; ce n'est pertinent que lorsque la liste des fiches est obtenue via une recherche libre ; la valeur est donnée même si le titre n'a pas servi à la recherche
  • msoustitre : retourne le sous-titre marqué suivant le même principe que mtitre
  • complements : tableau des champs complémentaires,
  • mcomplements : tableau des champs complémentaires marqués suivant le même principe que mtitre, seuls les champs complémentaires qui ont servi à la recherche sont inclus
  • mcomplements_all : comme précédent, mais tous les compléments sont inclus dans le tableau
  • mattrs : tableau associatif des attributs marqués suivant le même principe que mtitre, seuls les attributs qui ont servi à la recherche sont inclus
  • mattrs_primary : comme précédent, mais tous les attributs du premier groupe (ceux placés avanc les champs complémentaires) sont inclus le tableau associatif
  • mattrs_all : comme précédent, mais tous les attributs du premier et second groupes sont inclus le tableau associatif, à l'exception de ceux de type « block »
  • attrs : attributs techniques sous le forme d'un tableau associatif
  • attrs_primary : attributs techniques et du premier groupe sous la forme d'un tableau associatif
  • attrs_all : tous les attributs sans exception sous la forme d'un tableau associatif (peut conduire à un fichier particulièrement volumineux s'il y a des attributs de type « block »)
  • score : score de la fiche pour la recherche, c'est un tableau de trois réels entre 0 et 1 : le premier est le score pour l'occurrence, le deuxième pour la date et le troisième pour l'origine ; c'est la somme de ces scores qui détermine l'ordre des fiches

Chaines marquées

Une chaine marquée est une chaine découpée pour indiquer la position des sous-chaines correspondant à la séquence de recherche. Ce découpage permet par exemple de surligner ces sous-chaines pour les mettre en évidence. Une chaine découpée se présente sous forme d'un tableau qui contient soit des chaines (parties non marquées), soit des objets avec deux propriétés : i pour la position de de la chaine recherchée correspondante dans la chaine de recherche et s pour la chaine elle-même.

Exemple : la séquence de recherche est durab dev, le titre trouvé est « définition du Développement Durable », la propriété mtitre retournée sera le tableau suivant :

mtitre: [
  "définition du ", // début du titre
  { //objet correspondant à la présence de la deuxième séquence : dev
    i: 2, 
    s: "Dév"
  },
  "eloppement ", // suite du titre
  { //objet correspondant à la présence de la première séquence : durab
    i: 1;
    s: "Durab"
  },
  "le" // fin du titre
]

Cela permettra de l'afficher ainsi : définition du Développement Durable

Note : dans le cas d'une chaine qui est non marquée mais tout de même incluse (cas de mtitre), le résultat sera un toujours tableau qui contiendra simplement une unique chaine

Renommage des noms des champs dans l'objet résultant

Cette fonctionnalité peut être utile quand l'objet JSON est traité directement par d'autres outils (dans l'export au format GeoJSON notamment).

Le moyen le plus efficace est de renommer un champ est d'utiliser les variantes de champs définies du côté serveur avec le fichier fields.xml et les éléments <alias> (qui permettent notamment la concaténation de plusieurs champs en un seul).

Pour des raisons historiques et pratiques, il est possible de renommer certains champs directement avec les paramètres suivants :

  • field-titre : nom de la propriété du titre (titre par défaut)
  • field-soustitre : nom de la propriété du sous-titre (soustitre par défaut)
  • field-href : nom de la propriété du l'URL (href par défaut)
  • field-annee : nom de la propriété de l'année (annee par défaut)
  • field-{nom d'attribut} : pour toutes les propriétés basées sur un attribut ({nom de l'attribut} par défaut)

Structure de l'objet résultant

Note : même si un champ est indiqué dans fichefields, la propriété peut être absente dans l'objet JSON correspondant si la valeur est nulle.

Version 3

{
  codefiche:, // code de la fiche, toujours présent sauf si -codefiche (entier > 0)
  codecorpus:, // champ 'codecorpus' (entier > 0)
  codebase:, // champ 'codebase' (entier > 0)
  authority:, //autorité productrice de la base tel que dans l'URI (chaine)
  basename:, //nom technique de la base tel que dans l'URI (chaine)
  corpusname:, //nom technique du corpus tel que dans l'URI (chaine)
  ficheid:, // champ 'fiche-id' (chaine)
  titre:, // champ 'titre' (chaine)
  soustitre:, // champ 'soustitre' (chaine)
  href:, // champ 'href' (chaine)
  lang:, // champ 'lang' (chaine, code ISO de la langue)
  year:, // champ 'year' (entier)
  date:, // champ 'date' (chaine)
  ficheicon:, // champ 'ficheicon' (chaine)
  icon:, // champ 'icon' (chaine)
  lat:, // latitude si champ 'geo' (chaine)
  lon:, // longitude si champ 'geo' (chaine)
  complementArray: [ // tableau des champs complémentaires si champ 'complements'
    {
      number:, // numéro du champ complémentaire (entier > 0)
      value:// texte du champ complémentaire (chaine)
    }
  ],
  attrMap: { // si champ 'attrs', tableau associatif des attributs
    (clé): [ // la clé est celle de l'attribut, la valeur est le tableau des valeurs de l'attribut
 
    ]
  },
  mtitre: [ // tableau du titre marqué
    // voir ci-dessus chaines marquées
  ],
  msoustitre: [ // tableau du soustitre marqué
    // voir ci-dessus chaines marquées
  ],
  mcomplementArray: [ // si champ 'mcomplements', tableau des compléments marqués
    {
      number:, // numéro du champ complémentaire (entier > 0)
      mvalue: [ // tableau du complément marqué 
      // voir ci-dessus chaines marquées
      ]
    }
  ],
  mattrMap: { // si champ 'mattrs', tableau associatif des attributs marqués
    (clé): [ // la clé est celle de l'attribut, la valeur est le tableau des valeurs de l'attribut
         // voir de ci-dessus chaines marquées
    ]
  },
  score: [] // score de la fiche sous la forme d'un tableau de trois réels entre 0 et 1
}

Version 2 et inférieures

{
  codefiche:, // code de la fiche, toujours présent sauf si -codefiche (entier > 0)
  codecorpus:, // champ 'codecorpus' (entier > 0)
  codebase:, // champ 'codebase' (entier > 0)
  basename:, //nom technique de la base tel que dans l'URI (chaine)
  corpusname:, //nom technique du corpus tel que dans l'URI (chaine)
  ficheid:, // champ 'fiche-id' (chaine)
  titre:, // champ 'titre' (chaine), le nom de la propriété peut être modifié avec field-titre
  soustitre:, // champ 'soustitre' (chaine), le nom de la propriété peut être modifié avec field-soustitre
  href:, // champ 'href' (chaine), le nom de la propriété peut être modifié avec field-href
  lang:, // champ 'lang' (chaine, code ISO de la langue)
  annee:, // champ 'annee' (entier) , le nom de la propriété peut être modifié avec field-annee
  date:, // champ 'date' (chaine)
  ficheicon:, // champ 'ficheicon' (chaine)
  icon:, // champ 'icon' (chaine)
  lat:, // latitude si champ 'geo' (chaine)
  lon:, // longitude si champ 'geo' (chaine)
  __ attribut __:, // attribut correspondant avec les valeurs concaténées suivant le format de l'attribut (chaine)
  complementArray: [ // tableau des champs complémentaires si champ 'complements'
    {
      num:, // numéro du champ complémentaire (entier > 0)
      comp:// texte du champ complémentaire (chaine)
    }
  ],
  mtitre: [ // tableau du titre marqué
    // voir ci-dessus chaines marquées
  ],
  msoustitre: [ // tableau du soustitre marqué
    // voir ci-dessus chaines marquées
  ],
  mcomplementArray: [ // si champ 'mcomplements', tableau des compléments marqués
    {
      num:, // numéro du champ complémentaire (entier > 0)
      mcomp: [ // tableau du complément marqué 
      // voir ci-dessus chaines marquées
      ]
    }
  ],
  mattrMap: { // si champ 'mattrs', tableau associatif des attributs marqués
    (clé): [ // la clé est celle de l'attribut, la valeur est le tableau des valeurs de l'attribut
         // voir de ci-dessus chaines marquées
    ]
  },
  score: [] // score de la fiche sous la forme d'un tableau de trois réels entre 0 et 1
}
serveurscrutari/json/fiche_fields.txt · Dernière modification: 2017/11/04 16:15 par vincent
CC Attribution-Noncommercial-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0