# Atlas.ti/Exploración

Tal como he venido exponiendo hasta ahora el proceso de trabajo con Atlas.ti, y a pesar de las advertencias que he realizado, podemos tener la falsa impresión de que el paso del trabajo textual de segmentación y codificación al trabajo conceptual que tiene su punto culminante en la representación gráfica en forma de networks, es algo casi automático y “natural”. Nada más lejos de la realidad; como sabe perfectamente cualquier persona que haya tenido una mínima experiencia con el análisis cualitativo, sólo es posible llegar a unas conclusiones, obtener unos resultados (casi nunca definitivos) después de someter los datos a un riguroso desmenuzamiento, después de un constante “ir y venir” por los datos brutos, las citas, los códigos y las anotaciones.
Como hemos podido ir viendo, parecen evidentes las ventajas que ofrece este soporte informatizado frente al trabajo “manual” de análisis, pero aún así, esas ventajas podrían no entrañar una diferencia significativa como para utilizarla a no ser que dispusiéramos, además de lo visto hasta el momento, de herramientas que facilitaran ese desmenuzamiento al que me refería, que facilitaran la selección y recuperación del trabajo realizado, que permitieran “navegar” por nuestros datos.
De hecho, no sólo necesitamos herramientas que faciliten el análisis, sino que necesitamos herramientas que eviten que lleguemos a perdernos entre la multitud de citas, códigos... herramientas que eviten que los árboles no nos dejen ver el bosque, es decir, herramientas que nos permitan explorar el trabajo realizado, los objetos que hemos ido creando y sus relaciones.

## Buscar texto

Como hemos visto anteriormente, la función de autocodificación se basa, en parte, en las (sofisticadas) posibilidades de búsqueda de texto que ofrece el programa. Por supuesto, esas posibilidades podemos utilizarlas no únicamente para la autocodificación, sino para realizar cualquier búsqueda de texto en nuestros documentos primarios, sea esta con el objetivo de autocodificar o con cualquier otro objetivo.
Existen tres modalidades de búsqueda de texto: Búsqueda simple, búsqueda por categorías, y búsqueda GREP . Podemos acceder a las tres modalidades con la opción Documents->Search o con el icono de la barra de herramientas de documentos (vertical). La ventana que aparece tiene las siguientes secciones:
* Lista desplegable para escritura y almacenamiento de distintas secuencias de búsqueda.
* Ejecutar la búsqueda hacia adelante o hacia atrás (en la modalidad de búsqueda por categorías sólo es posible la búsqueda hacia adelante)
* Activar/desactivar la discriminación de mayúsculas/minúsculas en la búsqueda (esta opción está desactivada en la modalidad de búsqueda por categorías)
* Activar/desactivar la modalidad de búsqueda GREP (esta opción está desactivada en la modalidad de búsqueda por categorías)
* Opciones de la búsqueda por categorías (ver más adelante)
* Barra de estatus. Indica el tipo de búsqueda activo.

### Búsqueda simple

La búsqueda simple es similar a la que podemos realizar con otros programas como procesadores de texto, teniendo en cuenta que podemos utilizar el signo "*" para indicar cualquier carácter, pero que no se aceptan otros caracteres habituales como "?".
Por ejemplo, la búsqueda de "dona*" encontraría "donantes" y también "donar". El asterisco es equivalente a decir "cualquier carácter que venga a continuación", por lo que el texto que quedará seleccionado al buscar "dona*" será “dona” más todos los caracteres a continuación hasta el final del párrafo.
También hay que tener en cuenta que la búsqueda se realiza sobre la cadena de caracteres, independientemente de que estos formen una palabra completa o no. Por ejemplo, si introducimos como expresión de búsqueda la palabra "por", encontrará tanto esa palabra como todas aquellas en las que "por" forma parte (porque, porcentaje, esporádico...)

### Búsqueda por categorías

