martes, 28 de septiembre de 2010

Agnitio3: Paradigma del conocimiento basado en cubos

Safe Creative #1009287453874




Introducción

El presente documento es un ensayo sobre un paradigma de conocimiento, una reflexión sobre cómo organizar la información de una forma eficiente, y sobre la cual se pueden generar consultas complejas y obtener la información en diferentes vistas.

La base es un cubo de conocimiento, el cual eleva las posibilidades que actualmente tenemos limitadas con el paradigma del 2D, en base a tablas, o matrices de columnas y filas, paradigma que se puede complementar con este paradigma 3D.

Esta paradigma organiza eficientemente la información sobre un esquema muy organizado y dimensional, aunque complejo a medida que se añaden nuevos conceptos (ver Concepto avanzados), y que pueden tratarse mediante un software especializado.

Agnitio3 es el nombre con el que he bautizado este paradigma, el cual, de base, no es nuevo, pero al que he añadido conceptos nuevos y avanzados. Agnitio es la traducción al latín de Conocimiento. El número 3 representa el cubo en matemáticas. Agnitio3 = Conocimiento al cubo.

El presente documento no está cerrado, y puede sufrir modificaciones constantes, a fin de corregir erratas o añadir nuevos conceptos e ideas.


Versiones

28/09/2010. Por Rafael Hernampérez Martín. Primera versión.


Conceptos básicos

3DtiCube es un sistema de organización de la información basada en cubos de conocimiento, con gran capacidad de configuración, personalización, versatilidad, potencia de consulta y generación de informes y gráficas.

Un cubo de conocimiento tiene tres ejes o dimensiones, cada uno de los cuales está fragmentado en coordenadas o elementos. Cada elemento se relaciona con otros elementos de otras dimensiones, y la confluencia de tres elementos diferentes de cada una de las dimensiones, dará como resultado un punto común, al que llamaremos nexo o conocimiento, pues contiene un valor compartido y común a los tres elementos.

Imaginemos un cuadro de mando básico que mide el nivel de cada servicio de una compañía, comparando cada servicio en cada producto. Este cuadro de mando se realiza cada semana, y sobre el mismo se realiza un seguimiento puntual. Aquí se identifican las 3 dimensiones necesarias para un cubo de conocimiento:



  • Servicio:


    • Servicio 1




    • Servicio n


  • Producto:


    • Producto 1




    • Producto n


  • Período:


    • Semana 1




    • Semana n

El conocimiento se obtendría de la confluencia de tres elementos, cada uno de los cuales en cada una de las dimensiones. Por ejemplo, el nivel del servicio de atención al cliente, del producto “Ordenador portátil XYZ”, en la semana 5.

Organizar la información en tres dimensiones nos permite girar el cubo y extraer la información en varias vistas 2D a partir de un determinado elemento de una de las dimensiones:

Vista 1

Servicio “XXX” (Se extrae sobre un único Servicio)


Semana 1
...
Semana n
Producto 1
99.99
99.99
99.99
...
99.99
99.99
99.99
Producto n
99.99
99.99
99.99



Vista 2

Servicio “XXX” (Se extrae sobre un único Servicio)


Producto 1
...
Producto n
Semana 1
99.99
99.99
99.99
...
99.99
99.99
99.99
Semana n
99.99
99.99
99.99

Vista 3

Producto “XXX” (Se extrae sobre un único producto)


Servicio 1
...
Servicio n
Semana 1
99.99
99.99
99.99
...
99.99
99.99
99.99
Semana n
99.99
99.99
99.99


Vista 4

Producto “XXX” (Se extrae sobre un único producto)


Semana 1
...
Semana n
Servicio 1
99.99
99.99
99.99
...
99.99
99.99
99.99
Servicio n
99.99
99.99
99.99


Vista 5

Semana n (Se extrae sobre una única semana)


Servicio 1
...
Servicio n
Producto 1
99.99
99.99
99.99
...
99.99
99.99
99.99
Producto n
99.99
99.99
99.99


Vista 6

Semana n (Se extrae sobre una única semana)


Producto 1
...
Producto n
Servicio 1
99.99
99.99
99.99
...
99.99
99.99
99.99
Servicio n
99.99
99.99
99.99

Estos conceptos básicos abarcan conocimientos singulares, es decir, un valor único en cada nexo.


Conceptos avanzados

Sobre este paradigma de organización informativa, se pueden agregar algunos conceptos avanzados para aumentar sus prestaciones y funcionalidades.


Conocimiento plural

