Colección de recetas aportadas

Esta página presenta listas de casos de uso. Si busca información práctica y directa, estás en el lugar correcto. Si prefiere una presentación exhaustiva de la estructura de la base de datos y led software, consulte la sección software para jardines botánicos

Todo el material ha sido aportado por jardines usuarios del software y compartiendo sus experiencias con la comunidad de usuarios.

Los autores del software le agradecen de corazón.

Jardín Botánico de Quito

En el JBQ, Jardín Botánico de Quito, hemos adoptado el software de Ghini en abril de 2015. Desde entonces, hemos ido acumulando experiencia con el programa, y somos nosotros mismos en la necesitad de documentarla, para asegurar el conocimiento a la institución. Estamos encantados de compartirlo.

Detalles técnicos

  • Trabajamos en GNU/Linux, una plataforma que no muchos usuarios dominan, y nuestra base de datos está dentro de un sistema de gestión de base de datos remota. Esto implica medidas que no son evidentes para la mayoría.

    Como arrancar un programa

    Para iniciar un programa dado su nombre, active la tecla loose_png, al lado de Alt, o haga clic en 10000000000000300000002F89E0224ADF9EC09E_png, a continuación, comience a escribir el nombre del programa, en nuestro caso «Ghini», o simplemente haga clic en el símbolo del programa 100000000000003100000031BB54CBDFA885EBAC_png, que aparece cerca de la margen izquierda de la pantalla.

    Servidor de bases de datos

    Elegimos para un servidor de bases de datos centralizado PostgreSQL. Así estamos protegidos de conflictos entre cambios concurrentes, y todos los cambios están disponibles simultáneamente en todos los clientes de ghini. Tenemos, porsupuesto, que externalizar la gestión del servidore de bases de datos.

    Agregar un nuevo usuario

    En el registro de los cambios a la base de datos, Ghini también graba el nombre de usuario. En nuestro jardín, aparte de los usuarios institucionales, tenemos usuarios temporales habilitados a la escritura a la base de datos. Esto nos hizo decidir que mejor permitimos a Ghini tener un registro completo de los eventos de base de datos.

    Dado que trabajamos usando PostgreSQL, los usuarios grabados por Ghini en el historial son los usuarios de la base de datos, no los del sistema.

    Cada usuario conoce su propia contraseña, y sólo conoce la suya. El responsable del contenido de la base datos también tiene la contraseña del usuario bauble, que sólo lo usamos para crear usuarios.

    No utilizamos nombres de cuenta como voluntario, porque tales cuentas no nos ayudan asociar el nombre a la persona.

    — Agregar un nuevo usuario de sistema (linux/osx)

    Agregar un usuario del sistema es no es estrictamente necesario, pues ghini no los usa en los registros, sin embargo, hacerlo permite la separación de las preferencias, configuración de conexiones, historial de búsqueda. En algunos de nuestros sistemas contamos con una sola cuenta compartida, con varias conexiones configuradas, en otros sistemas tenemos una cuenta por usuario.

    En sistemas con una cuenta por cada usuario, nuestros usuarios tienen una sola conexión configurada, y tenemos la contraseña de la base de datos en el archivo home/<account>/.pgpass. Este archivo sólo es legible para el usuario <account>.

    En sistemas con una cuenta compartida, el usuario tiene que seleccionar su conexión propia y escribir la contraseña correspondiente.

    Estos son los pasos para agregar usuarios del sistema:

    sudo -k; sudo adduser test
    sudo adduser test adm; sudo adduser test sudo
    sudo adduser test sambashare; sudo adduser test ghini
    

    — Agregar un nuevo usuario de base de datos

    Ghini tiene una interfaz muy simple para la gestión de usuarios, que solo funciona con postgresql y mucho carece de mantenimiento. Hemos abierto issues esperando poderla utilizar, por el momento usamos el script create-role.sh:

    #!/bin/bash
    USER=$1
    PASSWD=$2
    shift 2
    cat <<EOF | psql bauble -U bauble $@
    create role $USER with login password '$PASSWD';
    alter role $USER with login password '$PASSWD';
    grant all privileges on all tables in schema public to $USER;
    grant all privileges on all sequences in schema public to $USER;
    grant all privileges on all functions in schema public to $USER;
    EOF
    

    El alter role siguiente el create role es redundante, pero nos permite aplicar la misma secuencia de comandos para la corrección de cuentas existentes.

    Nuestra base de datos de ghini se llama bauble, y bauble es también el nombre de nuestro super usuario base de datos, el único usuario con privilegio CREATEROLE.

    Por ejemplo, la invocación siguiente crearía el usuario willem con contraseña orange, en la base de datos bauble, en el anfitrión 192.168.5.6:

    ./create-role.sh willem orange -h 192.168.5.6
    
  • Entender cuándo se debe actualizar

    Actualizar el sistema

    Poner al día Ubuntu es una tarea mucho más liviana que poner al día Windows. Si el sistema sugiere una puesta al día, se puede dejárselo hacer sin problemas: mientras tanto el sistema estará a disposición y nunca te obligará a reinicializar.

    Actualizar Ghini

    La primera ventana presentada por Ghini se ve así. Normalmente, usted no necesita hacer nada en esta ventana, sólo tiene que pulsar Conectar y seguir a la pantalla principal del programa.

    10000000000001290000011FEE16D735EB3DBF67_png

    Ocasionalmente, en la parte superior de la pantalla aparece un texto de información, diciéndole que una versión más reciente está disponible en línea.

    10000000000001290000011FEE16D735EB3DBF66_png

    El procedimiento de actualización es sencillo, y depende del sistema operativo que utilice, no estamos explicando aquí de nuevo.

    Es generalmente una buena idea actualizar el software. En caso de duda, póngase en contacto con el autor, o escribir al grupo.

  • Entender la pantalla inicial de ghini

    Pantalla completa

    En el momento de la escritura, nuestra pantalla inicial se veía así:

    100000000000063F00000383F7EAFB008DE6E4E2_png

    Aparte del menú principal de la aplicación, el interfaz de Ghini ofrece tres secciones especiales, con información y herramientas para explorar la base de datos.

    Resumen numérico

    La tabla en la mitad derecha de la pantalla muestra un resumen de todas las plantas registradas. Cada entrada en negrita es un enlace a la consulta que selecciona los objetos correspondientes.

    100000000000018700000173222371085C3C68FE_png

    Consultas almacenadas

    La mitad inferior del lado derecho contiene un conjunto de consultas almacenadas. Usted las puede editar a su gusto, sin embargo nuestras sugerencias incluyen seleccionar aquellas accesiones que no han sido identificados en rango especie. Y una para la historia de la base de datos.

    100000000000018700000173222371085C3C68FF_png

    Botones de acción y consulta

    En la parte superior de esta pantalla usted puede encontrar el campo en el que introducir sus búsquedas.

    10000000000006090000001FA253BB9470AD4994_png

    • Con el 100000000000001C00000020F4C7873186014F2F_png botón, en la forma de una casa, usted puede volver de sus búsquedas en la pantalla principal.
    • Con el 100000000000001B000000207EC6F9075C9D3669_png botón en forma de flecha, puede volver a su última búsqueda.
    • Con el botón 100000000000001C0000001FB8A1F75F7A5EF877_png en forma de engranaje, usted puede iniciar la «Query Builder», que le ayuda a componer complejas búsquedas en una simple forma gráfica.
  • A menudo tenemos voluntarios que trabajan en el jardín sólo por un tiempo muy corto. Es con ellos en la mente que hemos desarrollado una vista hipersimplificada en la estructura de la base de datos de ghini.

    Detalles

    Las dos figuras aquí muestran todo lo que necesitan saber nuestros colaboradores temporales.

    Taxonomia y colección Jardín
    _images/family-to-accession.png
    _images/location-to-plant.png
  • A veces, el programa da mensajes de error. dontpanic_png, reintente, o informe a los desarrolladores.

    Problemas de red

    Para trabajar, el programa necesita una conexión de red estable con el servidor de base de datos. Puede suceder que: se inicia el programa, y no se puede conectar a nuestro servidor de base de datos. El mensaje de error obtenido es bastante explícito pero también muy mal compuesto.

    100000000000020B000000FBCAB1860DB92DF14A_png

    Sólo ignorarlo y vuelva a intentarlo.

    La búsqueda falla con error

    A veces sin causa aparente, una búsqueda no se ejecutará correctamente y aparecerá una ventana con un mensaje de error. En este caso sólo tienes que intentar realizar la misma búsqueda otra vez.

    Un ejemplo de un mensaje de error:

    10000000000002140000014D050A059AC7EE948A_png

    La búsqueda no devuelve algo que acabo de insertar

    Códigos de accesión que empiezan con cero y compuesto de sólo cifras, como por ejemplo 016489 son considerados por el software como números, así que si usted no incluye la cadena de búsqueda entre comillas, cualquier 0 inicial será eliminado y el valor no se encuentra.

    Vuelva a intentarlo, pero encierran su cadena en comillas simples o dobles.

    Número en la etiqueta búsqueda correspondiente
    16489 “016489”

    Nota: cuando usted busque un código de planta, no una accesión, los ceros iniciales se vuelven opcionales, por lo que en el ejemplo anterior tal vez es más fácil escribir 16489.1.

  • Una situación grave sucedió una vez, y absolutamente queremos evitar que vuelva a suceder: un usuario elimina un género, con todo lo que estaba abajo, especies y accesiones y sinonimias.

    Solucionandolo con permisos de usuario

    Una forma sería a través de diferentes perfiles, asociado a usuarios de base de datos, cada usuario con permisos diferentes.

    Permiso completo (BD-JBQ)

    Solamente el personal calificado obtiene este tipo de acceso.

    Insert y update (BD-JBQ-limitado)

    Usamos éste para aquellos usuarios que vienen a ayudarnos por un tiempo limitado, y que no recibieron una completa introducción a los conceptos de base de datos. Está destinado a evitar errores costosos.

    Sólo lectura (BD-JBQ-lectura)

    puede ser compartido con cualquier persona que visita el jardín

    Seleccione la conexión en el inicio, y el software le pide la contraseña correspondiente a la conexión seleccionada.

    10000000000000FE00000065C64D791B5CA0099D_png

    Si usted quiere revisar los detalles de la conexión, haga clic en el ▶ junto a “Detalles de la conexión”, cambiará a ▼ y la ventana de conexión aparecerá como una de las siguientes:

    100000000000012F000001A611615FB62F2D003B_png 100000000000012F000001A611615FB62F2D003D_png 100000000000012F000001A611615FB62F2D003C_png

    Como se puede ver, estamos conectando al mismo servidor de base de datos, cada conexión utiliza la misma base de datos en el servidor, pero con diferente usuario.

    Pensándolo más

    Por otro lado, se estamos cuestionando si es del todo apropiado, dejar que cualquier usuario borre algo a un nivel tan alto como una familia, o un género, o, para lo que importa, de cualquier cosa que implique la eliminación inmediata de accesiones de la colección.

    En ghini la forma de cuestionar las características de software es abriendo un asunto correspondiente.

  • Al contactar los desarrolladores, sin duda pedirán información técnica o por lo menos para ver una captura de pantalla. Ayúdales a ayudarte.

    Tomar una captura de pantalla

    En Linux hay tres formas de crear una captura de pantalla, todas implican golpear la tecla “PrtSc”. Posiblemente la más práctica es pulsando la tecla “PrtSc” en combinación con Ctrl y Shift. Esto iniciará una herramienta de copia de la pantalla interactiva. Selecciona un rectángulo y este es copiado en el portapapeles. Pegarlo en el correo que estás escribiendo, o en la línea de chat donde los desarrolladores están tratando de ayudarle.

    Donde están los log

    Ghini escribe continuamente en un archivo de registro muy informativo, ~/.bauble/bauble.log. No se moleste en abrirlo, envíelo no más. Contiene mucha información técnica.

    Alerta continua no tripulada

    Otra opción es activar el controlador Sentry. Notificará a nuestro servidor Sentry de cualquier situación grave en el software. Si te has registrado, los desarrolladores sabrá cómo comunicarse con usted si es necesario.

    Para el paranoico de buena salud: no estamos supervisando lo que estás haciendo, estamos supervisando el funcionamiento de nuestro software. Siempre puede optar hacia fuera.

    Activar el controlador Sentry en la página :prefs: buscar la fila con el nombre “” bauble.use_sentry_handler””, si el valor es no lo que desea, haga doble clic en la línea y cambiará a otro valor.

