• No results found

Review of the implementation of the 1996 HMIS

Las interacciones de alto nivel del programador son aqu´ellas que manipulan directa- mente los estados y las transformaciones del proceso de visualizaci´on. Estas interacciones se definen en funci´on de las interacciones de bajo nivel del programador.

Si bien Martig et al. al presentar su MUV [MCFE03] sugieren que es posible definir interacciones para cada uno de los estados y transformaciones del mismo (ver figura 2.6), en nuestra propuesta de clasificaci´on hay dos estados para los cuales no se definir´an in- teracciones de alto nivel del programador: estos son los Datos a Visualizar (DaV) y los Datos Mapeados Visualmente (DMV). Como se explic´o anteriormente (secci´on 2.3.1.3), los DaV se componen de todos los DA o de un subconjunto de ellos y est´an compuestos

por los datos que van a estar presentes en la visualizaci´on. Este conjunto de datos se obtiene a trav´es de la Transformaci´on de Filtrado (TF). Consideramos que definir inter- acciones que modifiquen el conjunto de DaV en su propio estado no ser´ıa correcto, ya que conceptualmente es en la TF donde se realizan estas acciones de modificaci´on. Una situaci´on similar ocurre en el estado de (DMV), donde cualquier modificaci´on del mapeo visual debe realizarse conceptualmente en la Transformaci´on de Mapeo Visual.

En la figura 5.4 se listan las interacciones de alto nivel del programador disponibles en cada estado y transformaci´on delpipeline. Todas las interacciones definidas para la etapa del pipeline que comienza en el estado DA y termina en el estado DMV se componen de operadores de valor, ya que modifican el conjunto de datos subyacente, ya sea undataset o un mapeo visual. En cambio, las interacciones definidas para la transformaci´on TV y DV se componen de operadores de vista, ya que afectan ´unicamente la apariencia de la vista sin afectar el conjunto de datos subyacente.

5.3.2.1. Interacciones de Alto Nivel del Programador en los DC

Dato que los datos crudos provienen de distintos dominios de aplicaci´on y en distin- tos formatos, no es posible definir una representaci´on generalizada para los mismos, y en consecuencia tampoco es posible definir un conjunto de operaciones para su manipu- laci´on. Se supone que los distintos dominios de aplicaci´on proveen estos datos y ser´an los que disponen de las operaciones para su manipulaci´on. Limitaremos el alcance de las interacciones sobre este estado ´unicamente a cargar la fuente de datos.

Interacciones de Alto Nivel del Programador en los Datos Crudos

CargarFuenteDatos(DC)

Esta interacci´on permite seleccionar una fuente de datos y cargarla en el sistema. Si el conjunto de DC no se encuentra vac´ıo, ´este ser´a modificado.

Tabla 5.3: Interacciones de Alto Nivel del Programador en los Datos Crudos.

5.3.2.2. Interacciones de Alto Nivel del Programador en la TD

Esta transformaci´on tiene un rol esencial en cuanto a la manipulaci´on de los datos, ya que es la que permite introducir los mismos en el pipeline llev´andolos a un formato interno manejable en el MUV. En esta transformaci´on, denominaremosCDC al conjunto de DC de entrada y CDAi al conjunto de DA de salida correspondiente a la i-´esima

Figura 5.4: Interacciones de Alto Nivel del Programador.

rama. Los conjuntos de DA de salida se representar´an mediente alguno de los datasets detallados en la secci´on 4.5 del cap´ıtulo 4.

Limitamos el alcance de las operaciones sobre este estado a nivel de procesar la fuen- te de datos y generar (o modificar) el conjunto de DA correspondiente a la rama en la que se origin´o la interacci´on. En esta transformaci´on, las tres interacciones de alto nivel del programador disponibles son GenerarRama,EliminarRama y ReprocesarDC. Las in- teracciones GenerarRama y ReprocesarDC involucran un procesamiento del CDC para obtener o modificar un conjunto de datos abstractos. En funci´on del tipo de conjunto de datos con el que se est´e trabajando, se crear´a el tipo de dataset correspondiente. Si, por ejemplo, el conjunto de DC representa un conjunto de datos relacionales, entonces el resultado de las interacciones que se aplican en esta trasformaci´on ser´a un dataset con estructura de ´arbol o grafo. Si los datos provienen de un dominio continuo y son resul- tado de un muestreo, entonces el dataset indicado para representarlos tendr´a estructura de Grilla. Si estamos trabajando con Visualizaci´on de Informaci´on, el dataset que proba- blemente sea m´as adecuado para representar los DA ser´a una tabla, conjunto, etc. Esta interacci´on ejecuta algoritmos espec´ıficos que har´an uso de las operaciones provistas por losdatasets y sus implementaciones espec´ıficas.