La diferencia entre la búsqueda simple y la búsqueda por categorías consiste en que en esta última podemos incluir, en una misma sentencia de búsqueda, diferentes términos que se buscarán de forma simultánea.
Podríamos especificar, por ejemplo, una búsqueda en la que se incluyan diferentes modalidades de la palabra "donación" (separados por una barra vertical y sin espacios en blanco). O también podríamos definir una búsqueda para encontrar términos relacionados con diferentes factores que provocan miedo a la donación.
Otra particularidad de la búsqueda por categorías es que podemos almacenar estas búsquedas de forma que podamos volver a ejecutarlas posteriormente sin necesidad de tener que volver a escribirlas. Para ello, simplemente tenemos que dar un nombre a la sentencia de búsqueda. En el ejemplo anterior podríamos identificar esa búsqueda como "MIEDOS" utilizando ":=" como separador entre el nombre de la categoría de búsqueda y los términos que la componen.
Las categorías de búsqueda creadas de esta forma quedarán almacenadas en la lista desplegable y podrán ser utilizadas ellas mismas como elemento dentro de otras categorías de búsqueda.
Por ejemplo, si queremos buscar intervenciones en las que se hace referencia a diferentes razones que dificultan la donación, podríamos crear una categoría de búsqueda "RAZON NO" que tuviera como texto a buscar "tiempo" (referencias a la falta de tiempo para hacer la donación) y la categoría de búsqueda creada anteriormente "MIEDOS" . Esta categoría RAZON NO encontraría, por lo tanto, todas las apariciones de "tiempo", "pinchazo", "aguja", "mareo", "ridículo" y "cantidad".
Hay que tener en cuenta que una vez que cerremos la sesión con Atlas, desaparecerán las categorías así definidas. Para poder utilizarlas durante más de una sesión hay que archivarlas mediante la opción Save Categories, a la que podemos acceder con el botón Options de la ventana de búsqueda. Atlas pedirá un nombre de archivo con el que salvar la lista, y sugerirá como nombre por defecto “SEARCHBIB.SKT”
Podemos sobreescribir ese archivo o dar un nombre diferente, teniendo en cuenta que si sobreescribimos, la lista que acabamos de salvar será la que cargará Atlas por defecto la próxima vez que utilicemos el programa. En el caso de dar un nombre de archivo diferente, para poder recuperar esa lista en futuras sesiones, tendremos que utilizar la opción Load Categories. También podemos eliminar elementos de la lista de categorías con la opción Delete Category.

### Búsqueda GREP

La modalidad de búsqueda GREP ofrece la posibilidad de realizar búsquedas más sofisticadas (como por ejemplo la búsqueda de texto de cualquier longitud entre paréntesis) mediante la utilización de marcadores especiales.
Expresiones de Búsqueda GREP :
| Expresión | Explicación |
| ^ | Limita la expresión de búsqueda que sigue al marcador al principio de la línea. Si se utiliza como el primer carácter dentro de una expresión entre paréntesis, excluye de la búsqueda el rango especificado. |
| $ | Limita la expresión de búsqueda precedente al final de la línea. |
| . | Localiza cualquier carácter. |
| * | Localiza cualquier cantidad (o su ausencia) de la expresión precedente. |
| + | Localiza al menos una ocurrencia de la expresión precedente. |
| ? | Localiza cero o una ocurrencia de la expresión precedente. |
| [ ] | Localiza un rango de caracteres. |
| :d | Localiza cualquier dígito. |
| \ | Carácter utilizado cuando en la expresión se debe incluir uno de los caracteres especiales anteriores. |
A continuación podemos ver algunos ejemplos
Ejemplos de Búsqueda GREP :
| Quiero buscar | Expresión | Explicación |
| Intervención de entrevistador o participante | ^.:d: | ^ = La búsqueda se realiza sólo en principio de línea . = Busca cualquier carácter :d = seguido de un dígito : = seguido de ":" |
| Texto de cualquier longitud entre paréntesis | (.*) | ( = Busca un paréntesis de apertura . = seguido de texto * = de cualquier longitud ) = y un paréntesis de cierre |
| Texto de cualquier longitud entre corchetes | \[.*\] | Igual que en el ejemplo anterior sustituyendo paréntesis por corchetes y estos precedidos de un signo \ para identificarlos como carácter y no como delimitador especial |
| Años entre 1995 y 1999 | 199[5-9] | 199 = Busca 199 [5-9] = Seguido de un dígito entre 5 y 9 |
| Dònam; Donam; Dòna'm, Dona'm, Dòna'n, Dona'n | d.na'?[mn] | . = Busca cualquier carácter (en este caso tanto ò como o) ? = busca el apóstrofe o su ausencia [mn] = la palabra puede acabar en m o en n |