Taxonomía

  • Introducción

    Complejidad taxonómica de Orchidaceae

    En el JBQ, trabajamos sobre todo con orquídeas, familia Orchidaceae, una de las más grandes familias de plantas, con no menos de 850 géneros, organizados – según Dressler, en aproximadamente 70 subtribus, 22 tribus, 5 subfamilias. Cómo representamos esta información no es obvio y necesita ser explicado.

    La taxonomía de la familia Orchidaceae es continuamente revisada. Géneros se agregan, se rechazan, se reorganizan, son reconocido como sinónimos, algunos taxónomos prefieren otra agrupación de especies o géneros, otros vuelven a dividir y de manera otra vez diferente, los botánicos de diferentes nacionalidades pueden tener diferentes opiniones sobre el asunto. Todo esto suena muy complejo y especializado, pero es parte de nuestra rutina diaria, y que puede ser almacenado en nuestra base de datos Ghini.

  • Identificar a rango género o familia

    Al rango género

    Ghini 1.0 prescribe que una accesión se identifique al rango especie, en todos los casos. El responsable actual reconoce que esto es un error, procedente de los primeros días de Bauble y que Ghini 1.0 tiene en común con otros software botánicos. Hasta que esto se corrija, contamos con las prácticas establecidas.

    Si se identifica una accesión al rango género, agregamos una especie ficticia en ese género, sin especificar su epíteto de especie (pues lo desconocemos) y añadimos un epíteto sin clasificar en la sección de información infraespecífica, como este:

    _images/genus_sp-editing.png

    Cuando aparece en un resultado de búsqueda, se muestra como este:

    _images/genus_sp-explained.svg

    Al rango familia

    Si una accesión es identificada sólo al rango de la familia, también necesitamos un género ficticio, a que podemos añadir la especie ficticia. Puesto que nuestro jardín se concentra principalmente en Orchidaceae, utilizamos el nombre corto Zzz para el género ficticio dentro de la familia, como este:

    _images/zzz-explained.svg

    El responsable actual sugiere utilizar el prefijo Zzz- y detrás del prefijo escribir el nombre de la familia, posiblemente eliminando la e final. La eliminación de la e final es útil para no obtener resultados que incluyan nombres de género cuando busca cosas que terminen en aceae.

    Con la excepción del ya mencionado género Zzz, de la familia Orchidaceae, sí seguimos esta práctica aconsejada, así que por ejemplo nuestra colección incluye Zzz-cactacea y Zzz-bromeliacea.

    Recuerde: nuestro Zzz representa un género desconocido en la familia Orchidaceae, no lo utilice como género desconocido en otras familias.

  • Identificar en un rango que no está permitido por el software (por ejemplo: Subtribu o subfamilia)

    Al rango subtribu

    A veces no podemos identificar un taxón en el género de rango, pero logramos ser más precisas que tan sólo «es una orquídea». Muy a menudo somos capaces de indicar la subtribu, esto es útil cuando se desee producir híbridos.

    El software no nos permite almacenar rangos intermedios entre familia y género, así que tuvimos que inventar algo, y esto es lo que hacemos:

    Insertamos un género ficticio, nombrando como la Subtribu, prefijando con “Zzx-”, como en este ejemplo:

    _images/tribe_sp-explained.svg

    Este Zzx-Laeliinae es algún género de la subtribu Laeliinae.

    Con el fin de poder seleccionar géneros por subtribu, también vamos a añadir una nota al género ficticio Zzx-Laeliinae, así como para todos los géneros en la misma subtribu: categoría subtribus, valor el nombre de la subtribu.

    Esto permite consultas como:

    genus where notes.note=Laeliinae

    También esperamos con impaciencia que el problema-9 sea solucionado!

    Al rango subfamilia o tribu

    Como hemos reservado el prefijo Zzx - para la subtribu, nos reservamos los prefijos Zzy - para la tribu, Zzw - para la subfamilia.

    En particular, la información de la subfamilia es relevante, porque hay subfamilias dentro de la familia Orchidaceae, que no están más separados.

  • Edición de la identificación de accesión - los detalles de las especies

    Especie comodín para accesiones individuales

    Escenario uno describe la identificación de una accesión individual, que había sido asociada a una especie comodín genérica, algo así como «Zzz sp» o «Vanda sp»;

    En este caso, cuando se da a conocer las especies de la planta, cambiamos la asociación en la accesión, seleccionando una especie diferente.

    _images/accession-vanda_sp.png

    No editamos la especie comodín, pues esta puede estar conectada a otras accesiones totalmente sin relación con la que identificamos.

    Especie desconocida para accesiones múltiples

    Un caso diferente es cuando tenemos un lote entero de accesiones, todas obviamente la misma especie, pero no hemos sido capaces de identificarla. En este caso, asociamos las accesiones con una especies incompletamente especificada, algo así como «Zzz sp-59», preferiblemente añadiendo el nombre del taxónomo, que hizo la asociación.

    Una especie como «Vanda sp-018599» no es una especie comodín, es una especie muy concreta, que aún no hemos identificado.

    _images/genus_sp_author-editing.png

    En este caso, cuando la especie es identificada (y podría incluso ser una nueva especie), editamos directamente la especie, así que todas sus accesiones recibirán el cambio.

  • Una nueva planta es relativa a una especie que todavía no está en nuestra colección.

    Especie de último minuto

    Comenzamos este de la Ventana de Accesiones y es muy sencillo, simplemente haga clic en el + al lado del nombre de la especie, nos metemos en la Ventana de Especie.

  • Añadir una especie y utilizar servicios taxonómicos en línea

    Añadir una nueva especie — the plant list.

    Empezamos la manera obvia: insertar el epíteto de género, posiblemente lo seleccione de la lista de finalización, luego el epíteto de la especie, o al menos su mejor aproximación.

    _images/tpl-1-best_guess.png

    Al lado del campo del epíteto de especie hay un pequeño botón, green_ball, que nos une a theplantlist. Haga clic en él, un área de mensajes aparece en la parte superior de la ventana.

    _images/tpl-2-querying.png

    Dependiendo de la velocidad de su conexión a internet, pero también de qué tan cerca su conjetura de un nombre correcto publicado, la zona superior cambiará a algo como esto:

    _images/tpl-3-results.png

    Aceptar la sugerencia y será como si usted hubiera escrito los datos usted mismo.

    _images/tpl-4-accepted.png

    Revisar una selección entera — TNRS.

    Esto se describe en el manual, es muy útil, no se olvide de él.