A continuaci´on se detallan las interacciones de alto nivel del programador provistas en esta transformaci´on:

Interacciones de Alto Nivel del Programador en la Transformaci´on de Datos

GenerarRama()

Esta interacci´on genera un nuevo conjunto de DA a partir del conjunto de DC. El resultado de esta operaci´on es la ramificaci´on del proceso a partir de esta transformaci´on.

Implementaci´on en funci´on de las interacciones de bajo nivel:

GenerarRama() DE: CDC

DS:CDAN uevaRama

CDAN uevaRama←ProcesarDatosCrudos(CDC)

fin

EliminarRama()

Esta interacci´on elimina el conjunto de datos CDAi, siendo ilai-´esima rama d´onde se gener´o la

interacci´on. El resultado de esta operaci´on es la eliminaci´on de una rama completa delpipeline.

Interacciones de Alto Nivel del Programador en la Transformaci´on de Datos

Implementaci´on en funci´on de las interacciones de bajo nivel:

EliminarRama() DE: i: Rama

eliminarDataset(CDAi) . Interacci´on de bajo nivel del progr. (datasets).

fin

ReprocesarDC()

Esta interacci´on reprocesa elCDCy modifica el conjuntoCDAi, siendoilai-´esima rama d´onde se

aplic´o esta interacci´on. Esta interacci´on no genera una nueva rama en elpipeline, sino que modifica el conjunto de DA correspondiente a la rama d´onde se gener´o la interacci´on. Esta interacci´on tiene sentido en un contexto en el que el usuario desea incorporar a los DA un nuevo conjunto o subconjunto de DC. Es claro que este reprocesamiento ser´a posible ´unicamente si los nuevos datos crudos incorporados son compatibles con los almacenados previamente en los DA.

Implementaci´on en funci´on de las interacciones de bajo nivel:

ReprocesarDC() DE: CDC,i: Rama

DS:CDAi

CDAi ←ProcesarDatosCrudos(CDC)

fin

Tabla 5.4: Interacciones de Alto Nivel del Programador en la Transformaci´on de Datos.

El procesamiento de los DC (ProcesarDatosCrudos(CDC)) invocado en las interaccio- nes GenerarRama() y ReprocesarDC() es fuertemente dependiente del campo de aplica- ci´on y no es posible definir un algoritmo general para su ejecuci´on. Sin embargo es claro que involucrar´a los procesos de filtrado y derivaci´on descritos a continuaci´on:

Filtrado de Datos

Permite realizar un filtrado de los datos a incluir en el conjunto de DA con el objetivo de seleccionar qu´e datos espec´ıficos del conjunto de los DC constituir´an los DA.

Filtrado de Atributos

Este proceso permite realizar un filtrado de los atributos que ser´an incluidos en el conjunto de DA. Cabe aclarar que esta interacci´on tendr´a lugar ´unicamente si el conjunto de DC corresponde a un tipo de conjunto de datos que soporte atributos.

Derivar Dato

Permite insertar un nuevo dato al conjunto de DA que se deriva a partir de otros datos del conjunto de DC (metadatos).

Derivar Atributos

Permite insertar un nuevo atributo a los datos almacenados al conjunto de DA que se derivan a partir de otros atributos del conjunto de DC (metadatos). Por ejemplo, el agregar al conjunto de datos el c´alculo de un promedio de un conjunto de atributos.

5.3.2.3. Interacciones de Alto Nivel del Programador en los DA