## Búsqueda ampliada (Object Crawler)

La utilidad de búsqueda, como hemos visto, realiza búsquedas de cadenas de texto en los documentos primarios asignados a la Unidad Hermenéutica. Una nueva herramienta, que aparece en la versión 5 del programa, el Object Crawler, nos permitirá ampliar la búsqueda a cualquier contenido textual de la Unidad Hermenéutica, es decir, podremos realizar la búsqueda no sólo en los documentos primarios, sino también en las anotaciones, comentarios…, y cualquier otro objeto o campo que incluya texto. Estas búsquedas, además, podrán realizarse utilizando tanto la opción de “búsqueda por categorías” como la de “búsqueda GREP” descritas previamente.
Podemos encontrar esta herramienta en el menú Tools->Object Crawler. La pantalla que aparecerá está compuesta por tres secciones. En la primera será donde realizaremos la definición de la búsqueda; en la segunda definiremos los objetos a los que queremos aplicar la búsqueda; y finalmente en la tercera se nos mostrarán los resultados de la búsqueda.
En la sección dedicada a la definición de la búsqueda (Define Query) realizaremos la definición de la misma (4) siguiendo los mismos principios comentados anteriormente para la herramienta de búsqueda, aunque debemos tener en cuenta que mientras anteriormente podíamos especificar si la búsqueda debía diferenciar entre mayúsculas y minúsculas o no, eso no es posible en este caso, y la búsqueda siempre será sensible a esta diferencia (no será lo mismo buscar “Miedo” que “miedo”).
También podemos (5) definir la búsqueda como tipo GREP o no. Finalmente, tendremos que definir (6) el ámbito de la búsqueda, es decir, a qué propiedades de los objetos que posteriormente seleccionaremos queremos que ésta se aplique. Podemos seleccionar todas (marcando la casilla All) o algunas de las propiedades: nombre (del objeto, por ejemplo la etiqueta de un código), autor del mismo, fecha de creación, comentario o el contenido. En este último caso haríamos que la búsqueda se aplique no sólo a las propiedades del objeto, sino también a su contenido. Por ejemplo, si seleccionamos el recuadro Name y el recuadro Content y posteriormente seleccionamos como objeto las anotaciones, la búsqueda se aplicará tanto a la etiqueta (nombre) como al contenido de las mismas.
En la segunda sección del Object Crawler, podemos seleccionar los objetos de la Unidad Hermenéutica a los que se aplicará la búsqueda definida previamente. De nuevo podemos elegir por seleccionar todos los objetos (marcando la casilla All objects) o sólo alguno(s) de ellos. Podemos aplicar la búsqueda a la totalidad de objetos de la Unidad Hermenéutica (incluida ella misma).
Una vez que hemos realizado los pasos previos podemos hacer clic en el icono Display Results para comprobar los resultados de la búsqueda.
Si seleccionamos alguno de los objetos resultado de la búsqueda, en la parte inferior de la ventana se nos ofrecerá información adicional sobre el resultado de la búsqueda.

## Code-Tree y Code-Forest

Otras herramientas que nos ayudarán a “no perdernos” son las que permiten explorar la estructura de códigos generada, visualizándola como un árbol o como un bosque. Ambas herramientas, Code Tree y Code Forest son accesibles desde el menú Codes->Miscellaneous. En el primer caso obtendremos una representación de los códigos relacionados con el código previamente seleccionado; mientras que en el segundo obtendremos una representación similar en la que podremos ver todo el “bosque” de códigos, es decir, la totalidad de los códigos de la Unidad Hermenéutica.
A la izquierda del nombre de los códigos podremos encontrar un icono con el signo + ó – que es el que nos permite “abrir” o “cerrar” las ramas de cada uno de los árboles, es decir, visualizar o no la estructura de relaciones del código en cuestión.

