Tesauro

Introducción

Un tesauro es un vocabulario estructurado que se utiliza para administrar y estandarizar palabras clave (también conocidas como etiquetas) que describen recursos.Ayuda a mejorar la calidad, la capacidad de búsqueda y la interoperabilidad de los metadatos al hacer cumplir vocabularios controlados.

Funciones clave

Vocabulario controlado

En lugar de palabras clave de texto libre, los tesauros ofrecen términos predefinidos y estandarizados** organizados temáticamente (por ejemplo, temas ISO 19115, GEMET, temas INSPIRE).

Consistencia semántica

Los usuarios que etiquetan conjuntos de datos pueden elegir entre una lista consistente de términos, reduciendo la redundancia y la ambigüedad (por ejemplo, evitando «carreteras» y «carretera» como etiquetas separadas).

Búsqueda y filtrado mejorados

Los tesauros permiten el etiquetado estructurado de conjuntos de datos, lo que permite búsquedas más precisas y el uso de filtros facetados para limitar fácilmente los resultados.

Localización

Cada concepto en un diccionario de sinónimos puede tener traducciones para diferentes idiomas, lo que permite una visualización localizada según el idioma de la interfaz del usuario.

Integración de estándares de metadatos

Los tesauros pueden alinearse con estándares internacionales (como ISO, INSPIRE, GEMET), lo cual es especialmente importante cuando GeoNode se utiliza en contextos institucionales o gubernamentales.

Modelo de datos

El modelo de tesauro GeoNode está diseñado para admitir vocabularios estructurados y multilingües.Consta de los siguientes componentes clave:

Tesauro:
  • Representa un vocabulario completamente controlado (por ejemplo, temas GEMET, INSPIRE).

  • En términos de SKOS, es un skos:ConceptScheme.

Etiqueta del diccionario de sinónimos:
  • Almacena los nombres localizados (títulos/descripciones) de un diccionario de sinónimos para diferentes idiomas.

  • En términos de SKOS, es un skos:preflabel dentro de skos:ConceptScheme.

TesauroPalabra clave:
  • Representa un único concepto o término dentro de un tesauro (por ejemplo, «Cobertura terrestre», «Transporte») y también almacena la etiqueta predeterminada (utilizada cuando la traducción para un idioma solicitado determinado no está definida) y su URI de identificación.

  • En términos de SKOS, es un skos:Concept.

Etiqueta de palabra clave del diccionario de sinónimos:
  • Almacena las etiquetas multilingües para cada palabra clave.

  • In SKOS terms, it’s a skos:preflabel within the skos:Concept.

Agregar un diccionario de sinónimos

Se puede agregar un diccionario de sinónimos en Geonode mediante:

Subir a través del panel de administración

Navegue a la página del diccionario de sinónimos en el panel de administración http://<your_geonode_host>/admin/base/thesaurus.En la parte superior derecha de la página estará disponible un botón llamado Subir diccionario de sinónimos:

../../_images/thesaurus_admin_1.png

Después de hacer clic en él, se mostrará un formulario simple para cargar que le permitirá seleccionar el archivo RDF que desee:

../../_images/thesaurus_admin_2.png

Al hacer clic en Cargar RDF, el sistema cargará el diccionario de sinónimos y le asignará un nombre «slugificado» basado en el nombre del archivo.El nombre se puede cambiar fácilmente más adelante en la página de edición.

If everything goes fine, a success message will be shown:

../../_images/thesaurus_admin_success.png

De lo contrario, la interfaz de usuario mostrará el mensaje de error:

../../_images/thesaurus_admin_fail.png

Comandos de gestión

GeoNode proporciona un único comando («tesauro») con múltiples acciones:

  • list: lista los tesauros existentes

  • cargar: carga un archivo RDF

  • dump: volcar un diccionario de sinónimos en un archivo

python manage.py thesaurus --help

usage: manage.py thesaurus [-h] [-i [IDENTIFIER]] [-f [FILE]] [--action {create,update,append,parse}] [-o [OUT]]
                           [--include INCLUDE] [--exclude EXCLUDE]
                           [--format {json-ld,n3,nt,pretty-xml,sorted-xml,trig,ttl,xml}] [--default-lang LANG] [--version]
                           [-v {0,1,2,3}] [--settings SETTINGS] [--pythonpath PYTHONPATH] [--traceback] [--no-color]
                           [--force-color] [--skip-checks]
                           [{list,load,dump}]

Handles thesaurus commands ['list', 'load', 'dump']

positional arguments:
  {list,load,dump}      thesaurus operation to run

options:
  -h, --help            show this help message and exit
  --version             Show program's version number and exit.
  -v {0,1,2,3}, --verbosity {0,1,2,3}
                        Verbosity level; 0=minimal output, 1=normal output, 2=verbose output, 3=very verbose output
  --settings SETTINGS   The Python path to a settings module, e.g. "myproject.settings.main". If this isn't provided, the
                        DJANGO_SETTINGS_MODULE environment variable will be used.
  --pythonpath PYTHONPATH
                        A directory to add to the Python path, e.g. "/home/djangoprojects/myproject".
  --traceback           Raise on CommandError exceptions.
  --no-color            Don't colorize the command output.
  --force-color         Force colorization of the command output.
  --skip-checks         Skip system checks.