En este estado se proveer´an interacciones para la generaci´on de metadatos y la eli- minaci´on de datos del conjunto de DA. Con respecto a la generaci´on de metadatos, se proveer´an ´unicamente interacciones para insertar nuevos datos (InsertarDato) y atributos (DerivarAtributo) ambos derivados a partir de otros datos o atributos del conjunto de datos. Estos nuevos datos o atributos generados se podr´an derivar ´unicamente a partir los datos y/o atributos presentes en el conjunto de DA, denominadoCDA, ´unico conjunto de datos presente en este estado. Adem´as, se proveer´a una interacci´on para eliminar datos del conjunto deCDA. Esta operaci´on no podr´a deshacerse sin volver a reprocesar los DC en la transformaci´on anterior.

Interacciones de Alto Nivel del Programador en los Datos Abstractos

InsertarDato(Dato d)

Permite insertar un nuevo dato al conjuntoCDA.

Implementaci´on en funci´on de las interacciones de bajo nivel:

InsertarDato(Dato d)

DE:CDA,d: Dato a insertar.

DS:CDA

insertarDato(CDA,d) . Interacci´on de bajo nivel del progr. (datasets).

fin

DerivarAtributo(Nombre n, Tipo t,OP ERADOR(op1, ..., opn, V alor v))o )

Esta interacci´on permite insertar un nuevo atributo a los datos almacenados en el conjunto de DA. Este nuevo atributo se deriva a partir de otros atributos del conjunto de DA (metadatos).

Interacciones de Alto Nivel del Programador en los Datos Abstractos

Implementaci´on en funci´on de las interacciones de bajo nivel:

DerivarAtributo(Nombre n, Tipot,OP ERADOR(op1, ..., opn, V alor v)) o)

DE: CDA,n: Nombre del nuevo atributo

t: Tipo del nuevo atributo.

o: Operador que se aplicar´a para generar los valores del nuevo atributo.

DS:CDA

idAtributonuevo ←insertarAtributo(CDA, n,t) . Interacci´on de bajo nivel del progr. (datasets).

para todoDato den CDA realizar

operador1 ← obtenerV alor(CDA, d, op1) . Interacci´on de bajo nivel del progr. (datasets).

operador2 ← obtenerV alor(CDA, d, op2) . Interacci´on de bajo nivel del progr. (datasets).

...

operadorn← obtenerV alor(CDA, d, opn) . Interacci´on de bajo nivel del progr. (datasets).

valor ← o(operador1, operador2, ..., operadorn, v)

modificarValor(CDA,d,idAtributonuevo,valor).Interacci´on de bajo nivel del progr. (datasets).

fin para fin

EliminarDatos(Colecci´on<Dato>c)

Permite eliminar una colecci´on de datos del conjunto de DA. Implementaci´on en funci´on de las interacciones de bajo nivel:

EliminarDato(Colecci´on<Dato>c)

DE:CDA,c: Colecci´on de datos a eliminar del conjuntoCDA.

DS:CDA

para todoDatodencrealizar

eliminarDato(CDA,d) . Interacci´on de bajo nivel del progr. (datasets).

fin para fin

AgruparDatos(Colecci´on<Dato>c)

Permite agrupar los datos contenidos en la colecci´on especificada en el conjunto de DA.

Interacciones de Alto Nivel del Programador en los Datos Abstractos

Implementaci´on en funci´on de las interacciones de bajo nivel:

AgruparDatos(Colecci´on<Dato>c)

DE:CDA,c: Colecci´on de datos a agrupar del conjunto CDA.

DS:CDA

agruparDatos(CDA,c) . Interacci´on de bajo nivel del progr. (datasets).

fin

DesagruparDatos(Colecci´on<Dato>c)

Permite desagrupar los datos contenidos en la colecci´on especificada en el conjunto de DA. Requiere que los datos a desagrupar hayan sido previamente agrupados.

Implementaci´on en funci´on de las interacciones de bajo nivel:

DesagruparDatos(Colecci´on<Dato>c)

DE:CDA,c: Colecci´on de datos a desagrupar del conjunto CDA.

DS:CDA