Que la base de datos refleje lo que es el jardín

  • Una tarea interminable es revisar lo que tenemos en el jardín para que coincida con lo que tenemos en la base de datos.

    Estado inicial y recursos variables

    Cuando adoptamos ghini, importamos en él todo lo que teníamos en una base de datos filemaker. Esa base de datos se centraba únicamente en orquídeas y aún así estaba lejos de ser completa. En la práctica, nos encontramos todavía con plantas etiquetadas en el jardín que nunca se han insertado en la base de datos.

    De vez en cuando, logramos obtener recursos para revisar el jardín, comparándolo con la colección en la base de datos, y la principal actividad es insertar códigos de accesión a la base de datos, tomar fotos de la planta en cuestión y anotar su ubicación, todas tareas que se describen en el resto de esta sección.

    La pequeña aplicación android ghini pocket fue añadida a la familia Ghini en ocasión de una visita de un programador Ghini al Jardín Botánico de Quito. ghini.pocket nos permite llevarnos en el bolsillo una copia reducida del contenido de la base datos, pero también nos facilita la rápida realización de un inventario

    Procedimiento de Inventario

    Ingresamos a ghini.pocket, anotamos el nombre de la locación donde se estará realizando el inventario. Ejem (INV 1) para invernadero 1. Anotamos o escaneamos la accesión (si la planta cuenta con código de barra o código QR) y se realiza la búsqueda.

    Ghini.pocket marca la fecha con horario, la ubicación, el código buscado en un archivo textual que luego podrá ser importado a la base de datos.

    Para un invernadero con alrededor de 1000 plantas el tiempo estimado a realizarse es de dos días, en un horario de 8:00 am a 5:00 pm, trabajando sin apuro.

    Luego de haber importado el archivo generado por ghini.pocket, es fácil evidenciar cuales plantas faltan. Por ejemplo: si hicimos el inventario del INV3 del 4 al 5 de septiembre, la búsqueda correspondiente es:

    plant where location.code = 'INV3' and not notes.note like '2017090%'
    

    Todas estas plantas se pueden marcar como pérdidas o muertas, según decida el Jardín.

    Evidenciar la necesidad de identificación taxonómica.

    Nuestro protocolo incluye otro detalle pensado para evidenciar las plantas que necesitan la atención de un taxónomo.

    _images/taxonomic_alert.png

    Las plantas que solo aparezcan en nuestra base de datos identificadas a nivel familia o que no estaban en la base de datos reciben una señal visual (por ejemplo: un palito plástico o de madera para paletas o papas fritas), para resaltar que no está identificada y de esta forma el taxónomo o encargado cuando realice un recorrido por el invernadero pueda identificarlas y proceder a agregar la identificación en la base de datos.

  • Convención de nombres en lugares del jardín

    Detalles

    code descripción
    CAC-B x Solo las cactáceas afuera de los orquidearios en el jardín
    CRV: Exposición de Nepenthaceae
    IC-xx: orquidearios de calor en el jardín (1A a 9C son lugares especificos entre del orquideario)
    IF-xx: orquidearios de frío en el jardín (1A a 5I son lugares específicos dentro del orquideario)
    INV1: invernadero 1 (calor)
    INV2: invernadero 2 (frío)
    INV3: invernadero 3 (calor)
  • Añadir una accesión para una planta

    Obviamente seguimos incrementando nuestra colección, con plantas provenientes de fuentes comerciales, o recolectados de la naturaleza, más raramente procedentes de expediciones a zonas remotas de nuestro país, o recibimos plantas que fueron recolectadas ilegalmente.

    A veces tenemos que añadir plantas a la colección digital, sólo porque las tenemos físicamente, se encuentran en el jardín, con o sin su etiqueta, pero sin sus contrapartes digitales.

    Planta existente, se encuentra en el jardín con su propia etiqueta

    Esta actividad comienza con una planta, que se encuentra en una ubicación específica del jardín, con una etiqueta accesión y con el conocimiento de que el código de accesión no está en la base de datos.

    _images/plant.png _images/target.png _images/accession-008440.png

    1000000000000257000000504EC4536B148C3228_png

    Para este ejemplo, supongamos que se va a insertar la siguiente información en la base de datos.

    Accesión Especie Ubicación
    008440 Dendrobium ×”Emma White” Invernadero 1 (calor)

    Vamos directamente en el Editor de Accesión, comienzo escribiendo el nombre de la especie en el campo correspondiente. Por suerte, la especie estaba ya en la base de datos, de lo contrario utilizaría el botón agregar junto al campo de entrada.

    _images/accession-select_taxon.png

    Seleccionamos las especies correctas y llenamos unos campos más, dejando el resto a los valores por defecto:

    ID de la accesión Tipo de Material Cantidad Procedencia
    008440 Planta 1 Desconocido

    Después de esto, seguimos en el editor de planta, haciendo clic en Añadir plantas.

    No llenamos en la accesión los «lugares previsto», porque no sabemos cuál fue la intención original cuando la planta fue adquirida en primer lugar.

    En la Planta Editor, podemos insertar la Cantidad y la Ubicación. Y hemos terminado.

    La planta es ahora parte de la base de datos:

    10000000000001D5000000C7CF644BA0B1AB3FFF_png

    Planta formando un nuevo ingreso en la colección

    Esta actividad comienza con una nueva planta, que se acaba de adquirir de una fuente conocida, una etiqueta de la planta y una ubicación deseada en el jardín.

    Aquí hacemos más o menos lo mismo que para el caso de una planta que ya se encuentra en el jardín, hay dos diferencias: (1) conocemos la fuente de la planta; (2) adquirir esta planta fue una acción planificada, y tenemos la intención de colocarlo en un lugar específico en el jardín.

    De nuevo, vamos directamente en al Editor de Accesión, comenzamos escribiendo el binomial de la especie y seleccionamos de la lista de las correspondencias, o añadir sobre la marcha.

    ID de la accesión Tipo de Material Cantidad Fuente
    033724 Planta 1 especificado

    Después de esto, seguimos en el editor de planta, haciendo clic en Añadir plantas.

    En el Editor de Planta, insertamos la Cantidad y la Ubicación.

    Tenga en cuenta que la planta puede ser colocada inicialmente en un invernadero, antes de que llegue su lugar previsto en el jardín.

    Planta existente, en el jardín sin su etiqueta

    Cuando esto sucede, no podemos estar seguros de que la planta nunca haya estado en la colección. Actuaremos como si re-etiquetando la planta. Esto se describe en la siguiente sección.

  • Cuando asociamos físicamente una etiqueta a una planta, siempre hay la posibilidad de que algo ocurra a la planta (puede morirse) o la etiqueta (puede llegar a ser ilegible) o a la asociación entre las dos (pueden quedar separadas). Tenemos protocolos asistidos por software para estos eventos.

    Encontramos una planta muerta

    Cuando una planta es encontrada muerta, recogemos su etiqueta y la ponemos en una caja junto al terminal de inserción de datos, la caja está marcada «plantas muertas».

    Definitivamente por lo menos una vez por semana, la caja se vacía y se actualiza la base de datos con esta información.

    Las plantas muertas no son eliminadas de la base de datos, se quedan allí, pero consiguen una cantidad cero. Si se conoce la causa de la muerte, esto también se escribe en la base de datos.

    Una vez más recuerde que una planta no es una accesión y por favor, recuerde que no quitar los objetos de la base de datos, sólo tiene que añadir a su historia.

    Introduzca el código de la planta completo (algo así como 012345.1, o 2017.0001.3 y no necesita ceros iniciales ni comillas), haga clic en la fila correspondiente y haga clic en edit. cambie la cantidad a 0, especifique la razón y de preferencia también la fecha del cambio.

    Si necesita añadir más detalles acerca de la muerte de la planta, por favor, ponga una nota, y utilice la categoría «death_cause».

    Plantas con cantidad cero se muestran con un color diferente en la vista de resultados. Esto ayuda a distinguirlos de las plantas vivas.

    Encontramos una planta sin su etiqueta

    No podemos saber si la planta haya anteriormente estado en la colección o no. Asumimos que sí, y que se perdió su etiqueta.

    Perder una etiqueta de planta es lamentable, pero es algo que sucede. Lo que hacemos es poner una nueva etiqueta a la planta e indicamos claramente que la etiqueta es un reemplazo de un original.

    Luego manejamos el caso como por una nueva accesión, además ponemos en la accesión una nota con categoría «etiqueta», texto «etiquetar».

  • Hacer el seguimiento de diferentes fuentes de material vegetal

    Qué diferentes fuentes podemos tener

    En este jardín botánico, recibimos plantas de diferentes tipos de origen. Pueden ser de expediciones (plantas provenientes de la naturaleza, recogidas con permiso legal de MAE - Ministerio de Ambiente Ecuatoriano), plantas donadas sobre todo como regalos de coleccionistas o de empresas de comercialización de orquídeas, compradas, o plantas confiscadas (generalmente proveniente de incursiones del MAE a lo largo del país).

    Si la planta proviene una fuente salvaje

    En la pantalla de accesión contamos con la opción «origen». Cuando una planta viene de una fuente salvaje, podemos especificar su origen. Dado que queremos cumplir con ITF2 y que ghini 1.0 respeta sólo en parte esa norma, hay que tener un poco de cuidado. Las opciones que cumplen con el ITF2 son:

    • Salvaje: Accesión de fuente salvaje.
    • Cultivado: Propagación de una planta de fuente salvaje.
    • No salvaje: Accesión no rastreable a una fuente salvaje.
    • Datos insuficientes

    En el caso de una planta donada, es mejor poner información detallada así como una nota en la accesión de la planta; en el caso de una planta con un origen desconocido, seleccionamos la opción datos suficientes.

    Como usar la ficha de la fuente en el editor de accesión

    En esta sección podemos crear o utilizar un contacto, nuestra fuente de material vegetal. Podría ser de una expedición a un sitio de colecta, y en este caso especificar la región y el nombre de la expedición, o podría ser el nombre de la persona o empresa, que donó un lote específico de plantas.

    _images/accession-source-collection.png

    Una vez que usted seleccione o cree la información de contacto, en esta sección se despliegan más opciones, aquí puede especificar la región, en que se puede elegir el país de origen, y una ubicación específica dentro de la región, la georreferenciación de la información (incluidos los datos de GPS), la descripción del hábitat, el nombre del colector. Por último, recomiendo también escribir al lado del nombre del colector, la fecha de colecta (ej. Luis Baquero 11/10/2016).

    Plantas donadas, compradas o confiscadas

    Aun así útil para expediciones o para donantes donde la información principal es geográfica, este tabulador de fuente no es muy práctico en nuestros casos restantes: manejamos tres más categorías: confiscado, adquirido y dado, para estas categorías las opciones disponibles en el tabulador de fuente no aplica: demasiada información y no al punto.

    En estos casos, se añade un conjunto de notas, según el caso.

    — Plantas donadas

    Si la planta fue donada por un individuo, agregamos al individuo entre nuestros contactos y lo indicamos como fuente, a continuación añadimos las notas:

    categoría texto
    source-type donación
    source-detail Razón: Contribución científica JBQ

    — Plantas compradas

    Si la planta fue comprada, añadimos el dueño anterior entre nuestros contactos y lo indicamos como fuente, luego añadimos las notas:

    categoría texto
    source-type compra
    source-detail opcional, texto libre
    factura el número de la factura

    — Plantas decomisadas

    Si la planta fue confiscada, agregamos el dueño anterior entre nuestros contactos y lo indicamos como fuente, a continuación añadimos las notas:

    categoría texto
    source-type decomisada
    source-detail Posiblemente, detalles legales, número de ley …
  • Producción o reproducción de etiquetas

    Renovar etiquetas de plantas

    A veces hay que renovar las etiquetas, por ejemplo todo lo que está en un invernadero, o tal vez sólo un conjunto de plantas debido al riesgo que sus etiquetas se vuelvan ilegibles.

    En el primer caso es fácil seleccionar todas las plantas en el lugar, simplemente escriba el nombre de ubicación, o utilice la búsqueda location like <location name>.

    El segundo caso es un poco más delicado. Lo que hacemos es crear un Tag temporal que usamos para juntar todas las plantas que se encuentren en necesidad de una nueva etiqueta.

    Dada la selección, inicie la herramienta de informe, utilizando la plantilla mako “accession-label.svg””. Restaure los valores por defecto, y ya que las etiquetas son para imprimir y no grabar, utilizamos el color black en lugar que blue.

    Preparar las etiquetas de plantas que no están en la base de datos

    Para preparar un lote de 72 etiquetas, utilizamos una plantilla de mako, denominada accession-label.svg. Esta plantilla acepta parámetros, este es un ejemplo que produce las etiquetas de 025801 hasta 025872.

    _images/label-batch_72.png

    Consideramos las etiquetas de dos tipos: (1) plantas que el jardín acaba de adquirir; (2) o plantas en el jardín, sin una etiqueta. Distinguimos los dos casos añadiendo el texto extra “ret” para las plantas re-etiquetadas.

    Tenemos dos cajas con etiquetas de los dos tipos, listas para ser utilizadas.

  • Nuestro jardín cuenta con dos invernaderos de exposición y varios invernaderos de frío y de calor donde guardamos la mayor parte de nuestra colección. Movemos las plantas al área de exposición al florecimiento y al almacén cuando se vuelven menos llamativas para la exposición. Para cada planta en nuestra colección tenemos que saber su ubicación actual y la historia de los movimientos.

    Acción planificada

    Esta acción empieza al mover físicamente las plantas en el jardín, anotando el código de la planta o en papel, o en nuestra aplicación móvil, si tuviéramos una.

    A continuación, vamos a la terminal de escritorio y revisamos todas las plantas una por una, poniendo al día su ubicación en la base de datos. Es importante que la fecha del cambio de ubicación esté memorizada correctamente, porque esto nos dice cuánto tiempo una planta se queda en la exposición.

    Teniendo esa aplicación móvil, sólo sería cargar la información en el servidor y ya estaríamos.

    Corrección ex-post

    Al revisar el jardín, encontramos una planta en un lugar que es no lo que dice la base de datos. Actualizamos la información de la base de datos.

    Por ejemplo, la planta perteneciente a la accesión «012142», especies «Acineta sp», fue encontrado en «Invernadero 1», mientras que la base de datos dice que está en «ICAlm3».

    Todo lo que hacemos es encontrar la planta en la base de datos y actualizar su información. No cambiamos nada en la accesión, el cambio sólo es relativo a la planta.

    Escriba el código de accesión en el campo de búsqueda, entre comillas, y presione enter. Los resultados de la búsqueda ahora muestran la accesión, que nos informa cuantas plantas le pertenecen. Haga clic en el +, así que aparezcan en los resultados también las plantas pertenecentes a la accesión.

    Clic derecho sobre la fila de la planta, aparecen las tres opciones: «Editar, dividir, borrar», seleccione Editar, se abre el Editor de planta.

    Sólo corregir el campo Ubicación y haga clic en Aceptar.

    El InfoBox contiene información sobre el último cambio en el objeto:

    1000000000000608000002D2BA2D181475D5AD7B_png

    Para las plantas, aún más interesante, se construye una historia de los cambios, una lista que incluye cambios de ubicación, o cambios de cantidad.

    _images/1000000000000608000002D2BA2D181475D5AD7C.png
  • Como las plantas entrarán a la etapa de floración, podemos revisar su identificación directamente, o podemos tomar fotografías de los detalles de la flor, con la esperanza que más luego un especialista visitante pueda completar la identificación.

    Fotos

    Estamos practicando con ODK Collect, un pequeño programa que se ejecuta en los dispositivos android. Todavía no identificamos una mejor práctica en el uso de ODK Collect. Eche un vistazo a la issue correspondiente en github.

  • Regularmente, es necesario elaborar informes acerca de nuestra colección, informes que el Ministerio ecuatoriano de medio ambiente (MAE) exigen y que justifican la existencia misma del jardín.

    Producir informes

    Cada año el jardín botánico tiene que presentar un informe (informe anual de gestión) y el mantenimiento de la colección de orquídeas que cumpla con los requisitos del Ministerio ecuatoriano de medio ambiente.

    Para ello, partimos de seleccionar las plantas que tenemos que incluir en el informe. Podría ser toda accuisición en el año pasado:

    accession where _created between |datetime|2017,1,1| and |datetime|2018,1,1|
    

    O todas las plantas dentro de una ubicación, o todas planta que pertenecen a una especie, o simplemente todo (pero esto tomará tiempo):

    plant where location = 'abc'
    plant where accession.species.epithet='muricata' and accession.species.genus.epithet='Annona'
    plant like %
    

    Habiendo seleccionado los objetos de base de datos que queremos en el informe, inicie la herramienta de informe, que actúa en la selección.