## Explorador de objetos

Probablemente la herramienta más útil para explorar los objetos creados durante el proceso de análisis es el “Explorador de Objetos” (Object Explorer), puesto que nos permitirá, como he comentado anteriormente, una visualización más precisa de los códigos y sus relaciones, y además la visualización del resto de objetos que forman nuestra Unidad Hermenéutica.
Podemos acceder a esta herramienta desde el menú Extras->Object Explorer, que nos presentará de nuevo una estructura jerárquica que tiene como raíz, en este caso, a la Unidad Hermenéutica y como ramas principales a cada uno de los objetos de la misma, los cuales a su vez podrán expandirse en sucesivas ramificaciones que permitirán la visualización de los otros objetos con los que estén relacionados.
Las diferencias con los anteriores “exploradores” no se limitan, sin embargo, a la inclusión de un mayor número de objetos, sino que tienen que ver también con la posibilidad de realizar diferentes acciones sobre cada uno de ellos. Utilizando los menús contextuales (que evidentemente serán diferentes en función del tipo de objeto seleccionado) pueden realizarse prácticamente todas las acciones posibles sobre los diferentes objetos. Podremos, por ejemplo, navegar por las citas utilizando la opción Display in Context del menú contextual de citas (o simplemente haciendo doble clic sobre las citas), o podremos utilizar las diferentes opciones de codificación, incluyendo la posibilidad de codificar arrastrando cualquier código hasta una cita seleccionada en el documento primario.

## Explorador de coocurrencias

Otra de las herramientas de exploración, que aparece con la versión 5 del programa, es el explorador de coocurrencias, que permite visualizar los códigos que cumplen la condición de concurrir con otros (ver concepto de concurrencia en Importar nodos que “coocurren”). Podemos acceder a esta herramienta con la opción Tools->Coocurrence Explorer.
La apariencia es muy similar a la de los exploradores anteriores, aunque en este caso en la ventana aparecerá, además del icono de códigos, un icono, también extensible, de documentos. Para cada uno de los documentos primarios aparecen una serie de códigos que, a su vez, incluyen una serie de citas. En este caso, los códigos que aparecen no son todos los que forman parte de la Unidad, sino únicamente aquellos que, en el caso del documento seleccionado, están codificados de forma concurrente con otros códigos. Las citas, por su parte, son aquellas en las que se produce la concurrencia. Aunque esta visualización no nos permite saber con qué otros códigos se produce la concurrencia, haciendo doble clic en cualquiera de las citas podremos verla en contexto y, por lo tanto, comprobar dichas coocurrencias.
Al hacer clic sobre el icono de códigos se nos mostrará la lista de todos los códigos que presentan alguna concurrencia y, al hacer clic sobre alguno de ellos, en este caso sí que veremos cuáles son esos códigos. De nuevo podemos ver las citas en las que se produce la concurrencia haciendo clic sobre el código.

## Query Tool

