Gerador Automático de Arquivos HTML de Ajuda para Aplicação em Educação a Distância (GAAHA) Paulo Sérgio Salla Sá Orientação: Prof. Dr. Dilvan de Abreu Moreira USP - ICMC 2000 Introdução Principal enfoque deste projeto é o moderno conceito de Educação à Distância • Objetivo deste projeto – geração de arquivos de indexação e ajuda no padrão HTML Educação à Distancia (EAD) • Caracterizada – separação do professor e do aluno – controle de aprendizagem é realizado mais intensamente pelo aluno do que pelo professor – interação entre alunos e professores é mediada por alguma forma de tecnologia – ocorre em locais diferentes dos tradicionais • técnicas instrucionais especiais Educação à Distância (EAD) • Por que ensinar à distância ? – abrange maior diversidade de alunos – estudante e professor normalmente não se encontram no mesmo espaço físico – horários não são rígidos – ritmo é de exclusiva responsabilidade do aluno – os temas de aprendizagem são mais vastos Internet • Rede de redes – iniciou um novo conceito na comunicação – grande quantidade de informações disponíveis – informação distribuída – seminários virtuais Word-Wide Web (WWW) • É um sistema hipermídia executado na Internet • Baseada em três padrões abertos: – transferir a informação: http – descrever o formato da informação: HTML – localizar a informação: URL • Vantagens do Ensino a Distância na Internet/WWW – – – – – ensino centralizado no aluno ferramentas fáceis de utilizar desenvolvimento dos ambientes virtuais rápido e fácil aproveitamento dos recursos já existentes fácil alteração dos conteúdos temáticos Integrando Web com Banco de dados • Arquitetura típica. Internet/Intranet Cliente Web HTTP Servidor Web Gateway SGBD Integrando Web com Banco de dados • Taxonomia das arquiteturas dos Gateway Web Banco de Dados Programas Executáveis Interface CGI Gerenciador de Aplicação Arquitetura de integração Web Banco de Dados Lado Servidor Web SSI Servidor Web Estendido API Programas Executáveis CGI Gerenciador de Aplicação CGI Aplicação API Aplicação SSI Controle de transações Segurança e Acesso Desempenho Desenvolvimento Portabilidade * * * ** *** *** *** ** * *** *** ** *** * * * * * *** * Quadro comparativo das arquiteturas de integração Web Banco de Dados * ** *** funcionalidade fraca, difícil. funcionalidade é boa funcionalidade é ótima Ferramentas de Programação A linguagem de programação JAVA – – – – – – arquitetura de linguagem consistente grande portabilidade em diferentes arquiteturas facilidade de programação em rede aplicações via WWW simples, alto desempenho totalmente orientado a objeto, multithreaded Ferramentas de Programação • Servlet JAVA – são módulos baseados em solicitações/respostas que executam no lado do servidor • Ex. um servlet pode ser responsável por pegar os dados pela ordem de entrada em uma página HTML e aplicá-los em uma lógica de negociação usada em um banco de dados Objeto: solicitação parâmetro protocolo nome da máquina remota nome do servidor Servidor Servlet Cliente Objeto: Resposta resposta ao cliente Ferramentas de Programação • Java DataBase Connectivity - JDBC – driver de acesso a um banco de dados SQL – é uma API Java para a execução de declarações SQL – com um simples programa usando API JDBC, é possível transmitir declarações para diferentes gerenciadores de banco de dados – a combinação JAVA e JDBC permite o programador escrever um programa apenas uma vez e executá-lo em diferentes plataformas Ferramentas de Programação • MySQL – é um servidor de banco de dados SQL • pequeno • multi-usuário – é uma implementação cliente/servidor – a principal meta do MySQL • velocidade • fácil utilização – domínio público – desvantagem: suporte dificiente para integridade relacional e não suportam triggers Ferramentas de Programação Modelo de acesso a um DBMS SQL usando um driver JDBC Conex!ão (getConnection) Cliente JAVA_Applet JAVA_Stand_Alone Driver JDBC disponível Instrução SQL (createStatement) Instrução SQL (executeQuery) Servidor Drivers JDBC Resultados (ResultSet) Base de Dados SQL Driver JDBC Agentes de Software • Não existe um consenso sobre o seu significado: – programas que manifestam características de inteligência distribuída – programas que desempenham um papel de um assistente inteligente – outros mais .... • O foco atual parece ter-se deslocado do hardware para o software, dos átomo que compõem um robô mecânico para os bits que compõem um agente digital Agente Automático de Análise de Texto • Existem três tipos de indexação: – indexação tradicional • intervenção humana pode gerar falhas no índice – indexação full-text • gera índices volumosos – indexaçao por tags • procura tags nos documentos • Solução adotada para este projeto – indexação full-text com aplicação de um filtro Agente Automático de Análise de Texto (Filtro) • Indexação full-text com aplicação de um filtro – a freqüência da ocorrência de uma palavra em um texto, fornece uma medida útil para significância da palavra (Luhn) – a freqüência do dado, pode ser usada para extrair palavras e sentenças para representar um documento – Produto da freqüência das palavras com rank order, gera o peso da palavra: aproximadamente uma constante (Zipf) Freq. da palavra Rank Order Peso da Palavra 13 1 13 Scanner 8 2 16 Printer 5 3 15 Oráculo 1 4 4 Palavra do texto Matemática - upper cut-off : são consideradas comuns - lower cut-off : são consideradas raras - poder de resolução : o poder de resolução das palavras significantes no que diz respeito a habilidade de distinguir conteúdos de palavras, atinge um pico no meio do caminho entre os 2 extremos do cut-off Agente Automático de Análise de Texto Qualificação 700 1400 600 1200 500 1000 Peso das Palavras Frequencia das Palavras Qualificação 400 300 200 800 600 400 100 200 0 0 0 10 20 30 Rank Order 40 50 60 0 10 20 30 Rank Order 40 50 60 Agente Automático de Análise de Texto Dom Casmurro Dom Casmurro 3000 10000 9000 8000 Peso das Palavras Frequencia das Palavras 2500 2000 1500 1000 7000 6000 5000 4000 3000 2000 500 1000 0 0 0 50 100 Rank Order 150 0 30 60 90 Rank Order 120 150 Agente Automático de Análise de Texto RFC2250 - MPEG1/MPEG2 RFC2250 - MPEG1/MPEG2 300 800 700 Peso das Palavras Frequencia das Palavras 250 200 150 100 50 600 500 400 300 200 100 0 0 0 10 20 30 Rank Order 40 50 0 10 20 30 Rank Order 40 50 Descrição do Problema • grande maioria das aplicações são construídas no padrão HTML • dinamismo – como manter uma correta indexação, visando um esquema de ajuda para os usuários • soluções – criação manual de um índice de ajuda – ter um mecanismos automático de criação de índice Apresentação • Desenvolvimento de uma ferramenta que através da análise do conteúdo de um curso em um Web Site, gere uma página HTML contendo: – Mapa de navegação – Campo de pesquisa • Duas técnicas principais foram utilizadas – análise de texto usando ferramenta estatística – programação distribuída usando agentes de software Apresentação (cont.) • É composto por três subsistemas: – um agente crawler – um agente mentor – um cliente WWW Agente Crawler • Consiste no rastreamento de um curso em um Web Site, a procura de padrões que serão armazenados em um banco de dados SQL, através de um driver JDBC – – – – as palavras mais significativas os links de referencias os headers e os títulos • o principal propósito é prover conteúdos para um banco de dados • aplicar restrições as palavras e páginas Agente Crawler Curso EAD Páginas HTML Processo de execução do agente CRAWLER Executado pelo Administrador Banco de Dados SQL Crawler jdbc Servidor HTTP/ Banco de Dados Representação Gráfica do principal módulo do agente crawler PageSeeker.run() Objeto URL Novas URL PageSeeker.LoadPage() Banco de Dados micro_course 600 Upper Cutoff 500 Lower Cutoff Peso 400 Freq. Pal. = 23 300 200 Freq. Pal. = 36 Freq. Pal. = 12 100 0 0 5 10 15 20 25 30 35 Rank Order Pal. > Freq. = 263 50 % 100 % 40 45 Pal. < Freq. = 1 50 % 100 % Agente Mentor • Consiste em uma rotina de pesquisa e acesso a um banco de dados – é executada no servidor – é um gateway – faz a pesquisa baseado nas palavras chaves que o usuário fornecer – gera página dinâmica de resposta com os links que ele achar mais importante, através da combinação do Servlet e o acesso via driver JDBC ao banco de dados SQL Agente Mentor INTERNET Cliente Página de resposta Mentor Dinâmico Mapa Gráfico do Curso Mentor Dinâmico Página de entrada Pesquisa Mapa Processo de execução do agente Mentor Servlet Mentor jdbc Banco de Dados SQL Servidor HTTP/ Banco de Dados Fluxo de dados no sistema de pesquisa do agente Mentor Cliente solicita a página de pesquisa Servidor recebe a página form e inicia a rotina de pesquisa Rotina de pesquisa compõe o resultado em uma páginas HML Servidor retorna a página ao cliente Rotina de pesquisa determina o que deverá ser pesquisado Servidor retorna a página ao cliente Cliente submete a página Rotina de pesquisa executa a pesquisa Cliente mostra a página Cliente WWW • Fundamental importância no sistema • Qualquer browser que aceita entrada de texto e mostra a ação de um button • Existem duas páginas web primárias através da qual o usuário interagi: – um simples form de entrada de texto – resposta da consulta produzida pelo servidor Execução do agente crawler Execução do agente crawler Valores após a indexação pelo Crawler CURSOS LC % UC % TP FPUC FPLC TPA Sist. Operac. 100 100 47922 3034 1 10719 Sist. Operac. 70 70 47922 257 25 4018 Mat. Financ. 100 100 3506 222 1 534 Mat. Financ. 70 70 3506 76 8 122 Mic. Course 100 100 1472 93 1 727 Mic. Course 70 70 1472 23 5 295 Dir. Tribut. 100 100 3173 159 1 804 Dir. Tribut. 70 70 3173 49 7 98 Ling. Portug. 100 100 3038 159 1 1159 Ling. Portug. 70 70 3038 51 6 64 Rac. Lógico 100 100 2042 143 1 463 Rac. Lógico 70 70 2042 67 6 64 Cont. Geral 100 100 2855 184 1 656 Cont. Geral 70 70 2855 55 7 85 Dir. Constit. 100 100 2461 156 1 610 Dir. Constit. 70 70 2461 52 6 96 Pesquisar Http://java.icmc.sc.usp.br/Search?curso=Micro+Course Execução do agente Mentor - Pesquisa Execução do agente Mentor - Mápa de Navegação Conclusão