Pontifı́cia Universidade Católica de Minas Gerais Departamento de Ciência da Computação Análise Formal de Conceitos: Revisão Conceitual e Estudo da Aplicabilidade Autor: João Paulo Domingos Silva Orientador: Luis Enrique Zárate Relatório Técnico RT XX / 04 Belo Horizonte, Minas Gerais, Brasil Junho de 2004 Folha de Aprovação da Banca Examinadora Análise Formal de Conceitos: Revisão Conceitual e Estudo da Aplicabilidade João Paulo Domingos Silva Relatório técnico apresentado ao Departamento de Ciência da Computação do Instituto de Informática da Pontifı́cia Universidade Católica de Minas Gerais como requisito da disciplina Trabalho de Diplomação do curso de Ciência da Computação e aprovado pela banca examinadora composta pelos seguintes membros: Professor Luis Enrique Zárate Orientador Departamento de Ciência da Computação - PUC Minas Professor Cristiano Leite de Castro Examinador Departamento de Ciência da Computação - PUC Minas Professor Mark Alan Junho Song Examinador Departamento de Ciência da Computação - PUC Minas Belo Horizonte, 20 de junho de 2004 Age apenas segundo aquelas máximas através das quais possas, ao mesmo tempo, querer que elas se transformem numa lei geral. Immanuel Kant Agradecimentos Meu primeiro “Obrigado!” é evidentemente destinado ao meu orientador Luis Enrique Zárate. Foi ele quem confiou em mim como pesquisador e me aceitou na “Salinha de Pesquisa”, de onde foram alcançadas diversas vitórias em minha Graduação. Foi também ele quem, em nossas filosóficas conversas, me ensinou que nossa contribuição para o progresso da Ciência da Computação é bastante humilde, embora seja igualmente valiosa. Obrigado, Zárate! Agradeço também aos meus colegas graduandos Daniel Alencar Soares, Leonardo Teixeira Passos e Renato Vimieiro, com quem vivenciei memoráveis momentos tanto na “Salinha de Pesquisa” como fora dela. Eis pessoas que fielmente cumprem seus compromissos de amizade e de honestidade, me fazendo crer no relacionamento pessoal e profissional baseado em posturas éticas. Desejo que merecidamente sejam pessoas renomadas na Ciência da Computação. Obrigado, Daniel, Léo e Renato! Dedicatória Com todo amor, dedico essa graduação a algumas pessoas de importância especial em minha vida. São pessoas que, durante o cotidiano, me permitem perceber que por mais solidamente fundamentados que sejam nossos argumentos, há coisas que simplesmente não podem ser mensuradas ou modeladas por quaisquer ciências. Aos meus pais - Reginaldo Eustáquio da Silva e Anette Domingos Silva. Eis pessoas que me ensinaram as maiores virtudes do ser humano por meio daquela que é a melhor metodologia de educação: o exemplo. Agradeço aos dois pela imensurável paciência, principalmente durante os últimos quatro “loucos” anos de Graduação. À minha namorada “Bisquinha” - Grazielle Xavier Araújo - e ao meu maninho “Silipe” - Luiz Felipe Domingos Silva. Eis os grandes parceiros que arrumei em minha vida, pessoas que me proporcionam imensurável felicidade e a quem desejo o dobro de tal sentimento (embora seja imensurável!). Agradeço também aos dois pela paciência que têm comigo... Os últimos quatro “loucos” anos de Graduação realmente precisaram da preciosa paciência... Resumo A informação desempenha papel essencial tanto em âmbito pessoal como profissional e, quando devidamente gerenciada, sua interpretação conduz ao processo de extração de conhecimento. Devido à importância da informação, pesquisadores sempre exploram metodologias cujos propósitos sejam seu gerenciamento. Entretanto, os dados que compõem a informação têm uma complexa natureza quando considerados na realidade observada. Embora seja inerente aos seres humanos o comportamento de determinar conceitos que modelem a realidade observada, a complexidade da mesma não pode ser completamente assimilada e podem ser determinados dados inconsistentes, implicando em inconsistências tanto na informação como no conhecimento. Análise Formal de Conceitos é aqui proposta como uma metodologia que procura facilitar a tarefa de extrair conhecimento, devido à sua definição como ramo da Matemática Aplicada principalmente empregada para processar dados fornecidos. Sua principal vantagem reside na capacidade de gerar diagramas que facilitam a interpretação da informação. Análise Formal de Conceitos tem seus recursos empregados juntamente com tradicionais técnicas da Ciência da Computação nesse trabalho. Tal análise é denominada “formal” devido à sua sólida fundamentação matemática e “conceito” é o nome atribuı́do aos dados analisados, uma vez que conceitos correspondem a unidades do pensamento humano. Alguns pesquisadores propõem Análise Formal de Conceitos para extração de conhecimento, mas tais autores insistem em discutir somente aspectos teóricos. Em seus trabalhos, os diagramas da Análise Formal de Conceitos são apresentados como recursos que permitem a extração de conhecimento, mas nenhuma metodologia envolvendo a exploração de tais diagramas é discutida. Esse trabalho concilia aspectos teóricos e práticos: os fundamentos da Análise Formal de Conceitos são discutidos por completo, um programa que foi implementado durante o desenvolvimento desse trabalho tem suas principais funcionalidades aqui apresentadas e, finalmente, aplicações conciliando Ciência da Computação e Análise Formal de Conceitos são propostas e têm sua viabilidade analisada. 5 Abstract Information performs an essential role both in personal and in professional ambits, and when correctly managed, its interpretation leads to the process of knowledge extraction. Due to the importance of information, researchers always explore methodologies that aim at managing it. However, data that make up information have a complex nature when considered in the observed reality. Although it is inherent in humans the behavior of determining concepts that model the observed reality, its complexity can not be completely considered by humans and inconsistent data may be determined, involving inconsistence in information and, consequently, in knowledge. Formal Concept Analysis is presented here as a methodology that facilitates the task of knowledge extraction, due to its definition as a field of Applied Mathematics mostly used for processing given and presumedly consistent data. Its principal advantage consists in its capacity of generating diagrams that facilitate information interpretation. Formal Concept Analysis has its resources used jointly with Computer Science traditional techniques in this work. Such analysis is called “formal” due to its mathematical foundation and “concept” is the name given to the analized data, since concepts correspond to units of human thought. Some researchers propose Formal Concept Analysis for knowledge extraction from databases, but those authors insist on discussing only theoretical aspects. In their works, diagrams from Formal Concept Analysis are presented as devices that permit knowledge extraction, but no methodologies involving the exploration of such diagrams are discussed. This work conciliates both practical and theoretical aspects: Formal Concept Analysis foundations are entirely discussed, a software that has been implemented during the development of this work has its main functions presented here and, finally, applications conciliating Computer Science and Formal Concept Analysis are proposed and have their viability investigated. Sumário 1 Introdução 1.1 Problema . . . . . . . . 1.2 Motivação . . . . . . . . 1.3 Literatura . . . . . . . . 1.4 Objetivos . . . . . . . . 1.5 Estrutura da monografia . . . . . . . . . . 2 Análise Formal de Conceitos 2.1 Contextos formais . . . . . . 2.2 Conceitos formais . . . . . . 2.3 Reticulados conceituais . . . 2.4 Considerações . . . . . . . . 3 Aplicações 3.1 Programa Sophia . . . . 3.2 Redes Neurais Artificiais 3.3 Mineração de Dados . . 3.4 Bancos de Dados . . . . . . . . . . . . . . . . . . . . . . . . . 4 Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 . 8 . 9 . 9 . 10 . 11 . . . . . . . . 12 12 13 16 18 . . . . 20 20 24 30 36 . . . . 44 6 Capı́tulo 1 Introdução Análise Formal de Conceitos é um ramo da Matemática Aplicada, particularmente da denominada Teoria de Reticulados. Tais reticulados podem ser sucintamente definidos como conjuntos ordenados segundo determinadas normas de hierarquia. Definições mais precisas a respeito de reticulados excedem o escopo proposto a esse trabalho. Portanto, questões de tal assunto serão aqui mencionadas somente quando relevantes ao estudo aqui proposto. Um interessante modo de começar o estudo da Análise Formal de Conceitos é segmentando seu próprio nome [GW98]: “Análise” sugere observação e manipulação de dados fornecidos; “Conceitos” determina unidades segundo as quais os dados são estruturados, correspondentes à interpretação humana da realidade (adiante serão apresentados os conceitos formais); “Formal” sugere fundamentação matemática referente à análise e aos conceitos, evitando ao máximo o predomı́nio da subjetividade humana em tarefas de gerenciamento de informação e de conhecimento. “Dado”, “Informação” e “Conhecimento” são aqui considerados respectivamente como codificação da realidade observada, dados acrescentados de sentido e interpretação humana da informação [Wil01]. Contribuir para o gerenciamento de informação e de conhecimento pode ser observado como o principal emprego da Análise Formal de Conceitos. Como quaisquer ciências necessitam que informação e conhecimento sejam eficientemente gerenciados, a Análise Formal de Conceitos tem um espaço abrangente de aplicações. Essa aceitação em diversas ciências é estimulada por sua representação gráfica dos dados, permitindo que os mesmos e, especialmente, suas relações, sejam analisados com maior proveito. A 7 CAPÍTULO 1. INTRODUÇÃO 8 Figura 1.1 demonstra um exemplo extremamente simples envolvendo os nove primeiros números inteiros positivos, representados por meio de um diagrama da Análise Formal de Conceitos. Mesmo para quem desconhece tal diagrama, sua potencialidade já é notável, pois uma simples observação já permite a dedução de como os dados se relacionam. Adiante, diagramas como esse serão detalhadamente abordados, com exemplos mais interessantes, considerando aspectos como sua estrutura, seu funcionamento, sua análise, suas aplicações etc. Figura 1.1: Diagrama de números e suas propriedades. 1.1 Problema Em qualquer ramo profissional, as pessoas constantemente precisam tomar decisões fundamentadas na informação que possuem, mas tal informação conterá problemas se os dados armazenados que a compõem também os contiverem. Essa situação ocorre pois a informação fornecida pela realidade ao ser humano é extremamente complexa. Entretanto, é inerente ao ser humano, como já observado há séculos por filósofos (como Aristóteles), a necessidade de determinar conceitos que modelem a realidade observada. Mas toda a complexidade da informação fornecida por essa realidade não é absorvida pelo ser humano e, por isso, os dados por ele obtidos certamente precisam passar por uma análise cuidadosa. Analisar eficientemente dados certamente é mais proveitoso que simplesmente possuir um grande volume dos mesmos. É evidente não ser razoável considerar tal análise como sendo tarefa exclusivamente humana. Como conseqüência, tal processo seria lento, caro e inevitavelmente sujeito à subjetividade e equı́vocos humanos. Tais conseqüências seriam esperadas porque um profundo entendimento do domı́nio do problema seria requerido e porque as CAPÍTULO 1. INTRODUÇÃO 9 bases de dados podem ter milhares ou milhões de dados. Portanto, como é tarefa dos computadores armazenar tamanha quantidade de dados, é razoável o emprego dos mesmos (e metodologias automatizadas) também no gerenciamento da informação [FSS96]. 1.2 Motivação Aprimorar o gerenciamento de informação é a motivação desse trabalho, pois tanto em âmbito pessoal como profissional, a informação apropriadamente gerenciada é indispensável. A Ciência da Computação é incontestável parceira da Análise Formal de Conceitos, pois está constantemente lidando com análise de dados. E nesse trabalho, recursos da Análise Formal de Conceitos são associados aos da Ciência da Computação (por exemplo: Descoberta de Conhecimento em Bases de Dados). Contudo, o emprego da Análise Formal de Conceitos não é isento de determinadas limitações inerentes a quaisquer métodos tradicionais que lidam com informação e conhecimento. Por exemplo, uma representação de conhecimento é consistente somente se também o forem os dados fornecidos pelo ser humano. Entretanto, segundo a Filosofia, o conhecimento que o ser humano tem da realidade é deformado pela necessária mediação de seus sentidos. Mesmo que os dados do ambiente sejam coletados por um sistema computacional, esse também foi implementado segundo a interpretação humana. Ou seja, durante o processo de codificação de elementos da realidade, alguns detalhes inevitavelmente são ignorados ou erroneamente considerados. Portanto, é desejável que formalismos sejam empregados durante a observação da realidade. Alguns trabalhos [Gua95, Gua98] tratam da Ontologia Formal (apenas mencionada aqui) como meio de suprimir limitações de interpretação. 1.3 Literatura Os trabalhos pesquisados para o desenvolvimento desse remetem o leitor a autores pioneiros ou renomados em suas áreas de atuação. Portanto, o conteúdo aqui apresentado é diretamente fundamentado em confiáveis fontes da Análise Formal de Conceitos e assuntos relacionados. Não foi destinado um capı́tulo exclusivo à revisão literária, pois o Capı́tulo 2 tem como conteúdo a fundamentação teórica do assunto aqui estudado. Alguns trabalhos [DP90, Gra98] são constantemente referenciados por conterem uma profunda abordagem da Teoria de Reticulados e seus princı́pios CAPÍTULO 1. INTRODUÇÃO 10 matemáticos. Na Teoria de Reticulados, elementos de um conjunto são ordenados segundo suas propriedades e relacionamentos. É um assunto que parecia ter proveito somente dentro do ambiente abstrato da Matemática. Mas na década de oitenta, o matemático alemão Rudolf Wille apresentou a Análise Formal de Conceitos, como uma aplicação prática dos reticulados. Esses começavam agora a auxiliar o ser humano na interpretação de informação e extração de conhecimento. Um grupo de pesquisadores de uma universidade alemã contribuiu por anos na propagação do assunto no meio cientı́fico. Ganter e Wille escreveram o primeiro livro de Análise Formal de Conceitos [GW96], com consideração especial para sua fundamentação matemática. Inúmeros outros trabalhos [GW98] tratam mais sucintamente o assunto, considerando apenas seus pontos mais relevantes. Algoritmos e programas computacionais foram também objeto de estudo de diversos autores interessados nesse ramo. Não é necessário enumerar muitos trabalhos de caráter teórico, pois o âmago teórico é abordado por completo pelos pioneiros (demais autores não propõem novidades consideráveis). Em âmbito prático, os pesquisadores também sugerem aplicações para Análise Formal de Conceitos. Mineração de Dados e Descoberta de Conhecimento pertencem ao ramo da Ciência da Computação mais próximo da Análise Formal de Conceitos, mas as pesquisas [Wil01, Stu03, SWW98] abordam tal assunto de modo extremamente conceitual, sem propôr qualquer metodologia prática. Bancos de Dados também foram estudados por alguns pesquisadores [HPLC], que propõem a determinação de conceitos formais de modelos relacionais. É também apresentado aqui o emprego na descoberta do conhecimento adquirido por Redes Neurais Artificiais, assunto não encontrado em qualquer trabalho. 1.4 Objetivos É objetivo desse trabalho, como sugere seu subtı́tulo, estudar conceitualmente Análise Formal de Conceitos e também avaliar sua aplicabilidade na Ciência da Computação. Esse objetivo geral pode ser descrito em objetivos especı́ficos, assim enumerados: • Estudar o estado da arte das pesquisas na área, por meio dos trabalhos de renomados pesquisadores, procurando sumariar fundamentação teórica proveitosa para vindouros interessados em ingressar nessa área. • Elaborar e implementar uma ferramenta computacional que trabalhe com aspectos primordiais do assunto, procurando estudar profunda- CAPÍTULO 1. INTRODUÇÃO 11 mente os mais importantes algoritmos e proporcionando um recurso automatizado para tarefas mais comuns. • Estudar a aplicabilidade da Análise Formal de Conceitos em problemas inerentes à Ciência da Computação, particularmente nas áreas de Mineração de Dados, Bancos de Dados e Redes Neurais Artificiais. 1.5 Estrutura da monografia Esse trabalho é organizado segundo os objetivos enumerados na seção 1.4. Desse modo, é pretendido que o trabalho aborde o assunto em questão segundo diversos ângulos: fundamentos teóricos, implementação e aplicação. É recomendável, para um melhor proveito, a leitura seqüencial dos capı́tulos, que assim podem ser brevemente descritos: • O próximo capı́tulo aborda a fundamentação teórica da Análise Formal de Conceitos, com o objetivo de ingressar o leitor no entendimento de tal assunto. Durante todo o capı́tulo, a explanação do assunto é acompanhada de exemplos. • O terceiro capı́tulo tem conteúdo situado no escopo do estudo da aplicabilidade da Análise Formal de Conceitos. Nele são apresentados o programa desenvolvido durante o trabalho e propostas de aplicação na Ciência da Computação. • E no último capı́tulo, são apresentadas conclusões e propostas de trabalhos futuros. Nas conclusões, podem ser encontradas observações a respeito do progresso do trabalho, como pontos positivos, negativos, objetivos cumpridos etc. Capı́tulo 2 Análise Formal de Conceitos 2.1 Contextos formais Definir contexto formal é requisito primordial para o estudo da Análise Formal de Conceitos. Tal contexto tem a notação K := (G, M, I), sendo G e M conjuntos contendo elementos respectivamente denominados objetos e atributos e sendo I ⊆ G × M uma relação binária chamada incidência. Todo elemento da incidência tem a notação gIm, que denota uma relação entre um objeto e um atributo, lida como “o objeto g possui o atributo m”. Para quaisquer subconjuntos A ⊆ G e B ⊆ M , podem ser determinados seus conjuntos derivados (que respectivamente são os atributos possuı́dos pelos objetos e os objetos que possuem os atributos), por meio das operações de derivação: A0 := {m ∈ M | gIm ∀ g ∈ A} B 0 := {g ∈ G | gIm ∀ m ∈ B} O recurso mais apropriado para representação de um contexto formal é a chamada tabela cruzada. A Tabela 2.1 contém um exemplo simples de contexto formal, no qual os objetos são alguns animais, os atributos são enumerados nas colunas e a incidência contém as células marcadas. Detalhes pertencentes ao ramo da biologia não serão profundamente considerados aqui; animais e sua taxonomia são aqui empregados apenas como exemplos para a apresentação da Análise Formal de Conceitos. É importante mencionar um caso especial de conjuntos derivados, que acontece quando conjuntos vazios de objetos ou de atributos são considerados para serem derivados: A ⊆ G = ∅ ⇒ A0 := M B ⊆ M = ∅ ⇒ B 0 := G 12 CAPÍTULO 2. ANÁLISE FORMAL DE CONCEITOS 13 Tabela 2.1: Exemplo de contexto formal. Linhas: (1) baleia; (2) cobra; (3) coruja; (4) humano; (5) jacaré; (6) macaco; (7) pingüim; (8) sapo; (9) tartaruga; (10) tubarão. Colunas: (a) aquático; (b) terrestre; (c) respiração branquial; (d) respiração pulmonar; (e) membros; (f) pêlos; (g) penas; (h) escamas; (i) glândulas mamárias; (j) raciocı́nio. 1 2 3 4 5 6 7 8 9 10 2.2 a × × b × × × × × × × × × c × d × × × × × × × × × e f g h i × j × × × × × × × × × × × × × × × × × × × Conceitos formais Um contexto formal determina conceitos formais, cada um com notação (A, B), sendo A ⊆ G, B ⊆ M , A0 = B e B 0 = A. O conjunto dos objetos do conceito formal é denominado extensão e o dos atributos, intenção. Cada elemento da extensão possui todos os da intenção, e é correta a afirmação análoga para a intenção em relação à extensão. O conjunto de todos os conceitos formais existentes em um contexto formal recebe a notação B(G, M, I). Eis o algoritmo [Gan] aqui adotado e implementado na tarefa de determinar todos os conceitos formais existentes em um contexto formal: booleano conceitoFormal [0 : booleano variavelAuxiliar [0 inteiro numeroSelecionado := booleano variavelControle := numeroAtributos - 1] // Todo negativo. : numeroAtributos - 1] // Todo negativo. numeroAtributos falso enquanto conceitoFormal contém negativo ou variavelControle = verdadeiro enquanto conceitoFormal [numeroSelecionado] = verdadeiro numeroSelecionado := numeroSelecionado - 1 fim enquanto conceitoFormal [numeroSelecionado] := verdadeiro para i := numeroSelecionado + 1 até i < numeroAtributos conceitoFormal [i] := falso fim para CAPÍTULO 2. ANÁLISE FORMAL DE CONCEITOS 14 // Duas derivaç~ oes (’’): Calcula extens~ ao, depois intenç~ ao. variavelAuxiliar := conceitoFormal’’ variavelControle := false para i := 0 até i < numeroSelecionado se conceitoFormal [i] = falso e variavelAuxiliar [i] = verdadeiro numeroSelecionado := numeroSelecionado - 1 variavelControle := verdadeiro interrompe laço fim se fim para se variavelControle = falso para i := 0 até i < numeroAtributos conceitoFormal [i] := variavelAuxiliar [i] fim para novoConceito := conceitoFormal // DETERMINADO NOVO CONCEITO! numeroSelecionado := numeroAtributos fim se fim enquanto // Observaç~ ao (leia próximo parágrafo): // Ver se considerou o conceito formal // com extens~ ao contendo todos os objetos: inteiro maiorExtensao := número de objetos na maior extens~ ao se maiorExtensao < numeroObjetos novoConceito := (todos os objetos, sem atributos) // DETERMINADO NOVO CONCEITO! fim se Para abordar tal algoritmo em detalhes, seria necessário recorrer a fundamentos da Teoria de Reticulados. Como esse trabalho não abrange tal teoria em seu escopo, o algoritmo é aqui escrito com o propósito de permitir que o leitor implemente o mesmo e conheça seu funcionamento. No algoritmo, no instante em que um novo conceito formal é determinado, a variável novoConceito contém os atributos da intenção B do par (A, B); a derivação de tal conjunto resulta na extensão A, contendo os objetos do conceito formal. Como pode ser observado no algoritmo, o conceito formal contendo todos os objetos em sua extensão não é automaticamente encontrado quando sua intenção é vazia. Alguns algoritmos [GW96] que determinam B(G, M, I) são bastante conhecidos e empregados, pois cumprem seu objetivo demandando baixos tempos de processamento. Independentemente de qual algoritmo utilizado, o contexto formal da Tabela 2.1 determina dezoito conceitos formais, mostra- CAPÍTULO 2. ANÁLISE FORMAL DE CONCEITOS 15 dos na Tabela 2.2. Para gerar essa tabela, o algoritmo aqui apresentado foi empregado no contexto formal que envolve animais. Em qualquer conceito formal (A, B) da tabela, é evidentemente constatável que A0 = B e B 0 = A, ou seja, que todos os animais pertencentes à mesma extensão possuem todos os atributos pertencentes à respectiva intenção. Tabela 2.2: Conceitos formais. Na extensão: (1) baleia; (2) cobra; (3) coruja; (4) humano; (5) jacaré; (6) macaco; (7) pingüim; (8) sapo; (9) tartaruga; (10) tubarão. Na intenção: (a) aquático; (b) terrestre; (c) respiração branquial; (d) respiração pulmonar; (e) membros; (f) pêlos; (g) penas; (h) escamas; (i) glândulas mamárias; (j) raciocı́nio. Índice 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Extensão 1, 2, 3, 4, 5, 2, 5, 9, 10 1, 2, 3, 4, 5, 1, 4, 6 2, 3, 4, 5, 6, 2, 5, 9 3, 4, 5, 6, 6, 5, 9 3, 7 4, 6 4 1, 8, 10 1, 8 1 8, 10 10 8 ∅ 6, 7, 8, 9, 10 6, 7, 8, 9 7, 8, 9 7, 8, 9 Intenção ∅ h d d, i b, d b, d, h b, d, e b, d, e, h b, d, e, g b, d, e, f, i b, d, e, f, i, j a a, d a, d, i a, c a, c, h a, b, c, d, e a, b, c, d, e, f, g, h, i, j Analisar conceitos formais é mais intuitivo que analisar um contexto formal. Em conceitos formais, os objetos são agrupados segundo seus atributos similares e podem ser ordenados segundo uma hierarquia de atributos, como será mencionado adiante. Como demonstração do quão intuitivo é analisar conceitos formais, observando as extensões e as intenções da Tabela 2.2, o leitor pode perceber que a organização dos animais segundo conceitos formais esboça algo de taxonomia, como os mamı́feros agrupados no conceito formal de ı́ndice 4. É oportuno que seja também notada a exceção referente à derivação de conjuntos vazios, no primeiro e no último conceitos formais. CAPÍTULO 2. ANÁLISE FORMAL DE CONCEITOS 2.3 16 Reticulados conceituais Quando o conjunto de todos os conceitos formais de um contexto formal é hierarquicamente ordenado segundo a Teoria de Reticulados Completos [Gra98, DP90], recebe a denominação de reticulado conceitual e a notação B(G, M, I). Seus conceitos formais se relacionam como (A1 , B1 ) ≤ (A2 , B2 ), quando A1 ⊆ A2 e B2 ⊆ B1 , sendo (A1 , B1 ) chamado subconceito e (A2 , B2 ) chamado superconceito. No reticulado conceitual aqui abordado, o conceito formal de extensão {“humano”} é, por exemplo, subconceito do conceito formal de extensão {“humano”, “macaco”}; o atributo “raciocı́nio” os difere. A estrutura de um reticulado conceitual B(G, M, I) é similar à herança de classes na programação orientada por objetos. Em toda relação (A1 , B1 ) ≤ (A2 , B2 ), a intenção do subconceito contém todos os atributos da intenção do superconceito e contém também novos atributos, do mesmo modo como na herança de classes. Retomando o exemplo anterior, o conceito formal de extensão {“humano”} possui os mesmos atributos do conceito formal de extensão {“humano”, “macaco”}, mas adiciona “raciocı́nio” à sua intenção. Eis o algoritmo [Gan] aqui adotado e implementado na tarefa de estruturar um reticulado conceitual, desde que se tenham os conceitos formais: para i := 0 até i < numeroConceitosFormais conceitoFormal1 := conceitosFormais [i] para j := i + 1 até j < numeroConceitosFormais conceitoFormal2 = conceitosFormais [j] se conceitoFormal1.intenç~ ao é subconjunto de conceitoFormal2.intenç~ ao se conceitoFormal1 e conceitoFormal2 n~ ao possuem conceitos formais entre si conceitoFormal1 é superconceito de conceitoFormal2 fim se fim se fim para fim para Tão adequado quanto representar um contexto formal (G, M, I) por meio de uma tabela cruzada, é representar um reticulado conceitual B(G, M, I) por meio do chamado diagrama de linhas. O diagrama representa o reticulado conceitual como um grafo, cujos vértices denotam conceitos formais e cujas arestas denotam suas relações hierárquicas (A1 , B1 ) ≤ (A2 , B2 ). A Figura 2.1 apresenta o diagrama de linhas dos conceitos formais da Tabela 2.2, referentes ao contexto formal da Tabela 2.1. Uma vez executados os dois algoritmos aqui apresentados, é possı́vel desenhar o diagrama de linhas, baseado na determinação de subconceitos e superconceitos. Todo conceito formal (A, B) de um reticulado conceitual B(G, M, I) é representado por um vértice no diagrama de linhas. Quando dois conceitos CAPÍTULO 2. ANÁLISE FORMAL DE CONCEITOS 17 Figura 2.1: Diagrama de linhas. formais se relacionam como subconceito (A1 , B1 ) e superconceito (A2 , B2 ) sem que haja qualquer outro conceito formal entre ambos, seus vértices devem ser conectados por uma aresta no diagrama de linhas. O vértice mais alto do diagrama representa o conceito formal cuja extensão contém todos os objetos, enquanto o mais baixo representa o conceito formal com todos os atributos em sua intenção. Para tornar mais confortável e eficiente a leitura de um diagrama de linhas, extensões e intenções não precisam ser escritas por completo. Na Figura 2.1, nomes de objetos e de atributos são escritos no diagrama somente uma vez, evitando que os mesmos sejam repetidos como acontece na enumeração dos conceitos formais. Desse modo, os objetos têm seus nomes escritos no vértice mais baixo em que primeiro ocorrem, enquanto os nomes dos atributos são escritos no vértice mais alto em que primeiro ocorrem. Todos os atributos possuı́dos por um objeto podem ser encontrados nas intenções dos vértices superiores alcançados pelo vértice daquele objeto. Desse modo, o aspecto mais importante no diagrama de linhas é sua estrutura em nı́veis, ou seja, as alturas dos vértices devem ser consideradas, pois determinam subconceitos e superconceitos. Para reforçar o entendimento da estrutura do diagrama de linhas, será aqui considerado como exemplo o vértice de rótulo “humano” da Figura 2.1. Subindo pelas arestas, começando pelo vértice em questão e passando por CAPÍTULO 2. ANÁLISE FORMAL DE CONCEITOS 18 todos aqueles superiores alcançáveis pela origem, pode ser constatado que o objeto em questão possui o conjunto de atributos {“glândulas mamárias”, “membros”, “pêlos”, “raciocı́nio”, “respiração pulmonar”, “terrestre”}. Conforme anteriormente mencionado, tal estrutura é similar à herança de classes na programação orientada por objetos. O vértice considerado seria classe filha de seus superconceitos e, além de herdar todos seus atributos, teria seu atributo “raciocı́nio”. 2.4 Considerações Dado um conjunto de conceitos formais de um reticulado conceitual, ı́nfimo e supremo são respectivamente o maior subconceito e o menor superconceito comuns a todos os elementos de tal conjunto. As definições de maior e menor, dentro do escopo de reticulados conceituais, dizem respeito à ordenação hierárquica. Em outras palavras, o primeiro vértice no diagrama de linhas no qual se cruzam os caminhos de determinados conceitos formais é chamado ı́nfimo (se o caminho for para baixo) ou supremo (se o caminho for V para cima).WO Teorema Básico de Reticulados Conceituais aborda ı́nfimo e supremo de conceitos formais, cujos ı́ndices estão em T : ^ (At , Bt ) = t∈T _ t∈T \ At , t∈T (At , Bt ) = [ t∈T [ 00 ! Bt t∈T 00 \ ! At , Bt t∈T É interessante observar que mesmo conceitos formais discrepantes entre si têm ı́nfimo e supremo, ou seja, um ponto em comum no reticulado conceitual. Por exemplo, os vértices de rótulos “humano‘” e “baleia” têm, no exemplo considerado, o vértice de rótulo “glândulas mamárias” como supremo e o vértice mais baixo do diagrama como ı́nfimo. Todo reticulado conceitual contém um conceito formal maior que todos, denominado elemento unidade, e um menor que todos, denominado elemento zero. Mesmo vértices sem nada em comum, como “humano” e “tubarão”, por exemplo, têm o elemento unidade (vértice mais alto) como supremo e o elemento zero (vértice mais baixo) como ı́nfimo. Análise Formal de Conceitos e sua peculiar representação da informação nos estimula a procurar possibilidades para sua aplicação e também a discorrer a respeito do conhecimento. Analisando o exemplo aqui considerado por meio de seu diagrama de linhas, poderı́amos facilmente imergir em discussões a respeito da taxonomia dos seres vivos, pois os mesmos são agrupados e CAPÍTULO 2. ANÁLISE FORMAL DE CONCEITOS 19 relacionados segundo a similaridade de seus atributos - os animais são dispostos no diagrama segundo sua classificação como anfı́bios, aves, mamı́feros, peixes e répteis. Há também espaço para até mesmo discussões relacionadas ao evolucionismo (!), como o fato de macacos e humanos estarem próximos. Enfim, há possibilidade do contexto em questão ser abordado de diversos modos, sendo o conhecimento resultado dessas abordagens e da informação fornecida pelo diagrama. Capı́tulo 3 Aplicações Enquanto o Capı́tulo 2 aborda a fundamentação teórica da Análise Formal de Conceitos, esse novo capı́tulo discute questões de natureza prática, estudando a aplicabilidade da Análise Formal de Conceitos em problemas tradicionalmente solucionados pela Ciência da Computação. Uma ferramenta computacional implementada durante esse trabalho também compõe o estudo da aplicabilidade. Tal ferramenta será o assunto principal do próximo tópico, enquanto Mineração de Dados, Bancos de Dados e Redes Neurais Artificiais serão relacionados com Análise Formal de Conceitos nos demais tópicos. Os exemplos de aplicações aqui considerados não são o cerne da questão, mas têm essencial importância na análise das metodologias propostas. 3.1 Programa Sophia Elaborar e implementar uma ferramenta computacional que trabalhe com aspectos primordiais da Análise Formal de Conceitos é um dos objetivos aqui estabelecidos. Tal objetivo foi cumprido com o desenvolvimento de um programa que recebeu o nome de “Sophia”1 . Tal programa foi implementado na linguagem de programação Java e por enquanto executa funcionalidades primordiais, mas é planejado que seu desenvolvimento não seja abandonado. Sophia nasceu da necessidade de se estudar profundamente os mais importantes algoritmos da Análise Formal de Conceitos, por meio da implementação, e de proporcionar um recurso automatizado para as tarefas mais comuns dessa área. Sua principal limitação certamente reside no fato de não 1 Como o assunto aqui abordado envolve conceitos de dados, informação e conhecimento, “Sophia” é um adequado nome para a ferramenta computacional, pois é traduzido do grego como “Sabedoria”, cuja definição está intimamente relacionada com conhecimento e demais termos. 20 CAPÍTULO 3. APLICAÇÕES 21 representar reticulados conceituais por meio de diagramas de linhas. Tal funcionalidade não é encontrada em Sophia, pois sua implementação demandaria bastante tempo, que poderia ser empregado em outras tarefas desse trabalho. E também outros programas (mencionados adiante) já implementam diagramas de linhas e foram operados em parceria com Sophia, suprindo sua limitação nessa questão especı́fica. Entretanto, Sophia possui vantagens sobre outros programas na questão de entrada de dados. É recebido como entrada do programa qualquer contexto formal proveniente de um arquivo de texto de extensão “.sph”, cujo conteúdo contenha o contexto formal como tabela cruzada, sendo linhas e colunas respectivamente objetos e atributos e sendo seu conjunto de incidência representado por “0” (i.e. objeto sem o atributo) ou “1” (i.e. objeto com o atributo). Tal conteúdo pode ser primeiramente escrito em um programa de planilha eletrônica e exportado para um arquivo de texto quando pronto. Sophia também permite a manipulação de tabelas cruzadas (i.e. contextos formais) por meio de sua interface gráfica. Figura 3.1: Janelas do “Sophia” para contextos formais. A Figura 3.1 retrata um instante na execução de Sophia. O ambiente de trabalho do programa, como pode ser observado, suporta a manipulação CAPÍTULO 3. APLICAÇÕES 22 simultânea de diversos contextos formais, representados por suas tabelas cruzadas nas diversas janelas abertas do exemplo retratado. A janela localizada no canto mais inferior do programa contém a tabela cruzada do contexto formal empregado como exemplo no Capı́tulo 2, referente a animais e suas propriedades. Como pode ser observado na figura, o menu selecionado na barra de ferramentas permite que o usuário crie novos contextos formais e também permite que contextos formais sejam carregados de arquivos prévia e corretamente estruturados (conforme anteriormente mencionado). E as alterações efetuadas nos contextos formais podem ser salvas tanto em arquivos “.sph” como “.cxt” (esse último formato é suportado por outros programas). Sophia também permite que os contextos formais nele apresentados tenham suas tabelas cruzadas alteradas durante o uso do próprio programa. Sua interface gráfica fornece ferramentas para adicionar ou remover objetos ou atributos, para também renomear objetos ou atributos ou o próprio contexto formal e também para alterar o conjunto de incidência, marcando ou desmarcando as células da tabela cruzada. Figura 3.2: Janela do “Sophia” para reticulados conceituais. A Figura 3.2 retrata um segundo instante na execução de Sophia, no qual o reticulado conceitual de determinado contexto formal é apresentado CAPÍTULO 3. APLICAÇÕES 23 por meio de uma tabela ao invés do convencional diagrama de linhas. O contexto formal considerado na figura é novamente o exemplo do Capı́tulo 2, estando sua tabela cruzada presente na primeira aba da janela em questão (onde se lê “Tabela”) e seu reticulado conceitual na segunda aba (onde se lê “Conceitos”). Uma vez determinado um conceito formal, o usuário simplesmente precisa selecionar a funcionalidade de montar seu reticulado conceitual, presente no menu cujo rótulo é “Conceitos”. Uma tabela - parcialmente coberta na figura por uma janela (a ser mencionada) - apresenta o reticulado conceitual daquele contexto formal, sendo suas linhas os conceitos formais (i.e. nós do diagrama) e estando suas colunas apresentando informações a respeito de cada conceito formal. Na figura, a janela que parcialmente cobre a tabela do reticulado conceitual foi gerada após o usuário selecionar a funcionalidade do menu “Conceitos” para procurar informações no reticulado conceitual. Tal funcionalidade facilita a exploração da tabela em questão, permitindo que o usuário consiga as seguintes informações: vizinhos de nós selecionados (inferiores ou superiores), extensões ou intenções de selecionados nós (completas ou reduzidas2 ). O processo de trabalho aqui adotado envolvia programas de planilha eletrônica e aqueles que montam diagramas de linhas, além do próprio Sophia. Contextos formais eram estruturados em programas de planilha eletrônica, nos quais os conjuntos de incidência eram representados por “0” ou “1”, conforme anteriormente mencionado. Sophia era usado para alterar contextos formais, fornecer informações a respeito dos reticulados conceituais e para gerar arquivos cujo formato é suportado por outros programas de Análise Formal de Conceitos. Tais programas eram empregados somente para a geração de diagramas de linhas, umas vez que Sophia permite uma manipulação mais facilitada dos contextos formais. O programa empregado para a geração de tais diagramas é chamado “Toscana” e pode ser gratuitamente obtido na Internet no seguinte endereço: http://toscanaj.sourceforge.net/. Na verdade, Toscana é um renomado conjunto de programas que lidam com diagramas de linhas. Tais programas são empregados e recomendados na grande maioria dos trabalhos de Análise Formal de Conceitos, pois oferecem diversos modos de explorar diagramas de linhas. As figuras de diagramas de linhas mostradas nesse trabalho foram geradas em tais programas3 . 2 Extensões e intenções reduzidas correspondem aos rótulos que aparecem no diagrama de linhas e serão melhor abordadas adiante. 3 Demais figuras aqui mostradas (como a Figura 3.10) foram geradas no programa chamado “Dia”, disponı́vel em http://dia-installer.sourceforge.net/. CAPÍTULO 3. APLICAÇÕES 24 Nos próximos tópicos, a aplicabilidade da Análise Formal de Conceitos em problemas inerentes à Ciência da Computação será investigada, conforme mencionado na abertura desse capı́tulo. É planejado que, em trabalhos futuros, Sophia tenha seu processo de desenvolvimento continuado de modo a automatizar as aplicações sugeridas a seguir. Dentre as melhorias planejadas para Sophia, a primeira envolve a geração automática de relatórios que descrevam em linguagem natural diversas informações referentes aos reticulados conceituais. Essa e demais melhorias serão apresentadas em detalhes no Capı́tulo 4, quando forem planejados os trabalhos futuros. 3.2 Redes Neurais Artificiais Redes Neurais Artificiais são consideradas uma poderosa ferramenta computacional dentro do ramo da Inteligência Artificial, na Ciência da Computação. Sua principal vantagem reside na capacidade de solucionar problemas inéditos, uma vez que tenham aprendido problemas similares em um primeiro momento. Sua estrutura é composta por unidades denominadas neurônios artificiais, dispostos em camadas na rede neural, conectados por entradas e saı́das, atribuı́das de pesos. Detalhes a respeito da topologia ou do funcionamento das Redes Neurais Artificiais não pertencem ao escopo do trabalho, portanto é presumido que o leitor conheça ao menos aspectos básicos a respeito desse ramo da Inteligência Artificial. Redes Neurais4 são comumente aplicadas, e com sucesso, a problemas cujas variáveis possuam comportamento linear ou não. Como exemplo, [ZPS+ 03] propõe o emprego de Redes Neurais na modelagem de coletores solares. A Figura 3.3 mostra um esquema da estrutura de um coletor solar. Dependentemente de fatores ambientais e estruturais, a água fria presente no tanque, localizado na parte superior da estrutura, é aquecida na placa coletora, em um processo no qual a água circula constante e naturalmente entre tanque e placa, devido à diferença de densidade da água fria para a aquecida. Uma vez que as Redes Neurais têm capacidade para modelar coletores solares, inclusive estimando seu desempenho em possı́veis situações futuras, qual o emprego da Análise Formal de Conceitos em tal situação? O problema reside no fato do conhecimento adquirido pela Rede Neural se encontrar armazenado no formato de pesos das conexões entre seus neurônios. Não é razoável esperar que o ser humano interprete tais valores de pesos para compreender qual conhecimento a Rede Neural armazena. É para solucionar tal problema que é aqui proposto o emprego da Análise Formal de Conceitos, 4 O termo “Artificiais” será omitido de agora em diante, ficando convencionado que o trabalho não está se referindo a redes neurais biológicas. CAPÍTULO 3. APLICAÇÕES 25 Figura 3.3: Esquema da estrutura de coletores solares. mas é necessário primeiramente relatar o processo de modelagem de coletores solares por meio de Redes Neurais. A eficiência do coletor solar é a variável mais importante na maioria das aplicações com tais sistemas. Tal variável pode ser calculada após ter sido mensurada a temperatura de saı́da água. Esta última, por sua vez, depende, conforme já mencionado, de fatores ambientais e estruturais. Como somente um coletor solar está sendo considerado para a modelagem com Redes Neurais, os aspectos estruturais são valores constantes, logo, desconsiderados como possı́veis entradas da Rede Neural. Desse modo, “temperatura de entrada da água” (Tin ), “temperatura ambiente” (Tamb ) e “irradiação solar” (G) foram tidas como entradas da Rede Neural e “temperatura de saı́da da água” (Tout ), como saı́da, como representa a Figura 3.4. Figura 3.4: Esquema da estrutura de coletores solares. Durante três dias de um momento no ano apropriado para mensurações envolvendo coletores solares, aproximadamente 600 dados foram coletados envolvendo as variáveis de entrada e de saı́da da Rede Neural. Como constatado em [ZPS+ 04], a redução da quantidade de dados a serem empregados no treinamento da Rede Neural não prejudica o desempenho da mesma, se o novo e reduzido conjunto de treinamento contiver dados que representem de modo abrangente o processo em questão. Logo, o conjunto de treinamento original contendo aproximadamente 600 dados foi reduzido para um CAPÍTULO 3. APLICAÇÕES 26 novo conjunto com somente 20 dados bastante representativos, por meio do conhecido algoritmo “K-means” de clustering. Alguns autores [ZPS+ 03, ZPS+ 04] consideram três etapas quando da aplicação de Redes Neurais. A primeira é denominada fase de treinamento, quando o chamado conjunto de treinamento, contendo exemplos do problema, é apresentado para a Rede Neural. Uma vez treinada, a etapa denominada fase de validação pode ser executada, quando situações inéditas do problema são apresentadas à Rede Neural com o objetivo de analisar sua capacidade de generalização, ou seja, de solucionar problemas não considerados durante o processo de treinamento. Caso a Rede Neural atenda aos requisitos da segunda etapa, a fase de uso pode ser executada, na qual a Rede Neural pode estimar saı́das para situações futuras. O conjunto de treinamento contendo 20 dados foi apresentado à Rede Neural, cuja topologia compreende 7 neurônios na camada oculta e 1 neurônio na camada de saı́da. Após ser treinada com o mais conhecido algoritmo de treinamento (“Backpropagation”), valores aceitáveis de erros foram observados na saı́da, como mostra a Tabela 3.1. Tabela 3.1: Erros obtidos após fase de treinamento. Erro mı́nimo (◦ C) 0.01717 Erro máximo (◦ C) 0.92959 Erro médio (◦ C) 0.33199 Para a fase de validação, foram aleatoriamente selecionados 30 dados do conjunto de treinamento original (o que representa 5% em 600 elementos). E valores de erro aceitáveis foram também observados na produção de saı́das para o conjunto de validação contendo 30 situações inéditas, como mostra a Tabela 3.2. Tabela 3.2: Erros obtidos após fase de validação. Erro mı́nimo (◦ C) 0.03024 Error máximo (◦ C) 1.35995 Erro médio (◦ C) 0.45854 Como a Rede Neural calculou a maioria das saı́das com menos de 1◦ C de erro tanto na fase de treinamento como na de validação, tal Rede Neural pode ser empregada na estimativa do comportamento do coletor solar em situações futuras. Entretanto, o que interessa no momento é a extração de conhecimento da Rede Neural treinada. Como pode ser descrito o conhecimento adquirido por uma Rede Neural treinada, sem que tal informação esteja somente no formato de pesos de conexões, que foram ajustados durante a fase de treinamento? A Análise Formal de Conceitos é aplicada desse mo- CAPÍTULO 3. APLICAÇÕES 27 mento em diante, atuando no processo de extração de regras que representem o conhecimento da Rede Neural. O procedimento aqui descrito é proposto em recentes pesquisas [VZS+ b, VZS+ a]. Primeiramente, a Rede Neural treinada recebe novamente o conjunto de treinamento contendo 20 elementos. A Tabela 3.3 mostra os valores envolvidos nessa fase de operação, estando na última coluna as saı́das produzidas pela Rede Neural. Tabela 3.3: Resultados da operação da Rede Neural. As saı́das produzidas são mostradas na última coluna. Índice 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 Tamb (◦ C) 24 24.3 25 24.5 24.1 24 23.4 24.6 24.8 24.8 23 24.9 23.2 24.4 24.8 23.1 25.9 25.9 26.4 27 Tin (◦ C) 20.8 21 23.7 22.6 23.2 23 22.8 23.7 23 25.7 27.6 27.2 30.2 32.8 32.6 33 33.8 34.9 37.7 38.1 G 769 811.8 770.1 871.8 908.6 925 960.3 884.8 939.6 899.5 907.6 893.6 912.5 868.8 877.5 933.2 996.8 1048.8 1041.2 1043.5 Tout (◦ C) 27.2008 27.8893 29.3379 29.7317 30.4942 30.5380 30.6448 30.7345 31.0864 32.5756 33.4200 33.7477 35.7758 37.8067 37.9606 38.4400 41.1628 42.6359 44.4215 44.8137 Para determinar um reticulado conceitual B(G, M, I) e seu respectivo diagrama de linhas, é necessário converter a Tabela 3.3 em um ambiente binário, no qual as células são marcadas por “×” ou não. Portanto, as 4 variáveis Tamb , Tin , G e Tout foram divididas em 4 faixas cada uma, como mostra a Tabela 3.4. Desse modo, o contexto formal mostrado na Tabela 3.55 foi determinado, mediante a conversão da Tabela 3.3 em um ambiente binário, segundo as faixas apresentadas na Tabela 3.4. Uma vez determinado o contexto formal K := (G, M, I), no qual o conjunto G de objetos contém as 20 situações de treinamento e de operação, e o conjunto M de atributos contém os 16 atributos determinados (Tamb [1 − 4], Tin [1 − 4], G [1 − 4], Tout [1 − 4]), o diagrama de linhas pode ser desenhado. A Figura 3.5 retrata tal diagrama de linhas, que contém 35 conceitos formais 5 O contexto formal da Tabela 3.5 possui 16 atributos, mas devido à limitação de espaço fı́sico da página, a tabela mostra os valores assumidos em cada variável por cada objeto. CAPÍTULO 3. APLICAÇÕES 28 Tabela 3.4: Faixas de valores para cada variável. Atributos Tamb 1 Tamb 2 Tamb 3 Tamb 4 Tin 1 Tin 2 Tin 3 Tin 4 G1 G2 G3 G4 Tout 1 Tout 2 Tout 3 Tout 4 Faixas [23, 24[ [24, 25[ [25, 26[ [26, 27] [20, 25[ [25, 30[ [30, 35[ [35, 40] [769, 839[ [839, 909[ [909, 979[ [979, 1049] [27, 31[ [31, 35[ [35, 39[ [39, 60] (A, B). É importante mencionar que, ao invés de rotular os nós com os nomes dos objetos (na verdade, os nomes são números [1 − 20]), são mostradas as quantidades de objetos em tais nós. Figura 3.5: Diagrama de linhas da Rede Neural treinada. O processo de extração de regras do diagrama de linhas procura observar os relacionamentos dos atributos. Atributos que aparecem no mesmo vértice (e.g. Tamb 4 e Tin 4, G4 e Tout 4) indicam que objetos que contenham um desses atributos necessariamente também contêm os demais atributos daquele vértice. E atributos conectados por arestas (e.g. G1, Tout 1, Tin 1) indicam relacionamentos unidirecionais, nos quais os atributos dos vértices inferiores implicam na presença dos atributos dos vértices superiores aos quais estão conectados. Esse último relacionamento é fundamentado na norma de CAPÍTULO 3. APLICAÇÕES 29 Tabela 3.5: Contexto formal da Rede Neural treinada. Conforme já mencionado, as 4 variáveis Tamb , Tin , G e Tout representam 16 atributos, sendo 4 para cada variável. Índice 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 Tamb 2 2 3 2 2 2 1 2 2 2 1 2 1 2 2 1 3 3 4 4 Tin 1 1 1 1 1 1 1 1 1 2 2 2 3 3 3 3 3 3 4 4 G 1 1 1 2 2 3 3 2 3 2 2 2 3 2 2 3 4 4 4 4 Tout 1 1 1 1 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 conceitos formais vizinhos (A1 , B1 ) ≤ (A2 , B2 ) que diz que B2 ⊆ B1 . Considerando as últimas observações, é possı́vel que sejam estabelecidas proveitosas regras. Por meio de regras que mais se aproximem da linguagem natural, o ser humano compreende com mais facilidade qual conhecimento a Rede Neural armazena. Eis as regras observadas no diagrama de linhas da Figura 3.5: Tin 4 ⇒ Tamb 4 Tamb 4 ⇒ Tin 4 Tamb 4 ∨ Tin 4 ⇒ G4 ∧ Tout 4 Tout 1 ⇒ Tin 1 Tin 2 ⇒ G2 ∧ Tout 2 G1 ⇒ Tout 1 ∧ Tin 1 Tout 3 ⇒ Tin 3 Tout 4 ⇒ G4 G4 ⇒ Tout 4 Observando as regras, até mesmo pessoas que desconheçam detalhes do domı́nio da aplicação são capazes de, no caso abordado, compreender o comportamento do coletor solar modelado. Seria possı́vel, por exemplo, constatar com extrema facilidade que as mais baixas temperaturas de saı́da da CAPÍTULO 3. APLICAÇÕES 30 água acontecem quando a temperatura de entrada da água também é baixa, conforme diz a regra Tout 1 ⇒ Tin 1. Obviamente, tais constatações são verdadeiras quando o coletor solar segue normas padronizadas de montagem e operação. Entretanto, é provável que seja questionado o quão fiel é o diagrama de linhas à realidade modelada, uma vez que são considerados somente 20 dados. A garantia de tal fidelidade reside no fato de que os dados foram selecionados por meio de clustering, logo, representam todos os dados de modo abrangente. Um meio de analisar tal garantia é operando a mesma Rede Neural com novos valores, a fim de observar se as faixas de valores obtidas respeitam as regras. Tal procedimento está sob desenvolvimento. 3.3 Mineração de Dados A informação desempenha papel essencial tanto em âmbito pessoal como profissional, sendo obtida pela interpretação de dados devidamente organizados. Devido à sua importância, os pesquisadores sempre estudam metodologias para gerenciar a informação e dela extrair conhecimento, como o conhecido processo de Descoberta de Conhecimento em Bases de Dados (KDD Knowledge Discovery in Databases). KDD é definido em [FSS96] como processo cujo propósito é a extração de proveitoso conhecimento dos dados. A Mineração de Dados (Data Mining), importante passo no KDD, é definida em [FSS96] como aplicação de algoritmos especı́ficos para a extração de padrões dos dados. Bases de dados cujos conteúdos descrevem situações reais são aqui mencionadas com o propósito de analisar a viabilidade do emprego da Análise Formal de Conceitos como alternativa à tradicional Mineração de Dados. O exemplo aqui considerado contém dados referentes a taxas de mortalidade brasileiras de 2000. Devido a limitações fı́sicas de espaço, tal base de dados não é aqui mostrada, mas todos os estados brasileiros são nela registrados: Norte:={AC, AM, AP, PA, RO, RR, TO}; Nordeste:={AL, BA, MA, CE, PB, PE, PI, RN, SE}; Sul:={PR, RS, SC}; Sudeste:={ES, MG, RJ, SP}; Centro Oeste:={DF, GO, MS, MT}. Do mesmo modo que os estados são referenciados por seus respectivos acronônimos, as causas de mortalidade também receberam rótulos, a saber: CAPÍTULO 3. APLICAÇÕES 31 mortalidade infantil (a), neoplasia (tumores) (b), problemas no sistema circulatório (c), diabete (d), cirrose (e), AIDS (f ), acidentes com transportes (g), homicı́dios (h) e suicı́dios (i). De modo a converter a base de dados original para um contexto formal, a mediana de cada taxa de mortalidade em todos os estados brasileiros foi calculada. Para que, no contexto formal gerado, um determinado objeto (i.e. estado) possua um determinado atributo (i.e. mortalidade), é necessário que, na base de dados, sua taxa naquela mortalidade seja igual ou superior à mediana daquela taxa no Brasil. Ou seja, o contexto formal, apresentado na Tabela 3.6, considera estados como objetos, mortalidades como atributos e adiciona ao conjunto de incidência taxas de mortalidade iguais ou superiores à mediana nacional, ou seja, altas taxas de mortalidade. Tabela 3.6: Contexto formal das taxas de mortalidade brasileiras. AC AL AM AP BA CE DF ES GO MA MG MS MT PA PB PE PI PR RJ RN RO RR RS SC SE SP TO a × × × × × × b c d × × × × × × × × × × × × × e f g h × × × × × i × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × O reticulado conceitual do contexto formal KBrasil (contexto da Tabela 3.6) foi determinado e contém 73 conceitos formais (A, B). Como retratar um diagrama de linhas com tamanha quantidade de nós é inapropriado nesse trabalho (devido ao tamanho fı́sico das folhas), um contexto formal reduzido KN ordeste , contendo somente os estados brasileiros da região nordeste, será considerado de agora em diante. Seu reticulado conceitual contém 14 con- CAPÍTULO 3. APLICAÇÕES 32 ceitos formais (A, B), conforme mostra seu diagrama de linhas, retratado na Figura 3.6. É importante mencionar que mesmo grandes diagramas de linhas podem ser explorados, mas foi decidido empregar diagramas menores nesse trabalho por questões de espaço. Figura 3.6: brasileiro. Diagrama de linhas de taxas de mortalidade no nordeste Algumas inferências são intuitivas quando se observa o diagrama de linhas. Por exemplo, a mortalidade infantil (atributo a) pertence ao elemento unidade do diagrama e, por esse motivo, é possuı́da por todos os objetos. Como o nordeste é a região brasileira na qual problemas sociais e econômicos são alarmantes, é real e infelizmente esperado que seus estados tenham alta taxa de mortalidade infantil. Entretanto, esse trabalho não pretende abordar aspectos tão intuitivos, mas discutir a Análise Formal de Conceitos como metodologia de Mineração de Dados. Algumas pesquisas [SZa] já tentaram algo parecido, mas a abordagem aqui empregada é retirada de [SZb]. Um dos recursos de Mineração de Dados é chamado modelagem de dependência, definido em [FSS96] como: Modelagem de dependência consiste em encontrar um modelo que descreva dependências significantes entre as variáveis. Modelos de dependência existem em dois nı́veis: o nı́vel estrutural do modelo especifica (usualmente em forma gráfica) como as variáveis CAPÍTULO 3. APLICAÇÕES 33 são dependentes entre si conforme suas posições, enquanto o modelo quantitativo especifica as forças das dependências usando alguma escala numérica. Diagramas de linha incontestavelmente são modelos de dependência em nı́vel estrutural, pois as posições dos conceitos formais determinam seus relacionamentos. Um modo de constatar tal afirmação é por meio das definições de ideal principal e de filtro principal. Considerando um conceito formal (A, B), seu ideal principal ((A, B)] e seu filtro principal [(A, B)) são definidos pela Teoria de Reticulados como: (A, B) := (C, D) ∈ B(G, M, I) | (C, D) ≤ (A, B) (A, B) := (C, D) ∈ B(G, M, I) | (C, D) ≥ (A, B) Em reticulados conceituais (representados por diagramas), ideal e filtro principais desempenham um importante papel. Ambos podem ser aplicados para determinar extensão A e intenção B de qualquer conceito formal (A, B): A := g ∈ extensao de qualquer (A, B) B := m ∈ intencao de qualquer (A, B) Tais regras confirmam que a estrutura de reticulados conceituais é realmente similar à da orientação por objetos. E a maneira como diagramas de linha representam tais estruturas hierárquicas confirma seu papel como modelos de dependência. Classificação é também um método de Mineração de Dados, definido em [FSS96] como: Classificação é determinar uma função que mapeie cada dado em uma de diversas classes definidas. Portanto, as classes devem ser definidas antes que o método de classificação comece. Nesse trabalho, é proposto que definir uma classe consiste em definir quais atributos são desejados de serem possuı́dos por objetos. Uma função que determine quais objetos têm o atributo da classe definida deve ser proposta. Por exemplo, o usuário pode determinar que a classe de interesse deve conter alta taxa de homicı́dio, selecionando o nó com o atributo h. Nesse trabalho, a solução proposta consiste em determinar quais objetos têm o atributo de interesse (i.e. h, no caso). Observando a Figura 3.6, os objetos em nós inferiores que alcancem o nó selecionado constituem a resposta. CAPÍTULO 3. APLICAÇÕES 34 Entretanto, os rótulos de objetos e atributos aparecem somente uma vez nos diagramas de linha porque, conforme já mencionado, tais diagramas estão em modo reduzido. Na verdade, cada nó representa um conceito formal (A, B), com extensão A e intenção B. Portanto, quando o usuário seleciona um nó, determinando qual atributo lhe interessa, o problema da classificação tem sua resposta na extensão do próprio nó. No exemplo mencionado, o nó h contém: (A, B) := {AL, SE, P E}, {a, d, h} Tal solução parece ser restrita a problemas cujas classes são definidas contendo apenas atributos presentes no mesmo nó. Uma solução genérica, baseada na definição de ı́nfimo, pode solucionar problemas de classificação que envolvam quaisquer quantidades de nós selecionados. Por exemplo, alguém pode desejar classes de estados que contenham tanto alta taxa de homicı́dio como alta taxa de suicı́dio e, para isso, seleciona os nós h e i. A função “Classes” é proposta aqui para solucionar esse problema, recebendo os nós selecionados (i.e. conceitos formais) como parâmetros e retornando os objetos que tenham os atributos de tais nós6 : Classes [ ^ (At , Bt ) = Extensao (At , Bt ) t∈T t∈T No exemplo envolvendo os nós h e i: Classes {AL, SE, P E}, {a, d, h} , {CE, P E}, {a, b, c, i} = o {AL, SE, P E}, {a, d, h} , {CE, P E}, {a, b, c, i} = = Extensao {P E}, {a, b, c, d, e, f, h, i} = {P E} = Extensao ^n Em outras palavras, o problema da classificação é solucionado extraindo a extensão do ı́nfimo dos nós selecionados, sendo que tais nós contêm em suas intenções os atributos que interessam àquele que solicitou a classificação. Obviamente, a função proposta denominada “Classes” retorna apenas os objetos de interesse, mas aqueles objetos que não pertençam a esse retorno constituem outra classe. Portanto, a função “Classes” pode ser melhorada, retornando ambas as classes (i.e. objetos que atendam à classe definida e aqueles que estão fora de tal definição): Classes [ t∈T n ^ ^ o (At , Bt ) = Extensao (At , Bt ) , G − Extensao (At , Bt ) t∈T t∈T Finalmente, o método clustering , definido em [HK01] como: 6 “Extensao” e “Intencao” são funções que recebem um conceito formal (A, B) como parâmetro e respectivamente retornam sua extensão A e sua intenção B. CAPÍTULO 3. APLICAÇÕES 35 O processo de determinar grupos contendo objetos similares é chamado clustering. Um cluster é uma coleção de objetos que são similares entre si e discrepantes em relação aos objetos dos demais clusters. Diagramas de linhas agrupam em seus nós aqueles objetos que têm os mesmos atributos, mas clusters não devem conter apenas objetos iguais, mas também similares. A primeira tentativa de determinar tais conjuntos em diagramas de linhas considerando a similaridade pode consistir em agrupar nós vizinhos em um mesmo cluster. Entretanto, tal abordagem considera similaridade como quantidade de atributos em comum, o que também pode ocasionar resultados inconsistentes. Considerar faixas de valores como atributos é proposto aqui para solucionar o problema da similaridade. A Tabela 3.6 implicitamente considera tais faixas como atributos, uma vez que os estados apresentam alta ou baixa taxa de mortalidade para cada atributo. Quando lidando com faixas de valores, os nós do diagrama de linhas contêm objetos cujos atributos possuem valores próximos, ou seja, são objetos cujas propriedades são similares, não iguais. Assumindo que objetos em um mesmo nó são similares quando os atributos do contexto formal são organizados em faixas de valores, clusters podem ser considerados como equivalentes aos próprios nós. É importante mencionar que somente são clusters aqueles nós que, mesmo com rótulos reduzidos (i.e. quando nomes de objetos e de atributos aparecem somente uma vez no diagrama), possuı́rem rótulos de objetos. Um conceito formal (A, B) tem seu rótulo reduzido segundo a função: o n ReducaoRotulo (A, B) = g∈A|g∈ / Extensao (C, D) ∀ (C, D) ≤ (A, B) , n o m∈B |m∈ / Intencao (E, F ) ∀ (E, F ) ≥ (A, B) Em outras palavras, nós com rótulos reduzidos mostram somente objetos que não pertencem à extensão de nenhum subconceito e somente atributos que não pertencem à intenção de nenhum superconceito. Portanto, clusters são aqui propostos como conjuntos de objetos cujos rótulos aparecem no mesmo nó, quando com rótulos reduzidos. A função proposta “Clusters” recebe um reticulado conceitual B(G, M, I) como parâmetro e retorna seu conjunto de clusters: n Clusters B(G, M, I) = Extensao ReducaoRotulo (A, B) | o | Extensao ReducaoRotulo (A, B) 6= ∅ , ∀ (A, B) ∈ B(G, M, I) CAPÍTULO 3. APLICAÇÕES 36 O reticulado conceitual de KN ordeste , representado pela Figura 3.6, pode ser recebido pela função “Clusters” como parâmetro. Em tal caso, o conjunto G contém todos os estados brasileiros do nordeste, o conjunto M contém todas as causas de mortalidade e o conjunto I contém as ocorrências de alta taxa de mortalidade, implicitamente dividindo os atributos em faixas (i.e. baixa ou alta taxa). A função “Clusters” retornaria: Clusters B(KN ordeste ) = {AL}, {BA, M A, P I}, {CE}, {P B}, {P E}, {RN }, {SE} Objetos pertencentes ao mesmo cluster não simplesmente têm os mesmos atributos, eles compartilham valores similares para cada atributo. É importante mencionar que quando mais de duas faixas (baixa ou alta) forem necessárias, cada faixa deve corresponder a um atributo distinto. Mas para esse exemplo, os atributos já denotam as faixas de valores dos objetos do cluster, como no exemplo {BA, MA, PI}, simbolizando valores altos como “+ ” e baixos como “− ”: M ortalidade em {BA, M A, P I} = {a+ , b− , c− , d− , e− , f − , g − , h− , i− } Um novo contexto formal foi determinado para avaliar a função “Clusters”, unindo estados do sul e do nordeste como objetos. Enquanto o sul apresenta a melhor qualidade de vida no Brasil, a situação oposta pode ser notada no nordeste. A Figura 3.7 apresenta o diagrama de linhas do novo contexto formal. É interessante observar que ambas as regiões consideradas não compartilham clusters. Muito pelo contrário, os estados do sul pertencem a um cluster exclusivo, por compartilharem similares taxas de mortalidade, devido à melhor situação social e econômica naquela região: M ortalidade em {P R, RS, SC} = {a− , b+ , c+ , d+ , e+ , f + , g + , h− , i+ } 3.4 Bancos de Dados Elaborar uma metodologia que empregasse Análise Formal de Conceitos com o propósito de converter modelos relacionais de bancos de dados para modelos orientados por objeto era um dos objetivos iniciais nesse trabalho. Foram estudados alguns trabalhos [Fon] que propõem metodologias para tal conversão empregando recursos que não fossem a Análise Formal de Conceitos. Contudo, tal objetivo inicial foi adiado para trabalhos futuros, pois elaborar uma metodologia que efetuasse a tarefa mencionada de modo consistente demandaria mais tempo para estudos detalhados. Uma vez que o tempo disponı́vel era insuficiente, foi decidido não apresentar propostas incompletamente testadas, sujeitas a resultados inconsistentes. CAPÍTULO 3. APLICAÇÕES 37 Figura 3.7: Diagrama de linhas de taxas de mortalidade no nordeste e sul brasileiros. Embora o objetivo inicial tenha sido adiado, esse tópico apresenta um trabalho encontrado [HPLC], cuja proposta é converter esquemas lógicos de bancos de dados para esquemas conceituais. Um estudo de caso a respeito dessa metodologia foi efetuado, descrevendo a mesma nesse tópico e observando suas vantagens e desvantagens. É esperado que tal trabalho auxilie na tarefa de conversão para modelos orientados por objeto, pois esquemas conceituais - resultado da metodologia estudada - podem ser transformados tanto em modelos relacionais como modelos orientados por objeto. A seguir, parte do trabalho estudado é brevemente descrita: Análise Formal de Conceitos é empregada na engenharia reversa de bancos de dados, segundo metodologia proposta em [HPLC]. A engenharia reversa de bancos de dados é um processo composto por duas etapas: Análise de dados: O esquema lógico é semanticamente aprimorado, sendo recuperadas informações a seu respeito, não explicitamente declaradas nele, como chaves candidatas e dependências de inclusão. Abstração conceitual: O aprimorado esquema lógico obtido na análise de dados é convertido para conceitual, seja esse último um Diagrama Entidade Relacionamento ou um Diagrama de Classes. CAPÍTULO 3. APLICAÇÕES 38 Em outras palavras, enquanto o processo de modelagem de bancos de dados apresenta o esquema conceitual sucedido pelo esquema lógico, a engenharia reversa percorre o caminho oposto, convertendo o esquema lógico para o conceitual por meio das etapas de análise de dados e de abstração conceitual. É na fase de abstração conceitual que a Análise Formal de Conceitos é inserida, tendo seu diagrama de classes empregado como ferramenta para efetuar tal conversão. O trabalho [HPLC] enumera diversos possı́veis empregos da Análise Formal de Conceitos na engenharia reversa de bancos de dados, mas implementa apenas aquele que converte um esquema lógico para um Diagrama de Classes. É presumido aqui que o leitor conheça fundamentos básicos de Bancos de Dados e também da Linguagem Unificada de Modelagem (UML - Unified Modeling Language). Questões referentes a ambos os ramos serão aqui explicadas quando consideradas relevantes ao assunto abordado ou importantes para uma melhor compreensão do leitor. A Análise Formal de Conceitos, implementada na fase de abstração conceitual, recebe da análise de dados as seguintes informações: listagem de relações e seus atributos no modelo lógico, chaves estrangeiras, candidatas e primárias e as dependências de inclusão. Definições a respeito de chaves estrangeiras, candidatas e de dependências de inclusão podem ser encontradas na literatura de Bancos de Dados [EN02]. É importante mencionar que a fase de análise de dados requer intensa intervenção humana, pois os resultados nela obtidos dependem de uma interpretação semântica do esquema lógico. Já a abstração conceitual é implementada pela Análise Formal de Conceitos, segundo um processo de duas fases: Fase 1: É objetivo da primeira fase determinar classes e seus relacionamentos de hierarquia (i.e. especialização e generalização) por meio do processamento das informações provenientes da análise de dados. Fase 2: Determinar relacionamentos de associação entre as classes é objetivo da segunda fase. O exemplo aqui considerado é similar ao de [HPLC] e apresenta um possı́vel e simples esquema lógico de banco de dados para uma hipotética biblioteca, cujos livros são empregados na execução de projetos. Logo abaixo são enumeradas as relações (i.e. tabelas) do esquema e seus respectivos atributos, sendo precedidos por “@” aqueles que são chaves primárias. E são enumeradas na Tabela 3.7 as informações do esquema obtidas na fase de análise de dados. Autor(@CodigoAutor,Nome,PrimeiroNome) CAPÍTULO 3. APLICAÇÕES 39 Livro(@CodigoLivro,Titulo,Editora,Resumo) Autoria(@CodigoLivro,@CodigoAutor) Exemplar(@CodigoLivro,@NumeroSerie,DataAquisicao,Estado) Membro(@CodigoMembro,PrimeiroNome,Nome,Telefone) Endereco(@CodigoEndereco,Logradouro,Cidade) Projeto(@CodigoProjeto,Nome) ProjetoExterno(@CodigoProjeto,Duracao) Emprestimo(@CodigoLivro,@NumeroSerie,DataEmprestimo, CodigoProjeto,CodigoEndereco) Devolucao(@CodigoLivro,@NumeroSerie,@DataEmprestimo, DataDevolucao,CodigoProjeto,CodigoEndereco) Tabela 3.7: Informações a respeito do esquema lógico da biblioteca. Quando a restrição é chave estrangeira, a relação da segunda coluna tem o atributo da última coluna como chave estrangeira proveniente da relação da terceira coluna. Quando a restrição é dependência de inclusão, a relação da segunda coluna depende da relação da terceira segundo o atributo da última. Tipo Chave Estrangeira Chave Estrangeira Chave Estrangeira Chave Estrangeira Chave Estrangeira Chave Estrangeira Chave Estrangeira Chave Estrangeira Chave Estrangeira Chave Estrangeira Dependência de Inclusão Relação 1 Autoria Autoria Exemplar Emprestimo Emprestimo Emprestimo Devolucao Devolucao Devolucao Endereco ProjetoExterno Relação 2 Livro Autor Livro Exemplar Projeto Membro Exemplar Projeto Membro Membro Projeto Atributos CodigoLivro CodigoAutor CodigoLivro CodigoLivro, NumeroSerie CodigoProjeto CodigoEndereco CodigoLivro, NumeroSerie CodigoProjeto CodigoEndereco CodigoEndereco CodigoProjeto Na primeira fase da abstração conceitual, um primeiro contexto formal KF ase1 é determinado, contendo as relações do esquema lógico em seu conjunto G e os atributos de tais relações no conjunto M , exceto chaves primárias ou chaves candidatas. O conjunto I considera relações que contêm os atributos considerados e relações que apresentam dependência de inclusão com outras relações. Tais informações são melhor descritas de um modo formal, sendo a operação “Relacao1→Relacao2” lida como “Relacao2 depende da Relacao1 segundo a dependência de inclusão”: KF ase1 := G := {Relacao ∈ EsquemaLogico}, M := {Atributo ∈ EsquemaLogico | | Atributo 6= ChaveP rimaria ∧ Atributo 6= ChaveCandidata}, n I := (Relacao1, Atributo) ∈ (G × M ) | Relacao1 tem Atributo ∨ o ∨ Relacao2 tem Atributo ∧ Relacao1 → Relacao2, ∀ (Relacao2, Atributo) ∈ (G×M ) CAPÍTULO 3. APLICAÇÕES 40 Com tal norma, é possı́vel determinar o contexto formal KF ase1 apresentado na Tabela 3.8 e seu respectivo diagrama de linhas, retratado na Figura 3.8. Adiante, após a execução da segunda fase da abstração conceitual, será discutido como diagramas de linhas são convertidos em Diagramas de Classes. Tabela 3.8: Contexto formal da primeira fase da abstração conceitual. Rótulos dos atributos (colunas): (a) Nome, (b) PrimeiroNome, (c) Titulo, (d) Editora, (e) Resumo, (f) DataAquisicao, (g) Estado, (h) Telefone, (i) Logradouro, (j) Cidade, (l) Duracao, (m) DataEmprestimo, (n) CodigoProjeto, (o) CodigoEndereco, (p) DataDevolucao. Autor Livro Autoria Exemplar Membro Endereco Projeto ProjetoExterno Emprestimo Devolucao a × × × × b × × c d e × × × f g × × h i j × × l m n o p × × × × × × × × Na segunda fase da abstração conceitual, um segundo contexto formal KF ase2 é determinado, contendo as relações do esquema lógico em seu conjunto G e chaves primárias, candidatas ou estrangeiras no conjunto M . O conjunto I contém pares de relação e atributo, se a relação do par contiver aquele atributo, no esquema lógico. De um modo formal, KF ase2 pode ser assim definido: KF ase2 := G := {Relacao ∈ EsquemaLogico}, M := {Atributo ∈ EsquemaLogico | Atributo = ChaveP rimaria ∨ ∨ Atributo = ChaveCandidata ∨ Atributo = ChaveEstrangeira}, I := (Relacao, Atributo) ∈ (G × M ) | Relacao tem Atributo A Tabela 3.9 apresenta o contexto formal KF ase2 do exemplo aqui considerado, enquanto a Figura 3.9 apresenta seu respectivo diagrama de linhas. Uma vez montados os diagramas de linhas da fase de abstração conceitual, o Diagrama de Classes da UML pode ser montado segundo informações dos diagramas da Análise Formal de Conceitos. O diagrama de linhas da primeira fase da abstração conceitual determina quais serão as classes do esquema conceitual (i.e. Diagrama de Classes) e seus relacionamentos de generalziação CAPÍTULO 3. APLICAÇÕES 41 Figura 3.8: Diagrama de linhas da primeira fase da abstração conceitual. e especialização. Isso é efetuado do seguinte modo: nós (i.e. conceitos formais) representam classes (exceto o nó mais alto e o mais baixo) e arestas representam hierarquias (i.e. generalização e especialização). Já o diagrama da segunda fase da abstração conceitual permite que sejam determinados os relacionamentos de associação entre as classes obtidas no primeiro diagrama (no caso, 10 classes). O modo como as classes se associarão é determinado pelas arestas que conectam os nós (i.e. conceitos formais) do segundo diagrama (Figura 3.9): Situação 1: Quando um nó é conectado a somente um nó superior e ambos representam classes obtidas no primeiro diagrama, suas respectivas classes são associadas no esquema conceitual. Situação 2: Quando um nó é conectado a exatamente dois nós superiores e ambos os superiores representam classes obtidas no primeiro diagrama, suas respectivas classes são associadas no esquema conceitual. Situação 3: Quando um nó é conectado a mais que dois nós superiores e todos os superiores representam classes obtidas no primeiro diagrama, todas as classes dos nós superiores são associadas à classe do nó inferior. No trabalho estudado [HPLC], são detalhados os motivos que levaram a organizar as classes e seus relacionamentos do modo como foi apresentado CAPÍTULO 3. APLICAÇÕES 42 Tabela 3.9: Contexto formal da primeira fase da abstração conceitual. Rótulos dos atributos (colunas): (a) CodigoAutor, (b) CodigoLivro, (c) NumeroSerie, (d) CodigoEndereco, (e) CodigoProjeto, (f) DataEmprestimo. Autor Livro Autoria Exemplar Membro Endereco Projeto ProjetoExterno Emprestimo Devolucao a × × b c × × × × d e f × × × × × × × × × × × × × × aqui. Entretanto, tais minúcias não serão aqui discutidas, uma vez que são de autoria alheia. De qualquer modo, é interessante mostrar o Diagrama de Classes (Figura 3.10) montado após a execução das fases de análise de dados e abstração conceitual, sendo essa última implementada com recursos da Análise Formal de Conceitos. Os relacionamentos de subconceito e superconceito do diagrama de linhas da Figura 3.8, montado na primeira fase da abstração conceitual, determinam as hierarquias (i.e. especialização e generalização) no esquema conceitual mostrado na Figura 3.10. A segunda fase da abstração conceitual tem suas três situações observadas no diagrama de linhas da Figura 3.9, determinando todos os relacionamentos de associação mostrados no Diagrama de Classes. Conforme já mencionado, o exemplo aqui considerado não é idêntico ao do trabalho estudado, mas é bastante parecido. A diferença consiste em alguns atributos que aqui foram ignorados, por não serem definidos de modo algum no trabalho de referência. O trabalho [HPLC] apresenta uma interessante proposta para solucionar o problema de engenharia reversa de bancos de dados empregando a Análise Formal de Conceitos, aproveitando os relacionamentos de diagramas de linhas para determinar tanto relacionamentos de hierarquia como de associação no Diagrama de Classes da UML. Entretanto, pequenos problemas foram observados tanto no trabalho de referência como na metodologia proposta. Quanto ao trabalho, determinadas minúcias referentes à conversão dos diagramas de linhas para o Diagrama de Classes são simplesmente omitidas, precisando ser aqui deduzidas. No trabalho estudado, tal omissão implica em determinados resultados que são simplesmente apresentados sem quaisquer explanações, como a cardinalidade do Diagrama de Linhas, por exemplo (aqui ignorada). Quanto à metodologia, um problema observado é de natureza conceitual: por CAPÍTULO 3. APLICAÇÕES 43 Figura 3.9: Diagrama de linhas da segunda fase da abstração conceitual. Figura 3.10: Diagrama de Classes obtido com Análise Formal de Conceitos. exemplo, as especializações de “Projeto” não são razoáveis. Há também associações que poderiam ser aprimoradas: por exemplo, “NovaClasse” poderia receber as associações de todas suas especializações. Apesar dos problemas observados, é esperado que a proposta analisada seja proveitosa para trabalhos futuros. Para o objetivo de converter modelos relacionais para orientados por objetos, a metodologia apresentada por esses autores terá seus pontos positivos aproveitados, enquanto as inconsistências observadas serão minimizadas. Capı́tulo 4 Conclusões O Capı́tulo 2 cumpre o objetivo estabelecido de estudar e sumariar a fundamentação teórica da Análise Formal de Conceitos. As definições primordiais do assunto são apresentadas em tal capı́tulo, empregando formalismos matemáticos e também exemplos, de modo a auxiliar o leitor que desconheça o assunto a melhor compreender o mesmo. Estudos avançados em pontos mais complexos da Análise Formal de Conceitos são planejados para trabalhos futuros. Por enquanto, a abordagem teórica do assunto foi bastante proveitosa para os próprios envolvidos no trabalho, mas é esperado que a mesma seja também proveitosa para vindouros interessados em ingressar no estudo dessa área. O Capı́tulo 3 aborda objetivos de natureza prática. Sophia foi implementado e cumpriu seu compromisso de auxiliar procedimentos da Análise Formal de Conceitos. É planejado que Sophia continue em desenvolvimento, cumprindo tarefas mais complexas no processo de gerenciamento do conhecimento, além das funcionalidades básicas que já oferece. Não é cogitado que, no futuro próximo, Sophia represente reticulados conceituais por meio de diagramas de linhas, uma vez que diversos programas gratuitos e em constante desenvolvimento já executam tal tarefa. Entretanto, é planejado que Sophia automatize ao máximo as metodologias aqui apresentadas e a serem estudadas em trabalhos futuros, oferecendo funcionalidades como a geração automática de relatórios minuciosos, por exemplo. O estudo prático continua no Capı́tulo 3, agora abordando a aplicabilidade da Análise Formal de Conceitos em problemas tradicionalmente solucionados pela Ciência da Computação. O primeiro ramo da Ciência da Computação no qual tal aplicabilidade é proposta é o de Redes Neurais Artificiais, atuando na tarefa de extração de regras que descrevam o conhecimento adquirido por uma rede neural artificial treinada. A metodologia proposta fornece ao usuário uma descrição compreensı́vel de tal conhecimento, apre44 CAPÍTULO 4. CONCLUSÕES 45 sentando o mesmo como um conjunto de regras e não como valores de pesos de conexões. Todos os experimentos envolvendo a metodologia proposta geraram resultados satisfatórios. Entretanto, é importante mencionar os problemas observados durante a pesquisa que envolve Análise Formal de Conceitos e Redes Neurais Artificiais. O primeiro requisito é que a rede neural artificial apresente bons resultados após as fases de treinamento e de validação, pois de nada adiantaria a extração de conhecimento que não fosse consistente. É requisito também que os conjuntos de dados fornecidos tanto à rede neural artificial como ao contexto formal representem do modo mais fiel possı́vel o processo modelado. Os dados empregados no exemplo aqui considerado foram cuidadosamente coletados e agrupados por meio de clustering, de modo a garantir que a realidade não estivesse sendo erroneamente interpretada. Mineração de Dados é o próximo ramo da Ciência da Computação no qual foram inseridas aplicações da Análise Formal de Conceitos. Métodos tradicionais como classificação e clustering foram implementados por meio de diagramas de linhas, que representavam os dados em questão e os apresentavam de modo mais claro ao usuário. Embora os resultados tenham sido proveitosos, a pior dificuldade, observada em todas as aplicações aqui apresentadas, está relacionada ao tamanho do contexto formal considerado. Dependendo da quantidade de objetos ou de atributos e, principalmente, do quão irregulares são os valores do conjunto de incidência, explorar diagramas de linhas passa a ser uma tarefa inviável. O próximo trabalho planejado tem como objetivo principal implementar, robusta e completamente, a Análise Formal de Conceitos como um passo do processo de Descoberta de Conhecimento em Bases de Dados. Devido ao modo como graficamente representa dados, a Análise Formal de Conceitos será proposta como alternativa à Mineração de Dados tradicional, embora ambos possam também ser empregados em conjunto. Em tal trabalho, será procurado solucionar o problema de tamanho e complexidade do contexto formal por meio de procedimentos executados nos primeiros passos da Descoberta de Conhecimento em Bases de Dados. E por fim, foi aqui também proposto que Bancos de Dados empregassem a Análise Formal de Conceitos. Como o objetivo de converter modelos relacionais de bancos de dados para modelos orientados por objeto não pôde ser completamente cumprido, foi decidido estudar minuciosamente um trabalho com propósito similar. O trabalho estudado converte esquemas lógicos para esquemas conceituais com o emprego da Análise Formal de Conceitos. Pequenas omissões e inconsistências foram observadas em tal trabalho, embora sua proposta pareça ser bastante proveitosa para trabalhos futuros, quando o objetivo inicial envolvendo modelos orientados por objeto for retomado. CAPÍTULO 4. CONCLUSÕES 46 Enfim, a Análise Formal de Conceitos é um assunto em estado incipiente na Ciência da Computação, embora sua aplicação em tal ciência possa ser bastante valiosa. Sua principal vantagem reside na capacidade de representar a informação por meio de diagramas, cuja compreensão pelo ser humano ocorre de modo intuitivo. Entretanto, a pior limitação nela observada ocorre quando grandes quantidades de dados de comportamento complexo são fornecidos como entrada para tais diagramas. Como os diagramas são fundamentados em princı́pios matemáticos da Teoria de Reticulados, ao invés de estudar maneiras de alterar tal estrutura, é razoável que sejam estudadas maneiras de organizar os dados de entrada de modo mais apropriado. Análise Formal de Conceitos lida com conhecimento e, assim como diversas áreas das ciências que também o fazem, também lida com problemas extremamente complexos, referentes à fidelidade do conhecimento modelado à informação fornecida pela realidade. Tentar extrair ou representar conhecimento é uma tarefa bastante ousada e muitos das metodologias que procuram cumprir tal tarefa não o fazem efetivamente, mas apenas empregam aproximações. Gerenciar conhecimento é uma tarefa que requer o uso do próprio conhecimento e daı́ surgem os principais problemas. E a Análise Formal de Conceitos, com sua sólida fundamentação, oferece uma importante contribuição para a execução de tal tarefa. Referências Bibliográficas [DP90] Brian Davey and Hilary Priestley. Introduction to lattices and order. Cambridge University Press, Cambridge, England, 1990. [EN02] Ramez Elmasri and Shamkant Navathe. Sistemas de banco de dados: Fundamentos e aplicações. Livros Técnicos e Cientı́ficos Editora, Rio de Janeiro, Brazil, 3 edition, 2002. [Fon] Joseph Fong. Converting relational to object oriented databases. [FSS96] Usama Fayyad, Gregory Shapiro, and Padhraic Smyth. From data mining to knowledge discovery in databases. Artificial Intelligence Magazine, 17(3):37–54, 1996. [Gan] Bernhard Ganter. Two basic algorithms in concept analysis. [Gra98] George Gratzer. General lattice theory. Birkhäuser Verlag, Basel, Germany, 1998. [Gua95] Nicola Guarino. Formal ontology, conceptual analysis and knowledge representation. International journal of human and computer studies, 5(43):625–640, 1995. [Gua98] Nicola Guarino. Formal ontology and information systems. In Proceedings of formal ontology in information systems, pages 3– 15, Amsterdam, Netherlands, 1998. IOS Press. [GW96] Bernhard Ganter and Rudolf Wille. Formal concept analysis: Mathematical foundations. Springer Verlag, Berlim, Germany, 1996. [GW98] Bernhard Ganter and Rudolf Wille. Applied lattice theory: Formal concept analysis. In George Grätzer, editor, General lattice theory, pages 591–605. Birkhäuser Verlag, Basel, Germany, 1998. 47 REFERÊNCIAS BIBLIOGRÁFICAS 48 [HK01] Jiawei Han and Micheline Kamber. Data Mining: Concepts and techniques. Morgan Kaufmann Publishers, United States, 2001. [HPLC] Carmen Hernández, Félix Prieto, Miguel A. Laguna, and Yania Crespo. Formal concept analysis support for conceptual abstraction in database reengineering. [Stu03] Gerd Stumme. Conceptual knowledge discovery and processing. International journal of human and computer studies, 59(3):287– 325, 2003. [SWW98] Gerd Stumme, Rudolf Wille, and Uta Wille. Conceptual knowledge discovery in databases using formal concept analysis methods. In Proceedings of the second european symposium on principles of data mining and knowledge discovery, pages 450–458, Heidelberg, Germany, 1998. Springer Verlag. [SZa] João Paulo Domingos Silva and Luis Enrique Zárate. Formal concept analysis for data mining: Discovery of symptoms patterns of nephrolithiasis. Submitted and under revision. [SZb] João Paulo Domingos Silva and Luis Enrique Zárate. Formal concept analysis for data mining: Foundations and applications. Submitted and under revision. [VZS+ a] Renato Vimieiro, Luis Enrique Zárate, João Paulo Domingos Silva, Elizabeth Marques Duarte Pereira, and Antônia Sônia Cardoso Diniz. Reasoning based on rules extracted from trained neural networks via formal concept analysis. Submitted and under revision. [VZS+ b] Renato Vimieiro, Luis Enrique Zárate, João Paulo Domingos Silva, Elizabeth Marques Duarte Pereira, and Antônia Sônia Cardoso Diniz. Rule extraction from trained neural networks via formal concept analysis. Submitted and under revision. [Wil01] Rudolf Wille. Why can concept lattices support knowledge discovery in databases? In Proceedings of the concept lattices based knowledge discovery in databases workshop, pages 7–20, Stanford, United States, 2001. [ZPS+ 03] Luis Enrique Zárate, Elizabeth Marques Duarte Pereira, João Paulo Domingos Silva, Renato Vimieiro, Sérgio Pires, and Antônia Sônia Cardoso Diniz. Representation of a solar collector via artificial neural networks. In M. H. Hamza, editor, Proceedings of the REFERÊNCIAS BIBLIOGRÁFICAS 49 third IASTED International Conference on Artificial Intelligence and Applications, pages 517–522, Benalmádena, Spain, September 2003. International Association of Science and Technology for Development, ACTA Press. [ZPS+ 04] Luis Enrique Zárate, Elizabeth Marques Duarte Pereira, João Paulo Domingos Silva, Renato Vimieiro, Daniel Alencar Soares, and Antônia Sônia Cardoso Diniz. Optimization of neural networks training sets via clustering: application in solar collector representation. In Isabel Seruca, Joaquim Filipe, Slimane Hammoudi, and José Cordeiro, editors, Proceedings of the sixth international conference on enterprise information systems, pages 147–152, Porto, Portugal, April 2004. Institute for Systems and Technologies of Information, Control and Communication.