Common params:
  -i [IDENTIFIER], --identifier [IDENTIFIER]
                        Thesaurus identifier. Dump: required. Load: optional - if omitted will be created out of the filename

Params for "load" subcommand:
  -f [FILE], --file [FILE]
                        Full path to a thesaurus in RDF format
  --action {create,update,append,parse}
                        Actions to run upon data loading (default: create)

Params for "dump" subcommand:
  -o [OUT], --out [OUT]
                        Full path to the output file to be created
  --include INCLUDE     Inclusion filter (wildcard is * as suffix or prefix); can be repeated
  --exclude EXCLUDE     Exclusion filter (wildcard is * as suffix or prefix); can be repeated
  --format {json-ld,n3,nt,pretty-xml,sorted-xml,trig,ttl,xml}
                        Format string supported by rdflib, or sorted-xml (default: sorted-xml)
  --default-lang LANG   Default language code for untagged string literals (default: None)

Lista de tesauros: thesaurus list

Obtenga la lista de tesauros en GeoNode.

Útil para encontrar ID de los tesauros cuando necesite exportar uno de ellos.

Importando un diccionario de sinónimos: carga de diccionario de sinónimos

El comando cargar puede crear un diccionario de sinónimos completo o simplemente actualizar parte del mismo.

Parámetros permitidos:

  • archivo: archivo a cargar;requerido

  • action: create, update, append, parse; optional, default create;

  • identificador: la identificación del tesauro;Opcional, el valor predeterminado es un nombre creado usando el nombre del archivo.

La creación automática del identificador omite todos los caracteres después del primer punto para permitir una partición del diccionario de sinónimos.

Por ejemplo, podemos tener diferentes archivos rdf que contienen las etiquetas para múltiples proyectos, por ejemplo: labels-i18n.proj1.rdf, labels-i18n.proj2.rdf… Podemos simplemente hacer un bucle en los nombres de los archivos y ejecutar el subcomando load en cada uno de ellos, y todas las palabras clave se agregarán al mismo diccionario de sinónimos con ID.``etiquetas-i18n``.

El comando load tiene diferentes comportamientos según el parámetro action:

Comportamiento:

  • analizar:

    analiza el archivo y repite todos los conceptos sin escribir nada en la base de datos.Es equivalente a la opción clásica de ensayo;

  • crear (acción predeterminada):

    intenta crear un diccionario de sinónimos.Si el diccionario de sinónimos ya existe, genera una excepción.

  • añadir:

    crea entradas si no existen;pk son los que aparecen en la acción de actualización.Si la entrada ya existe, no se modifica de ninguna manera.

  • actualización:

    crea y actualiza entradas:

    • Tesauro: lo crea si no existe, pk es «identificador».Si existen actualizaciones «fecha», «descripción», «título», «acerca de»

    • ThesaurusLabel: lo crea si no existe, pk es «thesaurus», «lang» Si existe actualiza «value»

    • ThesaurusKeyword: lo crea si no existe, pk es «thesaurus», «about» Si existe actualiza «alt_label»

    • ThesaurusKeywordlabel: lo crea si no existe, pk es «thesauruskeyword», «lang» Si existe actualiza «label»

Exportación de un diccionario de sinónimos: volcado de diccionario de sinónimos

El comando dump puede exportar un diccionario de sinónimos completo o sólo una parte del mismo.

Parámetros permitidos:

  • identificador: la identificación del tesauro;requerido.

  • incluir: Opcional;filtrar las palabras clave del diccionario de sinónimos que se van a volcar.Se puede repetir.El filtrado se aplica en el campo «acerca de».Los filtros tienen el formato *cadena o cadena*

  • excluir: Opcional;como «incluir», pero filtra las palabras clave del diccionario de sinónimos para que no se descarguen.

  • format: opcional, formato RDF para la salida (json-ld, n3, nt, pretty-xml, sorted-xml, trig, ttl, xml).Predeterminado xml ordenado

  • default-lang: código de idioma predeterminado para literales de cadena sin etiquetar;el valor predeterminado es settings.THESAURUS_DEFAULT_LANG

  • out: Ruta completa al archivo de salida que se creará.Opcional;si se omite, el contenido RDF se envía a stderr.

Formato

Todos los formatos, excepto sorted-xml, utilizan la biblioteca RDFlib para serializar los datos del diccionario de sinónimos.Dado que RDFlib maneja los conceptos como un gráfico, no hay ningún orden en los datos de salida.Esto significa que dos «volcados» consecutivos del mismo diccionario de sinónimos pueden crear dos archivos diferentes.

