Buscar en Ghini¶
Buscar le permite ver, navegar y crear informes a partir de los datos. Puede realizar búsquedas introduciendo las consultas en el formato principal de búsqueda o utilizando el generador de consultas para que cree las consultas para usted. Los resultados de las búsquedas de Ghini se enumeran en la ventana principal.
Estrategias de Búsqueda¶
Ghini ofrece cuatro estrategias de búsqueda distinctas:
- por valor — implícitamente en todos dominios;
- por expresión — en unos campos implícitos de un dominio explícito;
- por query — en un sólo dominio;
- por nombre binomial — busca solo el dominio Especies.
Todas estrategias de búsqueda, con la notable excepción de la búsqueda del nombre binomial: son minúsculas.
Búsqueda por valor¶
Búsqueda por valor es la forma más sencilla de búsqueda. Ingrese una o más cadenas y ver qué partidos. El resultado incluye objetos de cualquier tipo (dominio) donde una o más de sus campos contienen uno o más de las cadenas de búsqueda.
No se especifica el dominio de búsqueda, todos están incluidos, ni indica los campos que desea, esto está implícito en el dominio de búsqueda.
La siguiente tabla ayuda a entender los resultados y te guía en la formulación de sus búsquedas.
Buscar dominio Resumen | ||
---|---|---|
nombre y abreviaturas | campo | Tipo de resultado |
family, fam | epithet (family) | Family |
genus, gen | epithet (genus) | Genus |
species, sp | epithet (sp) × | Species |
vernacular, common, vern | nombre | Species |
geography, geo | nombre | Geography |
accession, acc | code | Accession |
planting, plant | code × | Plant |
location, loc | code, name | Location |
contact, person, org, source | nombre | Contact |
collection, col, coll | locale | Collection |
tag, tags | nombre | Tag |
Ejemplos de búsqueda por valor serían: Maxillaria, Acanth, 2008.1234, 2003.2.1, indica.
A menos que explícitamente citado, espacios separan las cadenas de búsqueda. Por ejemplo, si usted busca “” bloque 10”” luego Ghini buscará las cadenas bloque y 10 y volver todos los resultados que coincidan con cualquiera de estas cadenas. Si desea buscar para bloque de 10 como una cadena entera entonces debe citar a la cadena como «»Block 10»””.
× Claves primarias compuestas
Un epíteto de especie significa poco sin el género correspondiente, asimismo un código de planta es único solamente dentro de la accesión a la que pertenece. En la terminología de la teoría de la base de datos, epíteto y código no son suficientes para formar una clave primaria respectivamente para especies y planta. Estos dominios necesitan una clave primaria compuesta.
Búsqueda por valor le permite buscar plantas por su código de planta completo, que incluye el código de la accesión. Tomados en conjunto, código de accesión y código de planta forman una clave primaria compuesta para plantas. Para especies, hemos introducido la búsqueda binomial, que se describe a continuación.
Búsqueda por la expresión¶
Búsqueda con expresión le da un poco más control sobre lo que está buscando. Usted restringe la búsqueda a un dominio específico, el software define los campos de búsqueda dentro del dominio especificado.
Una expresión se construye como <domain> <operator> <value>
. Por ejemplo la búsqueda: gen = Maxillaria
devuelve todos los géneros que coinciden con el nombre Maxillaria. En este caso el dominio es gen
, el operador es =
y el valor es Maxillaria
.
La tabla resumen búsqueda dominio te dice los nombres de los dominios de búsqueda, y por el dominio de búsqueda, los campos que se buscan.
La cadena de búsqueda loc like block%
devolverá todas las ubicaciones cuyo nombre o código comience en «block». En este caso el dominio es loc
(una abreviatura para location
), el operador es like
(esto viene del SQL y permite buscar «fuzzy»), el valor es block%
, los campos implícitamente examinados son name
y code
. El signo de porcentaje es utilizado como comodín por lo que si se busca block%
se encontrarán todos los valores que comienzan con block
. Si usted busca %10
, busca todos los valores que terminan en 10
. La cadena %ck%10
busca todos los valores que contienen ck
y acaban en 10
.
Cuando una consulta toma edades para completar
Dar una consulta, se necesita tiempo para calcular, el resultado contiene injustificadamente muchas entradas. Esto sucede cuando desea utilizar una estrategia, pero las cadenas no forman una expresión válida. En este caso Ghini cae de nuevo a * búsqueda por valor *. Por ejemplo la cadena de búsqueda “” gen lik maxillaria”” buscará la cadenas “” gen””, “” como “” y “” maxillaria””, devolver todo lo que coincida con al menos uno de los tres criterios.
Búsqueda de binomio¶
También puede realizar una búsqueda en la base de datos si sabes la especie, simplemente colocando unas letras iniciales del género y especie epítetos en el motor de búsqueda correctamente capitalizado, es decir: ** género epíteto ** con una letra capital principal, ** especie epíteto ** todo en minusculas.
De esta manera usted puede realizar la búsqueda “” así ha””.
Estos serían las iniciales de Solanum hayesii, o Solanum havanense.
La búsqueda de binomio viene a compensar la limitada utilidad de la búsqueda anterior por la expresión cuando se trata de buscar una especie.
Es la capitalización correcta ** Xxxx xxxx ** que informa el software de su intención de realizar una búsqueda de binomio. Guess segundo del software será una búsqueda por valor, que posiblemente resultará en más partidos que había esperado.
La solicitud similar “” por lo que ha”” volverá de nuevo, en una instalación nueva, más de 3000 objetos, empezando por la familia «Acalyp(ha)ceae», y terminando en geografía «Western (** para **) uth America».
Buscar por consulta¶
Las consultas «Query» permiten el máximo control de búsqueda. Con consultas usted puede buscar a través de las relaciones, columnas específicas, combinar criterios de búsqueda utilizando operadores booleanos como and
, or
, not
, y sus abreviaciones &&
, ||
, !
, encerrar en paréntesis, y más.
Póngase en contacto con los autores si desea más información, o si usted voluntario para documentar esto más a fondo. Mientras tanto pueden empezar a familiarizarse con la estructura de base de base de datos de Ghini.
Para nombrar algunos ejemplos:
plantaciones de la familia Fabaceae en ubicación bloque 10:
plant WHERE accession.species.genus.family.epithet=Fabaceae AND location.description="Block 10"
lugares que no contienen plantas:
location WHERE plants = Empty
accesiones, asociados a una especie de conocido nombre binomial (p. ej.: Mangifera indica):
accession WHERE species.genus.epithet=Mangifera AND species.epithet=indica
accesiones propagó en el año 2016:
accession WHERE plants.propagations._created BETWEEN |datetime|2016,1,1| AND |datetime|2017,1,1|
accesiones que modificó en los últimos tres días:
accession WHERE _last_updated>|datetime|-3|
Búsqueda con las consultas requiere algunos conocimientos de la sintaxis un poco y una idea de la extensa estructura de tabla de base de datos de Ghini. Ambos adquieren con la práctica y con la ayuda del generador de consultas.
El generador de consultas¶
Ghini ofrece un generador de consultas, que le ayuda a construir consultas complejas de búsqueda a través de un punto y haga clic en interfaz. Para abrir el clic Query Builder el | querybuilder | icono a la izquierda de la entrada de búsqueda o seleccione: menuselection: “Herramientas–> generador de consultas” en el menú.
Una ventana aparecerá, que le llevará a través de todos los pasos necesarios para construir una consulta correcta que se entiende por estrategia de búsqueda de consulta de Ghini.
En primer lugar indica el dominio de búsqueda, esto permitirá que el generador de consultas completo su interfaz gráfica de usuario, luego añades tantas cláusulas lógicas como usted necesita, conectándolas con una “” y “” o “” o “” operador binario.
Cada apartado está formado por tres partes: una propiedad que se puede llegar desde el inicial dominio de búsqueda, un operador de comparación que seleccione de la lista desplegable, un valor que puede escribir o seleccionar de la lista de valores válidos para el campo.
Agregar muchos buscar propiedades como usted necesita, haciendo clic en el signo más. Seleccione o próximo al nombre de propiedad para elegir cómo se combinarán las cláusulas en la consulta de búsqueda.
Cuando haya terminado de construir la consulta haga clic en Aceptar para realizar la búsqueda.
En este momento el generador de consultas escribe la consulta en el campo de búsqueda y la ejecuta. Ahora puedes editar la secuencia como si hubiera escrito usted mismo. Observe cómo los valores de lado de mano derecha son interpretados por el generador de consultas y encerrados en comillas simples si los reconoce como cadenas, dejados como están si se ven como números ó son uno de los dos textos reservados None
o Empty
. Usted puede editar la consulta e insertar comillas si necesita, por ejemplo, si usted necesita buscar literalmente la cadena Empty
.
None
es el valor de un campo vacío. No es lo mismo que la cadena larga cero ''
ni el numérico 0
ni el boolean False
ni el set Empty
: None
indica que el campo no tiene valor en absoluto.
Empty
es el conjunto vacío. Siendo un conjunto, puede ser comparado con otros conjuntos (por ejemplo: todas plantas de una accesión o todas accesiones de una especie), no con elementos (por ejemplo: cantidad de una planta, que es un número, o una descripción de un lugar, que es un texto). Sin embargo, el generador de consultas no le permite elegir un valor de lado de mano izquierda en un conjunto, sino que espera la selección de un campo. Escoja cualquier campo: en el momento de producción de la consulta, cuando el generador de consultas se encuentra con una cláusula con valor de lado de mano derecha el literal Empty
, el nombre del campo es ignorado y le permite comparar el conjunto de la izquierda con el Empty
de la derecha.
No tenemos literales False
y True
. Estos son valores con tipo, y el generador de consultas no sabe cómo producirlos. En lugar de False
escriba 0
y en lugar de True
escriba 1
.
Gramática de consulta¶
Para los que no temen un poco de precisión formal, el código siguiente BNF te da una idea bastante precisa de la gramática aplicada la estrategia de búsqueda de la consulta. Informalmente se definen algunas categorías gramaticales; cualquier falta que quedan a su fértil imaginación; los literales se incluyen comillas simples; la gramática es sobre todo mayúsculas y minúsculas, a menos que se indique lo contrario:
query ::= domain 'WHERE' expression
domain ::= #( one of our search domains )
expression ::= signed_clause
| signed_clause 'AND' expression
| signed_clause 'OR' expression
;
signed_clause ::= clause
| 'NOT' clause #( not available in Query Builder)
;
clause ::= field_name binop value #( available in Query Builder)
| field_name set_binop value_list
| aggregated binop value
| field_name 'BETWEEN' value 'AND' value
| '(' expression ')'
;
field_name ::= #( path to reach a database field or connected table )
aggregated ::= aggregating_func '(' field_name ')'
aggregating_func ::= 'SUM'
| 'MIN'
| 'MAX'
| 'COUNT'
;
value ::= typed_value
| numeric_value
| none_token
| empty_token
| string_value
;
typed_value ::= '|' type_name '|' value_list '|'
numeric_value ::== #( just a number )
none_token ::= 'None' #( case sensitive )
empty_token ::= 'Empty' #( case sensitive )
string_value = quoted_string | unquoted_string
type_name ::= 'datetime' | 'bool' ; #( only ones for the time being )
quoted_string ::= '"' unquoted_string '"'
unquoted_string ::= #( alphanumeric and more )
value_list ::= value ',' value_list
| value
;
binop ::= '='
| '=='
| '!='
| '<>'
| '<'
| '<='
| '>'
| '>='
| 'LIKE'
| 'CONTAINS'
;
set_binop ::= 'IN'
Tenga en cuenta que el lenguaje de consulta de Ghini es bastante un poco más complejo que lo que puede producir el generador de consultas: las consultas se pueden construir con el generador de consultas forman un subconjunto apropiado de consulta reconocido por el software:
query ::= domain 'WHERE' expression
domain ::= #( one of our search domains )
expression ::= clause
| clause 'AND' expression
| clause 'OR' expression
;
clause ::= field_name binop value
;
field_name ::= #( path to reach a database field or connected table )
value ::= numeric_value
| string_value
;
numeric_value ::== #( just a number )
string_value = quoted_string | unquoted_string ;
quoted_string ::= '"' unquoted_string '"'
unquoted_string ::= #( alphanumeric and more )
binop ::= '='
| '=='
| '!='
| '<>'
| '<'
| '<='
| '>'
| '>='
| 'LIKE'
| 'CONTAINS'
;