desagruparDatos(CDA,c) . Interacci´on de bajo nivel del progr. (datasets).

fin

Tabla 5.5: Interacciones de Alto Nivel del Programador en los Datos Abstractos.

5.3.2.4. Interacciones de Alto Nivel del Programador en la TF

Esta transformaci´on permite al usuario filtrar los datos que desea visualizar. En es- te punto el usuario decide qu´e datos y qu´e atributos presentes en los DA participar´an en la vista a generar. Esta participaci´on puede ser para su mostrado inicial o ante un requerimiento por parte del usuario en una etapa posterior. En esta transformaci´on, de- nominaremosCDAal conjunto de DA de entrada yCDaVi al conjunto de DaV de salida correspondiente a la i-´esima rama.

Como en todas las transformaciones delpipeline, se proveen interacciones de alto nivel del programador para generar y para eliminar una rama (GenerarRama() y EliminarRa- ma()). Adem´as, se proveen interacciones espec´ıficas de filtrado e inserci´on de datos y atributos.

A continuaci´on se detallan las interacciones de alto nivel del programador provistas en esta transformaci´on:

Interacciones de Alto Nivel del Programador en la Transformaci´on de Filtrado

GenerarRama()

Esta interacci´on genera un nuevo conjunto CDaV a partir del CDAde entrada, resultando en la ramificaci´on del proceso a partir de esta transformaci´on.

Implementaci´on en funci´on de las interacciones de bajo nivel:

GenerarRama() DE: CDA

DS:CDaVN uevaRama

CDaVnuevarama ←crearDataset() . Interacci´on de bajo nivel del progr. (datasets).

para todoDato den CDA realizar

insertarDato(CDaVN uevaRama,d) . Interacci´on de bajo nivel del progr. (datasets).

fin para fin

EliminarRama()

Esta interacci´on elimina el conjunto de datosDaVi, siendoi lai-´esima rama d´onde se aplic´o esta

interacci´on, resultando en la eliminaci´on de lai-´esima rama delpipeline. Implementaci´on en funci´on de las interacciones de bajo nivel:

EliminarRama() DE: i: Rama

eliminarDataset(CDaVi) . Interacci´on de bajo nivel del progr. (datasets).

fin

FiltrarDatos(Colecci´on<Dato> c)

Permite realizar un filtrado de los datos incluidos en el DaVi, siendo i la i-´esima rama d´onde

se aplic´o esta interacci´on. De este modo, se pueden excluir algunos valores de datos del CDA. Observar que este filtrado es acumulativo, ya que se opera directamente sobre elCDaVi.

Interacciones de Alto Nivel del Programador en la Transformaci´on de Filtrado

Implementaci´on en funci´on de las interacciones de bajo nivel:

FiltrarDatos(Colecci´on<Dato> c)

DE:c,CDaVi,i:rama

DS:CDaVi

para todoDatodencrealizar

sidest´a presente enCDaVi entonces

eliminarDato(CDaVi,d) . Interacci´on de bajo nivel del progr. (datasets).

fin si fin para fin

FiltrarAtributos(Colecci´on<idAtributo>c)

Este proceso permite realizar un filtrado de los atributos incluidos enCDA, excluyendo los atribu- tos especificados. Esta interacci´on reduce la dimensionalidad del conjunto de datos en la cantidad de atributos que se deseen eliminar. Cabe aclarar que esta interacci´on tendr´a lugar ´unicamente si el conjunto de DA corresponde a un tipo de conjunto de datos que soporte atributos, como por ejemplo una Tabla, una Grilla, Geometr´ıa, etc.

Implementaci´on en funci´on de las interacciones de bajo nivel:

FiltrarAtributos(Colecci´on<idAtributo>c)

DE:c,CDaVi,i:rama

DS:CDaVi

para todoidAtributo idAenc realizar siidAest´a presente enCDaVientonces

eliminarAtributo(CDaVi,idA) . Interacci´on de bajo nivel del progr. (datasets).

fin si fin para fin

InsertarDatos(Colecci´on<Dato> c)

Permite insertar datos delCDAen el conjunto de DaV que previamente hab´ıan sido filtrados.