Buscar en la base de datos

Puedes buscar en la base de datos con el fin de editar los datos, o porque se quiere producir un informe. De todos modos se empieza escribiendo algo en el campo de búsqueda

10000000000006090000001FA253BB9470AD4994_png

y ojalá sus resultados aparezcan en el resultado de búsqueda.

Búsqueda para editar (planta o accesión)

Al buscar con el fin de editar, usted quiere ser muy específico, y seleccionar el número menor posible de objetos. La búsqueda más afinada es la basada en el número de la planta: se conoce el código, se obtiene un objeto.

Si la planta no está allí, la pantalla tendrá este aspecto:

_images/plant-017701-not_found.png

Otro ejemplo, la planta 007701.1 está en la base de datos:

_images/plant-007701-found.png

Todos los campos con un fondo más oscuro en el infobox en la derecha son hipervínculos a otros objetos en la base de datos. Haciendo clic sobre uno de ellos tiene como efecto, ó el reemplazar el texto en el campo de búsqueda y ejecutar la nueva consulta ó simplemente agregar el objeto a los resultados.

Hacer clic en la accesión hace el último.

_images/plant-007701-accession.png

Disponemos ahora de planta y accesión en la vista del resultado de búsqueda y podremos editar ambas.

Búsqueda para informes

Al buscar con el fin de crear un informe, se desea que la búsqueda sea específica (no quiere Informar sobre objetos irrelevantes) y amplia (que no quere informar sobre un solo objeto).