La herramienta Query es una de las utilidades más interesantes que nos ofrece el programa. Con ella podemos recuperar citas a partir de los códigos asociados a las mismas. Es decir, nos permite definir expresiones en las que especificamos una serie de condiciones que deben de cumplir uno o varios códigos para recuperar las citas asociados a los mismos. De esta forma podríamos obtener, por ejemplo, “un listado de las citas codificadas con el Código A y al mismo tiempo el Código B”, o “un listado de las citas codificadas con el Código A pero no con el Código B”, etc.
La forma más simple de recuperación de citas a partir de códigos es la que hemos venido utilizando hasta el momento a través del manager de códigos (o, como acabamos de ver, con el Object Explorer). Cuando hacemos clic sobre un código que está relacionado con varias citas nos aparece el listado de las mismas; podríamos decir, por lo tanto, que de esa forma definimos la expresión de interrogación (Query) más simple posible: “Todas las citas codificadas como...” Hablar de la Query Tool significa, por lo tanto, hablar de interrogaciones más complejas.
Imaginemos, por ejemplo, que hemos realizado una serie de entrevistas grupales en las que, en cada grupo, han intervenido hombres y mujeres fumadores y no fumadores (con lo que tendríamos cuatro categorías de personas), y en las que, entre otros temas, se ha hablado de la cantidad de tabaco fumada, de los riesgos percibidos sobre la salud, de la relación fumadores-no fumadores, etc. Si en algún momento de nuestro análisis quisiéramos saber, por ejemplo, qué han dicho las mujeres-fumadoras sobre los riesgos para la salud, si hemos realizado el trabajo de codificación de una forma lo suficientemente exhaustiva, podríamos “interrogar” al programa para que nos recuperara esa información de una forma prácticamente inmediata, sin necesidad de tener que recurrir a releer una vez más los datos brutos o a repasar un enorme montón de fichas.
Esta forma de recuperación de citas tiene sentido, por supuesto, como una forma de centrar la atención en algunos aspectos concretos del texto, pero la utilidad de la query va mucho más allá, puesto que permitirá además “almacenar” los resultados de la búsqueda en lo que se denomina Supercódigo, es decir, un código idéntico en lo esencial al resto de códigos pero que presenta la característica especial de que las citas con las que está relacionado son el resultado de una query y de que se actualiza automáticamente incluyendo las nuevas citas que cumplan la condición especificada en la query.

### La pantalla Query

Podemos acceder a la Query Tool utilizando el icono “Prismático” de la barra de herramientas vertical o desde el menú Codes->Output->Query Tool.
En la compleja ventana que nos aparece podremos tanto definir la query como ver los resultados. Las partes que la componen son las siguientes:
* Códigos y Familias de Códigos existentes en la Unidad Hermenéutica. Son los Operandos que utilizaremos en la definición de la query. La selección de alguno de ellos (doble clic) hará que en la ventana de resultados (5) aparezcan las citas relacionadas.
* Operadores de definición de las condiciones lógicas que deben cumplir las citas para ser recuperadas.
* Lista de las expresiones formuladas (desaparecen si se cierra la ventana).
* Última query definida (los resultados que aparecen en (5) son los correspondientes a esta expresión).
* Citas que cumplen las condiciones de la última query definida.
* Posibilidad de seleccionar (para los operadores de distancia) la distancia máxima en líneas que debe separar a dos citas para que sean incluidas en los resultados.
* Acceso a una nueva ventana que permite seleccionar los documentos a los que se aplicará la query.
* Convierte los resultados de la query en un Super-Código (ver más adelante).
* Iconos que permiten eliminar una cita de la lista de resultados (no se borra la cita, sólo se la hace desaparecer de esta lista); o imprimir la lista de resultados.
* Opciones de edición de las expresiones
** C = Borra todas las expresiones introducidas previamente.
** S = Invierte el orden de los dos últimos operandos.
** P = Duplica el último operando introducido.
** Recalc = Vuelve a calcular la query después de hacer cambios en la selección de documentos (7 en la ilustración anterior) o en la distancia en líneas (6 en la ilustración anterior).
** Undo = Deshace la última acción.
** Redo = Rehace la última acción.

### Sintaxis