Interacciones de Alto Nivel del Programador en la Transformaci´on de Filtrado

Implementaci´on en funci´on de las interacciones de bajo nivel:

InsertarDatos(Colecci´on<Dato>c)

DE:c,CDaVi,CDA,i:rama

DS:CDaVi

para todoDatodencrealizar

sidest´a presente enCDAy no est´a presente enCDaVi entonces

insertarDato(CDaVi,d) . Interacci´on de bajo nivel del progr. (datasets).

fin si fin para fin

InsertarAtributos(Colecci´on<idAtributo> c)

Este proceso permite insertar atributos del CDA al conjunto de DaV que inicialmente habr´ıan sido filtrados.

Implementaci´on en funci´on de las interacciones de bajo nivel:

InsertarAtributos(Colecci´on<idAtributo>c)

DE:c,CDA,CDaVi,i:rama

DS:CDaVi

para todoidAtributo idAenc realizar

siidAest´a presente enCDAy no est´a presente enCDaVi entonces

insertarAtributo(CDaVi,idA) . Interacci´on de bajo nivel del progr. (dataset).

fin si fin para

para todoidAtributo idA en c realizar

para todo Dato den CDaVi realizar

modificarValor(CDaVi,d,idA, obtenerValor(CDA,d,ida))) .Interacciones de bajo nivel del progr. (dataset).

fin para fin para fin

Tabla 5.6: Interacciones de Alto Nivel del Programador en la Transformaci´on de Filtrado.

La interacciones de filtrado (FiltrarDatos yFiltrarAtributos) permiten decidir que da- tos y atributos del conjunto de DA no ser´an incorporados al conjunto de DaV resultante.

Dado que la interacci´onGenerarRama(), al crear un nuevo conjunto de datos lo inicializa con todos los datos y atributos presentes en el conjunto de DA, es posible implementar las operaciones de filtrado de modo tal que operen directamente sobre el conjunto de DaV, sin anular operaciones de filtrado realizadas previamente. Es decir que las operaciones de filtrado son acumulativas.

Finalmente, para deshacer una interacci´on de filtrado, los datos deben volver a traerse del conjunto de DA. Con tal fin se proveen interacciones para incorporar datos al con- junto de DaV que se encuentran presentes en el conjunto de DA pero pueden haber sido previamente filtrados (InsertarDatos eInsertarAtributos).

5.3.2.5. Interacciones de Alto Nivel del Programador en la TMV

Esta transformaci´on es netamente interactiva y le permite al usuario definir c´omo quiere visualizar sus datos. Aqu´ı se realiza el mapeo visual, es decir, se establecen las estructuras visuales, qu´e atributos se mapear´an espacialmente y qu´e elementos visuales (marcas y canales) se utilizar´an.

Las interacciones de alto nivel del programador provistas en esta transformaci´on tienen como principal objetivo definir el sustrato espacial y el sustrato gr´afico que tendr´a la visualizaci´on. En esta transformaci´on, el conjunto de DaV (representado con un conjunto de datasets) se transformar´a en un mapeo visual como el definido en la secci´on 4.6 del cap´ıtulo 4.

En esta transformaci´on, denominaremos CDaV al conjunto de DaV de entrada y

CDM Vi al conjunto de DMV de salida correspondiente a la i-´esima rama.

A continuaci´on se detallan las interacciones de alto nivel del programador provistas en esta transformaci´on:

Interacciones de Alto Nivel del Programador en la Transformaci´on de Mapeo Visual

GenerarRama()

Esta interacci´on genera un nuevo conjunto de DMV a partir del conjunto de DaV actual. El resultado de esta operaci´on es la ramificaci´on del proceso a partir de esta transformaci´on.

Interacciones de Alto Nivel del Programador en la Transformaci´on de Mapeo Visual

Implementaci´on en funci´on de las interacciones de bajo nivel:

GenerarRama() DE: CDaV

DS:CDM VN uevaRama

CDM VN uevaRama ←crearMapeoVisual(CDaV) . Interacci´on de bajo nivel del progr. (mapeo visual).

fin

EliminarRama()