A veces el informe mismo sugiere la consulta correspondiente, como por ejemplo: todas las plantas en invernadero 3. o: todas las plantas pertenecientes a especies en peligro (almacenamos esta información en una nota asociada a la especie); o: todas las plantas que agregamos a la colección durante este año;

plant where location.code = INV3
plant where accession.species.notes.note="endangered"
plant where accession._created > |datetime|2017,1,1|

De lo contrario una manera flexible para lograr esto es trabajar con etiquetas.

El uso de Tags como búsqueda mejorada

A veces queremos ejecutar la misma acción sobre objetos del mismo tipo, pero no podemos pensar rápidamente en una consulta que agrupe todo lo que necesitamos y deje por fuera lo que no necesitamos.

Se trata de un posible uso de los Tag. Comenzamos con una selección, y ponemos en un Tag temporal todos los objetos en la selección. Supongamos llamarlo «temporal».

Seguimos buscando y añadiendo objetos a la etiqueta temporal hasta que la etiqueta identifique todo lo que necesitamos.

Finalmente en el menú de etiquetas seleccionamos el que acabamos de crear (en nuestro ejemplo corresponde a la búsqueda tag = "temporal") y podemos invocar el informe.

Terminado el trabajo con una etiqueta temporal, no hace falta quedarse con ella, así que simplemente la borramos.

