UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE EDUCAÇÃO SUPERIOR DE CIÊNCIAS TECNOLÓGICAS, DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO SISTEMA PARA RECONHECIMENTO DE PLANTAS BIOATIVAS Área de Inteligência Artificial Antônio Amaury Silva Neto Itajaí (SC), julho de 2004 UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE EDUCAÇÃO SUPERIOR DE CIÊNCIAS TECNOLÓGICAS, DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO RELATÓRIO DO TRABALHO DE CONCLUSÃO DE CURSO II SISTEMA PARA RECONHECIMENTO DE PLANTAS BIOATIVAS Área de Inteligência Artificial Antônio Amaury Silva Neto Relatório apresentado à Banca Examinadora do Trabalho de Conclusão do Curso de Ciência da Computação para análise e aprovação Itajaí (SC), julho de 2004 EQUIPE TÉCNICA Acadêmico Antônio Amaury Silva Neto Professor Orientador Anita Maria da Rocha Fernandes, Dra. Co-orientador Antônio Amaury Silva Júnior, M.Sc. Coordenadores dos Trabalhos de Conclusão de Curso Anita Maria da Rocha Fernandes, Dra. Cesar Albenes Zeferino, Dr. Coordenador do Curso Luis Carlos Martins, Esp. i DEDICATÓRIA Dedico esse trabalho aos meus pais, que são os meus grandes incentivadores. ii AGRADECIMENTOS Agradeço a: Deus, por estar me proporcionando diversas oportunidades e pela minha existência. Aos meus pais, que suportaram meus momentos de impaciência e escutaram todas minhas preocupações. A minha orientadora Anita Maria da Rocha Fernandes pela extrema dedicação e empenho ao trabalho, e pela grande orientação que foi a mim oferecida. Aos meus colegas, pelo convívio durante essa difícil jornada. iii SUMÁRIO LISTA DE ABREVIATURAS E SIGLAS.............................................................. vii LISTA DE FIGURAS ..............................................................................................viii LISTA DE TABELAS................................................................................................ ix RESUMO .................................................................................................................... xi ABSTRACT ............................................................................................................... xii I - INTRODUÇÃO ...................................................................................................... 1 1. APRESENTAÇÃO.................................................................................................. 1 2. JUSTIFICATIVA.................................................................................................... 1 3. IMPORTÂNCIA ..................................................................................................... 1 4. OBJETIVOS ............................................................................................................ 2 4.1. Objetivo Geral .............................................................................................................................2 4.2. Objetivos Específicos...................................................................................................................2 5. METODOLOGIA ................................................................................................... 3 II - REVISÃO BIBLIOGRÁFICA ............................................................................ 4 1. PLANTAS BIOATIVAS......................................................................................... 4 1.1. Identificação de Plantas Bioativas .............................................................................................6 1.2. Sistemática de Plantas Bioativas................................................................................................7 1.3. Sistemas de Classificação............................................................................................................7 1.4. Sistemas de Cronquist e Engler .................................................................................................8 1.5. Unidades de Classificação...........................................................................................................8 2. INTELIGÊNCIA ARTIFICIAL............................................................................ 9 2.1. Conceito......................................................................................................................................10 3. RACIOCÍNIO BASEADO EM CASOS ............................................................. 11 iv 3.1. Histórico .....................................................................................................................................13 3.2. Representação dos Casos ..........................................................................................................14 3.3. Indexação ...................................................................................................................................15 3.4. Recuperação de Casos...............................................................................................................16 3.4.1. Matching e Ranking .................................................................................................................18 3.5. Adaptação ..................................................................................................................................19 3.6. Aprendizagem............................................................................................................................19 3.7. Exemplos de Aplicações de RBC para a área de Meio Ambiente.........................................20 3.7.1. Sistema para o Plantio de Árvores Frutíferas...........................................................................20 3.7.2. A Identificação das Não-Conformidades (NC) Ambientais nas Empresas..............................21 4. LÓGICA DIFUSA................................................................................................. 21 4.1. Introdução..................................................................................................................................21 4.2. Arquitetura de um Sistema Difuso ..........................................................................................25 III - DESENVOLVIMENTO ................................................................................... 27 1. ARQUITETURA DO SISTEMA......................................................................... 28 2. MODELAGEM DO SISTEMA ........................................................................... 30 2.1. Modelo Entidade Relacionamento (MER)..............................................................................30 2.2. Dicionário de Dados ..................................................................................................................33 2.2.1. Descrição das Tabelas de Dados ..............................................................................................33 2.2.2. Descrição dos Atributos das Tabelas .......................................................................................34 2.3. Diagrama de Contexto ..............................................................................................................39 2.4. Diagrama de Fluxo de Dados (DFD’s).....................................................................................40 2.5. Especificação de Processos .......................................................................................................40 2.5.1. Processo 1 – Consultar Bioativas .............................................................................................41 2.5.2. Processo 2 - Manter Pesquisadores ..........................................................................................41 2.5.3. Processo 3 - Manter Bioativas..................................................................................................41 3. O Modelo Difuso.................................................................................................... 41 4. O Modelo de RBC ................................................................................................. 43 5. Descrição das Telas do Sistema Proposto ........................................................... 43 v IV - CONCLUSÕES E RECOMENDAÇÕES ....................................................... 49 BIBLIOGRAFIA ....................................................................................................... 50 GLOSSÁRIO ............................................................................................................. 53 ANEXOS .................................................................................................................... 54 vi LISTA DE ABREVIATURAS E SIGLAS BD Banco de Dados CBR Case-Based Reasoning DFD Diagrama de Fluxo de Dados ER Entidade-Relacionamento IA Inteligência Artificial PHP Personal Home Page MER Modelo Entidade-Relacionamento NC Não-Conformidades RBC Raciocínio Baseado em Casos SGA Sistema de Gestão Ambiental SQL Structured Query Language (Linguagem estruturada de consulta) TCC Trabalho de Conclusão de Curso vii LISTA DE FIGURAS Figura 1 - O Ciclo do RBC.................................................................................................................12 Figura 2 – Exemplo de uma representação atributo-valor. ................................................................15 Figura 3 - Caso descritivo de ambigüidade para uma taça pela metade. ...........................................23 Figura 4 - Conceito de estatura “Alta” e “Baixa”. .............................................................................24 Figura 5 – Conjuntos difusos relativos à temperatura........................................................................25 Figura 6 – Fluxo de dados num sistema baseado em lógica difusa....................................................25 Figura 7 – Arquitetura proposta para o sistema. ................................................................................28 Figura 8 – Diagrama de Entidade-Relacionamento Modelo Lógico..................................................31 Figura 9 – Diagrama de Entidade-Relacionamento Modelo Físico. ..................................................32 Figura 10 – Diagrama de Contexto. ...................................................................................................40 Figura 11 – Diagrama de Fluxo de Dados..........................................................................................40 Figura 12 – Distribuição da Variável Tamanho do Caule..................................................................42 Figura 13 – Distribuição da Variável Tamanho da Semente. ............................................................43 Figura 14 – Tela Inicial do Sistema. ..................................................................................................44 Figura 15 – Tela de Cadastro e Manutenção da Tabela de Pesquisadores.........................................45 Figura 16 – Tela de Consulta a Base de Conhecimento Utilizando a Técnica de RBC.....................46 Figura 17 – Tela de Resultados da Pesquisa RBC. ............................................................................47 Figura 18 – Tela Descritiva da Espécie..............................................................................................48 viii LISTA DE TABELAS Tabela 1 – Tabela Comparativa do Gênero Phyllanthus......................................................................5 Tabela 2 – Classificação de uma Espécie Vegetal ...............................................................................9 Tabela 3 – Exemplos de Sistemas Baseados em Casos .....................................................................13 Tabela 4 – Controle de Velocidade de um Ventilador. ......................................................................24 Tabela 5 – Descrição das Tabelas de Dados ......................................................................................33 Tabela 6 – Dicionário de Dados da Entidade Caule_Folhas..............................................................34 Tabela 7 – Dicionário de Dados da Entidade Caule_Forma ..............................................................34 Tabela 8 – Dicionário de Dados da Entidade Caule_Tamanho .........................................................34 Tabela 9 – Dicionário de Dados da Entidade Estipulas_Cor .............................................................34 Tabela 10 – Dicionário de Dados da Entidade Estipulas_Forma.......................................................35 Tabela 11 – Dicionário de Dados da Entidade Espécies....................................................................35 Tabela 12 – Dicionário de Dados da Entidade FE_Anteras...............................................................35 Tabela 13 – Dicionário de Dados da Entidade FE_Estames ..............................................................36 Tabela 14 – Dicionário de Dados da Entidade FE_Glandulas ...........................................................36 Tabela 15 – Dicionário de Dados da Entidade FE_Sepalas ...............................................................36 Tabela 16 – Dicionário de Dados da Entidade Flores_Estamin.........................................................36 Tabela 17 – Dicionário de Dados da Entidade Flor_Pistiladas..........................................................36 Tabela 18 – Dicionário de Dados da Entidade Folha_Apice .............................................................37 Tabela 19 – Dicionário de Dados da Entidade Folha_Base ...............................................................37 Tabela 20 – Dicionário de Dados da Entidade Folha_Bordo.............................................................37 Tabela 21 – Dicionário de Dados da Entidade Folha_Forma ............................................................37 Tabela 22 – Dicionário de Dados da Entidade FP_Consistencia .......................................................37 Tabela 23 – Dicionário de Dados da Entidade FP_DiscGland ..........................................................38 Tabela 24 – Dicionário de Dados da Entidade FP_DiscGland ..........................................................38 Tabela 25 – Dicionário de Dados da Entidade FP_Ovario ................................................................38 Tabela 26 – Dicionário de Dados da Entidade FP_Pedicelo..............................................................38 Tabela 27 – Dicionário de Dados da Entidade FP_Sepalas ...............................................................38 Tabela 28 – Dicionário de Dados da Entidade Pesquisadores ...........................................................39 Tabela 29 – Dicionário de Dados da Entidade Pesquisadore_Espécie ..............................................39 Tabela 30 – Dicionário de Dados da Entidade Sem_Ornament.........................................................39 ix Tabela 31 – Dicionário de Dados da Entidade Sem_Compr..............................................................39 Tabela 32 – Funções da Variável Tamanho do Caule........................................................................42 Tabela 33 – Funções da Variável Tamanho da Semente. ..................................................................42 x RESUMO Este trabalho apresenta o desenvolvimento de um sistema inteligente para identificação de plantas bioativas, que são espécies vegetais que possuem atividade farmacológica, biológica e/ou biocida, podendo ser utilizadas como base para pesquisa em diversas instituições por profissionais e estudantes da área procurando auxiliar o uso adequado desta bioatividade. O sistema foi desenvolvido aplicando a técnica de Raciocínio Baseado em Casos, buscando na memória do sistema a experiência mais próxima com o problema de entrada. O algoritmo para cálculo da similaridade utilizado foi o de contagem de características. Utilizou-se a linguagem de programação para web PHP e banco de dados MySQL, visando um acesso fácil e público as informações. Através desta ferramenta, foi possível obter identificações mais precisas, com maior rapidez e segurança. xi xii ABSTRACT This paper proposes the development of an intelligent system for identification of bioactive plants, that are vegetal species which possess pharmacological, biological and/or biocide activity, to be used in research and education institutions by professionals and students of the area. The system was developed applying the technique of Case-Based Reasoning, searching in the system memory the nearest experience with the entrance problem. The algorithm used to calculation the similarity was of counting of characteristics. The system was developed in PHP programming language for Web and MySQL database, aiming at an easy and public access to the information. Clearer identifications in each specific case, with more rapidity and security are hoped to get with this aid. xii I - INTRODUÇÃO 1. APRESENTAÇÃO O presente Trabalho de Conclusão de Curso, fundamentado na técnica de Raciocínio Baseado em Casos, apresenta o desenvolvimento de uma ferramenta capaz de identificar espécies de plantas com fatores bioativos úteis à comunidade através de suas características fitológicas, para utilização em instituições de pesquisa e ensino, por profissionais de saúde e pela comunidade em geral que procura utilizar estas plantas de acordo com a sua propriedade bioativa. Segundo Silva (2003), Planta Bioativa é uma espécie vegetal que reúne componentes fitoquímicos (metabólitos primários e/ou secundários com atividade farmacológica, biológica e/ou biocida). 2. JUSTIFICATIVA O estudo de sistemas inteligentes utilizando a técnica de Raciocínio Baseado em Casos e a implementação de uma ferramenta na área de plantas bioativas, que se apresenta pouco explorada e com recursos escassos, são as principais justificativas deste trabalho. Além destas, citase a necessidade de se aperfeiçoar e agilizar o processo de identificação destas plantas com o objetivo de aumentar o rendimento do trabalho produzido, e das pesquisas realizadas por profissionais e estudantes da área. 3. IMPORTÂNCIA Considerando-se um universo de quase 500.000 espécies de plantas no planeta Terra e a possibilidade de ocorrência de até milhares de substâncias bioativas em cada espécie, a busca por características específicas em modelos de consulta convencionais tem sido uma tarefa de grande vulto e muitas vezes até desanimadora, resultando em um processo moroso no desenvolvimento da fitoterapia, fitologia e fitoquímica (SILVA, 2003). 2 Atualmente a recuperação de dados é feita de forma manual e subjetiva nas instituições de pesquisa e é baseada unicamente em recursos bibliográficos esparsos e reduzidos, e no conhecimento de alguns pesquisadores. Daí surgiu à necessidade de uma ferramenta para aquisição e sistematização do conhecimento, para auxílio ao profissional e estudantes da área, no intuito de gerar pesquisas mais exatas e eficazes. 4. OBJETIVOS 4.1. Objetivo Geral O objetivo geral deste trabalho é implementar um sistema de Raciocínio Baseado em Casos para o resgate de dados fitológicos visando auxiliar pesquisadores, técnicos, estudantes e a comunidade em geral na busca rápida e precisa da identificação das plantas bioativas. 4.2. Objetivos Específicos São objetivos específicos deste trabalho: • Escolher a fonte de informações para a aquisição de conhecimento; • Criar uma base inicial de casos; • Estudar e desenvolver as técnicas de recuperação dos casos; • Criar a modelagem do sistema, através de diagramas; • Desenvolver uma ferramenta inteligente para o auxílio aos profissionais e estudantes; • Avaliar a adequação da técnica de Raciocínio Baseado em Casos na implementação de um sistema inteligente para o reconhecimento de plantas bioativas com ênfase no gênero Phyllanthus; • Fazer a validação do sistema junto ao especialista. 3 5. METODOLOGIA A metodologia seguida para o desenvolvimento deste projeto foi: • Revisar os conhecimentos adquiridos durante o desenvolvimento do trabalho, através de pesquisa bibliográfica, e aprofundamento nos tópicos necessários para o desenvolvimento do projeto, tais como Inteligência Artificial, Desenvolvimento de Sistemas, Banco de Dados; • Levantar a situação atual junto à instituição de pesquisa escolhida para o projeto: a EPAGRI de Itajaí. Este levantamento foi realizado através de entrevistas e coleta de dados com os funcionários responsáveis, neste trabalho tratados como especialistas, de forma a definir os requisitos para o sistema em questão e também modelar a base de conhecimentos necessária para o funcionamento do mesmo; • Coletar uma quantidade significativa de casos para elaborar a base inicial do sistema utilizando o sistema gerenciador de banco de dados MySQL; • Analisar os requisitos dos futuros usuários para definição do escopo do sistema, suas funções e comportamento, bem como a definição da metodologia e das ferramentas necessárias para o desenvolvimento do sistema. A partir destes dados, iniciar o desenvolvimento do projeto escrito; • Implementar o software, utilizando as ferramentas e metodologias citadas nas etapas anteriores bem como a modelagem do sistema através dos diagramas e seus respectivos dicionários de dados, consultando quando necessário os especialistas, de maneira a cumprir os requisitos dos mesmos. Visando sua publicação na web, será utilizada a linguagem de programação PHP; • Realizar a etapa de testes com a ferramenta. Nessa especialistas da área realizarão operações visando a adequação do sistema. II - REVISÃO BIBLIOGRÁFICA 1. PLANTAS BIOATIVAS O estudo das plantas bioativas pode ser encontrado em áreas da ciência provindo da reunião dos conhecimentos seculares, transmitidos oralmente de geração em geração, sobre sua coleta e utilização. Os conhecimentos sistematizados encontram-se dispersos pelos conhecimentos ligados a Farmácia, Botânica, Ecologia e Horticultura, originando uma enorme quantidade de informações dispersas por diversas fontes. Se considerarmos ainda que as diferentes ciências normalmente possuem linguagem de difícil compreensão aos não especialistas e que os técnicos em cada uma destas, comumente não dispõem de informações específicas ligadas a outras áreas, é compreensível que haja a necessidade de compilar e organizar as informações de forma a permitir uma consulta ágil, atualizada e simples, disponibilizando assim as informações necessárias (INFOHERBS, 2003). O mundo das plantas bioativas mobiliza hoje milhares de engenheiros agrícolas, biólogos, químicos, farmacêuticos e médicos de todos os continentes. Entre eles, há pelo menos uma certeza: as plantas bioativas são facilmente utilizáveis, porém seu benefício dificilmente comprovado. Os avós têm as receitas prontas, na ponta da língua, e sabem o que utilizar, como e quando. As infusões e cataplasmas costumam ser suficientes para revelar as propriedades curativas de cada espécie. Já para os cientistas, as plantas representam um duro desafio. Anos e anos são investidos em pesquisas para identificar plantas, princípios ativos e indicadas as propriedades curativas (ESTADÃO, 1996). Estudos aprofundados sobre o tema são realizados permanentemente por laboratórios estrangeiros. Quando se trata de vegetais, é preciso tempo e dinheiro para se chegar a um diagnóstico confiável. Poucos cientistas brasileiros dispõem, hoje, das condições necessárias ao desenvolvimento de pesquisas sérias nessa área. As similaridades morfológicas, por exemplo, são fontes inesgotáveis de trabalho, destacando-se os exaustivos estudos realizados com o popular quebra-pedra. Os tipos de Phyllanthus (gênero dessa família de plantas) são parecidos exteriormente, como o exemplo da Tabela 1, tem sido o desafio descobrir quais deles são de fato eficazes na expulsão e destruição de cálculos renais (ibidem). 5 Tabela 1 – Tabela Comparativa do Gênero Phyllanthus Espécie P. caroliniensis P. fraternus P. niruri P. stipulatus P. tenellus P. urinaria Característica Caule Principal Tamanho 10-30 cm 5-35 cm 20-50 cm 20-70 cm 20-80 cm Forma Cilíndrico Cilíndrico Cilíndrico Cilíndrico Cilíndrico Presença de folhas Normais Reduzidas a escamas Reduzidas a escamas Reduzidas a escamas Reduzidas a escamas Forma Elíptica Elíptica Oblonga Elíptica Elíptica Oblonga irregular Ápice Arredondado ou levemente agudo Arredondado Agudo ou arredondado Agudo Mucronado ou arredondado Base Simétrica Simétrica Simétrica Bordo Estípulas Liso Liso Franjado Cor Avermelhadas Brancoavermelhadas Avermelhadas Avermelhadas ou brancoesverdeadas Avermelhadas Forma Triangular auriculada Triangular auriculada Triangular não auriculada Avermelhadas ou brancoesverdeadas Triangular auriculada ou não (5) - 6 5 3, livres ou parcialmente soldados 5 5 6 3, totalmente soldados 5, livres 3, totalmente soldados 10-40 cm Cilíndrico na base Achatado no ápice Reduzidas a escamas Folha (Limbo) Flores Estaminadas Sépalas (nº) 6 Simétrica ou levemente assimétrica Liso Assimétrica Liso Arredondado ou levemente agudo Simétrica ou levemente assimétrica Liso Triangular não auriculada Triangular auriculada Estames 3, livres 3, totalmente soldados Anteras (deiscência) Horizontal Horizontal Horizontal Horizontal Horizontal Vertical Glândulas (forma) Cordiformes Mais ou menos circulares Trapezoidais Circulares Reniformes Circulares 6 Membranácea Caliciforme, ondulado 0,4 - 0,6 mm Liso 1,2 - 1,8 mm 5-6 Membranácea Anelar, denteado 0,8 - 1 mm Liso 1,8 - 2 mm 5 Membranácea Caliciforme, lobado 1,5 - 3 mm Liso 2 - 2,5 mm 5 Rígida 5-6 Membranácea Caliciforme, lobado 4 - 7 mm Liso 1,3 - 2 mm 6 Membranácea Caliciforme, denteado 0,5 mm Rugoso 2,2 - 2,5 mm 0,8 - 0,9 mm 1 mm Estrias transversais em fileiras longitudinais regulares 1,2 - 1,3 mm 1,1 - 1,3 mm Estrias transversais em fileiras longitudinais regulares 0,8 - 0,9 mm 1,2 - 1,3 mm Verrugas em linhas longitudinais regulares Costelas transversais bem evidentes Base Ápice Base Ápice-base Ápice Ápice Flores pistiladas Sépalas (nº) Consistência Disco glandular Pedicelo Ovário Fruto (diâmetro) Sementes Comprimento Ornamentação Verrugas em linhas longitudinais regulares Disposição das Flores nos Ramos Flores estaminadas Ápice Flores pistiladas Ápice-base Fonte: Silva (2003). Base Ápice-base Verrugas em linhas longitudinais regulares Base Ápice Anelar, lobado 1 - 1,2 mm Liso 2,2 - 2,8 mm 6 O interesse pelas plantas bioativas tem ressurgido nos últimos anos. O conhecimento das suas características tem estado repartido pelos anciãos das populações rurais, os defensores das medicinas naturais, pelos botânicos e farmacêuticos. 1.1. Identificação de Plantas Bioativas Para trabalhar com Plantas Bioativas ou usá-las é necessário conhecê-las corretamente. A identificação botânica é, nesse caso, muito importante pois evita problemas como intoxicações e uso de plantas que não tenham efeito sobre a doença que se pretende combater. A identificação deve ser feita por pessoas que tenham amplo conhecimento do assunto, de preferência botânicos que, através de características que diferenciam as espécies vegetais, obtenham o nome correto da planta. As pessoas que se especializam em identificação de seres vivos são chamados de taxonomistas, e na medida do possível, devem ser consultados para a identificação de plantas (DI STASI, 1996). As características mais importantes do ponto de vista taxonômico na definição de uma espécie, concentra-se na flor, pois, esta é a parte da planta menos variável com as condições do ambiente (Ibidem). Ao encaminhar plantas para identificação, portanto, coleta-se ramos completos da planta (caule, folhas, flores, frutos) e se preenche uma ficha com informações sobre a procedência do material. Se não for possível levar os ramos frescos, faz-se uma excicata, colocando a planta entre folhas de jornal seco e prensando este material com duas chapas de madeira sob pressão utilizando materiais pesados, lembrando de trocar o jornal diariamente para evitar a proliferação de fungos. Apenas colocar material fresco em sacos plásticos se encaminhado no mesmo dia ou no máximo no dia seguinte, evitando sua deterioração (CAPELLARI, 1996). Antes de utilizar uma planta verificar a parte que é recomendada para o uso com fins terapêuticos. Conforme a planta, os princípios ativos podem se concentrar nas raízes ou apenas nas folhas. A dosagem também é muito importante. Algumas plantas são medicinais em pequenas doses, mas extremamente tóxicas em doses elevadas (Ibidem). 7 1.2. Sistemática de Plantas Bioativas Segundo Capellari (1996) Sistemática ou Taxonomia é a ciência que estabelece as relações de afinidades entre os seres vivos de forma a organizá-los em grupos, visando facilitar o seu estudo. A sistemática, entre outras coisas, trabalha com a classificação, a identificação e a nomenclatura. A classificação é a colocação de um ser vivo em categorias de um sistema de classificação, previamente estabelecido por um botânico: uma classificação só é feita quando um vegetal é desconhecido pela ciência. A identificação é a determinação de que um vegetal é idêntico a outro já conhecido e portanto descrito pela ciência. Quando se coleta uma determinada planta e através de chaves analíticas, livros especializados ou coleções de herbários, verifica-se qual é seu nome científico ou a que família este vegetal pertence, está se procedendo a uma identificação (Ibidem). A nomenclatura é a ciência de dar nomes às unidades de classificação, mediante regras, normas e recomendações estabelecidas pelo Código Internacional de Nomenclatura Botânica. 1.3. Sistemas de Classificação Desde a antiguidade clássica o homem vem procurando agrupar as plantas através de sistemas de classificação, de forma a facilitar o seu estudo. Em 370 a.C. Theoprastus criou um sistema baseado no hábito das plantas (ervas, arbustos, árvores. etc). Os chineses também, em épocas remotas, já procuravam agrupar as espécies vegetais de acordo com a sua utilização. Posteriormente, foram criados diversos sistemas baseados em caracteres morfológicos de folhas e flores. Com o avanço científico e conseqüentemente com as novas teorias de evolução, os sistemas de classificação passaram a ser mais rigorosos em seus critérios. Tais sistemas são atualmente utilizados e denominam-se filogenéticos. 8 1.4. Sistemas de Cronquist e Engler A identificação de uma espécie vegetal pode ser feita mediante diversos sistemas de classificação, segundo autores diferentes, porém, os sistemas mais utilizados no Brasil são os de Cronquist (1981) e Engler (atualmente explorado segundo a versão adaptada por JOLY, 1979). Cronquist oferece um sistema mais atualizado, cujos critérios de formação dos grupos vegetais foram, basicamente, morfologia, filogenia e composição química. Por ser muito recente, existe pouca bibliografia em português sobre este sistema e as coleções de Herbários (no mundo todo) ainda não foram organizadas baseadas no mesmo (CAPELLARI, 1996). Engler, por sua vez, apresenta um sistema baseado apenas em caracteres morfológicos, que devido à sua história (a primeira versão deste sistema foi apresentada em 1892), tem sido o mais utilizado nas últimas décadas, fazendo com que a maior parte dos livros gerais de Botânica, os específicos sobre Plantas Bioativas, bem como as coleções herborizadas, estejam baseados em seu sistema. Alguns termos do sistema de Engler foram fortemente fixados pelo uso popular, científico e acadêmico, e por serem muito utilizados seria inviável adotar apenas o sistema de Cronquist, pois o mesmo descarta nomes tão familiares, como por exemplo: gimnospermas (Gymnospermae), angiospermas (Angiospermae), dicotiledôneas (Dicotyledoneae), leguminosas (Leguminosae), gramíneas (Gramineae), labiadas (Labiatae), umbelíferas (Umbelliferae), crucíferas (Cruciferae), entre tantos outros (Ibidem). Se para alguns grupos vegetais, Cronquist propôs arranjos novos, criando alguns e extinguindo outros, em certos casos, apenas propôs uma modificação no nome taxonômico, uma vez que este não estava de acordo com as normas do Código Internacional de Nomenclatura Botânica. Para uma maior compreensão deste assunto, deve-se explicar o significado de táxon e a terminologia adequada para um sistema de classificação. 1.5. Unidades de Classificação A classificação de uma espécie vegetal é feita através de um sistema que é formado por unidades denominadas de táxon (plural taxa ou táxones). Tais unidades são escritas em latim e 9 seguem regras, determinações e recomendações apresentadas no Código Internacional de Nomenclatura Botânica (SCHULTZ, 1961). As unidades de um sistema de classificação estão divididas em unidades fundamentais e sub-unidades. As fundamentais estarão presentes para a classificação de qualquer indivíduo, já as sub-unidades estarão presentes apenas em certos casos, quando um taxon fundamental for demasiadamente grande (Ibidem). As unidades fundamentais e as sub-unidades são listadas na Tabela 2. Tabela 2 – Classificação de uma Espécie Vegetal Unidades Fundamentais Sub-Uinidades Reino Vegetal Radical + terminação phyta Divisão Subdivisão (phytina). Radical + terminação opsida ou atae Classe Subclasse (idae), Coorte (iidae). Radical + terminação ales Ordem Subordem (inales), Superfamília (ineales). Radical + terminação aceae Família Subfamília (oideae), Tribo (eae), Subtribo (inae). Substantivo latinizado com inicial maiúscula, destacado do texto Gênero Subgênero, Secção, Subsecção, Série. Gênero + designação ou epíteto específico (adjet. Latinizado com inicial minúscula), seguido pelo nome abreviado de seu autor. Espécie Subespécie, Variedade, Subvariedade, Forma. Linha, Clone (denominadas categorias infra-específicas). Fonte: Schultz (1961). 2. INTELIGÊNCIA ARTIFICIAL O objetivo principal deste tópico é apresentar os conceitos da Inteligência Artificial (IA) e Raciocínio Baseado em Casos (RBC) aplicados na solução do problema deste trabalho. São introduzidos alguns tópicos de IA e RBC considerados importantes para a compreensão de sua aplicação no sistema. 10 2.1. Conceito Existem diversas definições de Inteligência Artificial variando de acordo com o enfoque dado pelo autor. A seguir tem-se algumas definições de IA. Inteligência Artificial é o campo da ciência que tenta explicar a origem da natureza do conhecimento, objetivando representar a inteligência, que é uma faculdade do ser humano, através de modelos computacionais. IA dedica seus estudos as técnicas computacionais que representem alguma característica ou aspecto da cognição humana (raciocínio). (REIS, 1997) Já para Charniac e Mcdermott (1985), IA seria o estudo das faculdades mentais com o uso de modelos computacionais. Segundo Barreto (1997), esta definição se mostra bastante eficaz, pois: • Não apresenta recursividades (não é um conceito que se fecha em si mesmo); • Não restringe o conceito de inteligência apenas ao ser humano; • Não se prende a nenhuma tecnologia de implementação de computadores (e, portanto, é atemporal); • Mostra relação com ciências como psicologia, ciência cognitiva, lógica, fisiologia e evolução, no sentido de que as faculdades mentais são resultado da evolução da natureza. Uma definição mais voltada ao que se entende por “inteligência humana” é apresentada por Arnold e Bowie (1986), e também citada por outros autores, que diz que “IA é à parte da ciência da computação concernente ao projeto de sistemas computacionais que exibem inteligência humana, tais como aprender novas informações, entender linguagens, raciocinar e resolver problemas”. Portanto, compreende-se a Inteligência Artificial como sendo atividades que se associam ao pensamento humano, tais como aprendizagem, tomada de decisão, resolução de problemas, e buscam ser reproduzidas em máquinas objetivando simular a inteligência do homem. 11 3. RACIOCÍNIO BASEADO EM CASOS A área de Raciocínio Baseado em Casos é uma área relativamente recente, contudo, os pesquisadores em RBC não divergem muito sobre sua definição. A maioria dos autores concorda que o RBC é um método de raciocínio baseado na proposta de utilizar experiências passadas encapsuladas em estruturas de dados como base para lidar com novas situações similares. A abordagem parece ser intuitiva: quando uma nova situação acontece, deve-se tentar alguma coisa que já foi utilizada com sucesso. Usualmente, as soluções utilizadas em situações similares devem ajudar na solução do novo problema. Esta definição pode ser confirmada por diversos autores, como se observa a seguir. O Raciocínio Baseado em Casos é uma técnica de IA que consiste na utilização de situações passadas, implementadas na forma de estruturas de dados chamados casos, como um referencial para resolução de novos problemas (COSTA, 1999). De acordo com Gentner (1983), RBC é a resolução de problemas por analogia, utilizando a experiência adquirida para resolver novos problemas. As soluções para os novos problemas surgem à medida que são comparados aspectos de problemas novos e antigos, utilizandose as soluções encontradas anteriormente. Apesar de considerar o desenvolvimento de um sistema de RBC como sendo uma tarefa complexa que não se sujeita a ser formulada através de uma metodologia, Lee (1996) propõe quatro etapas distintas, conforme Figura 1: • representação dos casos; • recuperação dos casos; • revisão e adaptação;reutilização, • avaliação e aprendizagem. 12 Problema Reter Solução Confirmada Recuperar Base de Casos Revisar Soluções Iniciais Reutilizar Solução Proposta Figura 1 - O Ciclo do RBC. Fonte: Adaptação de Lee (1998). Segundo Fernandes (2003), a filosofia básica desta técnica é a de buscar a solução para uma situação atual através da comparação com uma experiência passada semelhante. O processo característico do RBC consiste em: identificar o problema atual, buscar a experiência mais semelhante na memória e aplicar o conhecimento desta experiência passada no problema atual. Este procedimento pode ser detalhado em alguns passos. • Identificação de um problema a ser resolvido (problema de entrada); • Definição das principais características que identificam este problema; • Busca e recuperação na memória de casos com características similares; • Seleção de um ou mais dentre os casos recuperados; • Revisão deste(s) caso(s) para determinar a necessidade de adaptação; • Reutilização do caso adaptado para resolver o problema de entrada; • Avaliação da solução do problema de entrada; • Inclusão do caso adaptado na memória de casos (aprendizagem). 13 3.1. Histórico Segundo Reis (1997), sistemas utilizando RBC como paradigma para representação de conhecimento tem origem em estudos de cognição humana. O ato de buscar na memória (lembrar) uma situação passada é uma prática comum em situações como solução de problemas e tomada de decisões. Foi a partir desta capacidade humana de utilizar suas experiências e fazer analogias para solução de problemas similares que Schank (1977) e seu grupo de pesquisa na Universidade de Yale introduziram RBC como um paradigma de inteligência artificial para desenvolvimento de sistemas de suporte a decisões. Tabela 3 – Exemplos de Sistemas Baseados em Casos Nome CYRUS MEDIATOR PLEXUS JUDGE SWALE CHEF MBR Talk JULIA HYPO COACH CASEY JOHNNY REFINER PROTOS PRODIGY PATDEX CREEK KATE-CBR CCC+ ESTEEM ReMind CBR-Express INRECA Aplicação Episodic Memory Dispute Resolution Adaptive Planning Criminal Sentencing Case-Based Explanation Chinese Cooking Pronunciation of Words Catering Patent Law Football Coach Heart Failure Diagnosis Reading Knowledge Refinement Knowledge Acquisition Planning Diagnosis Diagnosis CBR-Shell Diagnosis CBR-Shell CBR-Shell CBR-Shell CBR-Shell Ano 1980 1985 1986 1986 1986 1986 1986 1987 1987 1988 1988 1988 1988 1988 1988 1989 1989 1990 1991 1991 1991 1991 1993 Fonte: Cbr-web (2003). O primeiro programa criado utilizando a técnica de RBC foi o Cyrus (KOLODNER, 1983), o qual continha um repositório de casos com as viagens e reuniões do ex-secretário de estado norte americano Cyrus Vance. Este sistema logo foi seguido por uma série de outros, tais como 14 Mediator (SIMPSON e KOLODNER, 1989), Chef (HAMMOND, 1986), Persuader (SYCARA, 1987) e Julia (HINRICKS, 1992), desenvolvidos como parte de teses de doutorado na Universidade de Yale. Estes sistemas logo inspiraram a criação de sistemas fora de Yale, tais como Protos (PORTER e BAREISS, 1986), Hypo (ASHLEY, 1991) e Cabaret (RISSLAND e SKALAK, 1991), conforme a Tabela 3. 3.2. Representação dos Casos Casos podem ser armazenados no computador nos mais diferentes formatos, no entanto, muitos deles são excessivamente complexos para serem manipulados pelo desenvolvedor do sistema ou para serem compreendidos pelo usuário do sistema. A representação deve considerar formatos que tenham uma correspondência natural com a forma como a informação costuma estar disponível, para evitar o desperdício de processamento em traduções de uma estrutura para outra. A representação da base de conhecimento num sistema de RBC consiste em modelar os casos e definir o estilo de memória que organize estes casos. As execuções destas etapas estão fortemente ligadas entre si e estas, por sua vez, dependem fortemente das outras etapas do sistema. As etapas de recuperação, adaptação e aprendizagem devem ser projetadas simultaneamente à representação e sempre se orientando pelo objetivo da aplicação, avalia-se o benefício da representação de conhecimento sugerido para todas as etapas complementares do sistema (SILVA, 1997). Os casos são normalmente representados através de uma lista de atributos devidamente valorados. As características de um caso referem-se ao par atributo-valor. Na representação dos casos, dois são os componentes básicos (LEE, 1996): • a descrição do problema; • a descrição da solução. Segundo Wangenheim e Wangenheim (2003), várias informações podem ser úteis para a representação dos casos. • a solução em si; • o conjunto de passos de raciocínio seguidos para resolver o problema; 15 • o conjunto de justificativas para as decisões tomadas durante a solução do problema; • soluções alternativas aceitáveis que não foram escolhidas (e as respectivas razões e justificativas para sua rejeição); • soluções inaceitáveis que foram excluídas do rol de possibilidades (e as respectivas razões e justificativas para sua exclusão); • expectativas acerca do que vai acontecer após a implementação da solução proposta. A mais simples forma de representação de casos é a realizada por vetores atributo-valor. Esta forma resolve uma grande parcela dos problemas de aplicação de RBC. Por exemplo: preço (atributo) e R$ 1,99 (valor). Um caso é então representado como um conjunto de par atributo-valor, como mostrado na Figura 2. atributo valor Problema (Sintomas): Problema: Modelo: Luz de estado de papel: Luz de estado da tinta colorida: Luz de estado da tinta preta: Estado do interruptor: “Impressora não funciona” Robotron Matrix 600 apagada apagada apagada ligado Solução: Diagnóstico: Ação: “Curto-circuito” “Troca da fonte de alimentação” Figura 2 – Exemplo de uma representação atributo-valor. Fonte: Wangenheim e Wangenheim (2003). 3.3. Indexação A indexação é um problema crucial do Raciocínio Baseado em Casos, envolvendo a determinação dos tipos de índices que serão utilizados pela etapa de recuperação. Da mesma forma 16 que índices permitem acelerar a busca em bancos de dados, eles são utilizados nos sistemas RBC para acelerar a recuperação de casos (COSTA, 1999). Os índices de um caso são combinações de importantes descritores, capazes de estabelecer distinções entre os existentes. O algoritmo de recuperação utiliza estes índices para selecionar os casos conforme suas necessidades. O conjunto de descritores utilizados como índices permitirão definir o que faz um caso ser similar a outro, representando a relevância entre eles (ibidem). Indexar casos corresponde a atribuir índices aos mesmos de forma a facilitar sua recuperação. Isso inclui colocar rótulos nos casos, no momento de sua inclusão na base de conhecimento, para que possam ser posteriormente recuperados, organizar os casos para facilitar a busca e recuperação e definir os algoritmos de recuperação mais eficientes. 3.4. Recuperação de Casos Algumas explicações pertinentes a RBC são apresentadas por Kolodner (1993). • Descritor: é um par atributo-valor usado na descrição de um caso. Podem descrever aspectos do problema ou de uma situação, a solução ou o resultado. Ex.: idade-72, pulsação-96. • Dimensão: faz referência à parte atributo de um descritor. • Característica: usada tanto como descritor como dimensão, porém comumentemente como descritor. Dado um problema a ser resolvido (caso de entrada), a etapa de recuperação realiza a busca na base de casos e seleciona quais deles podem ser aproveitados. O processo de busca é feito por algoritmos que selecionam casos similares ao de entrada. As tarefas que compreendem a recuperação de casos são: métrica da similaridade, recuperação de casos e seleção do caso escolhido (COSTA, 1999). De acordo com Lee (1996), similaridade é a essência do Raciocínio Baseado em Casos, uma vez que o fundamento do paradigma de RBC é solucionar um problema atual, reutilizando a solução de uma experiência passada similar. 17 A métrica de similaridade tem por objetivo dar um valor numérico à similaridade entre dois casos, sendo todos os casos da memória são avaliados comparativamente ao problema (caso) de entrada. Normalmente, estabelece-se um grau de similaridade entre os atributos de determinadas dimensões, um número dentro do intervalo [0,1] (ibidem). Já Reis (1997) descreve similaridade como um conceito genérico e mal definido, profundamente influenciado por fatores subjetivos, além de afirmar que “objetivos diferentes podem invocar tipos de similaridade diferentes”. Considerando que a definição dos índices retrata todos os aspectos a serem considerados na recuperação, os algoritmos de comparação poderão usá-los para se orientar na busca, determinando quais características devem ser focadas no julgamento da similaridade. Qualquer caso pode ser indexado de várias formas, entretanto, o importante é que o algoritmo de comparação esteja apto a distinguir entre os aspectos relevantes em cada caso específico (LAGEMANN, 1998). Segundo Kolodner (1993), a procura por correspondências é feita para determinar quais características de um novo caso podem ser comparadas a características de um caso armazenado. As características que devem ser comparadas são, geralmente, aquelas que desempenham os mesmos papéis funcionalmente. Esta equivalência de funcionalidade pode ser determinada por várias maneiras: • Verificar que dois valores preenchem o mesmo slot (ou compartilham uma relação de predicados comuns); • Usar heurísticas de conciliação usando senso comum; • Verificar que dois valores desempenham o mesmo papel estrutural nas duas representações; Uma vez que se sabe que há correspondência entre características, o grau de similaridade entre características correspondentes pode ser calculado. Os vários métodos válidos para calcular o grau de similaridade de dois valores são: • Abstração hierárquica; • Escala qualitativa e quantitativa; 18 • Comparação do grau de características que representam um cargo funcional projetado. 3.4.1. Matching e Ranking Segundo Kolodner (1993), os algoritmos de recuperação procuram diretamente determinados locais na memória, acessando casos com algum potencial para serem úteis, mas isso é feito por heurísticas de match e ranking, as quais escolhem os casos mais úteis daquele conjunto, sendo: Match: é o processo de comparar dois casos entre si e determinar o seu grau de similaridade. Pode produzir um score que representa o grau de similaridade ou simplesmente determinar se um caso é similarmente suficiente ou não. Ranking: é o processo de ordenar os casos partially-matching de acordo com a utilidade, isto é, determinar qual é melhor que os outros. Freqüentemente, o procedimento de Ranking usa a saída do procedimento de Match para ordenar os casos partially-matching de acordo com a sua utilidade. As entradas de dados (input) para os processos de Match e Ranking podem ser: • novo problema ou nova situação que o sistema está tentando resolver; • os objetivos de uso para os casos recuperados. O sistema pode desejar construir uma parte da solução, avaliar ou interpretar uma solução proposta, projetar resultados ou saídas; • conjunto de casos recuperados, que deve ser ordenado para uso posterior; • os índices associados com cada um dos casos recuperados, que podem ser usados em esquemas de ranking sensíveis ao contexto ou podem ser usados como identificadores conceituais dos casos; • critério de match razoável, que indica quando os procedimentos de match e ranking devem parar. Alguns critérios podem almejar o "melhor" ou o "mais útil" match, levando todos os aspectos do contexto em consideração, outros podem desejar somente um match adequado, de acordo com poucos critérios. 19 3.5. Adaptação Assim que o melhor resultado é escolhido, o próximo passo é revisar a solução, para verificar a necessidade de adaptação em relação ao problema de entrada. De acordo com Reis (1997), a tarefa de reutilização de casos caracteriza-se por adaptar a solução armazenada de um caso recuperado às necessidades de um caso proposto. A tarefa de avaliação está relacionada com a análise dos resultados obtidos pela aplicação da solução no ambiente real. Este processo comumente acontece fora do sistema RBC e os resultados da aplicação de uma solução podem demorar a aparecer, conforme o tipo de aplicação. A reparação de um caso envolve a detecção dos erros ocorridos na sua solução, e a recuperação ou geração de explicações para estes erros (COSTA, 1999). Uma alternativa para a adaptação é o sistema RBC perguntar ao usuário se ele deseja que o sistema faça adaptação. Caso ele responda que sim, então que a adaptação seja feita, mas que após seja dada ao usuário a possibilidade de interagir com as modificações, decidindo por sua aplicação total, parcial ou ainda descartando-a (LAGEMANN, 1998). 3.6. Aprendizagem Reutilizar um caso significa gerar a possibilidade de utilizá-lo para resolver o problema de entrada numa outra consulta. Segundo Reis (1997), trata-se de incorporar a base àquilo que é útil de reter do problema resolvido. Após a avaliação e possíveis reparos, efetua-se o aprendizado do sucesso ou das falhas da solução proposta. Para Lee (1998), pode-se empregar a aprendizagem em sistemas de RBC ao nível dos casos e da base de casos, podendo as bases de casos ser estendidas através de processos incrementais de aprendizagem, uma vez que a tarefa e o projeto do sistema permitam isto. A aprendizagem consiste não somente em encontrar uma solução concreta proposta pelo usuário, mas interpretar situações que possam gerar um conjunto de soluções, ou gerar expectativas de dados observáveis enquanto solução, a partir da determinação do nível e quantidade de conhecimento que deve conter esta etapa. A adaptação assume outras formas, quando o RBC prevê 20 a construção da solução, a partir não somente de um caso escolhido, mas da combinação de um conjunto de casos (SILVA, 1997). 3.7. Exemplos de Aplicações de RBC para a área de Meio Ambiente Os problemas mais comuns para o desenvolvimento de aplicações em RBC são: interpretação, diagnóstico, análise e elaboração de projetos, formação de preços, desenvolvimento de propostas, planejamento, configuração, scheduling, monitoramento de bugging, consertos, análise situacional, classificação, instrução, aprendizagem e controle. 3.7.1. Sistema para o Plantio de Árvores Frutíferas O Brasil, graças a sua situação geográfica, topografia e extensão, tem muitos climas. Em conseqüência, podem ser cultivadas todas as fruteiras de climas quente, úmido, semi-árido, temperado e ainda temperado-frio. São cultivadas no Brasil todas as fruteiras de grande valor econômico: a bananeira, o coqueiro-da-baía, cajueiro, goiabeira, macieira, caquizeiro e muitas outras frutas, muitas destas existentes somente no Brasil. É fácil cultivar árvores frutíferas, principalmente as mais rústicas e tropicais. Num pomar doméstico, são poucos os tratos culturais, nos industriais, exigem-se maiores cuidados. Os pomares semi-industriais são formados para a venda dos produtos, que são entregues para as cooperativas e grandes centros consumidores, onde a aparência e a qualidade são os fatores mais importantes. Os pomares industriais têm como finalidade principal fornecer matéria-prima para as indústrias alimentícias, que as transformam em conservas, marmeladas, frutas secas, etc. (DALFOVO, 1999). Este trabalho consiste em um Sistema de Gestão Ambiental, mais especificamente a implementação de um protótipo de técnicas para o plantio de árvores frutíferas. O protótipo foi desenvolvido com base na tecnologia de Raciocínio Baseado em Casos, com objetivo de auxiliar à recuperação de projetos ambientais, que sejam úteis aos engenheiros florestais, administradores de gestão ambiental e outros profissionais ligados a gestão ambiental a auxiliarem na formulação de seus novos projetos (ibidem). 21 3.7.2. A Identificação das Não-Conformidades (NC) Ambientais nas Empresas Este sistema é uma proposta de planejamento de resolução de NC ambientais em produtos, processos e serviços, como entendimento da atividade técnica de levantamento e, identificação dos parâmetros ambientais na empresa. Isso se faz necessário, pois esta sistematização inexiste no campo empresarial da forma como estamos querendo desenvolver. A aplicação do sistema desenvolvido contribuirá para pontuar a estrutura de planejamento da solução das NC ambientais nas empresas, proporcionando suporte à decisão, ao desenvolvimento da política ambiental e dos planos de ação, numa perspectiva de implantação de um SGA (SILVA,1997). Através da implementação do sistema, as empresas poderão gerenciar processos de aprendizagem baseados em NC passadas e resolvidas, extraindo as informações necessárias destas experiências passadas para projetar as suas etapas de desempenho e mudanças, reduzindo seus custos operacionais, o desenvolvimento tecnológico, a racionalização do tempo de suas atividades em pesquisa e desenvolvimento de novas soluções. A identificação das NC ambientais em processos, produtos e serviços contribuirão para ações pró-ativas nas empresas, com vistas ao desenvolvimento sustentável. Os resultados da identificação das NC ambientais considerando a análise do ciclo de vida dos produtos, processos e serviços, servirão para minimizar impactos ambientais significativos (ibidem). 4. LÓGICA DIFUSA 4.1. Introdução Segundo Pereira e Dotto (1999), a Lógica Difusa é a lógica que suporta os modos de raciocínio que são aproximados ao invés de exatos. Derivada do conceito de conjuntos fuzzy, a Lógica Difusa constitui a base para o desenvolvimento de métodos e algoritmos de modelagem e controle de processos, permitindo a redução da complexidade de projeto e implementação, tornando-se a solução para problemas de controle até então intratáveis por técnicas clássicas. Ela difere dos sistemas lógicos em suas características e seus detalhes. Nesta lógica, o raciocínio exato corresponde a um caso limite do raciocínio aproximado, sendo interpretado como um processo de composição de relações nebulosas. 22 Na Lógica Difusa, o valor verdade de uma proposição pode ser um subconjunto fuzzy de qualquer conjunto parcialmente ordenado, ao contrário dos sistemas lógicos binários, onde o valor verdade só pode assumir dois valores: verdadeiro (1) ou falso (0). Nos sistemas lógicos multivalores, o valor verdade de uma proposição pode ser ou um elemento de um conjunto finito, num intervalo, ou uma álgebra booleana. Na Lógica Difusa, os valores verdade são expressos lingüisticamente (verdade, muito verdade, não verdade, falso, muito falso), onde cada termo lingüístico é interpretado como um subconjunto fuzzy do intervalo unitário (ibidem). Outras características da Lógica Difusa podem ser sumarizadas como segue: nos sistemas lógicos binários, os predicados são exatos (par, maior que), ao passo que na Lógica Difusa os predicados são nebulosos (alto, baixo). Nos sistemas lógicos clássicos, o modificador mais utilizado é a negação, enquanto que na Lógica Difusa uma variedade de modificadores de predicados são possíveis (muito, mais ou menos). Estes modificadores são essenciais na geração de termos lingüísticos, tais como: muito alto, mais ou menos perto, etc. Na lógica clássica existem somente os quantificadores existenciais e universais. A Lógica Difusa admite, em adição, uma ampla variedade de quantificadores como pouco, vários, usualmente, freqüentemente, em torno de cinco, etc. A probabilidade é um valor numérico ou um intervalo. Na Lógica Difusa existe a opção adicional de se empregar probabilidades lingüísticas (provável, altamente provável, improvável), interpretados como números fuzzy e manipuladas pela aritmética fuzzy. Também em contraste com a lógica modal clássica, o conceito de possibilidade é interpretado utilizando-se subconjuntos fuzzy no universo dos reais (PEREIRA e DOTTO, 1999). A Lógica Difusa pode ser aceita como a melhor ferramenta para modelar o raciocínio humano, que é aproximado e parcial em sua essência. A teoria dos conjuntos nebulosos e a Lógica Difusa objetivam modelar os modos de representação e raciocínio imprecisos que têm um papel essencial na tomada de decisões racionais em ambientes de imprecisão e incerteza. A diversificação de tecnologias advinda da Lógica Difusa tem também permitido sua aplicação em diversas áreas de conhecimento (ibidem). Segundo Passold (1997), é uma técnica útil para os casos que não podem ser facilmente definidos matematicamente. Muito do poder da lógica difusa advém da sua habilidade em extrair conclusões e gerar respostas baseada em informações vagas, ambíguas, qualitativas, incompletas. Por exemplo, observando a Figura 3 tente definir o quanto à taça está cheia ou não. Este exemplo 23 demonstra um caso clássico de ambigüidade de condições, podendo-se afirmar que a taça está tanto meio cheia quanto meio vazia. Figura 3 - Caso descritivo de ambigüidade para uma taça pela metade. Fonte: Passold (1997). Esta técnica foi apresentada em 1965 pelo prof. da Universidade da Califórnia em Berkeley, Lofti Zadeh. E visa estender a tradicional teoria utilizada para resolver paradoxos gerados a partir de classificações Aristotélicas do tipo “tudo-ou-nada” (ibidem). Tradicionalmente, uma premissa baseada em lógica possui dois extremos: ou é completamente verdadeira ou completamente falsa. Entretanto, no mundo da lógica difusa, uma premissa pode variar de 0 a 100%, o que permite que a premissa seja tanto parcialmente verdadeira quanto falsa. Por exemplo, poderíamos afirmar que uma pessoa de 1.77 m pode ser tanto um pouco baixa quanto um pouco alta. Pode-se determinar de maneira gráfica um conjunto de valores que expresse de forma difusa pessoas, ou melhor, estaturas consideradas baixas de estaturas consideradas altas, conforme a Figura 4. Neste caso, perceba que uma pessoa de 1.77 m pode ser considerada tanto baixa quanto alta. Então se considera que ela é 20% baixa e 40% alta. Note que o eixo Y atribui um valor mais verdadeiro (próximo de 1) ou falso (próximo de 0) para certas condições de entrada (eixo X) (PASSOLD, 1997). A lógica difusa incorpora um conceito do tipo “grau de veracidade” (ou nível a quanto pertence, mais formalmente, grau de pertinência) associado a uma certa premissa. A lógica difusa entende a lógica tradicional de duas formas. Primeiro, dados são categorizados na forma de conjuntos, caracterizando termos qualitativos, como “alto”, “quente”, “próximo”. Cada elemento que pertence a uma certa categoria ou conjunto está associado a este de maneira variável - o que caracteriza funções denominadas como funções de pertinência. Por exemplo, um homem de 1.8 m e outro de 1.95 m podem ser membros de um conjunto denominado de homens “altos”. E por fim, 24 qualquer ação ou saída resultante de um conjunto de premissas se tornando verdadeiras, são levadas em consideração de maneira correspondente a forma como cada premissa está sendo ativada (ibidem). Figura 4 - Conceito de estatura “Alta” e “Baixa”. Fonte: Passold (1997). Por exemplo, um ventilador onde a sua velocidade depende da temperatura (como na Tabela 4). A corrente fornecida ao motor do ventilador é determinada pelos conjuntos relacionados à temperatura: Muito Frio, Frio, Quente, Muito Quente. Nesse sistema, como a temperatura costuma variar gradualmente do Quente para o Frio, a corrente varia gradualmente do valor de 50 a 15 ampéres. Se monitorarmos continuamente a temperatura, pode-se evitar variações abruptas na saída, mesmo que as entradas ultrapassem os limites definidos nos conjuntos categorias de temperatura (funções de pertinências), conforme Figura 5. Tabela 4 – Controle de Velocidade de um Ventilador. Temperatura Muito Frio Frio Quente Muito Quente Velocidade do ventilador Desligado Devagar Média Rápida Fonte: Passold (1997). Corrente relativa do motor (A) 0 15 50 100 25 Figura 5 – Conjuntos difusos relativos à temperatura. Fonte: Passold (1997). 4.2. Arquitetura de um Sistema Difuso A Figura 6 ilustra o fluxo dos dados dentro de um sistema difuso. Figura 6 – Fluxo de dados num sistema baseado em lógica difusa. Fonte: Passold (1997). 26 Os dados de entrada do sistema passam por 3 fases de transformação até ser obtida uma saída. Primeiro, através de um processo de fuzzificação, se mapeia cada entrada de dados ao sistema em uma ou mais funções de pertinência. Então, as regras de um conjunto de regras (também prédefinidas) são avaliadas verificando quais são aplicáveis e quão fortemente cada regra deve ser disparada dependendo da forma como foram ativadas cada função de pertinência. Finalmente, através de um processo de defuzzificação, a saída é calculada baseada nos valores mapeados em funções de pertinência de saída em função das regras que foram disparadas (PASSOLD, 1997). III - DESENVOLVIMENTO Com base nas informações pesquisadas neste trabalho, foi possível desenvolver uma página web inteligente que auxiliasse a pesquisa e identificação de Plantas Bioativas. Tal página foi desenvolvida usando como suporte um sistema de RBC desenvolvido em PHP e MySQL para o banco de dados. Para a implementação do sistema, não se optou por nenhuma shell de RBC, mas pela utilização da ferramenta de programação PHP para o desenvolvimento do RBC. Decidiu-se utilizar a ferramenta de desenvolvimento PHP pelo fato deste ambiente ser voltado a web, visando uma ampla divulgação do trabalho e um acesso público a base de dados. Outro motivo que originou a escolha desta foi à utilização de uma ferramenta sem custos, ou seja, a ferramenta é de livre acesso. Para o banco de dados optou-se inicialmente em utilizar o Oracle, mas devido a entrevistas com o especialista confirmando a necessidade de utilização de ferramentas gratuitas mudou-se a ferramenta para o MySQL por ser de acesso livre. Enfatizou-se o uso da Internet no sistema, porque o usuário interessado em realizar uma consulta tem um grande contato com uma página web, bastante conhecida pelos usuários de computador. Também como conseqüência do uso da internet, disponibilizaria a utilização do sistema em qualquer máquina que possa acessar a mesma, já que todas as consultas são executadas pelo servidor deixando o sistema leve para o usuário. O escopo do sistema foi delimitado apenas no gênero Phyllanthus, por motivo de tempo para o desenvolvimento do sistema em relação a grande diversidade deste gênero (cerca de 500 espécies catalogadas) e a grande semelhança entre as espécies. Também como justificativa da escolha de um único gênero foi a grande complexidade em criar um modelo que fosse genérico o suficiente para englobar todas as famílias de plantas bioativas, e específico o bastante para diferenciar espécies muito semelhantes. À seguir será apresentado o desenvolvimento deste sistema. 28 1. ARQUITETURA DO SISTEMA O sistema é composto por três módulos residentes em um servidor que interagem com o visitante, o pesquisador e o administrador, conforme a Figura 7. Figura 7 – Arquitetura proposta para o sistema. A seguir, estão descritos todos os passos da transação, enumerados de acordo com a Figura 7. 1. O visitante acessa a página web, selecionando a opção desejada: Consulta: o visitante acessa por meio do link Consulta e abre uma página dinâmica onde as opções de consulta vêm da base de dados. Ele preenche alguns campos obrigatórios e outros campos que o usuário achar importantes, e pressiona o botão enviar. É solicitada uma outra página dinâmica, para os dados da consulta. Fale Conosco: o visitante acessa por meio do link Contato uma página web contendo um formulário para preenchimento de nome, e-mail, e um comentário. Após o preenchimento e pressionado o botão Enviar, é solicitada uma outra página dinâmica para os dados, que envia um email para o administrador e para o usuário. O browser envia o pedido http para o servidor web por meio da Internet ou Intranet. 29 Inteligência Artificial: o visitante acessa por meio do link Inteligência Artificial uma página web contendo informações sobre o uso da Inteligência Artificial neste sistema e uma introdução básica do que é Raciocínio Baseado em Casos. Sistema: o visitante acessa pelo link Sistema uma página web com informações sobre o sistema propriamente dito, tais como: suas vantagens em relação a outros mecanismos de busca, a importância do uso do Raciocínio Baseado em Casos e referências para o desenvolvimento. 2. O servidor web (APACHE) reenvia o pedido contendo os dados da consulta para o módulo PHP. O módulo PHP interpreta os dados enviados e processa a consulta desejada, interagindo com o banco de dados MySQL. O PHP transforma a resposta que é entendida apenas por ele e pelo banco e envia em modo HTML para o servidor APACHE. 3. O servidor APACHE gera uma página para o browser do visitante com a planta mais adequada aos dados de entrada. Do ponto de vista do pesquisador, os procedimentos são: 4. O pesquisador acessa a página web e tem a sua disposição um link adicional descrito a seguir: Novo Caso: o pesquisador acessa por meio do link Novo Caso e abre uma página dinâmica onde são inseridas as características da planta através da seleção de combobox com termos pré-definidos. Ele preenche alguns campos obrigatórios e outros campos que o usuário achar importantes, e pressiona o botão enviar. É solicitada uma outra página de confirmação. 5. O servidor web (APACHE) reenvia o pedido contendo os dados da planta para o módulo PHP. O módulo PHP interpreta os dados enviados e processa a transação desejada, interagindo com o banco de dados MySQL. O PHP transforma a resposta que é entendida apenas por ele e pelo banco e envia em modo HTML para o servidor APACHE. 6. O servidor APACHE gera uma página para o browser do visitante com a confirmação dos dados de entrada. Do ponto de vista do Administrador, além dos itens descritos acima ele tem a opção de cadastrar novos pesquisadores, conforme descrito abaixo: 30 7. O Administrador acessa a página web e cadastra o novo pesquisador no sistema. 8. Os dados são enviados para o servidor APACHE que reenvia ao módulo PHP e interage com o banco de dados MySQL, devolvendo a resposta em forma de página web. 9. Retorna para o browser uma mensagem de confirmação de sucesso da operação, ou o motivo pelo qual a operação não pôde ser realizada. 2. MODELAGEM DO SISTEMA Depois de definida a forma de implementação das etapas do ciclo do RBC, partiu-se para a modelagem do protótipo do sistema. Em virtude da inexistência de uma metodologia específica para a modelagem de sistemas inteligentes, optou-se pela análise essencial que proporciona simplicidade no processo de modelagem. Dentre as ferramentas disponíveis na análise essencial, optou-se pelo Modelo EntidadeRelacionamento (MER), Dicionário de Dados, Diagrama de Contexto, os Diagramas de Fluxo de Dados (DFD’s), e a Especificação de Processos. 2.1. Modelo Entidade Relacionamento (MER) O MER especifica a estrutura lógica geral do BD baseado na percepção do mundo real. Inicialmente era montado sobre três conceitos básicos: a entidade, o relacionamento e o atributo. Mais tarde, com a difusão do modelo, diversas extensões foram propostas, tendo outros conceitos como a entidade associativa, e a generalização/especialização sido incorporados ao modelo (HEUSER, 1998). Para a modelagem do banco de dados, utilizou-se os modelos lógicos (conceitual) e físico, tendo sido construídos com a ferramenta Case Power Designer Data Architect 6.1, mostrado na Figura 8 e 9. 31 Pesquisadores Cod_Pesquisador Pesquisador_Nome Pesquisador_Instituicao Pesquisador_Contato Foi enc ontrada FE_Sepalas Cod_FESepalas Des_FESepalas Pos s ui Pos s ui Tabela_Especies FP_Consistencia FP_Pedicelo Cod_FPPedicelo Des_FPPedicelo FP_Ovario Cod_FPOvario Des_FPOvario FP_DiscGland Cod_FPDiscGland Des_FPDiscGland Pos s ui Pos s ui Cod_Especie Nome Cientifico Nome Comum Hyperlink Caule_Folhas Cod_CauFolha Des_CauFolha FP_Fruto Cod_FPFruto Des_FPFruto FE_Estames Cod_FEEstames Des_FEEstames FE_Anteras Pos s ui Pos s ui Cod_FEAnteras Des_FEAnteras Estipulas_Cor Pos s ui Pos s ui Pos s ui Cod_EstipulasCor Des_EstipulasCor Sem_Ornament Cod_SemOrnament Des_SemOrnament Pos s ui Caule_Forma Cod_CauForm Des_CauForm Foi pes quis ada FE_Glandulas Cod_FEGlandulas Des_FEGlandulas Pos s ui FP_Sepalas Cod_FPSepalas Des_FPSepalas Cod_FPConsistencia Des_FPConsistencia Pesquisador_Especie Local_Amostragem Data_Visualizacao Pos s ui Pos s ui Pos s ui Sem_Compr Cod_SemCompr Des_SemCompr Flor_Pistladas Cod_FlorPistladas Des_FlorPistladas Pos s ui Pos s ui Pos s ui Caule_Tamanho Cod_CauTam Des_CauTam Pos s ui Pos s ui Folha_Forma Cod_FolhaForm Des_FolhaForm Folha_Ápice Cod_FolhaApice Des_FolhaApice Flor_Estamin Cod_FlorEstamin Des_FlorEstamin Folha_Base Cod_FolhaBase Pos s ui Des_FolhaBase Pos s ui Pos s ui Pos s ui Estipulas_Forma Cod_EstipulasForma Des_EstipulasForma Folha_Bordo Cod_FolhaBordo Des_FolhaBordo Figura 8 – Diagrama de Entidade-Relacionamento Modelo Lógico. 32 PESQUISADORES COD_PESQUISADOR PESQUISADOR_NOME PESQUISADOR_INSTITUICAO PESQUISADOR_CONTATO integer long varchar long varchar long varchar COD_PESQ UISADOR = CO D_PESQUIS ADOR FE_SEPALAS COD_FESEPALAS integer DES_FESEPALAS long varchar FP_CONSISTENCIA COD_FPCONSISTENCIA integer DES_FPCONSISTENCIA long varchar FP_SEPALAS COD_FPSEPALAS integer DES_FPSEPALAS long varchar COD_FESEPA LA S = CO D_FE SEPALAS COD_ESPE CIE = COD_ESPE CIE PESQUISADOR_ESPECIE COD_ESPECIE integer COD_PESQUISADOR integer LOCAL_AMOSTRAGEM long varchar DATA_VISUALIZACAO date COD_FPCONS IST ENCIA = COD_FPCONSIST ENCIA FE_GLANDULAS COD_FEGLANDULAS integer DES_FEGLANDULAS long varchar COD_FEGLANDU LA S = CO D_FE GLANDULAS COD_FEEST A MES = COD_FEEST AMES COD_FPSEPA LA S = CO D_FP SEPALAS COD_ESPECIE COD_CAUTAM COD_CAUFORM COD_CAUFOLHA COD_FOLHAFORM COD_FPPEDICELO = COD_FPPEDICELO COD_FOLHAAPICE COD_FOLHABASE FP_OVARIO COD_FOLHABORDO COD_FPOVARIO integer COD_ESTIPULASCOR DES_FPOVARIO long varchar COD_ESTUPULASFORMA COD_FESEPALAS COD_FEESTAMES COD_FPOVAR IO = COD_FPOVARIO COD_FEANTERAS COD_FEGLANDULAS FP_DISCGLAND COD_FPSEPALAS COD_FPDISCGLAND integer COD_FPCONSISTENCIA DES_FPDISCGLAND long varchar COD_FPPEDICELO COD_FPOVARIO COD_FPFRUTO COD_FPDISCGLAND = COD_FPDISCGLAND COD_FPDISCGLAND COD_SEMCOMPR COD_CAUFOR M = C OD_CAUFORM COD_SEMORNAMENT COD_FLORESTAMIN COD_FLORPISTLADAS CAULE_FORMA NOME_CIENTIFICO COD_CAUFORM integer NOME_COMUM DES_CAUFORM long varchar HYPERLINK integer integer integer integer integer integer integer integer integer integer integer integer integer integer integer integer integer integer integer integer integer integer integer integer long varchar long varchar long varchar COD_CAUFOLHA = COD _C AUFOLHA integer long varchar FE_ANTERAS COD_FEANTERAS integer DES_FEANTERAS long varchar ESPECIES FP_PEDICELO COD_FPPEDICELO integer DES_FPPEDICELO long varchar FE_ESTAMES COD_FEESTAMES DES_FEESTAMES COD_FEANT E RAS = COD_FEANT ERAS ESTIPULAS_COR COD_ESTIPULASCOR integer DES_ESTIPULASCOR long varchar COD_EST IPULASCOR = COD _E ST IPULASC OR SEM_ORNAMENT COD_SEMORNAMENT integer DES_SEMORNAMENT long varchar COD_SEMORNAMENT = COD_SEMORNAMENT COD_SEMC OMPR = COD_SEMCOMPR SEM_COMPR COD_SEMCOMPR integer DES_SEMCOMPR long varchar COD_FLORPIST LADAS = COD_FLORPIST LADAS CAULE_FOLHAS COD_CAUFOLHA integer DES_CAUFOLHA long varchar FLOR_PISTLADAS COD_FLORPISTLADAS integer DES_FLORPISTLADAS long varchar FP_FRUTO COD_FPFRUTO DES_FPFRUTO integer long varchar CAULE_TAMANHO COD_CAUTAM integer DES_CAUTAM long varchar FOLHA_FORMA COD_FOLHAFORM integer DES_FOLHAFORM long varchar COD_FPFRUT O = COD_FPFRUT O COD_EST U PULASFORMA = COD_EST UP ULASFORMA ESTIPULAS_FORMA COD_ESTUPULASFORMA integer DES_ESTIPULASFORMA long varchar COD_CAUT AM = COD_CAUT AM COD_FLOREST A MIN = COD_FLOREST AMIN COD_FOLHAFORM = COD_FOLHAFORM FOLHA_APICE COD_FOLHAAPICE integer DES_FOLHAAPICE long varchar COD_FOLHABAS E = COD_FO LH ABASE COD_FOLHAAPICE = COD_FOLHAAPICE COD_FOLHABOR DO = C OD_FOLHABORDO FLORES_ESTAMIN COD_FLORESTAMIN integer DES_FLORESTAMIN long varchar FOLHA_BASE COD_FOLHABASE DES_FOLHABASE integer long varchar FOLHA_BORDO COD_FOLHABORDO integer DES_FOLHABORDO long varchar Figura 9 – Diagrama de Entidade-Relacionamento Modelo Físico. 33 2.2. Dicionário de Dados O Dicionário de Dados consiste na descrição de todas as tabelas componentes da base de dados, assim como seus itens de dados e fluxos dos processos modelados nos DFD’s, definindo, assim, a composição/estrutura dos mesmos. 2.2.1. Descrição das Tabelas de Dados O sistema utiliza 26 tabelas de dados que estão representados na Tabela 5. Tabela 5 – Descrição das Tabelas de Dados Nome da Tabela Caule_Folhas Caule_Forma Caule_Tamanho Espécies Estípulas_Cor Estípulas_Forma FE_Anteras FE_Estames FE_Glandulas FE_Sepalas Flores_Estamin Flor_Pistiladas Folha_Ápice Folha_Base Folha_Bordo Folha_Forma FP_Consistência FP_DiscGland FP_Fruto FP_Ovário FP_Pedicelo FP_Sépalas Pesquisadores Pesquisador_Espécie Sem_Ornament Sem_Compr Descrição Armazenamento dos dados referentes à disposição das folhas no caule Armazenamento dos dados referentes à forma do caule Armazenamento dos dados referentes ao tamanho do caule Armazenamento dos dados referentes às espécies de plantas bioativas Armazenamento dos dados referentes à cor da estípula Armazenamento dos dados referentes à forma da estípula Armazenamento dos dados referentes a anteras de flores estaminadas Armazenamento dos dados referentes a estames de flores estaminadas Armazenamento dos dados referentes a glândulas de flores estaminadas Armazenamento dos dados referentes a sépalas de flores estaminadas Armazenamento dos dados referentes a flores estaminadas Armazenamento dos dados referentes à flor pistilada Armazenamento dos dados referentes ao ápice da folha Armazenamento dos dados referentes à base da folha Armazenamento dos dados referentes ao bordo da folha Armazenamento dos dados referentes à forma da folha Armazenamento dos dados referentes à consistência das flores pistiladas Armazenamento dos dados referentes ao disco glandular das flores pistiladas Armazenamento dos dados referentes ao fruto das flores pistiladas Armazenamento dos dados referentes ao ovário das flores pistiladas Armazenamento dos dados referentes ao pedicelo das flores pistiladas Armazenamento dos dados referentes a sépalas das flores pistiladas Armazenamento dos dados referentes a pesquisadores Armazenamento dos dados referentes ao local de amostragem do pesquisador Armazenamento dos dados referentes à ornamentação das sementes Armazenamento dos dados referentes ao comprimento da semente 34 2.2.2. Descrição dos Atributos das Tabelas A descrição dos atributos das tabelas, separados em quatro colunas, sendo para a coluna chave determinado os seguintes valores: P – (chave primária) e E – (chave estrangeira). As Tabelas de 6 a 31 descrevem todas as variáveis do sistema. Tabela 6 – Dicionário de Dados da Entidade Caule_Folhas Atributo Cod_CauFolha Des_CauFolha Chave Tipo P Inteiro Caracter (30) Descrição Identificador da disposição de folhas no caule Descrição da disposição de folhas no caule Obs: Esta entidade possui chave primária simples, constituída do atributo Cod_CauFolha. Tabela 7 – Dicionário de Dados da Entidade Caule_Forma Atributo Cod_CauForm Des_CauForm Chave Tipo P Inteiro Caracter (30) Descrição Identificador da forma do caule Descrição da forma do caule Obs: Esta entidade possui chave primária simples, constituída do atributo Cod_CauForm. Tabela 8 – Dicionário de Dados da Entidade Caule_Tamanho Atributo Cod_CauTam Des_CauTam Chave Tipo P Inteiro Caracter (30) Descrição Identificador do tamanho do caule Descrição do tamanho do caule Obs: Esta entidade possui chave primária simples, constituída do atributo Cod_CauTam. Tabela 9 – Dicionário de Dados da Entidade Estipulas_Cor Atributo Cod_EstipulaCor Des_ EstipulaCor Chave Tipo P Inteiro Caracter (30) Descrição Identificador da cor da estípula Descrição da cor da estípula Obs: Esta entidade possui chave primária simples, constituída do atributo Cod_ EstipulaCor. 35 Tabela 10 – Dicionário de Dados da Entidade Estipulas_Forma Atributo Cod_EstipulaForma Des_ EstipulaForma Chave Tipo P Inteiro Caracter (30) Descrição Identificador da forma da estípula Descrição da forma da estípula Obs: Esta entidade possui chave primária simples, constituída do atributo Cod_ EstipulaForma. Tabela 11 – Dicionário de Dados da Entidade Espécies Atributo Chave Tipo Descrição Cód_Espécie P Inteiro Identificador do tamanho do caule Cód_CauTam E Inteiro Identificador do Tamanho do Caule Cód_CauForm E Inteiro Identificador da Forma do Caule Cód_CauFolha E Inteiro Identificador da Disposição das Folhas Cód_FolhaForm E Inteiro Identificador da Forma da Folha Cód_FolhaApice E Inteiro Identificador do Ápice da Folha Cód_FolhaBase E Inteiro Identificador da Base da Folha Cód_FolhaBordo E Inteiro Identificador do Bordo da Folha Cód_EstipulasCor E Inteiro Identificador da Cor das Estipulas Cód_EstipulasForma E Inteiro Identificador da Forma das Estipulas Cód_FESepalas E Inteiro Identificador da Sépala da Flor Estaminada Cód_FEEstames E Inteiro Identificador do Estame da Flor Estaminada Cód_FEAnteras E Inteiro Identificador da Antera da Flor Estaminada Cód_FEGlandulas E Inteiro Identificador da Glândula da Flor Estaminada Cód_FPSepalas E Inteiro Identificador da Sépala da Flor Pistilada Cód_FPConsistencia E Inteiro Identificador da Consistência da Flor Pistilada Cód_FPPedicelo E Inteiro Identificador do Pedicelo da Flor Pistilada Cód_FPOvario E Inteiro Identificador do Ovário da Flor Pistilada Cód_FPFruto E Inteiro Identificador do Fruto da Flor Pistilada Cód_FPDiscGland E Inteiro Identificador do Disco Glandular da Flor Pist. Cód_SemCompr E Inteiro Identificador do Comprimento da Semente Cód_SemOrnament E Inteiro Identificador da Ornamentação da Semente Cód_FloresEstamin E Inteiro Identificador das Flores Estaminadas Cód_FlorPistiladas E Inteiro Identificador da Flor Pistilada Nome_Cientifico Caracter (30) Nome Científico da Planta Nome_Comum Caracter (30) Nome Comum da Planta Hyperlink Caracter (30) Link com maiores informações Obs: Esta entidade compõe-se de chave primária simples. O atributo Cod_Especie é a chave primária, enquanto os outros Cod’s são chaves estrangeiras, provenientes das suas respectivas entidades. Tabela 12 – Dicionário de Dados da Entidade FE_Anteras Atributo Cod_FEAnteras Des_ FEAnteras Chave Tipo P Inteiro Caracter (30) Descrição Identificador da antera da flor estaminada Descrição da antera da flor estaminada Obs: Esta entidade possui chave primária simples, constituída do atributo Cod_ FEAnteras. 36 Tabela 13 – Dicionário de Dados da Entidade FE_Estames Atributo Cod_FEEstames Des_ FEEstames Chave Tipo P Inteiro Caracter (30) Descrição Identificador do estame da flor estaminada Descrição do estame da flor estaminada Obs: Esta entidade possui chave primária simples, constituída do atributo Cod_ FEEstames. Tabela 14 – Dicionário de Dados da Entidade FE_Glandulas Atributo Cod_FEGlandulas Des_ FEGlandulas Chave Tipo P Inteiro Caracter (30) Descrição Identificador da glândula da flor estaminada Descrição da glândula da flor estaminada Obs: Esta entidade possui chave primária simples, constituída do atributo Cod_ FEGlandulas. Tabela 15 – Dicionário de Dados da Entidade FE_Sepalas Atributo Cod_FESepalas Des_ FESepalas Chave Tipo P Inteiro Caracter (30) Descrição Identificador da sépala da flor estaminada Descrição da sépala da flor estaminada Obs: Esta entidade possui chave primária simples, constituída do atributo Cod_ FESepalas. Tabela 16 – Dicionário de Dados da Entidade Flores_Estamin Atributo Cod_FloresEstamin Des_ FloresEstamin Chave Tipo P Inteiro Caracter (30) Descrição Identificador da flor estaminada Descrição da flor estaminada Obs: Esta entidade possui chave primária simples, constituída do atributo Cod_ FloresEstamin. Tabela 17 – Dicionário de Dados da Entidade Flor_Pistiladas Atributo Cod_FlorPistilada Des_ FlorPistilada Chave Tipo P Inteiro Caracter (30) Descrição Identificador da flor pistilada Descrição da flor pistilada Obs: Esta entidade possui chave primária simples, constituída do atributo Cod_ FlorPistilada. 37 Tabela 18 – Dicionário de Dados da Entidade Folha_Apice Atributo Cod_FolhaApice Des_ FolhaApice Chave Tipo P Inteiro Caracter (30) Descrição Identificador do ápice da folha Descrição do ápice da folha Obs: Esta entidade possui chave primária simples, constituída do atributo Cod_ FolhaApice. Tabela 19 – Dicionário de Dados da Entidade Folha_Base Atributo Cod_FolhaBase Des_ FolhaBase Chave Tipo P Inteiro Caracter (30) Descrição Identificador da base da folha Descrição da base da folha Obs: Esta entidade possui chave primária simples, constituída do atributo Cod_ FolhaBase. Tabela 20 – Dicionário de Dados da Entidade Folha_Bordo Atributo Cod_FolhaBordo Des_ FolhaBordo Chave Tipo P Inteiro Caracter (30) Descrição Identificador do bordo da folha Descrição do bordo da folha Obs: Esta entidade possui chave primária simples, constituída do atributo Cod_ FolhaBordo. Tabela 21 – Dicionário de Dados da Entidade Folha_Forma Atributo Cod_FolhaForma Des_ FolhaForma Chave Tipo P Inteiro Caracter (30) Descrição Identificador da forma da folha Descrição da forma da folha Obs: Esta entidade possui chave primária simples, constituída do atributo Cod_ FolhaForma. Tabela 22 – Dicionário de Dados da Entidade FP_Consistencia Atributo Cod_FPConsistencia Des_ FPConsistencia Chave Tipo P Inteiro Caracter (30) Descrição Identificador da consistência da flor pistilada Descrição da consistência da flor pistilada Obs: Esta entidade possui chave primária simples, constituída do atributo Cod_ FPConsistencia. 38 Tabela 23 – Dicionário de Dados da Entidade FP_DiscGland Atributo Cod_FPDiscGland Des_ FPDiscGland Chave Tipo P Inteiro Caracter (30) Descrição Identificador do disco glandular da flor pist. Descrição do disco glandular da flor pistilada Obs: Esta entidade possui chave primária simples, constituída do atributo Cod_ FPDiscGland. Tabela 24 – Dicionário de Dados da Entidade FP_DiscGland Atributo Cod_FPFruto Des_ FPFruto Chave Tipo P Inteiro Caracter (30) Descrição Identificador do fruto da flor pistilada Descrição do fruto da flor pistilada Obs: Esta entidade possui chave primária simples, constituída do atributo Cod_ FPFruto. Tabela 25 – Dicionário de Dados da Entidade FP_Ovario Atributo Cod_FPOvario Des_ FPOvario Chave Tipo P Inteiro Caracter (30) Descrição Identificador do ovário da flor pistilada Descrição do ovário da flor pistilada Obs: Esta entidade possui chave primária simples, constituída do atributo Cod_ FPOvario. Tabela 26 – Dicionário de Dados da Entidade FP_Pedicelo Atributo Cod_FPPedicelo Des_ FPPedicelo Chave Tipo P Inteiro Caracter (30) Descrição Identificador do pedicelo da flor pistilada Descrição do pedicelo da flor pistilada Obs: Esta entidade possui chave primária simples, constituída do atributo Cod_ FPPedicelo. Tabela 27 – Dicionário de Dados da Entidade FP_Sepalas Atributo Cod_FPSepalas Des_ FPSepalas Chave Tipo P Inteiro Caracter (30) Descrição Identificador da sépala da flor pistilada Descrição da sépala da flor pistilada Obs: Esta entidade possui chave primária simples, constituída do atributo Cod_ FPSepalas. 39 Tabela 28 – Dicionário de Dados da Entidade Pesquisadores Atributo Cod_Pesquisador Pesquisador_Nome Pesquisador_Instituicao Pesquisador_Contato Chave P - Tipo Inteiro Caracter (30) Caracter (30) Caracter (30) Descrição Identificador do pesquisador Descrição do nome do pesquisador Descrição da instituição do pesquisador Descrição do meio de contato do pesquisador Obs: Esta entidade possui chave primária simples, constituída do atributo Cod_Pesquisador. Tabela 29 – Dicionário de Dados da Entidade Pesquisadore_Espécie Atributo Chave Tipo Descrição Cod_Espécie P,E Inteiro Identificador da espécie Cod_Pesquisador P,E Inteiro Identificador do pesquisador Local_Amostragem Caracter (30) Descrição do local de amostragem Data_Visualizacao Data Data de visualização da espécie Obs: Esta entidade compõe-se de chave primária composta. O atributo Cod_Especie é a chave primária e chave estrangeira proveniente da entidade Especies e Cod_Pesquisador, chave primária e chave estrangeira proveniente da entidade Pesquisadores. Tabela 30 – Dicionário de Dados da Entidade Sem_Ornament Atributo Cod_SemOrnament Des_ SemOrnament Chave Tipo P Inteiro Caracter (30) Descrição Identificador da ornamentação da semente Descrição da ornamentação da semente Obs: Esta entidade possui chave primária simples, constituída do atributo Cod_ SemOrnament. Tabela 31 – Dicionário de Dados da Entidade Sem_Compr Atributo Cod_ SemCompr Des_ SemCompr Chave Tipo P Inteiro Caracter (30) Descrição Identificador do comprimento da semente Descrição do comprimento da semente Obs: Esta entidade possui chave primária simples, constituída do atributo Cod_ SemCompr. 2.3. Diagrama de Contexto O diagrama de fluxo de dados foi construído com a ferramenta Case Power Designer Process Analyst 6.1. O Diagrama de Contexto trata da descrição gráfica que representa a troca de informações entre o sistema e o ambiente, conforme visto na Figura 10. 40 Dados_Consulta 1 Dados_Pesquisador Sistema de Identificação de Bioativas Usuário Dados_Bioativas Resultado_Consulta + Figura 10 – Diagrama de Contexto. 2.4. Diagrama de Fluxo de Dados (DFD’s) Também conhecido como Gráfico de Bolhas, o Diagrama de Fluxo de Dados é a representação gráfica em rede de um sistema, e mostra os componentes ativos do sistema e as interfaces de dados entre eles, sendo a representação exata de como funciona a maioria dos sistemas. Na seqüência são apresentados o Diagrama de Fluxo de Dados integral (Figura 11). 3 Bioativas Dados_Bioativas_Ok Manter Bioativas Pesquisadores Pesquisador_Bioativa Resposta_Consulta Dados_Pesquisadores_Ok Dados_Bioativas 1 Consultar Bioativas Dados_Consulta Resultado_Consulta 2 Usuário Dados_Pesquisador Manter Pesquisadores Figura 11 – Diagrama de Fluxo de Dados. 2.5. Especificação de Processos Especificação de Processos são procedimentos de transformação que especificam o quê ocorre num processo, descrevendo os processos de nível n. Após a construção dos DFD’s iniciou-se a Especificação dos Processos, optando-se por uma descrição textual de cada um. 41 2.5.1. Processo 1 – Consultar Bioativas Através deste processo dá-se a recuperação dos casos mais similares, que são posteriormente listados para o usuário como resultado da consulta. 2.5.2. Processo 2 - Manter Pesquisadores Este processo consiste da manutenção da tabela de pesquisadores do sistema, sendo responsável pela inclusão, alteração, consulta e exclusão realizada nesta tabela. Neste processo, o usuário fornece os dados a serem processados pelo sistema e estes são acrescidos, recuperados ou eliminados da base, conforme o comando do mesmo. 2.5.3. Processo 3 - Manter Bioativas Este processo representa, indiretamente a etapa de aprendizagem do sistema, uma vez que este é responsável pela inclusão, alteração e exclusão das informações referentes às plantas, armazenadas fisicamente na base de casos. As informações fornecidas pelo usuário são inseridas nos cadastros gerais do sistema, e armazenadas, constituindo a base de casos do sistema. 3. O Modelo Difuso O sistema utiliza a lógica difusa para modelar as variáveis que podem assumir uma incerteza no que diz respeito a sua classificação. Para estas variáveis foram construídas as seguintes funções de pertinência como pode ser visto nas Tabelas 32 e 33 , e Figuras 12 e 13 respectivamente. Foram utilizadas funções do tipo triangulares, pois estas se apresentaram uma curva de fácil implementação de acordo com modelo proposto. O código implementado para o modelo difuso pode ser consultado no Anexo II deste trabalho. 42 Tabela 32 – Funções da Variável Tamanho do Caule. Classificação Intervalo x ≤ 20 x > 20 x ≤ 50 x > 50 x ≤ 80 x > 80 Pequeno Médio Grande Pequeno 1 f(x) y = x / 20 y = -x/30 + 5/3 y = x/30 – 2/3 y = -x/30 + 8/3 y = x/30 – 5/3 y=1 Médio Grande 0 0 10 20 30 40 50 60 70 80 90 Figura 12 – Distribuição da Variável Tamanho do Caule. Tabela 33 – Funções da Variável Tamanho da Semente. Classificação Pequeno Médio Grande Intervalo x≤3 x>3 x≤6 x>6 x≤9 x>9 f(x) y=x/3 y = -x/3 + 2 y = x/3 – 1 y = -x/3 + 3 y = x/3 – 2 y=1 100 43 Pequeno Médio Grande 1 0 0 1 2 3 4 5 6 7 8 9 10 Figura 13 – Distribuição da Variável Tamanho da Semente. 4. O Modelo de RBC O sistema utilizou a contagem de características como método de recuperação. A princípio optou-se para a utilização de uma combinação de dois métodos de busca, onde também se utilizaria do método do vizinho mais próximo. Cada um deles se mostra mais adequado a uma situação de busca. Devido as características do sistema optou-se por descartar o método do vizinho mais próximo para as variáveis: tamanho do caule, número de sépalas, pedicelo, diâmetro do fruto e sementes devido ao modelo difuso adaptar estas variáveis ao método de contagem de características. O código implementado para o método de contagem de características pode ser conferido no Anexo III deste trabalho. 5. Descrição das Telas do Sistema Proposto Após a conclusão da modelagem, procedeu-se a implementação propriamente dita do sistema, na linguagem PHP, conforme já havia sido citado anteriormente. A Figura 14 mostra a tela inicial do sistema, nesta tela o usuário tem acesso ao menu de opções do sistema. 44 Figura 14 – Tela Inicial do Sistema. Através de uma tela semelhante a da Figura 14, são mantidos também os dados das demais tabelas auxiliares. 45 Figura 15 – Tela de Cadastro e Manutenção da Tabela de Pesquisadores. Na tela de cadastro de pesquisadores na Figura 15 são mantidos as informações a respeito de seu login e senha além da instituição de origem e e-mail para contato. Na tela da Figura 16 são inseridos os dados para realizar a busca utilizando a técnica de RBC, os atributos são selecionados através de combos, exceto para as variáveis difusas que são informados através de valores. 46 Figura 16 – Tela de Consulta a Base de Conhecimento Utilizando a Técnica de RBC. 47 Figura 17 – Tela de Resultados da Pesquisa RBC. Na tela da Figura 17 são exibidos os resultados do método de recuperação. As informações exibidas são o nome da espécie e a similaridade do mesmo com o caso de entrada. Nesta tela existem duas possibilidades, obter a descrição da espécie clicando sobre a mesma ou adicionar o caso de entrada a base de dados. Na tela da Figura 18 é apresentado a descrição da espécie selecionada. Esta possui uma imagem da espécie e dados relacionados a sua fitologia. Esta tela é somente informativa, o sistema possui telas semelhantes a da Figura 16 para cadastro e manutenção de dados relacionados as espécies. 48 Figura 18 – Tela Descritiva da Espécie. IV - CONCLUSÕES E RECOMENDAÇÕES Pode-se concluir, ao final do presente trabalho, que cada um dos objetivos do mesmo foram atingidos. O sistema foi desenvolvido com técnicas de inteligência artificial para o ambiente de internet, visando o acesso público e de interface comum ao usuário, para a identificação de Plantas Bioativas que pode auxiliar nos estudos de profissionais da área, assim como estudantes. Foi criada uma base inicial de casos capaz de propor respostas a identificação botânica de Plantas Bioativas, apresentando resultado das espécies mais prováveis de corresponderem àquela a ser identificada. O sistema propõe adicionar a espécie ao acervo caso essa não tenha sido encontrada de forma a deixar o sistema mais preparado a consultas futuras. Foi possível estudar o comportamento do sistema de raciocínio baseado em casos com aplicação na identificação botânica de Plantas Bioativas. A técnica de Raciocínio Baseado em Casos se mostrou bastante adequada à tarefa de busca, apresentando como principal vantagem a possibilidade de implementação de uma base de conhecimentos mais compacta que aquelas necessárias para técnicas simbólicas como Sistemas Especialistas. Fica como sugestões para futuras implementações a inclusão de novos atributos para a contemplação de um maior número de espécies. A disponibilização de escolha do método de busca para comparação dos resultados e a implementação de novas funções de pertinências para as variáveis fuzzy com o objetivo de representar melhor os intervalos. Finalizando, este trabalho permitiu um acréscimo nos conhecimentos relacionados às técnicas de modelagem de sistemas, lógica de programação, banco de dados, e principalmente, nos conhecimentos da técnica de Raciocínio Baseado em Casos. Conclui-se com o trabalho toda a modelagem do sistema bem como a modelagem da base de dados, com esse material foi dado início a implementação do sistema. Na data de entrega deste documento o sistema estava concluído e disponível para os responsáveis pela validação, sendo estes profissionais da estação experimental de Itajaí a Epagri. BIBLIOGRAFIA ARNOLD, W. R.; BOWIE, J. S. Artificial intelligence - a Personal, commonsense Journey. Englewood Cliffs: Prentice-Hall, 1986. 219p. ASHLEY, K. D. Reasoning with Cases and Hypotheticals in HYPO. International Journal ManMachine Studies, 34, 1991. BARRETO, Jorge Muniz. Inteligência artificial no limiar do século XXI. Florianópolis: PPP Edições, 1997. CAPELLARI, Junior L. Plantas Medicinais e Aromáticas. Volume 1. São Paulo: Sebrae, 1996. 62p. Cbr-Web. The CBR Homepage. Disponível em: <http://www.cbr-web.org>. Acesso em: 20 setembro 2003. CHARNIAC, E.; MCDERMOTT, D. Introduction to Artificial Intelligence. Massachusetts: Addison-Wesley, 1985. COSTA, M. T. C. Uma Arquitetura Baseada em Agentes para Suporte ao Ensino à Distância. Tese submetida à Universidade Federal de Santa Catarina para a obtenção do título de Doutor em Engenharia de Produção. Florianópolis, 1999. Disponível em: <http://www.eps.ufsc.br/ teses99/thiry>. Acesso em: 09 setembro 2003. DALFOVO, O. Desenvolvimento de um Sistema Informatizado Usando a Técnica RBC para Auxiliar no Plantio de Árvores Frutíferas. Blumenau, 1999. Disponível em: <http://campeche.inf.furb.rct-sc.br/phps/empmon/artigo/Prof._Dr._Oscar_Dalfovo_Artigo_ ICIE_POMAR_RBC_Oscar_Dalfovo.doc>. Acesso em: 20 setembro 2003. DI STASI, L. C. Plantas Medicinais: arte e ciência.São Paulo: Universidade Estadual Paulista, 1996. 230p. ESTADÃO. O Estado de S. Paulo.Disponível em: <http://www.estado.estadao.com.br/edicao/ especial/plantas/listplan.html>. Acesso em: 15 outubro 2003. 51 FERNANDES, Anita M. Inteligência Artificial: noções gerais. 1. ed. Florianópolis: Visual Books Ltda, 2003. 160p. GENTNER, D. Structure Mapping - A Theoretical Framework for Analogy. Cognitive Science, Vol. 7, pp. 155-170, 1983. HAMMOND K. Chef: A Model of Case BasedPlanning. In Proc. American Association for Artificial Intelligence, AAAI86, Philadelphia, PA August 1986. HEUSER, C. A. Projeto de Bancos de Dados. 3 ed. Porto Alegre: Sagra-Luzzatto, 1998. HINRICHS, T. R. Problem Solving in Open Worlds: A Case Study Design. Nothvale, NJ Erlbaum, 1992. INFOHERBS. InfoHebs. Disponível em: <http://www.infoherbs.com>. Acesso em: 10 outubro 2003. KOLODNER, Janet. Reconstrutive Memory: A Computer Model. Cognitive Science, 7(iv), 1983. KOLODNER, Janet. Case-Based Reasoning. San Francisco: Morgan Kaufmann Pub. Inc, 1993. 668p. LAGEMANN, G. V. RBC para o Problema de Suporte ao Cliente nas Empresas de Prestação de Serviço de Software. Florianópolis, 1998. Disponível em: < http://www.eps.ufsc.br/ disserta98/lagemann/ >. Acesso em: 25 setembro 2003. LEE, R. W. CBR Course Home Page. 13 maio. 1996. Disponível em: <http://www.eps.ufsc.br/~martins/fuzzy/cbr.html>. Acesso em: 10 setembro 2003. LEE, R. W. Pesquisa Jurisprudencial Inteligente. Florianópolis, 1998. Tese (Doutorado em engenharia) – Programa de Pós Graduação em Engenharia de Produção PPGEP/UFSC, Universidade Federal de Santa Catarina. PASSOLD, F. Inteligência Artificial Aplicada a Sistemas de Manufatura. 10 novembro 1997. Disponível em: <http://upf.tche.br/~passold/ apostila_ia.html>. Acesso em: 06 novembro 2003. 52 PEREIRA, V. de A.; DOTTO, Fábio Romano Lofrano. Página da Lógica Fuzzy. 10 fevereiro 1999. Disponível em: <http://www.geocities.com/Athens/ Crete/2647/indexp.html>. Acesso em: 06 novembro 2003. PORTER, B.; BAREISS, R. PROTOS: Na Experiment in Knowledge Acquisition for Heuristic Classification Taks. Proc. of the 1st Int. Meeting on Advances in Learning, France, 1986. REIS, L.A.; CARGNIN, M. L. SDDEP – Uma Aplicação na Área Médica Utilizando Raciocínio Baseado em Casos. Florianópolis, 1997. Relatório de Estágio (Graduação em Ciência da Computação) – Centro de Ciências Tecnológicas, Universidade Federal de Santa Catarina. RIESBECK, C.K.; SCHANCK, R. Inside Case-Based Reasoning. Lawrence Erlbaum, 1989. RISSLAND E.; SKALAK, D. CABARET: Rule Interpretation in a Hybrid Architecture. International Journal of Man-Machine Studies 34, 1991. SCHANCK, R.; ABELSON R. Scripts, Plans, Goals and Understanding. Hillsdale NJ, Lawrence Erlbaum, 1977. SCHULTZ, A. R. Botânica Sistemática. Volume 1. Porto Alegre: Globo, 1961. 241p. SILVA, H. L. Planejamento Baseado em Casos Aplicado na Resolução de Não-Conformidades Ambientais no Ciclo de Vida de Produtos, Processos e Serviços. Tese (Doutorado em engenharia). Florianópolis, 1997. Disponível em: <http://www.eps.ufsc.br/teses98/harrysson/>. Acesso em: 15 setembro 2003. SILVA, Junior A. A. Essentia herba - Plantas bioativas. Volume 1. Florianópolis: EPAGRI, 2003. 441p. SIMPSON, R.; KOLODNER J. The MEDIATOR: Analyses of an Early Case Based Problem Solver. Cognitive Science 13(4), 1989. SYCARA, E. P. Resolving Adversial Conflicts: Na Approach to Integrating Case-Based and Analytic Methods. Technical Report GIT-ICS-87/26, Georgia Institute of Technology, School of Information and Computer Science, Atlanta GA, 1987. WANGENHEIM, C. G.; WANGENHEIM, A. Raciocínio Baseado em Casos. 1a ed. Barueri: Manole Ltda, 2003. 293p. 53 GLOSSÁRIO Fármaco - Substância que é o principio ativo do medicamento. Farmacologia - Estudo dos medicamentos, incluindo a sua aplicação. Fitologia - Ciência que estuda os vegetais. Fitoquímica – Componentes químicos dos vegetais. Fitoterapia - É o tratamento das doenças com emprego de medicamentos de origem vegetal, isto é, por meio de drogas vegetais secas ou partes vegetais recém colhidas e/ou seus extratos naturais. Metabólitos - Substância que participa das reações do metabolismo de um organismo. ANEXOS ARTIGO CIENTÍFICO SOBRE O SISTEMA DE RECONHECIMENTO DE PLANTAS BIOATIVAS Sistema Para Reconhecimento de Plantas Bioativas Antonio Amaury Silva Neto [email protected] Anita Maria da Rocha Fernandes, Dra. [email protected] Universidade do Vale do Itajaí – UNIVALI/Campus Itajaí Rua Uruguai, 458 Centro CEP 88302-202 Itajaí/SC RESUMO Este trabalho apresenta o desenvolvimento de um sistema inteligente para identificação de plantas bioativas, que são espécies vegetais que possuem atividade farmacológica, biológica e/ou biocida, podendo ser utilizadas como base para pesquisa em diversas instituições por profissionais e estudantes da área procurando auxiliar o uso adequado desta bioatividade. O sistema foi desenvolvido aplicando a técnica de Raciocínio Baseado em Casos, buscando na memória do sistema a experiência mais próxima com o problema de entrada. O algoritmo para cálculo da similaridade utilizado foi o de contagem de características. O sistema foi desenvolvido na linguagem de programação para web PHP e banco de dados MySQL, visando um acesso fácil e público as informações. Através desta ferramenta, foi possível obter identificações mais precisas, com maior rapidez e segurança. Palavras-Chave: Raciocínio Baseado em Casos, Inteligência Artificial, Plantas Bioativas. ABSTRACT This paper proposes the development of an intelligent system for identification of bioactive plants, that are vegetal species which possess pharmacological, biological and/or biocide activity, to be used in research and education institutions by professionals and students of the area. The system was developed applying the technique of Case-Based Reasoning, searching in the system memory the nearest experience with the entrance problem. The system was developed in PHP programming language for Web and MySQL database, aiming at an easy and public access to the information. Clearer identifications in each specific case, with more rapidity and security are hoped to get with this aid. Key-Words: Case-Based Reasoning, Artificial intelligence, Bioactive Plants. 1. Introdução Este artigo visa apresentar o desenvolvimento de uma ferramenta capaz de identificar espécies de plantas com fatores bioativos úteis à comunidade através de suas características fitológicas, para utilização em instituições de pesquisa e ensino, por profissionais de saúde e pela comunidade em geral que utiliza as plantas de acordo com sua atividade bioativa. Segundo Silva (2003), Planta Bioativa é uma espécie vegetal que reúne componentes fitoquímicos (metabólitos secundários com atividade farmacológica, biológica e/ou biocida). A Inteligência Artificial é um tipo de inteligência produzida pelo homem para dotar as máquinas de algum tipo de habilidade que simula a inteligência humana (FERNANDES, 2003). A conceituação nos dicionários de computação é a "Aptidão ou capacidade de um dispositivo para desempenhar funções que são normalmente associadas à inteligência humana, tais como raciocínio, aprendizagem e auto-aperfeiçoamento". Conforme Lee (1998), Raciocínio Baseado em Casos é uma técnica de Inteligência Artificial que reproduz aspectos da cognição humana para resolver problemas especialistas. A idéia central do RBC consiste em fazer o sistema “relembrar” de casos relevantes e reutilizá-los em uma nova solução. O estudo de sistemas inteligentes utilizando a técnica de Raciocínio Baseado em Casos e a implementação de uma ferramenta na área de plantas bioativas, que se apresenta pouco explorada e com recursos escassos, são as principais justificativas deste trabalho. Além destas, citase a necessidade de se aperfeiçoar e agilizar o processo de identificação destas plantas com o objetivo de aumentar o rendimento do trabalho produzido, e das pesquisas realizadas por profissionais e estudantes da área. 2. Justificativa A Inteligência Artificial é um tipo de inteligência produzida pelo homem para dotar as máquinas de algum tipo de habilidade que simula a inteligência humana (FERNANDES, 2003). A conceituação nos dicionários de computação é a "Aptidão ou capacidade de um dispositivo para desempenhar funções que são normalmente associadas à inteligência humana, tais como raciocínio, aprendizagem e auto-aperfeiçoamento". Conforme Lee (1998), Raciocínio Baseado em Casos é uma técnica de Inteligência Artificial que reproduz aspectos da cognição humana para resolver problemas especialistas. A idéia central do RBC consiste em fazer o sistema “relembrar” de casos relevantes e reutilizá-los em uma nova solução. O estudo de sistemas inteligentes utilizando a técnica de Raciocínio Baseado em Casos e a implementação de uma ferramenta na área de plantas bioativas, que se apresenta pouco explorada e com recursos escassos, são as principais justificativas deste trabalho. Além destas, citase a necessidade de se aperfeiçoar e agilizar o processo de identificação destas plantas com o objetivo de aumentar o rendimento do trabalho produzido, e das pesquisas realizadas por profissionais e estudantes da área. 3. Metodologia Para a realização desse trabalho, as tarefas foram divididas em etapas seqüenciais. Primeiramente foram revisados os conhecimentos adquiridos durante o desenvolvimento do trabalho, através de pesquisa bibliográfica, e aprofundamento nos tópicos necessários para o desenvolvimento do projeto, tais como Inteligência Artificial, Desenvolvimento de Sistemas, Banco de Dados. Na etapa seguinte levantou-se a situação atual junto à instituição de pesquisa escolhida para o projeto a EPAGRI - Itajaí, através de entrevistas e levantamento de dados com os funcionários responsáveis, neste trabalho tratados como especialistas, de forma a definir os requisitos para o sistema em questão, e também modelar a base de conhecimentos necessária para o funcionamento do mesmo. Foi coletada uma quantidade significativa de casos para elaborar a base inicial do sistema utilizando o sistema gerenciador de banco de dados MySQL. Analisou-se os requisitos dos usuários para definição do escopo do sistema, suas funções e comportamento, bem como a definição da metodologia e das ferramentas necessárias para o desenvolvimento do sistema. A partir destes dados, iniciou-se o desenvolvimento do projeto escrito. Finalmente deu-se início a implementação do software, utilizando as ferramentas e metodologias citadas nas etapas anteriores bem como a modelagem do sistema através dos diagramas e seus respectivos dicionários de dados, consultando quando necessário os especialistas, de maneira a cumprir os requisitos dos mesmos. Visando sua publicação na web, utilizou-se a linguagem de programação PHP. 4. Discussão Considerando-se um universo de quase 500.000 espécies de plantas no planeta Terra e a possibilidade de ocorrência de até milhares de substâncias bioativas em cada espécie, a busca por características específicas em modelos de consulta convencionais tem sido uma tarefa de grande vulto e muitas vezes até desanimadora, resultando em um processo moroso no desenvolvimento da fitoterapia, fitologia e fitoquímica (SILVA, 2003). Atualmente a recuperação de dados é feita de forma manual e subjetiva nas instituições de pesquisa e é baseada unicamente em recursos bibliográficos esparsos e reduzidos, e no conhecimento de alguns pesquisadores. Daí surgiu à necessidade de uma ferramenta para aquisição e sistematização do conhecimento, para auxílio ao profissional e estudantes da área, no intuito de gerar pesquisas mais exatas e eficazes. 4.1. Identificação de Plantas Bioativas Para trabalhar com Plantas Bioativas ou usá-las é necessário conhecê-las corretamente. A identificação botânica é, nesse caso, muito importante pois evita problemas como intoxicações e uso de plantas que não tenham efeito sobre a doença que se pretende combater. A identificação deve ser feita por pessoas que tenham amplo conhecimento de assunto, de preferência botânicos que através de características que diferenciam as espécies vegetais, obtenham o nome correto da planta. As pessoas que se especializam em identificação de seres vivos são chamados de taxonomistas, e na medida do possível devem ser consultados para a identificação de plantas (DI STASI, 1996). As características mais importantes do ponto de vista taxonômico na definição de uma espécie, concentra-se na flor, pois, esta é à parte da planta menos variável com as condições do ambiente (Ibidem). O escopo do sistema foi delimitado apenas no gênero Phyllanthus, por motivo de tempo de desenvolvimento da grande diversidade deste gênero (cerca de 500 espécies catalogadas) e a grande semelhança entre as espécies. Também como justificativa da escolha de um único gênero foi a grande complexidade em criar um modelo que fosse genérico o suficiente para englobar todas as famílias de plantas bioativas, e específico o bastante para diferenciar espécies muito semelhantes. A semelhança entre espécies gerou a necessidade de se utilizar um sistema de RBC para a identificação das mesmas. Algumas variáveis destacaram-se uma incerteza quanto a sua valorização o que levou a usar a lógica fuzzy. 4.2. Raciocínio Baseado em Casos O Raciocínio Baseado em Casos é uma técnica de IA que consiste na utilização de situações passadas, implementadas na forma de estruturas de dados chamados casos, como um referencial para resolução de novos problemas (COSTA, 1999). De acordo com Gentner (1983), RBC é a resolução de problemas por analogia, utilizando a experiência adquirida para resolver novos problemas. As soluções para os novos problemas surgem à medida que são comparados aspectos de problemas novos e antigos, utilizandose as soluções encontradas anteriormente. Apesar de considerar o desenvolvimento de um sistema de RBC como sendo uma tarefa complexa que não se sujeita a ser formulada através de uma metodologia, Lee (1996) propõe quatro etapas distintas, conforme Figura 1: • representação dos casos; • recuperação dos casos; • revisão e adaptação; • reutilização, avaliação e aprendizagem. Problema Reter Solução Confirmada Recuperar Soluções Iniciais Base de Casos Revisar Reutilizar Solução Proposta Figura 19 - O Ciclo do RBC. Fonte: Adaptação de Lee (1998). Segundo Fernandes (2003), a filosofia básica desta técnica é a de buscar a solução para uma situação atual através da comparação com uma experiência passada semelhante. O processo característico do RBC consiste em: identificar o problema atual, buscar a experiência mais semelhante na memória e aplicar o conhecimento desta experiência passada no problema atual. • Este procedimento pode ser detalhado em alguns passos. • Identificação de um problema a ser resolvido (problema de entrada); • Definição das principais características que identificam este problema; • Busca e recuperação na memória de casos com características similares; • Seleção de um ou mais dentre os casos recuperados; • Revisão deste(s) caso(s) para determinar a necessidade de adaptação; • Reutilização do caso adaptado para resolver o problema de entrada; • Avaliação da solução do problema de entrada; • Inclusão do caso adaptado na memória de casos (aprendizagem). 4.3. Lógica Fuzzy Segundo Pereira e Dotto (1999), a Lógica Fuzzy é a lógica que suporta os modos de raciocínio que são aproximados ao invés de exatos. Derivada do conceito de conjuntos fuzzy, a Lógica Fuzzy constitui a base para o desenvolvimento de métodos e algoritmos de modelagem e controle de processos, permitindo a redução da complexidade de projeto e implementação, tornando-se a solução para problemas de controle até então intratáveis por técnicas clássicas. Ela difere dos sistemas lógicos em suas características e seus detalhes. Nesta lógica, o raciocínio exato corresponde a um caso limite do raciocínio aproximado, sendo interpretado como um processo de composição de relações nebulosas. Na Lógica Fuzzy, o valor verdade de uma proposição pode ser um subconjunto fuzzy de qualquer conjunto parcialmente ordenado, ao contrário dos sistemas lógicos binários, onde o valor verdade só pode assumir dois valores: verdadeiro (1) ou falso (0). Nos sistemas lógicos multivalores, o valor verdade de uma proposição pode ser ou um elemento de um conjunto finito, num intervalo, ou uma álgebra booleana. Na Lógica Fuzzy, os valores verdade são expressos lingüisticamente (verdade, muito verdade, não verdade, falso, muito falso), onde cada termo lingüístico é interpretado como um subconjunto fuzzy do intervalo unitário (ibidem). Outras características da Lógica Fuzzy podem ser sumarizadas como segue: nos sistemas lógicos binários, os predicados são exatos (par, maior que), ao passo que na Lógica Fuzzy os predicados são nebulosos (alto, baixo). Nos sistemas lógicos clássicos, o modificador mais utilizado é a negação, enquanto que na Lógica Fuzzy uma variedade de modificadores de predicados são possíveis (muito, mais ou menos). Estes modificadores são essenciais na geração de termos lingüísticos, tais como: muito alto, mais ou menos perto, etc. Na lógica clássica existem somente os quantificadores existenciais e universais. A Lógica Fuzzy admite, em adição, uma ampla variedade de quantificadores como pouco, vários, usualmente, freqüentemente, em torno de cinco, etc. A probabilidade é um valor numérico ou um intervalo. Na Lógica Fuzzy existe a opção adicional de se empregar probabilidades lingüísticas (provável, altamente provável, improvável), interpretados como números fuzzy e manipulados pela aritmética fuzzy. Também em contraste com a lógica modal clássica, o conceito de possibilidade é interpretado utilizando-se subconjuntos fuzzy no universo dos reais (PEREIRA e DOTTO, 1999). 4.4. Resultados O sistema utilizou a contagem de características como método de recuperação. A princípio optou-se para a utilização de uma combinação de dois métodos de busca, onde também se utilizaria o método do vizinho mais próximo. Cada um deles se mostra mais adequado a uma situação de busca. Devido às características do sistema optou-se por descartar o método do vizinho mais próximo para as variáveis tamanho do caule, número de sépalas, pedicelo, diâmetro do fruto e sementes. Com a construção do sistema, pretende-se que esse seja utilizado pelos profissionais que desejem pesquisar sobre as plantas bioativas. Poderá servir como uma ferramenta de consulta com acesso público e de interface comum aos usuários da internet. As Figuras 2,3 e 4 apresentam a interface do sistema. Figura 2. Tela de Resultados da Pesquisa RBC. Figura 3. Tela de Consulta a Base de Conhecimento Utilizando a Técnica de RBC. Figura 4. Tela Descritiva da Espécie. 5. Conclusão O interesse pelas plantas bioativas tem ressurgido nos últimos anos. O conhecimento das suas características tem estado repartido pelos anciãos das populações rurais, os defensores das medicinas naturais, pelos botânicos e farmacêuticos. Com a construção do Sistema para Reconhecimento de Plantas Bioativas pretende-se que esse seja utilizado pela comunidade científica em geral que desejar estudar estes vegetais. Esta ferramenta poderá servir como um auxílio para pesquisa com acesso rápido e simplificado. Após sua implantação, módulos relativos a outras espécies podem ser incorporados e avaliações com outras funções de pertinência que não as triangulares usadas neste trabalho devem ser feitas afim de se estabelecer a melhor modelagem fuzzy. 7. Referências Bibliográficas COSTA, M. T. C. Uma Arquitetura Baseada em Agentes para Suporte ao Ensino à Distância. Tese submetida à Universidade Federal de Santa Catarina para a obtenção do título de Doutor em Engenharia de Produção. Florianópolis, 1999. Disponível em: <http://www.eps.ufsc.br/ teses99/thiry>. Acesso em: 09 setembro 2003. DI STASI, L. C. Plantas Medicinais: arte e ciência. São Paulo: Universidade Estadual Paulista, 1996. 230p. FERNANDES, Anita M. Inteligência Artificial: noções gerais. 1. ed. Florianópolis: Visual Books Ltda, 2003. 160p. GENTNER, D. Structure Mapping - A Theoretical Framework for Analogy. Cognitive Science, Vol. 7, pp. 155-170, 1983. LEE, R. W. Pesquisa Jurisprudencial Inteligente. Florianópolis, 1998. Tese (Doutorado em engenharia) – Programa de Pós Graduação em Engenharia de Produção PPGEP/UFSC, Universidade Federal de Santa Catarina. PEREIRA, V. de A.; DOTTO, Fábio Romano Lofrano. Página da Lógica Fuzzy. 10 fevereiro 1999. Disponível em: <http://www.geocities.com/Athens/ Crete/2647/indexp.html>. Acesso em: 06 novembro 2003. SILVA, Junior A. A. Essentia herba - Plantas bioativas. Volume 1. Florianópolis: EPAGRI, 2003. 441p. ANEXO II – CÓDIGO IMPLEMENTADO PARA LÓGICA DIFUSA if ($CauTam <= 20) $CauTamPeq = $CauTam/20; else $CauTamPeq = (($CauTam*-1)/30)+(5/3); if ($CauTam <= 50) $CauTamMed = ($CauTam/30)-(2/3); else $CauTamMed = (($CauTam*-1)/30)+(8/3); if ($CauTam <= 80) $CauTamGra = ($CauTam/30)-(5/3); else $CauTamGra = 1; if (($CauTamPeq > $CauTamMed) and ($CauTamPeq > $CauTamGra)) $CauTam = 1; elseif ($CauTamMed > $CauTamGra) $CauTam = 2; else $CauTam = 3; if ($FPPedicelo <= 3) $FPPediceloPeq = $FPPedicelo/3; else $FPPediceloPeq = (($FPPedicelo*-1)/3)+(2); if ($FPPedicelo <= 6) $FPPediceloMed = ($FPPedicelo/3)-(1); else $FPPediceloMed = (($FPPedicelo*-1)/30)+(3); if ($FPPedicelo <= 9) $FPPediceloGra = ($FPPedicelo/3)-(2); else $FPPediceloGra = 1; if (($FPPediceloPeq > $FPPediceloMed) and ($FPPediceloPeq > $FPPediceloGra)) $FPPedicelo = 1; elseif ($FPPediceloMed > $FPPediceloGra) $FPPedicelo = 2; else $FPPedicelo = 3; if ($SemCompr <= 3) $SemComprPeq = $SemCompr/3; else $SemComprPeq = (($SemCompr*-1)/3)+(2); if ($SemCompr <= 6) $SemComprMed = ($SemCompr/3)-(1); else $SemComprMed = (($SemCompr*-1)/30)+(3); if ($SemCompr <= 9) $SemComprGra = ($SemCompr/3)-(2); else $SemComprGra = 1; if (($SemComprPeq > $SemComprMed) and ($SemComprPeq > $SemComprGra)) $SemCompr = 1; elseif ($SemComprMed > $SemComprGra) $SemCompr = 2; else $SemCompr = 3; if ($FPFruto <= 3) $FPFrutoPeq = $FPFruto/3; else $FPFrutoPeq = (($FPFruto*-1)/3)+(2); if ($FPFruto <= 6) $FPFrutoMed = ($FPFruto/3)-(1); else $FPFrutoMed = (($FPFruto*-1)/30)+(3); if ($FPFruto <= 9) $FPFrutoGra = ($FPFruto/3)-(2); else $FPFrutoGra = 1; if (($FPFrutoPeq > $FPFrutoMed) and ($FPFrutoPeq > $FPFrutoGra)) $FPFruto = 1; elseif ($FPFrutoMed > $FPFrutoGra) $FPFruto = 2; else $FPFruto = 3; if ($FESepala <= 3) $FESepalaPeq = $FESepala/3; else $FESepalaPeq = (($FESepala*-1)/3)+(2); if ($FESepala <= 6) $FESepalaMed = ($FESepala/3)-(1); else $FESepalaMed = (($FESepala*-1)/30)+(3); if ($FESepala <= 9) $FESepalaGra = ($FESepala/3)-(2); else $FESepalaGra = 1; if (($FESepalaPeq > $FESepalaMed) and ($FESepalaPeq > $FESepalaGra)) $FESepala = 1; elseif ($FESepalaMed > $FESepalaGra) $FESepala = 2; else $FESepala = 3; if ($FPSepala <= 3) $FPSepalaPeq = $FPSepala/3; else $FPSepalaPeq = (($FPSepala*-1)/3)+(2); if ($FPSepala <= 6) $FPSepalaMed = ($FPSepala/3)-(1); else $FPSepalaMed = (($FPSepala*-1)/30)+(3); if ($FPSepala <= 9) $FPSepalaGra = ($FPSepala/3)-(2); else $FPSepalaGra = 1; if (($FPSepalaPeq > $FPSepalaMed) and ($FPSepalaPeq > $FPSepalaGra)) $FPSepala = 1; elseif ($FPSepalaMed > $FPSepalaGra) $FPSepala = 2; else $FPSepala = 3; ANEXO III – CÓDIGO IMPLEMENTADO PARA CÁLCULO DA SIMILARIDADE UTILIZANDO A CONTAGEM DE CARACTERÍSTICAS dbConectar(); $atualizacao1 = "UPDATE especies SET score = 0"; $sucesso1 = dbSQL($atualizacao1); $ind=0; $consulta = "SELECT Cod_Especie, Cod_CauTam, Cod_CauForm, Cod_CauFolha, Cod_FolhaForm, Cod_FolhaApice, Cod_FolhaBase, Cod_FolhaBordo, Cod_EstipulaCor, Cod_EstipulaForma, Cod_FESepala, Cod_FEEstame, Cod_FEAntera, Cod_FEGlandula, Cod_FPSepala, Cod_FPConsistencia, Cod_FPPedicelo, Cod_FPOvario, Cod_FPFruto, Cod_FPDiscGland, Cod_SemCompr, Cod_SemOrnament, Cod_FlorEstamin, Cod_FlorPistilada FROM especies"; dbExecutar($consulta); while(list( $bd_CodEspecie, $bd_CauTam, $bd_CauForma, $bd_CauFolha, $bd_FolhaForma, $bd_FolhaApice, $bd_FolhaBase, $bd_FolhaBordo, $bd_EstipulaCor, $bd_EstipulaForma, $bd_FESepala, $bd_FEEstame, $bd_FEAntera, $bd_FEGlandula, $bd_FPSepala, $bd_FPConsistencia, $bd_FPPedicelo, $bd_FPOvario, $bd_FPFruto, $bd_FPDiscGland, $bd_SemCompr, $bd_SemOrnament, $bd_FlorEstamin, $bd_FlorPistilada ) = dbTupla()) { $aux_score = 0; if ($CauTam==$bd_CauTam) $aux_score = $aux_score+0.4; if ($CauForma==$bd_CauForma) $aux_score = $aux_score+0.2; if ($CauFolha==$bd_CauFolha) $aux_score = $aux_score+0.2; if ($FolhaForma==$bd_FolhaForma) $aux_score = $aux_score+0.4; if ($FolhaApice==$bd_FolhaApice) $aux_score = $aux_score+0.8; if ($FolhaBase==$bd_FolhaBase) $aux_score = $aux_score+0.6; if ($FolhaBordo==$bd_FolhaBordo) $aux_score = $aux_score+0.4; if ($EstipulaCor==$bd_EstipulaCor) $aux_score = $aux_score+0.4; if ($EstipulaForma==$bd_EstipulaForma) $aux_score = $aux_score+0.4; if ($FESepala==$bd_FESepala) $aux_score = $aux_score+0.4; if ($FEEstame==$bd_FEEstame) $aux_score = $aux_score+0.6; if ($FEAntera==$bd_FEAntera) $aux_score = $aux_score+0.2; if ($FEGlandula==$bd_FEGlandula) $aux_score = $aux_score+1; if ($FPSepala==$bd_FPSepala) $aux_score = $aux_score+0.4; if ($FPConsistencia==$bd_FPConsistencia) $aux_score = $aux_score+0.2; if ($FPPedicelo==$bd_FPPedicelo) $aux_score = $aux_score+1; if ($FPOvario==$bd_FPOvario) $aux_score = $aux_score+0.2; if ($FPFruto==$bd_FPFruto) $aux_score = $aux_score+0.8; if ($FPDiscGland==$bd_FPDiscGland) $aux_score = $aux_score+0.6; if ($SemCompr==$bd_SemCompr) $aux_score = $aux_score+0.8; if ($SemOrnament==$bd_SemOrnament) $aux_score = $aux_score+0.8; if ($FlorEstamin==$bd_FlorEstamin) $aux_score = $aux_score+0.2; if ($FlorPistilada==$bd_FlorPistilada) $aux_score = $aux_score+0.2; $codigo[$ind]=$bd_CodEspecie; $score[$ind]=$aux_score; $ind=$ind+1; }; dbEncerrar(); $max=$ind; $ind=0; while($max > $ind) { $atualizacao1 = "UPDATE especies SET Score = $score[$ind] where Cod_Especie = $codigo[$ind]"; $sucesso1 = dbSQL($atualizacao1); $ind=$ind+1; }; $ind=0; $consulta = "SELECT Cod_Especie, Nome_Cientifico, Score FROM especies order by Score desc"; dbExecutar($consulta); while(list( $CodEspecie, $Especie, $Score ) = dbTupla()) { $percent[$ind]=(int)(($Score/11.2)*100); $valores[$ind]=$Especie; $cods[$ind]=$CodEspecie; $ind=$ind+1; } dbEncerrar(); dbDesconectar();