El nexo o conocimiento puede ser plural. Es decir, puede contener tantos valores como se desee y del tipo que se desee, y no solamente uno. Este concepto nos aporta más riqueza de conocimiento (una dimensión para conocimiento), y puede servir para agregar un pequeño repositorio o base de datos en nuestro cubo. En el ejemplo anterior, nuestro cubo únicamente contemplaba niveles de servicio (generalmente expresado en % de eficiencia). Si se desea, por ejemplo, representar beneficios, pérdidas, % de penalización por incidencias, etc.), con el paradigma del cubo básico sería necesario un cubo por cada tipo de dato, aunque utilicen las mismas dimensiones. Sin embargo, con el conocimiento en plural, utilizaríamos un único cubo para almacenar en el mismo nexo todos estos valores, y extraer diferentes vistas, o extraer los diferentes valores en la misma consulta.

Los valores se podrían almacenar en formato documento, libre de esquema, con claves y valores, pudiendo almacenar también arrays de valores y documentos anidados:

{
clave1”: valor1,
clave2”: “valor2,
clave3”: datetime(2010,09,28,13,03),
clave4”: [valor1, valor2, valor3],
clave5”: { ... }
}

Una aplicación práctica sería, por ejemplo, crear un cubo cuyas dimensiones fueran las áreas de la empresa (sistemas, seguridad, CPD, Desarrollo, calidad, etc.), un tipo de conocimiento (Java, .NET, Linux, etc.) y un nivel o uso del conocimiento (principiante, experto, usuario, etc.). El nexo podría contener manuales, tutoriales, documentos, enlaces a foros, enlaces a herramientas productivas (gestores de proyectos, agendas, incidencias...), etc.


Agrupación de elementos

Un cubo puede crecer y hacerse complejo, por lo que es preferible clasificar los elementos de una dimensión en categorías. Por ejemplo, el catálogo de productos puede llegar a ser muy extenso, así como también la dimensión de las semanas. Clasificar los productos por gama (ordenadores de sobremesa, ordenadores portátiles, accesorios informáticos, etc.), y las semanas por trimestres aporta claridad y gana en eficiencia y en productividad. Esta clasificación permitiría la agrupación de la información, permitiendo contraer o expandir los elementos agrupados, así como también realizar cálculos (en caso de valores numéricos) de dicha agrupación: sumatorio, media aritmética, valor mínimo, valor máximo, conteo, etc.

Sería muy interesante que el cubo calculase automáticamente el total de ventas de un determinado producto durante el primer trimestre de 2010. O bien que calculase la media del nivel de servicio de soporte de toda la gama de ordenadores de sobremesa durante la semana 5. Se podrían combinar agrupaciones en todas las dimensiones del cubo.


Referenciación de cubos

Funcionalmente podrían definirse infinitos niveles o jerarquías de agrupación, pero sería mucho más claro no excederse de dos o tres niveles. Si se requiriese de más detalle, podría ser más conveniente replicar un cubo categorizado en un nuevo cubo, dejando en una dimensión sencilla la agrupación de alto nivel, y empezar a categorizar en bajo nivel. Esta réplica sería una referencia al cubo original. Los cambios que surgieran en el cubo original, se trasladarían automáticamente al cubo que toma la referencia.

Podemos crear un nuevo cubo referenciado del cubo anterior agrupado. Sobre este cubo, podríamos ahora categorizar las gamas de productos por líneas de productos (por ejemplo: ordenadores agruparía ordenadores de sobremesa, portátiles, Tablets, Netbooks, etc...), y los períodos podrían ahora categorizarse por años.


Referencias entre elementos de distintos cubos

Pueden definirse elementos referenciando a otros elementos en otras dimensiones y en otros cubos, e incluso referenciar a un elemento agrupado. Pueden crearse cubos mixtos, con dimensiones que contengan elementos propios y elementos referenciados a otros elementos de diferentes cubos. Las referencias son efectivas en cubos cuyos elementos y dimensiones coinciden, pues los conocimientos tienen esta dependencia (recordemos que un conocimiento o nexo es la confluencia de tres elementos, uno por cada dimensión).


Conocimiento elevado al cubo de...

En entidades demasiado complejas, en lugar de conocimientos singulares o plurales, puede ser interesante utilizar como conocimiento un cubo de conocimiento, creando un anidamiento y exponenciando las posibilidades de información. El primer cubo sería un cubo genérico, y sus nexos contendrían los cubos del conocimiento, que pueden ser distintos entre los diferentes nexos del cubo genérico o principal.

El nivel de anidamiento podría ser infinito, aunque lo recomendable sería simplificar.


Conocimiento mixto

El conocimiento podría tratar un cubo de conocimiento como un tipo de dato más. De esta manera, un conocimiento podría contener un documento clave-valor, con diferentes valores estándar, y también podría incluir uno o varios cubos de conocimiento.




Safe Creative #1009287453874