_images/tag-delete.png

Conozca las estrategias de búsqueda

Esto está muy bien documentado, «più non dimandare» y lea la documentación.

using ghini for a seed database

We keep getting involved in groups focusing on endagered plant seeds. They want to note down when seeds come in, but also when they go out to people that order the seed.

In ghini, we keep speaking of ›Plants‹, ›Locations‹, while such user groups focus on ›Seeds‹ and ›Jars‹ and ›Drawers‹ and ›Boxes‹ and ›Envelopes‹. So people wonder whether ghini could be adapted to their use case, or for directions on how to develop their own database.

Does ghini need being adapted for such a seed database?

no it doesn’t need any adaptation, it’s just that you need to read some of its terms differently.

the taxonomy part is just taxonomy, plant species information, no need to explain that, no way to interpret it otherwise.

›Accessions‹ and ›Plants‹, you know what an ›Accession‹ is, but since you’re consistently handling ›Plants‹ still only in seed form, the Wikipedia explanation of an accession sounds like this: it is a seed or group of seeds that are of the same taxon, are of the same propagule type (or treatment), were received from the same source, were received at the same time.

If you hold seeds in jars, or in other sort of containers that is able to hold hundreds of seeds, please make sure that a jar contains seeds of just one accession, as above described: same taxon, same treatment, same source, same time.