La definición de una query implica, habitualmente, combinar un operando o más con un operador, es decir, definir una expresión lógica (operadores) que debe relacionarse con los códigos (operandos) para que sean recuperadas una serie de citas.
Si queremos saber las citas que están relacionadas con el CódigoA y con el CódigoB, nuestros operandos serían ambos códigos y nuestro operador sería la condición lógica Y. De esta forma, nuestra tentación sería, probablemente, la de escribir algo de este tipo:
| Operando 1 | Operador | Operando 2 |
| CódigoA | Y | CódigoB |
Esta es la forma que habríamos utilizado muchos de nosostros, por lo menos todos aquellos no acostumbrados al lenguaje RPN (Reverse Polish Notation) de las calculadoras HP, en el que se deben de introducir en primer lugar los operandos y luego los operadores. De esta forma, nuestra interrogación anterior, debería formularse de la siguiente forma:
| Operando 1 | Operando 2 | Operador |
| CódigoA | CódigoB | Y |
Aunque el cambio de “sintaxis” puede parecernos complicado, la expresión anterior es realmente sencilla, puesto que implica únicamente una expresión lógica (operador). ¿Qué pasaría si quisiéramos incluir una segunda condición? Por ejemplo si queremos obtener las “citas codificadas como CódigoA y como CódigoB o como CódigoC”.
Antes de ver la sintaxis correcta en Atlas, miremos cómo habríamos construido esta expresión con la sintaxis “tradicional”:
| Operando 1 | Operador | Operando 2 | Operador | Operando 3 |
| (CódigoA | Y | CódigoB) | O | CódigoC) |
| CódigoA | Y | (CódigoB | O | CódigoC) |
En este caso, dependiendo del tipo de resultado que quisiéramos, habríamos seguido la lógica anterior (operando-operador-operando) y habríamos utilizado paréntesis para establecer el orden en que quisiéramos realizar las operaciones. De nuevo, en Atlas las cosas no son así (o mejor, dicho, para el lenguaje RPN las cosas no son así), puesto que no se utilizan paréntesis, y por lo tanto el orden en que se realizarán las operaciones vendrá definido por el orden en que éstas aparezcan, con lo que los casos anteriores tendrían su equivalente RPN en los siguientes:
| Operando 1 | Operando 2 | Operador | Operando 2 | Operador |
| Resultado | CódigoB | Y | CódigoC | O |
| CódigoB | CódigoC | O | CódigoA | Y |
Aunque parezca complicado, puede que lo entendamos un poco mejor si consideramos que, siempre, la combinación operando+operando+operador da un resultado y que ésta misma combinación se convierta ella misma en un operando que puede formar parte, por lo tanto, de una nueva combinación, como podemos ver en el esquema siguiente.
| Operando 1 | Operando 2 | Operador | | | | |
| Resultado | Resultado | Resultado | | | | |
| Operando 1 | Operando 1 | Operando 1 | Operando 2 | Operador | | |
| Resultado | Resultado | Resultado | Resultado | Resultado | | |
| Operando 1 | Operando 1 | Operando 1 | Operando 1 | Operando 1 | Operando 2 | Operador |

### Operadores

Los distintos tipos de operadores que pueden utilizarse en las expresiones se encuentran agrupados en tres categorías: operadores booleanos, operadores semánticos y operadores de proximidad.

#### Operadores Booleanos

Estos operadores permiten construir expresiones lógicas en las que se combinan diferentes códigos con las condiciones Or, Xor, And y Not.
Query Tool: Operadores Booleanos :
| Operador | Sintaxis | Acción |
| OR | A B OR | Selecciona las citas presentes en el código (o familia de códigos) A o en el código B |
| XOR | A B XOR | Selecciona las citas presentes únicamente en A o en B (Y no las citas comunes a A y B) |
| AND | A B AND | Selecciona las citas presentes en A y en B. |
| NOT | A NOT | Selecciona las citas no presentes en A |

#### Operadores Semánticos