Al importar y exportar tesauros como un archivo, puede resultar útil realizar diferencias en ellos para descubrir qué ha cambiado.El formato sorted-xml crea una salida predecible, donde ConceptScheme está al inicio del archivo y los conceptos se ordenan por su campo about.Además, los prefLabel están ordenados por su atributo lang.

Exportación parcial

El comando dump también permite exportar un subconjunto de palabras clave (conceptos) en un Tesauro.

Como ejemplo, digamos que tenemos el tesauro labels-i18n, que contiene algunas etiquetas oficiales de GeoNode.

En nuestro proyecto agregamos algunas palabras clave con el prefijo «proj1_», ya que pertenecen al proyecto1.

También en nuestra instancia de GeoNode, agregamos algunas etiquetas que anulan las estándar y tienen el posfijo _ovr.

Para exportar solo las entradas que editamos, emitiremos el comando:

python manage.py thesaurus dump -i labels-i18n --include "proj1_*" --include "*_ovr" -f labels-i18n.proj1.rdf

Configurar un diccionario de sinónimos

Después de cargar o crear un diccionario de sinónimos en GeoNode, se debe configurar en el panel Admin.

Se puede acceder al panel desde el enlace Admin del Menú de Usuario en la barra de navegación o a través de esta URL: http://<your_geonode_host>/admin/base/thesaurus.

Una vez que esté en las listas de sinónimos, seleccione un diccionario de sinónimos para abrir la página Editar.

../../_images/thesaurus_edit_page.png

La interfaz de edición del Tesauro GeoNode

Estos son los principales atributos del tesauro:

  • identificador: (obligatorio) el identificador del tesauro (establecido por el parámetro --identifier en el comando carga del tesauro, o generado automáticamente usando el nombre del archivo).

  • título: (obligatorio) El título predeterminado del diccionario de sinónimos (se puede configurar desde el archivo RDF cargado).

  • fecha: (obligatorio) La fecha del tesauro (puede establecerse desde el archivo RDF cargado).

  • descripción: (obligatorio) La descripción del diccionario de sinónimos (se puede configurar desde el archivo RDF cargado).

  • slug: (en desuso, use identifier en su lugar) El slug del diccionario de sinónimos.

  • about: (opcional) El URI rdf:about del diccionario de sinónimos (puede configurarse desde el archivo RDF cargado).

Los siguientes atributos definen cómo se utilizará el diccionario de sinónimos dentro de GeoNode.

  • card min: (opcional) La cardinalidad mínima, predeterminado = 0

  • card max: (opcional) La cardinalidad máxima, predeterminada = -1 (sin límite)

  • faceta: (booleano) Decida si el diccionario de sinónimos se mostrará en la lista de facetas, predeterminado: Verdadero. Se establecerá en verdadero` sólo cuando ``card_max!= 0

  • orden: (entero) Establece el orden de listado del diccionario de sinónimos en la lista de facetas y en el editor de metadatos, predeterminado: 0, orden asc de 0 a N

Si card max no es cero, el editor de metadatos mostrará automáticamente el Tesauro en la lista de términos controlados.Más precisamente estos son los casos según los dos campos de cardinalidad:

  • card_max=0 –> Deshabilitado, el diccionario de sinónimos no aparecerá en la GUI

  • card_max=1 & card_min = 0 –> Elección única, opcional.

  • card_max=1 & card_min = 1 –> Opción única, obligatoria

  • card_max=-1 & card_min = 0 –> [0..N] Múltiples opciones, opcional

  • card_max=-1 & card_min = 1 –> [1..N] Múltiples opciones, requeridas

El editor de metadatos mostrará todos los tesauros con card_max != 0, cada uno con su propio título, como en la siguiente imagen:

../../_images/thesaurus_choices.png

La interfaz de metadatos con el Tesauro habilitado

Los tesauros que tienen card_max == 0 se utilizan como listas de códigos: significa que serán referenciados dentro de GeoNode a través de su identificador para propósitos específicos.Habrá documentación ad hoc para cada una de dichas listas de códigos.

Por ejemplo, el diccionario de sinónimos con identificador labels-i18n se utiliza para las traducciones de etiquetas de metadatos.

Uso de palabras clave de un diccionario de sinónimos

Una vez que haya terminado la configuración, debería encontrar un nuevo widget de entrada en el editor de metadatos que le permitirá elegir palabras clave del tesauro para su recurso.

Además, si establece el atributo faceta en verdadero, el diccionario de sinónimos debería aparecer en la sección de filtro en las vistas de lista de recursos de GeoNode.

Por ejemplo, si tenemos estos tesauros:

../../_images/thesaurus_admin_list.png

Lista de tesauros de muestra configurados

ambos configurados con card max != 0 y facet = true, tendremos en el editor:

../../_images/thesaurus_edit_sample.png

Selectores de palabras clave para tesauros de muestra

y también las tendremos en el panel de filtrado como facetas:

../../_images/thesaurus_facet_sample.png

Selectores de facetas para tesauros de muestra