Each one of your ›Jars‹ of seeds is in ghini speak a ›Plant‹, and the amount of seeds in the ›Jar‹ is the ›Plant‹ ›quantity‹. An ›Envelope‹ is just the same as a ›Jar‹: a container of seeds from the same ›Accession‹, just presumably smaller.

A ›Box‹ (where you keep several ›Envelopes‹) or a ›Drawer‹ (where you keep several ›Jars‹) are in ghini speak a ›Location‹.

Since a ›Jar‹ or an ›Envelope‹ contains seeds from an ›Accession‹, you will clearly label it with its ›Accession‹ code (and trailing ›Plant‹ number). You might write the amount of seeds, too, but this would be repeating information from the database, and repeating information introduces an inconsistency risk factor.

How do I handle receiving a batch of seeds?

Nota

When we receive seeds, we either collect them ourselves, or we receive it from an other seed collector. We handle receiving them possibly on the spot, or with a small delay. Even when handled together with several other batches of seeds we received, each batch keeps its individuality.

We want to be later able to find back, for example, how many seeds we still have from a specific batch, or when we last received seeds from a specific source.

As long as you put this information in the database, as long as you follow the same convention when doing so, you will be able to write and execute such queries using ghini.

One possibility, the one described here, is based on ›Notes‹. (Ghini does not, as yet, implement the concept «Acquisition». There is an issue related to the Acquisition and Donation objects, but we haven’t quite formalized things yet.)

