Introducción
COPA surge de la necesidad de poder realizar búsquedas en diferentes niveles de una estructura jerárquica de información con las siguientes 2 premisas:
- Esas búsquedas deben ser recursivas desde un nivel determinado, y lo más importante es que
- no deben incorporar una complejidad importante en los sistemas de búsqueda existentes
La idea original fue la creación de un código alfanumérico basado en grupos de letras y números de la forma x99x99x99x99x99. Cada letra identifica un nivel en la estructura del árbol y cada número diferencia ese nodo dentro de un mismo nivel. Un ejemplo puede ser el código a2b1c2 que nos indica que estamos dentro del segundo nodo de primer nivel, primero del segundo nivel y segundo del tercero.
En 1997 RedIRIS comenzó a utilizar códigos de este tipo en sus sistemas de búsqueda, principalmente en servidores web temáticos clasificados de una forma jerárquica. Debido a la incorporación de este tipo de codificación en otros sistemas de búsqueda de información como LDAP y en sistemas de navegación por esos directorios se decidió exportar esta codificación.
¿Qué puedo conseguir usando COPA?
Principalmente múltiples vistas de la misma información y posibilidad de búsquedas desde diferentes puntos de vista.
-
Navegación por vistas virtuales
Partamos de la siguiente estructura jerárquica de áreas temáticas en la que se muestra el camino desde la raiz del árbol hasta la la rama a2b1c2d9e2a2 Ciencias de la salud a2b1 Farmacia a2b1c2 Farmacología a2b1c2d9 Psicofarmacología a2b1c2d9e2 Psicofarmacología geriátrica
Supongamos que tenemos esta estructura almacenada en un servidor LDAP en el que todas las entradas están creadas al mismo nivel. Cada entrada tiene dos campos, el código y el nombre del área.
Podríamos hacer un pequeño programa que navegase por el directorio mostrando la estructura jerárquica reflejada en los códigos. Simplemente habría que buscar todas las áreas del mismo nivel para mostrarlas.
Para el primer nivel bastaría con especificar un filtro LDAP que indicase que queremos todas las entradas que contengan a* pero que no tengan b*:
(&(codigo="a*")(!(codigo="a*b*")))
Una vez que mostramos todas las entradas de primer nivel si el usuario selecciona a2 tendreamos que volver a realizar una búsqueda de las entradas que tengan un código con a2b* pero que no no tengan c*, es decir:
(&(codigo="a2b*")(!(codigo="a2b*c*")))
Para el resto de niveles habría que hacer algo similar.
Como acabamos de ver, es muy fácil simular esta estructura jerárquica mediante la vista virtual generada con el campo codigo. Podemos pensar en ampliar el número de vistas virtuales añadiendo otros campos con códigos en formato COPA que representen otras jerarquías diferentes.A
-
Búsquedas desde varios puntos de vista
Partamos de que todos los recursos (personas, web, ...) que tenemos en nuestro sistema se encuentran con uno/varios campos en formato COPA. Cada campo asigna o clasifica al recurso a una localización o área.Si queremos hacer una búsqueda de los recursos clasificados bajo Psicofarmacología geriátrica tendremos que buscar aquellos recursos que tengan un codigo=a2b1c2d9e2. Si queremos realizar la consulta bajo Farmacología bastará con buscar los recursos con codigo=a2b1c2*. En este último caso encontraremos también los recursos con codigo=a2b1c2d9e2.
Si ahora quisieramos obtener aquellos recursos web en los que apareciese la famosa araña roja del Brasil y cómo curar su picadura lo más cómodo sería buscar dentro de Farmacología la cadena araña roja del Brasil. Esto lo podríamos expresar así:
"araña roja del Brasil" AND area="a2b1c2*"
Por supuesto lo único que teclea el usuario es la cadena de la araña, el código del área lo añade el interface de consulta ya que previamente hemos navegado hasta la localización de Farmacología y se dispone de ese código.
Esta capacidad de realizar búsquedas a cualquier nivel de la estructura jerárquica con un simple codigo=cadena* es lo que proporciona la potencialidad deseada.
Documentación
Hemos creado una página con documentación sobre COPA
Esquema LDAP COPA
Versión actual estableVersión | Fecha | Descarga |
---|---|---|
2.1.2 | 20181126 | COPA LDAP schema |
Versión | Fecha | Descarga |
---|---|---|
2.1.1 | 20110519 | COPA LDAP schema |
2.1.0 | 20070511 | COPA LDAP schema |
2.0.1 | 20060324 | COPA LDAP schema |
2.0.0 | 20060227 | COPA LDAP schema |
1.0.2 | 20030514 | COPA LDAP schema |
Software que soporta COPA
Ejemplos de uso
RedIRIS ha creado un repositorio de clasificaciones basadas en COPA que sirven como ejemplo de lo que se puede hacer usando este tipo de codificación