Mientras que los operadores booleanos pueden utilizarse sin necesidad de que exista ningún tipo de relación previamente definida entre los operandos, eso no es así en el caso de los operadores semánticos, puesto que para poder utilizarlos es necesario haber definido previamente alguna relación entre los operandos, relación que, por otra parte, debe ser del tipo transitiva. Además, en este caso sólo pueden utilizarse códigos como operandos (no se permiten las familias de códigos).
Query Tool: Operadores Semánticos :
| Operador | Sintaxis | Acción |
| DOWN | A DOWN | Selecciona las citas relacionadas con el código y con cualquiera de sus subtérminos, (descendientes) es decir, aquellos otros códigos con los que se ha establecido una relación. |
| UP | A UP | Recupera las citas relacionadas con el código y sus superiores directos (sólo un nivel). |
| SIBLINGS | A SIBLINGS | Recupera las citas relacionadas con el código, con sus descendientes directos (hijos) y los subtérminos directos de un código superior (hijos). No recupera las relacionadas con el nivel superior (padre). |
Teniendo en cuenta estas posibilidades, podemos plantearnos una estrategia de codificación, en la que podemos definir unos códigos genéricos como códigos libres, es decir, códigos no relacionados con citas, para utilizarlos únicamente como elemento agrupador que nos permita posteriormente utilizar una query del tipo anterior para poder recuperar las citas relacionadas con los códigos específicos o con los códigos genéricos.
Evidentemente, podríamos obtener los mismos resultados con querys que utilizaran operadores boléanos. Por ejemplo, para obtener la lista de todas las citas relacionadas con los miedos podríamos escribir:
| Aguja Ridicul OR | Cantidad OR | Contagio OR |
Pero es evidente que el operador semántico SUB es más simple en cuanto a sintaxis. Además, para obtener el resultado correcto deberíamos ser del todo precisos en cuanto a los códigos incluidos en la query, lo que podría llevar a errores ocasionados por el olvido de alguno de ellos; en cambio con el operador SUB no es necesario recordar los diferentes códigos de “miedos”, sólo es necesario que previamente los hallamos vinculado con el código libre Miedo.
Por otra parte, este tipo de relación puede parecer muy similar a la que realizamos con la agrupación en familias. Es decir, definir unos vínculos del tipo is a entre diferentes códigos, puede parecer idéntico a definir una familia de códigos, puesto que cada uno de sus miembros es un miembro de la familia. La diferencia entre ambos tipos de estrategias estriba en las posibilidades que nos ofrecen. Las familias pueden ser útiles como una forma de agrupación, como una forma de filtrado, o incluso como una forma de recuperación de citas, mientras que la utilización de un código genérico (libre) relacionado con otros códigos específicos permite no sólo lo anterior, sino también el establecimiento de relaciones entre ese y otros códigos. En el ejemplo anterior, Razones No puede ser un código de ese tipo que relacionamos con el código Razones. En el caso de haber definido una familia de códigos Razones No no podríamos establecer ningún tipo de relación.

#### Operadores de Proximidad

Por último, los operadores de proximidad, como su nombre indica, permiten recuperar citas en función de la relación espacial existente entre diferentes códigos.
Query Tool: Operadores de Proximidad :
| Operador | Sintaxis | Acción |
| WITHIN | A B WITHIN | recupera todas las citas codificadas con A que están dentro de citas codificadas con B |
| ENCLOSES | A B ENCLOSES | recupera todas las citas codificadas con A que contienen citas codificadas con B |
| OVERLAPPED BY | A B OVERLAPPED BY | recupera todas las citas codificadas con A que están solapadas con citas codificadas con B |
| OVERLAPS | A B OVERLAPS | Recupera todas las citas codificadas con A que solapan citas codificadas con B |
| FOLLOWS | A B FOLLOWS | Recupera todas las citas codificadas con A que siguen a citas codificadas con B. Tanto en este caso como en el siguiente, se pueden especificar el número máximo de líneas de distancia a las que se encuentran las citas |
| PRECEDES | A B PRECEDES | Recupera todas las citas codificadas con A que van seguidas con citas codificadas con B |
| COOCCUR | A B COOCUR | Encuentra todas las citas que co-ocurren con B. Puede considerarse como un compendio de algunos de los anteriores, pero sin poder especificarse en qué situación se encuentran A y B |

### Super Códigos