You surely already use codes to identify a batch of seeds entering the seed bank. Just copy this code in a ›Note‹, category “received”, to each ›Accession‹ in the received batch. This will let you select the ›Accessions‹ by the query:

accession where notes[category='received'].note='<your code>'

Use the “Source” tab if you think so, it offers space for indicating an external source, or an expedition. When receiving from an external source, you can specify the code internal to their organization. This will be useful when requesting an extra batch.

How do I handle sending seeds?

what you physically do is to grab the desired amount of seeds of the indicated species from a jar, put it in an envelope and send it. what you do from a point of view of the database is exactly the same, but precisely described in a protocol:

  • Use the database to identify the ›Jar‹ containing the desired amount of the right seeds.
  • remove that amount of seeds from the ›Jar‹ (decrement the quantity),
  • put the seeds in an ›Envelope‹ (yes, that’s a database object).
  • send the envelope (but keep it in the database).

this in short.

When I send seeds, it’s not just one bag, how does ghini help me keeping things together?

There’s two levels of keeping things together: one is while you’re preparing the sending, and then for later reference.

While preparing the sending, we advise you use a temporary ›Tag‹ on the objects being edited.

For later reference, you will have common ›Note‹ texts, to identify received and sent batches.

Can you give a complete example?

Right. Quite fair. Let’s see…

Say you were requested to deliver 50 seeds of Parnassia palustris, 30 of Gentiana pneumonanthe, 80 of Fritillaria meleagris, and 30 of Hypericum pulchrum.

step 1

The first step is to check the quantities you have in house, and if you do have enough, where you have them. You do this per requested species:

accession where species.genus.epithet=Parnassia and species.epithet=palustris and sum(plants.quantity)>0

Expand in the results pane the ›Accession‹ from which you want to grab the seeds, so you see the corresponding ›Jars‹, highlight one, and tag it with a new ›Tag‹. To do this the first time, go through the steps, just once, of creating a new ›Tag‹. The new tag becomes the active tag, and subsequent tagging will be speedier. I would call the tag ›sending‹, but that’s only for ease of exposition and further completely irrelevant.

Repeat the task for Gentiana pneumonanthe, Fritillaria meleagris, Hypericum pulchrum:

accession where species.genus.epithet=Gentiana and species.epithet=pneumonanthe and sum(plants.quantity)>0
accession where species.genus.epithet=Fritillaria and species.epithet=meleagris and sum(plants.quantity)>0
accession where species.genus.epithet=Hypericum and species.epithet=pulchrum and sum(plants.quantity)>0

Again highilight the accession from which you can grab seeds, and hit Ctrl-Y (this tags the highighted row with the active tag). Don’t worry if nothing seems to happen when you hit Ctrl-Y, this is a silent operation.

step 2

Now we prepare to go to the seeds bank, with the envelopes we want to fill.

Select the ›sending‹ ›Tag‹ from the tags menu, this will bring back in the results pane all the tagged ›Plants‹ (›Jars‹ or ›Envelopes‹), and will tell you in which ›Location‹ (›Drawer‹ or ›Box‹) they are to be found. Write this information on each of your physical envelopes. Write also the ›Species‹ name, and the quantity you can provide.

Walk now to your seeds bank and, for each of the envelopes you just prepared, open the ›Location‹, grab the ›Plant‹, extract the correct amount of seeds, put them in your physical envelope.

And back to the database!

step 3

If nobody used your workstation, you still have the Tag in the results pane, and it’s expanded so you see all the individual plants you tagged.

One by one, you have to ›split‹ the plant. This is a standard operation that you activate by right-clicking on the plant.

A plant editor window comes in view, in “split mode”.

Splitting a plant lets you create a database image of the plant group you just physically created, eg: it lets you subtract 30 items from the Gentiana pneumonanthe plant (group number one, that is the one in the jar), and create a new plant group for the same accession. A good practice would be to specify as ›Location‹ for this new plant the “out box”, that is, the envelope is on its way to leave the garden.

Don’t forget to delete the temporary “sending” ›Tag‹.

step 4

Final step, it represents the physical step of sending the envelope, possibly together with several other envelopes, in a single sending, which should have a code.

Just as you did when you received a batch of plants, you work with notes, this time the category is “sent”, and the note text is whatever you normally do to identify a sending. So suppose you’re doing a second sending to Pino in 2018, you add the note to each of the newly created envelopes: category “sent”, text: “2018-pino-002”.

When you finally do send the envelopes, these stop being part of your collection. You still want to know that they have existed, but you do not want to count them among the seeds that are available to you.

Bring back all the plants in the sending “2018-pino-002”:

plant where notes[category='sent'].note = '2018-pino-002'

You now need to edit them one by one, mark the ›quantity‹ to zero, and optionally specify the reason of the change, which would be ›given away‹, and the recipient is already specified in the “sent” ›Note‹.

This last operation could be automated, we’re thinking of it, it would become a script, acting on a selection. Stay tuned.