5. Solução proposta
5.1. LMS Database Explorer
5.1.4. Escolha da estrutura visual pelo sistema
Dadas as dependências funcionais dos atributos escolhidos pelo usuário, é preciso escolher, dentre as estruturas visuais disponíveis no sistema, aquela que seja mais adequada para representar essas dependências. Por “mais adequada”, neste contexto, entende-se a estrutura visual que, dentre as disponíveis, possa expressar da maneira mais efetiva possível os dados desses atributos segundo suas dependências funcionais.
A questão de possibilidade de representação está diretamente relacionada a quais estruturas visuais foram implementadas e com que características foram implementadas. Duas estruturas visuais do JInfoVis (que será apresentado adiante) foram utilizadas pelo LMS Database Explorer: gráficos de barras e gráficos de dispersão (na Seção 5.2.1 é explicado o motivo que levou a utilizar apenas estas estruturas). Ao LMS Database Explorer cabe fazer a etapa de mapeamento visual, definindo como os eixos e propriedades de marcas desses gráficos serão relacionados aos atributos escolhidos pelo usuário. Para isso, é preciso primeiramente analisar as restrições impostas aos gráficos na etapa de implementação, relativas à expressividade dos gráficos (Seção 5.1.4.1); em seguida, considerando as possibilidades de mapeamento visual dos atributos (Seção 5.1.4.2), é possível analisar as dependências funcionais que relacionam os atributos e, assim, definir a estrutura visual a ser apresentada (seção 5.1.4.3).
5.1.4.1. Expressividade e restrições
Para se escolher uma estrutura visual dentre as implementadas, é preciso ter em mente que cada estrutura visual apresenta uma expressividade específica, ou seja, uma capacidade de expressar de maneira exata determinadas informações utilizadas como
representação é inadequada às informações que se deseja representar por meio dela, essa representação pode codificar uma quantidade maior ou menor de informações do que a recebida na entrada. Por isso, é importante analisar a expressividade de uma estrutura visual para se compreender quais conjuntos de dados podem ser representados por meio dessa estrutura. Assim, a expressividade pode restringir quais conjuntos de dados podem ser representados por qual estrutura visual.
A seguir são apresentadas as expressividades das estruturas visuais utilizadas pelo LMS Database Explorer, levando em consideração as categorias de dados suportadas por estrutura e as relações que cada estrutura permite inferir entre esses dados.
O gráfico de barras utilizado apresenta um eixo horizontal H que expressa valores nominais ou ordinais, e um eixo vertical V que expressa apenas valores quantitativos (vide exemplo na Figura 5.2a). Assim, para cada valor nominal no eixo horizontal há um único valor quantitativo (ou seja, uma única barra) correspondente no eixo vertical. Isso equivale a dizer que cada valor no eixo horizontal deste gráfico determina funcionalmente um único valor correspondente no eixo vertical (a altura da barra), criando assim uma relação de dependência funcional entre os eixos (HV). Essa definição da estrutura do gráfico pode ser expressa resumidamente da forma a seguir, deixando explícita a dependência funcional: Estrutura_Visual(Gráfico_de_Barras) = { H,V | H é nominal ou ordinal; V é quantitativo; HV }
É importante notar que a dependência funcional HV é uma restrição desta implementação específica de gráfico de barras; outras implementações possíveis poderiam suportar múltiplas barras por valor do eixo horizontal, e assim essa dependência funcional não existiria.
O gráfico de dispersão utilizado, por sua vez, apresenta um eixo horizontal H e um eixo vertical V, sendo que ambos podem expressar valores nominais, ordinais ou quantitativos, e que não é necessário haver dependência funcional entre H e V (vide exemplo na Figura 5.2b). Opcionalmente, pode-se usar nesse gráfico uma legenda L, a qual pode expressar valores quantitativos ou ordinais (Figura 5.2c). Usando a legenda, restrições de implementação fazem com que cada par de valores (formado por um valor de H e um valor de V) possa ter um único valor de L relacionado a eles, o que é uma dependência
funcional (HVL). As expressões a seguir caracterizam ambas as situações de gráficos de dispersão possibilitadas – com e sem legenda:
Estrutura_Visual(Gráfico_de_Dispersão_sem_Legenda) = { H,V | H e V são nominais, ordinais ou quantitativos}
Estrutura_Visual(Gráfico_de_Dispersão_com_Legenda) =
{ H,V,L | H e V são nominais, ordinais ou quantitativos; L é ordinal ou quantitativo; HVL}
Figura 5.2 – Miniaturas das estruturas visuais implementadas: (a) gráfico de barras; (b) gráfico de dispersão sem legenda; (c) gráfico de dispersão com legenda.
5.1.4.2. Possibilidades de mapeamento visual de atributos
Antes de escolher a estrutura visual, é necessário saber de quais maneiras atributos da base de dados podem ser mapeados nas estruturas visuais disponíveis.
Primeiramente, o mapeamento visual atua sobre variáveis da tabela de dados, fazendo com que cada uma dessas variáveis seja associada a uma propriedade espacial ou gráfica da estrutura visual. Assim, os atributos devem ser associados de alguma maneira a variáveis da tabela de dados.
Duas abordagens para essa associação são consideradas nesta tese. A primeira delas é associar diretamente cada atributo a uma variável da tabela de dados. Como cada variável é associada a uma propriedade da estrutura visual, então cada atributo seria mapeado visualmente como um eixo horizontal, eixo vertical ou legenda. Ou seja, cada atributo ocuparia as posições das letras H, V e L nas estruturas visuais apresentadas na Figura 5.2.
Uma segunda abordagem possibilitaria mapear mais de um atributo em uma mesma variável. Para isso, sejam V1, V2, ..., VN algumas variáveis da tabela de dados em questão, cada uma representando um atributo dessa tabela. Nesta abordagem é usada uma nova variável W, cujos valores possíveis são exatamente os nomes V , V , ..., V . Uma nova
procura incorporar todos os dados das variáveis Vi da tabela de dados antiga. W é mapeada visualmente em eixos, e assim vários atributos são mapeados visualmente. Na Figura 5.3 são mostradas duas estruturas visuais com esse mapeamento. Em (a), todas as variáveis Vi eram quantitativas, e portanto deram origem a uma variável W quantitativa. Já em (b), todas as variáveis Vi possuem valores relacionados a um atributo A, e desse modo W herdou essa característica.
Figura 5.3 – Múltiplos atributos (V1, V2, V3, V4) mapeados em um único eixo, tanto em um gráfico
de barras (a) quanto em um gráfico de dispersão (b), por meio da variável W.
5.1.4.3. Escolha da estrutura visual
Com base nas dependências funcionais entre atributos escolhidos pelo usuário, nas categorias de dados desses atributos, na expressividade das estruturas visuais utilizadas e nas possibilidades de mapeamento visual de atributos em eixos e legendas, é possível verificar se alguma das estruturas visuais pode representar o resultado da consulta estipulada pelo usuário via atributos escolhidos.
Para tanto, é necessário retomar as definições dessas estruturas visuais, apresentadas na Seção 5.1.4.1, mostrando suas restrições:
Estrutura_Visual(Gráfico_de_Dispersão_sem_Legenda) = {H,V | H e V são nominais, ordinais ou quantitativos}
Estrutura_Visual(Gráfico_de_Dispersão_com_Legenda) =
{H,V,L | H e V são nominais, ordinais ou quantitativos; L é ordinal ou quantitativo; HVL}
Estrutura_Visual(Gráfico_de_Barras) = {H,V | H é nominal ou ordinal; V é quantitativo; HV}
Com base nessas definições, verifica-se que a estrutura visual a ser utilizada deve ter regras de dependência funcional entre seus elementos visuais (eixos e legenda) de forma semelhante às dependências funcionais existentes entre os atributos escolhidos pelo
usuário. Além disso, é necessário que os atributos escolhidos possuam a mesma categoria dos elementos visuais a serem usados na estrutura visual.
Também é necessário considerar a possibilidade de representação de vários atributos em um mesmo eixo, ao invés de um único atributo por eixo (apresentada na Seção 5.1.4.2).
Considerando esses fatores, foi definido nesta tese um algoritmo de escolha de estruturas visuais, apresentado adiante. Este algoritmo recebe como entrada um conjunto de atributos da base de dados, e escolhe uma estrutura visual adequada para representar seus dados, definindo o mapeamento entre esses atributos e os eixos e legenda disponíveis na estrutura visual escolhida.
Antes de apresentar o algoritmo definido, é importante apresentar algumas considerações sobre sua elaboração, relacionadas aos conceitos de expressividade e de efetividade de estruturas visuais e de uso de cores por gráficos de dispersão.
O algoritmo elaborado respeita a expressividade das estruturas visuais disponíveis, com relação tanto aos atributos cujos dados serão representados, quanto às suas dependências funcionais, como apresentado na Seção 5.1.4.1.
Com relação à efetividade das estruturas visuais, o algoritmo considera a dominância perceptual da posição espacial das marcas como forma mais efetiva de mapeamento de dados. Assim, define que a prioridade sobre o uso de posição espacial para mapear variáveis seja concedida primeiramente a variáveis de entrada, e em seguida às variáveis de saída (conceitos de variáveis de entrada e de saída podem ser vistos na Seção 2.2.1). Agindo desse modo, o sistema procura privilegiar a comparação visual de dados relativos a diferentes valores de uma mesma variável de entrada.
Considerando que as estruturas visuais implementadas possuem duas propriedades espaciais (dois eixos), apenas duas variáveis podem ser mapeadas usando posicionamento espacial nos eixos (uma por eixo). Assim, no gráfico de dispersão pode ocorrer que uma variável de saída não possa ser mapeada por posicionamento espacial. Nesse caso, optou-se por fazer o mapeamento visual dessa variável utilizando cores, dado que é a única possibilidade implementada para a legenda de gráficos de dispersão.
Em gráficos cuja legenda é uma variável quantitativa ou ordinal, optou-se por utilizar um conjunto de cores cuja tonalidade (hue) e saturação (saturation) são constantes, e cujo brilho (lightness, brightness ou value) variasse de acordo com o valor da variável.
escala de cinza) é mais apropriado que tonalidade e saturação para representar uma escala de valores quantitativos ou ordinais. No entanto, não foi encontrada na teoria de Visualização de Informação a maneira como se deve relacionar os valores de brilho aos possíveis valores de uma variável.
Assim, para uma variável quantitativa ou ordinal, foi definido arbitrariamente para o sistema que o menor valor possível dessa variável deveria receber um brilho de valor 100% (brilho máximo); o maior valor possível deveria receber um brilho de 50%; e que os valores intermediários receberiam proporcionalmente brilhos intermediários. Com isso, tons mais “vivos” (menos brilho) são atribuídos a valores maiores, e tons mais “apagados” (mais brilho, portanto mais próximos do branco) são atribuídos a valores menores, como apresentado na Figura 5.4. A tonalidade usada como base para esses valores foi o vermelho. Convém reparar que apesar de esta legenda representar um atributo quantitativo (quantidade de comentários), ela agrupa os valores desse atributo em quatro classes: “1 até 2”, “3 até 4”, “5 até 6”, “7 em diante”. De acordo com Card et al. (1999), essas classes passam a ser valores ordinais, e não mais quantitativos, pois apesar de serem ordenáveis não permitem a execução de operações aritméticas sobre eles. Assim, a legenda apresenta na verdade um atributo ordinal derivado de um atributo quantitativo. Isso, contudo, não afeta o uso de brilho na legenda pois, como apresentado, essa propriedade é mais efetiva que tonalidade ou saturação, tanto em atributos ordinais quanto em quantitativos.
Em gráficos cuja legenda é uma variável ordinal temporal, optou-se por definir uma escala de tons que representa valores de datas mais recentes como tons verde-claros, e valores de datas mais antigas como tons marrom-escuros. Essa decisão foi inspirada em Tufte (1980, p. 90), que para escolher cores indica que “Uma grande estratégia é usar cores encontradas na natureza (...) Cores da natureza são familiares e coerentes, possuindo uma harmonia amplamente aceita pelo olho humano”. Assim, como apresentado na Figura 5.5, datas mais recentes são apresentadas em tons vivos de verde como em folhas novas, enquanto datas mais antigas recebem tons de folhas velhas.
Figura 5.4 – Legenda de gráfico de dispersão exibindo a escala de cores usada para
representar quantidades.
Figura 5.5 – Legenda de gráfico de dispersão exibindo a escala de cores usada para representar valores ordinais temporais.
O algoritmo elaborado é apresentado a seguir. Ao longo do algoritmo são exemplificadas as situações por ele descritas.
1. Considere X como sendo o conjunto de atributos selecionados pelo usuário.
2. Identifique todos os atributos sumidouros de X. Um atributo sumidouro é um atributo determinado funcionalmente (de modo transitivo ou não) por todos os outros atributos selecionados pelo usuário.
3. Caso haja apenas um atributo sumidouro em X, esse atributo será considerado variável de saída da estrutura visual, pois é definido por todos os demais; por conseqüência, os demais atributos serão tratados como variáveis de entrada.
3.1. Se há apenas 1 variável de entrada (ou seja, há apenas dois atributos selecionados, a variável de entrada e a de saída):
3.1.1. Se a variável de saída é quantitativa e a de entrada é ordinal ou nominal: 3.1.1.1. O sistema gera um gráfico de barras, cujo eixo horizontal apresenta a
variável de entrada e as barras representam a variável de saída (Figura 5.6). (Repare que isso condiz com a restrição HV, apresentada na Seção 5.1.4.1). (FIM).
3.1.2. Caso contrário:
3.1.2.1. O sistema gera um gráfico de dispersão sem legenda, cujos eixos vertical e horizontal representam respectivamente a variável de entrada e a de saída (Figura 5.7). (FIM).
Figura 5.6 – Gráfico de barras apresentando a quantidade de mensagens de cada fórum de discussão.
Figura 5.7 – Gráfico de dispersão sem legenda, apresentando fóruns de discussão e seus respectivos estados. Atributos selecionados: “Fóruns de discussão” e “Estados de fóruns de discussão”
3.2. Caso contrário, se houver 2 variáveis de entrada e a variável de saída não for nominal:
3.2.1. O sistema gera um gráfico de dispersão com legenda, cujos eixos horizontal e vertical representam as variáveis de entrada, e cuja legenda representa a variável de saída (Figura 5.8). (Repare que isso está de acordo com a restrição HVL, apresentada na Seção 5.1.4.1). (FIM).
Figura 5.8 – Gráfico de dispersão com legenda, apresentado a quantidade de comentários feitos por usuário em itens de portfólio de outros usuários. Atributos selecionados: “Usuários donos de itens de portfólio, “Usuários que comentaram itens de portfólio” e “Quantidade de comentários de itens
de portfólio”.
3.3. Caso contrário, o sistema informa que ele não possui uma estrutura visual apropriada para representar os dados (FIM).
4. Caso contrário, se não houver nenhum atributo sumidouro em X: 4.1. Se todos os atributos de X são quantitativos:
4.1.1. O sistema gera um gráfico de barras em que cada valor do eixo X corresponde ao nome de um atributo, e cada barra correspondente apresenta a quantidade respectivamente associada a esse valor (Figura 5.9). Dessa forma, o conjunto de atributos é transformado em uma variável única de entrada, e a quantidade é definida como variável de saída, já que seus valores são determinados por esse conjunto (FIM).
4.2. Caso contrário, se todos os atributos de X são ordinais temporais:
4.2.1. O sistema gera um gráfico de dispersão sem legenda, em que cada valor do eixo Y corresponde ao nome de um atributo, e em que o eixo X representa o tempo (Figura 5.10). Dessa forma, o conjunto de atributos é transformado em uma variável única de entrada, e tempo é definido como variável de saída, já que seus valores são determinados por esse conjunto (FIM).
Figura 5.9 – Gráfico de barras representando as seguintes quantidades, da esquerda para a direita (que correspondem aos atributos selecionados): “Quantidade de comentários de item de portfólio”,
“Quantidade de itens comentados de portfólio”, e “Quantidade de itens de portfólio”.
Figura 5.10 – Gráfico de dispersão sem legenda, comparando os seguintes atributos temporais selecionados, de cima para baixo: “Datas de envio de mensagens de bate-papo”, “Datas de envio de
mensagens de correio” e “Datas de mensagens de fóruns de discussão”.
4.3. Caso contrário, se todos os atributos de X determinam um mesmo atributo A (A ∉ X, pois senão A seria atributo sumidouro e o algoritmo não estaria no passo 4): 4.3.1. O sistema gera um gráfico de dispersão sem legenda, cujo eixo X
corresponde a valores de A, e cada valor do eixo Y corresponde a um dos atributos escolhidos (Figura 5.11). Dessa forma, o conjunto de atributos é transformado em uma variável única de entrada, e A é definido como
variável de saída, já que seus valores são determinados por esse conjunto (FIM).
Figura 5.11 – Gráfico de dispersão sem legenda, comparando atributos selecionados relativos a usuários. De cima para baixo: “Usuários que receberam mensagens de correio”, “Usuários que enviaram mensagens de correio”, “Usuários que escreveram mensagens de fóruns de discussão” e
“Usuários que participaram de sessões de bate-papo”.
4.4. Caso contrário, se X possui apenas dois atributos escolhidos (A e B) e existe atributo C que determine funcionalmente ambos:
4.4.1. Neste caso, os atributos A e B são considerados como variáveis de entrada. A variável de saída é definida por uma função f, da seguinte forma: dados a ∈ A e b ∈ B, f(C,a,b)=verdadeiro caso exista valor c ∈ C tal que c apareça relacionado aos valores a e b em uma tupla da relação universal; caso contrário, f(C,a,b)=falso.
4.4.2. O sistema gera um gráfico de dispersão sem legenda, em que cada um dos eixos X e Y representa um dos atributos escolhidos (Figura 5.12). A variável de saída determina a presença ou ausência de marca em cada célula do gráfico (FIM).
4.5. Caso contrário, o sistema informa que ele não possui uma estrutura visual apropriada para representar os dados (FIM).
Figura 5.12 – Gráfico de dispersão sem legenda, exibindo a existência de usuários de determinada cidade e com determinado sexo. Atributos selecionados: “Cidades de usuários” e “Sexos de
usuários”.
X = {x1, x2, …} = conjunto de atributos selecionados pelo usuário. S = {s ∈ X | ∀x ∈ X ⇒ x s} = conjunto de atributos sumidouros de X. O = {o1, o2, …} = conjunto de variáveis de saída.
I = {i1, i2, …} = conjunto de variáveis de entrada.
Condições Estrutura visual resultante Se o1 é quantitativo e i1 é ordinal ou nominal |I| = 1 Caso contrário Se o1 não é nominal |I| = 2
Se o1 é nominal Não há uma estrutura visual apropriada Se |S| = 1 Faça O = S; Faça I = X – S; |I| = ?
Caso contrário Não há uma estrutura visual apropriada
Se ∀i, xi é quantitativo
Se ∀i, xi é ordinal temporal
Se ∃a | a ∉ X e ∀i, xi a Se X={a,b} e
∃c | ca ∧ cb Se |S| = 0
Caso contrário Não há uma estrutura visual apropriada
|S|=?
Caso contrário Não há uma estrutura visual apropriada
Figura 5.13 – Resumo do algoritmo de escolha de estruturas visuais.
5.1.4.4. Acesso a estruturas mais específicas
Uma das características desejadas para o LMS Database Explorer é possibilitar que um usuário tenha acesso a estruturas visuais mais específicas a partir de uma estrutura visual mais genérica. Para apresentar essa característica, pode-se partir de um exemplo.
Considere a situação expressa na Figura 5.14a, em que um usuário esteja analisando
o1 i1 i1 o1 i1 i2 o1 quantidade tempo a b “Existência de marca” = f nomes de atributos nomes de atributos nomes de atributos a
dados de uma linha desse gráfico. O conjunto dos dados que compõem esta linha está relacionado a um único valor “B” pertencente à variável V1, a qual está mapeada visualmente no eixo Y do gráfico.
Quando o usuário solicita maiores detalhes sobre a linha de “B”, o sistema deve se preocupar em representar esse conjunto de valores da forma mais efetiva possível. Como nesse conjunto todos os dados se referem a “B”, V1 não precisa mais ser considerada como uma variável no âmbito do gráfico de dispersão, pois V1 tem um único valor visível (ou seja, para o gráfico, é como se V1 fosse uma constante) (Figura 5.14b). Desse modo, não há justificativa para esse único valor ocupar um eixo inteiro, pois isso seria um desperdício de recursos tendo em vista a importância do mapeamento espacial como propriedade mais efetiva para representar qualquer categoria de dados (Mackinlay, 1986). Assim, o valor “B” pode ser retirado do gráfico em si e indicado em algum outro lugar próximo ao gráfico.
Com isso, V1 deixa de ser mapeada visualmente pelo eixo Y, que passa a estar disponível para mapear visualmente outra variável representada no gráfico. Portanto, pela maior efetividade do mapeamento espacial com relação ao mapeamento em cores, a variável que era mapeada pelas cores da legenda (V1) pode ser promovida para o eixo Y (Figura 5.14c).
Assim, a partir de um pedido de detalhes do usuário sobre determinado conjunto de dados, o sistema consegue prover uma estrutura visual mais específica, que apresente dados de menos variáveis e que represente esse conjunto de maneira mais efetiva do que na estrutura visual anterior.
Figura 5.14 – Exemplo de acesso a uma estrutura mais específica a partir de uma estrutura mais genérica. (a) Gráfico de dispersão representando 3 variáveis (sendo uma variável quantitativa na legenda), com usuário selecionando linha do valor B. (b) Demais valores da variável V1 foram removidos. (c) Variável V1 cede seu mapeamento espacial para V3, e passa a ser representada em
Para completar o exemplo, o valor “B” escolhido pelo usuário não precisa ser imutável durante a apresentação da nova estrutura visual. Como ele é um dos possíveis valores da variável V1, é interessante permitir a troca de “B” por outro valor de V1, que pode ser escolhido em uma lista (Figura 5.14c); assim, evita-se que o usuário precise