Como he comentado anteriormente, una de las posibilidades que nos ofrece la Query Tool es la de crear un tipo especial de códigos, los supercódigos. La diferencia entre estos códigos y el resto, consiste en que aunque el supercódigo únicamente contiene la sintaxis de una query, (es decir, es la forma de archivar la sentencia que hayamos construido), en la práctica funciona, a todos los efectos, como el resto de códigos, es decir, podemos relacionarlo con otros códigos o con anotaciones, podemos incluirlo en una network, etc.
Puesto que el supercódigo consiste en una expresión de recuperación archivada, cada vez que una cita cumpla la condición definida en el mismo, quedará automáticamente relacionada con el supercódigo. Es decir, si partimos de los códigos (miedo a la) Aguja y Mareo, con 7 y 6 citas respectivamente y definimos una query “Aguja Mareo AND” cuyo resultado son 13 citas, y creamos el supercódigo “Aguja+Mareo”, si posteriormente se añade una nueva cita a cualquiera de los códigos, esa cita quedará automáticamente incluida en el supercódigo creado, sin necesidad de volver a ejecutar la query.
Podemos ver, por lo tanto, la utilidad de estos códigos, puesto que suponen otra estrategia de agrupación aprovechando las diferentes posibilidades de la Query Tool.
Normalmente, un supercódigo lo creamos una vez que hemos comprobado que los resultados de la query se ajustan a lo deseado, es decir, que el tipo de citas recuperadas efectivamente refleja nuestras necesidades. En ocasiones, puede ocurrir que los resultados de la query sean correctos en términos generales, pero que alguna de las citas en concreto no refleje exactamente lo deseado. En ese caso, podemos borrar la cita de la lista de resultados (sin eliminarla de la Unidad Hermenéutica) y hacer que el supercódigo incorpore todas las citas menos la(s) eliminada(s).
Si queremos modificar las características de un supercódigo, por ejemplo, en el caso anterior, añadiendo un código más a la sentencia (Aguja+Mareo+Ridículo), teóricamente podemos editarlo seleccionándolo y utilizando la opción Codes->Miscellaneous->Edit Query, aunque dada la complejidad de la sintaxis de edición prácticamente es preferible volver a crear el supercódigo desde el inicio (rehaciendo la query). Una prueba de dicha dificultad es que, por ejemplo, la query “Miedos SUB” queda representada, en el editor de querys como “d(c(Miedo!))”.

### Super Familias

En el apartado dedicado a la explicación de las familias comentaba que existe la posibilidad de crear también Super Familias. He preferido explicarlas en este apartado puesto que, su creación es muy similar al de una query, y evidentemente el concepto de super familia es prácticamente idéntico al de super código.
Podemos acceder a la ventana de creación de las super familias desde los diferentes managers de familias utilizando la opción Familias->Open Super Family Tool, o bien utilizando el icono correspondiente. Para la creación de la super familia tenemos que dar los mismos pasos que anteriormente con la herramienta query, aunque en este caso únicamente podremos utilizar los operadores de tipo booleano y como operandos tendremos únicamente familias.
Otra diferencia respecto a la query es que en este caso el resultado que aparecerá cuando hacemos clic sobre una familia no serán citas, como ocurría anteriormente, sino los miembros de la familia. Por lo tanto veremos códigos si estamos trabajando con familias de códigos, documentos si trabajamos con familias de documentos y anotaciones si trabajamos con familias de anotaciones.

### Selección de documentos

Si utilizamos la query tal y como la he descrito, ésta “recuperará” las citas, que cumplan las condiciones especificadas, en toda la Unidad Hermenéutica. Si queremos que la sentencia de recuperación de citas afecte únicamente a parte de los documentos, podemos hacer clic en el botón Scope, que nos permitirá acceder a una nueva ventana, similar a la principal de la query, en la que podemos hacer una selección de los documentos primarios a los que se aplicarán los resultados de la query construida en la ventana principal. Los operandos serán los distintos documentos primarios de la Unidad Hermenéutica (y familias de documentos primarios), mientras que los operadores que podemos utilizar en este caso serán únicamente los booleanos. Podemos seguir los mismos principios que los descritos hasta el momento para construir una secuencia de selección de documentos primarios.
De esta forma, podríamos utilizar la query para recuperar citas sólo de un entrevistado o conjunto de entrevistados o, en general, sólo para determinados tipos de documentos primarios.
Es muy importante tener en cuenta que si creamos un supercódigo a partir de una query en la que hemos realizado una selección de documentos, esta selección no afectará al supercódigo, que incluirá las citas que cumplan la condición especificada en el conjunto de Documentos Primarios de la Unidad Hermenéutica.