Esta interacci´on elimina el conjunto de datosCDM Vi, siendoilai-´esima rama d´onde se aplic´o esta

interacci´on. El resultado de esta operaci´on es la eliminaci´on de una rama completa delpipeline. Implementaci´on en funci´on de las interacciones de bajo nivel:

EliminarRama()

DE: i: Rama

eliminarMapeoVisual(CDM Vi) . Interacci´on de bajo nivel del progr. (mapeo visual).

fin

ConfigurarSustratoEspacial(Organizaci´on org, Orientaci´on or)

Permite configurar el sustrato espacial delmapeo visual configurando la organizaci´on y orientaci´on de los ejes.

Implementaci´on en funci´on de las interacciones de bajo nivel:

ConfigurarSustratoEspacial(Organizaci´on org, Orientaci´on or)

DE:i: Rama

org: Organizaci´on del sustrato espacial or: Orientaci´on del sustrato espacial

DS:CDM Vi

configurarOrientaci´onEjes(CDM Vi, or) . Interacci´on de bajo nivel del progr. (mapeo visual).

configurarOrganizaci´onEjes(CDM Vi, org) . Interacci´on de bajo nivel del progr. (mapeo visual).

fin

InsertarEje(Tipo t, Rango r)

Esta interacci´on permite incorporar un nuevo eje al sustrato espacial delmapeo visual. El nuevo eje tendr´a el tipo y el rango especificados.

Interacciones de Alto Nivel del Programador en la Transformaci´on de Mapeo Visual

Implementaci´on en funci´on de las interacciones de bajo nivel:

InsertarEje(Tipo t, Rango r)

DE:i: Rama t: Tipo del eje r: Rango del eje

DS:CDM Vi

insertarEje(CDM Vi, t, r) . Interacci´on de bajo nivel del progr. (mapeo visual).

fin

ConfigurarEje(Eje e, Tipo t, Rango r)

Esta interacci´on permite configurar el Ejee con el tipo y el rango especificados. Implementaci´on en funci´on de las interacciones de bajo nivel:

ConfigurarEje(Eje e, Tipo t, Rango r)

DE:i: Rama

e: Eje a configurar t: Tipo del eje r: Rango del eje

DS:CDM Vi

configurarEje(CDM Vi, e, t, r) . Interacci´on de bajo nivel del progr. (mapeo visual).

fin

AsociarDatosAMarca(Colecci´on<Dato>c, Marca m)

Esta interacci´on permite asociar un conjunto de datos con unaMarca en particular.

Interacciones de Alto Nivel del Programador en la Transformaci´on de Mapeo Visual

Implementaci´on en funci´on de las interacciones de bajo nivel:

AsociarDatosAMarca(Colecci´on<Dato> c, Marca m)

DE:CDaV,i: Rama

c: Colecci´on de datos que se asociar´a con la marca m m: Marca a asociar al conjunto de datosc

DS:CDM Vi

para todo Dato den crealizar

mapearDato(CDM Vi,d,m) . Interacci´on de bajo nivel del progr. (mapeo visual).

fin para fin

AsociarAtributoACanal(Colecci´on<Dato>col, Atributo a, Canal c)

Esta interacci´on permite asociar un atributo de un conjunto de datos a unCanal en particular de la marca que lo representa. Es requisito que todos los datos almacenados en la colecci´on c est´en asociados a la misma marca o a marcas que soporten el canalc.

Implementaci´on en funci´on de las interacciones de bajo nivel:

AsociarAtributoACanal(Colecci´on<Dato> col, Atributo a, Canal c)

DE:i: Rama

col: Conjunto de datos que se ver´an afectados. a: Atributo que se asociar´a al canalc.

c: Canal.

DS:CDM Vi

para todo Dato den crealizar

mapearCanal(CDM Vi,d,a,c) . Interacci´on de bajo nivel del progr. (mapeo visual).

fin para fin

ConfigurarCanal(Colecci´on<Marca>m , Canal c, Valor v)

Esta interacci´on permite configurar el valor de un canalca una colecci´on de marcas en particular. La colecci´on de marcas debe ser homog´enea, o debe estar compuesta por marcas que soporten el

Related documents