CENTRO UNIVERSITÁRIO VILA VELHA CURSO DE CIÊNCIA DA COMPUTAÇÃO FABIELY ANDRIOLE RIZZI WILLIAM ALVES ROSA UMA FERRAMENTA WEB PARA INTERAÇÃO COM DEFICIENTES AUDITIVOS VILA VELHA 2010 FABIELY ANDRIOLE RIZZI WILLIAM ALVES ROSA UMA FERRAMENTA WEB PARA INTERAÇÃO COM DEFICIENTES AUDITIVOS Trabalho de Conclusão de Curso apresentado ao Centro Universitário Vila Velha como requisito parcial para a obtenção do grau de Bacharel em Ciência da Computação. Orientador: Vinícius Rosalen da Silva VILA VELHA 2010 FABIELY ANDRIOLE RIZZI WILLIAM ALVES ROSA UMA FERRAMENTA WEB PARA INTERAÇÃO COM DEFICIENTES AUDITIVOS BANCA EXAMINADORA Prof. Msc. Vinícius Rosalen da Silva Centro Universitário Vila Velha Orientador Prof. Msc. Erlon Pinheiro Centro Universitário Vila Velha Prof. Msc. Hudson Ramos Centro Universitário Vila Velha Trabalho de Conclusão de Curso aprovado em 25/11/2010. Nós, Fabiely Andriole Rizzi e William Alves Rosa, autorizamos que a UVV, sem ônus, promova a publicação de nossa monografia em página própria na Internet ou outro meio de divulgação de trabalho científico. Data: / / Assinaturas: Aos nossos pais pelo apoio irrestrito em todos os momentos de nossa vida. Às pessoas com deficiência auditiva e seus familiares que lutam pela igualdade de oportunidades, e que têm muito a nos ensinar sobre persistência e confiança. A todos que buscam um novo olhar para a questão da pessoa com deficiência. AGRADECIMENTOS Agradecemos primeiramente à Deus, pela vida, por estar sempre em nossos caminhos, iluminando e nos guiando às escolhas certas. Aos nossos pais, que foram a base de tudo, nos apoiando em momentos difíceis com força, confiança, amor, nos ensinando a persistir em nossos objetivos e ajudando a alcançá-los. Aos nossos familiares, amigos e a todos que nos incentivaram e ajudaram ao longo dessa trajetória. “A voz dos surdos são as mãos e os corpos que pensam, sonham e expressam. As línguas de sinais envolvem movimentos que podem parecer sem sentido para muitos, mas que significam a possibilidade de organizar as ideias, estruturar o pensamento e manifestar o significado da vida para os surdos. Pensar sobre a surdez requer penetrar no mundo dos surdos e ouvir as mãos que, com alguns movimentos, nos dizem que para tornar possível o contato entre os mundos envolvidos se faz necessário conhecer a língua de sinais.” Ronice Müller de Quadros LISTA DE TABELAS 1 Tradução texto fonte para texto parcial . . . . . . . . . . . . . . . . . . . 43 2 Palavra relacionada com seu respectivo vídeo . . . . . . . . . . . . . . 44 3 Resultado da tradução . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4 Cores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 LISTA DE FIGURAS 1 Tela do FALIBRAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2 Tela do Dicionário de LIBRAS . . . . . . . . . . . . . . . . . . . . . . . . 24 3 Tela do Player Rybená . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4 Tela do SOTAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 5 Alfabeto brasileiro em LIBRAS . . . . . . . . . . . . . . . . . . . . . . . 28 6 Sinais de DESCULPAR, EVITAR E IDADE. . . . . . . . . . . . . . . . . 29 7 Componentes de um sistema de recuperação de informação . . . . . . 31 8 Visão lógica do documento ao longo das fases de pré-processamento do texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 9 Fluxograma passos do algoritmo RSLP . . . . . . . . . . . . . . . . . . 39 10 Exemplo de declaração de regra do algoritmo RSLP . . . . . . . . . . . 40 11 Funcionamento da tradução . . . . . . . . . . . . . . . . . . . . . . . . . 42 12 Plataforma Java e suas edições . . . . . . . . . . . . . . . . . . . . . . 47 13 Representação da divisão em camadas através do JEE . . . . . . . . . 48 14 Relacionamento entre Servlets, container e servidor web . . . . . . . . 49 15 Diagrama de Casos de Uso . . . . . . . . . . . . . . . . . . . . . . . . . 54 16 Diagrama de Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 17 Diagrama de Atividade Cadastrar Palavra . . . . . . . . . . . . . . . . . 63 18 Diagrama de Atividade Excluir Palavra . . . . . . . . . . . . . . . . . . . 63 19 Diagrama de Atividade Criar Tópico . . . . . . . . . . . . . . . . . . . . 64 20 Diagrama de Atividade Enviar Mensagem . . . . . . . . . . . . . . . . . 64 21 Diagrama de Atividade Executar tradução da mensagem de texto para LIBRAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 22 Diagrama de Sequência Cadastrar Palavra . . . . . . . . . . . . . . . . 66 23 Diagrama de Sequência Editar Palavra . . . . . . . . . . . . . . . . . . . 66 24 Diagrama de Sequência Excluir Palavra . . . . . . . . . . . . . . . . . . 66 25 Diagrama de Sequência Criar Tópico . . . . . . . . . . . . . . . . . . . 67 26 Diagrama de Sequência Enviar Mensagem . . . . . . . . . . . . . . . . 67 27 Diagrama de Sequência Executar tradução da mensagem de texto para LIBRAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 28 Tela Principal do JUDE Community . . . . . . . . . . . . . . . . . . . . 69 29 Tela Principal do NetBeans IDE . . . . . . . . . . . . . . . . . . . . . . . 69 30 Tela Principal do MySQL Workbench . . . . . . . . . . . . . . . . . . . . 70 31 Diagrama de Pacotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 32 Diagrama de Classes do Domínio do Problema . . . . . . . . . . . . . . 72 33 Diagrama de Classes de Gerência de Tarefas . . . . . . . . . . . . . . . 73 34 Diagrama de Classes de Gerência de Dados parte I . . . . . . . . . . . 73 35 Diagrama de Classes de Gerência de Dados parte II . . . . . . . . . . . 74 36 Modelo de Entidade e Relacionamento . . . . . . . . . . . . . . . . . . 74 37 Diagrama de Classes de Interface com Usuário . . . . . . . . . . . . . . 75 38 Ícones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 39 Tela Visualizar Palavras . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 40 Tela Cadastro de Palavras . . . . . . . . . . . . . . . . . . . . . . . . . . 77 41 Tela Lista de Tópicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 42 Tela Novo Tópico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 43 Tela Tópico Acessado . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 44 Tela Envio Mensagem de Texto . . . . . . . . . . . . . . . . . . . . . . . 80 45 Tela Envio Mensagem em LIBRAS . . . . . . . . . . . . . . . . . . . . . 80 46 Tela Tradução da Mensagem . . . . . . . . . . . . . . . . . . . . . . . . 81 47 Regras para redução do plural . . . . . . . . . . . . . . . . . . . . . . . 88 48 Regras para redução do feminino . . . . . . . . . . . . . . . . . . . . . . 88 49 Regras para redução adverbial . . . . . . . . . . . . . . . . . . . . . . . 89 50 Regras para redução aumentativo-diminutivo . . . . . . . . . . . . . . . 89 51 Regras para redução nominal parte I . . . . . . . . . . . . . . . . . . . . 89 52 Regras para redução nominal parte II . . . . . . . . . . . . . . . . . . . 90 53 Regras para remoção de vogais . . . . . . . . . . . . . . . . . . . . . . 90 54 Regras para redução verbal parte I . . . . . . . . . . . . . . . . . . . . . 91 55 Regras para redução verbal parte II . . . . . . . . . . . . . . . . . . . . 92 LISTA DE SIGLAS API Application Programming Interface AVA Ambiente Virtual de Aprendizagem DAO Data Access Object EaD Educação a distância EJB Enterprise JavaBeans HTML HyperText Markup Language IBGE Instituto Brasileiro de Geografia e Estatística JDBC Java Data Base Connectivity JEE Java Enterprise Edition JME Java Micro Edition JMF Java Media Framework JSE Java Standard Edition JSP JavaServer Pages JUDE Java and UML Developer Environment LGP Língua Gestual Portuguesa LIBRAS Língua Brasileira de Sinais MER Modelo de Entidade e Relacionamento MVC Model-View-Controller PLN Processamento de Linguagem Natural RI Recuperação de Informação RSLP Removedor de Sufixos da Língua Portuguesa SGBD Sistema Gerenciador de Banco de Dados SRI Sistema de Recuperação de Informação TI Tecnologia da Informação TIC Tecnologias de Comunicação e Informação UML Linguagem de Modelagem Unificada WWW World Wide Web XHTML eXtensible Hypertext Markup Language XML eXtensible Markup Language SUMÁRIO RESUMO ABSTRACT 1 INTRODUÇÃO 18 1.1 JUSTIFICATIVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.2 OBJETIVO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.3 ESTRUTURA DOS CAPÍTULOS . . . . . . . . . . . . . . . . . . . . . . 21 2 TRABALHOS CORRELATOS 22 2.1 FALIBRAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.2 DICIONÁRIO DE LIBRAS . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.3 PLAYER RYBENÁ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.4 SOTAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3 REFERENCIAL TEÓRICO 27 3.1 AMBIENTE VIRTUAL DE APRENDIZAGEM . . . . . . . . . . . . . . . . 27 3.2 LIBRAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.3 RECUPERAÇÃO DE INFORMAÇÃO . . . . . . . . . . . . . . . . . . . . 31 3.3.1 Técnica de Stemming . . . . . . . . . . . . . . . . . . . . . . . . 34 3.3.1.1 Métodos de Stemming . . . . . . . . . . . . . . . . . . 34 3.3.1.2 Stemmers para a Língua Portuguesa . . . . . . . . . . 36 3.4 PROCESSO DE TRADUÇÃO DA MENSAGEM EM PORTUGUÊS PARA LIBRAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4 TECNOLOGIAS 45 4.1 LINGUAGEM JAVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.1.1 Plataforma JEE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.1.1.1 Java Servlets e JavaServer Pages . . . . . . . . . . . . 49 4.2 BIBLIOTECAS DE CLASSE DO JAVA . . . . . . . . . . . . . . . . . . . 50 5 ESTUDO DE CASO 52 5.1 ESPECIFICAÇÃO DE REQUISITOS . . . . . . . . . . . . . . . . . . . . 52 5.1.1 Descrição do Mini-Mundo . . . . . . . . . . . . . . . . . . . . . . 52 5.1.2 Diagrama de Caso de Uso . . . . . . . . . . . . . . . . . . . . . 53 5.1.3 Descrições de Caso de Uso . . . . . . . . . . . . . . . . . . . . . 55 5.1.3.1 Manter Palavra . . . . . . . . . . . . . . . . . . . . . . . 55 5.1.3.2 Manter Tópico . . . . . . . . . . . . . . . . . . . . . . . 57 5.1.3.3 Manter Mensagem . . . . . . . . . . . . . . . . . . . . . 58 5.1.3.4 Traduzir mensagem textual para LIBRAS . . . . . . . . 60 5.2 ESPECIFICAÇÃO DE ANÁLISE . . . . . . . . . . . . . . . . . . . . . . 61 5.2.1 Diagrama de Classes . . . . . . . . . . . . . . . . . . . . . . . . 61 5.2.2 Diagramas de Atividade . . . . . . . . . . . . . . . . . . . . . . . 62 5.2.3 Diagramas de Sequência . . . . . . . . . . . . . . . . . . . . . . 65 5.3 ESPECIFICAÇÃO DE PROJETO . . . . . . . . . . . . . . . . . . . . . . 68 5.3.1 Linguagens e Ferramentas utilizadas . . . . . . . . . . . . . . . 68 5.3.2 Arquitetura do Sistema . . . . . . . . . . . . . . . . . . . . . . . 70 5.3.2.1 Domínio do Problema (DP) . . . . . . . . . . . . . . . . 72 5.3.2.2 Gerência de Tarefas (GT) . . . . . . . . . . . . . . . . . 72 5.3.2.3 Gerência de Dados (GD) . . . . . . . . . . . . . . . . . 73 5.3.2.4 Interface com Usuário (IU) . . . . . . . . . . . . . . . . 74 5.3.3 Padrões de Interface . . . . . . . . . . . . . . . . . . . . . . . . . 75 5.3.4 Protótipo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 CONCLUSÃO 76 82 6.1 CONTRIBUIÇÃO DAS PESQUISAS . . . . . . . . . . . . . . . . . . . . 83 6.2 RETORNO PARA O GRUPO E TRABALHOS FUTUROS . . . . . . . . 83 REFERÊNCIAS 85 ANEXO A -- REGRAS DE REMOÇÃO DOS SUFIXOS 88 RESUMO Este trabalho apresenta o desenvolvimento de uma ferramenta web para interação entre pessoas surdas e ouvintes com a utilização da tradução de textos da Língua Portuguesa para a Língua Brasileira de Sinais. São apresentados alguns trabalhos correlatos, que em sua maioria se resumem apenas à tradução de textos em Português para LIBRAS. Dessa forma, esta proposta visa criar uma possibilidade de interação entre as pessoas surdas com os demais indivíduos da sociedade, buscando contribuir não só para a inclusão digital, como também para inclusão social desses indivíduos. Palavras-chave: Interação. Tradução. LIBRAS. ABSTRACT This paper presents the development of a web tool for interaction between deaf people and listeners people using the translation of texts from the Portuguese for the Brazilian Sign Language. We present some related work, which mostly boil down only to the translation of texts into Portuguese to LIBRAS. Therefore, this proposal aims to create a possibility of interaction between deaf people with other individuals in society, seeking not only contribute to digital inclusion, but also for social inclusion of these individuals. Keywords: Interaction. Translation. LIBRAS. 18 1 INTRODUÇÃO A Língua Brasileira de Sinais (LIBRAS) é a língua adotada pelos surdos no Brasil. Trata-se da maneira com a qual os surdos se comunicam entre si e com os ouvintes. A aprendizagem e aquisição dela são necessárias não apenas por parte dos surdos, mas também dos ouvintes [1]. Segundo dados do IBGE (IBGE-2000) cerca de 5.790.000 de brasileiros são portadores de deficiências auditivas, de uma forma geral, sendo que 166.400 são surdos. Estima-se que cerca de 60% conhecem a Língua Brasileira de Sinais, mas a comunicação entre surdos e ouvintes é difícil, uma vez que a grande maioria da população não a conhece [2]. Sendo assim, essa falta de comunicação dificulta a integração dos surdos com as demais parcelas da população, como também, o seu processo de aprendizagem. Vale destacar que essa capacidade de comunicação linguística apresenta-se como um dos principais responsáveis pelo processo de desenvolvimento da pessoa surda em toda a sua potencialidade, para que ela possa desempenhar seu papel social e integrar-se verdadeiramente na sociedade. Ultimamente, promover a inclusão social dos surdos e demais portadores de necessidades especiais tem sido tema de debate e objeto de estudo por parte de professores e profissionais das mais diversas áreas, tais como: educação, assistência social, informática na educação, psicologia, dentre outras. Como em diversas outras situações, as Tecnologias de Comunicação e Informação, as chamadas TIC, se usadas de forma adequada, têm buscado contribuir para solucionar, ou ao menos minimizar, os problemas enfrentados pela sociedade atual. Em relação aos portadores de necessidades especiais, as iniciativas ainda têm sido muito tímidas, mas começam a surgir, sejam através do desenvolvimento de sistemas tradutores de LIBRAS ou de ambientes computacionais com preocupações de 19 acessibilidade. Em relação à área de informática na educação, algumas iniciativas têm surgido, como a criação de ambientes computacionais interativos para a aprendizagem e aquisição da LIBRAS. Esses ambientes visam contribuir para uma maior interação e convívio entre surdos e ouvintes. No entanto, as iniciativas ainda são poucas, fazendo-se necessário o desenvolvimento de mais ambientes dessa natureza. Diante desse cenário, será apresentada uma ferramenta web para interação entre pessoas surdas com a utilização da tradução da Língua Portuguesa para a Língua Brasileira de Sinais. Diferentemente das ferramentas encontradas na literatura, que em sua maioria se resumem à tradução de textos em Português para LIBRAS, essa proposta cria também a possibilidade de interação entre pessoas surdas com os demais indivíduos de nossa sociedade, buscando contribuir não só para a inclusão digital, como também para a inclusão social dessa parcela da sociedade. 1.1 JUSTIFICATIVA Todas as pessoas ditas “normais”, e também uma grande proporção das pessoas com “dificuldades especiais”, aprendem a linguagem de uma forma semelhante e em um mesmo período de tempo. No entanto, não se pode esquecer as diferenças individuais, seja de uma pessoa surda ou ouvinte, que é o caso específico em questão, pois existem pessoas que apresentam dificuldades seletivas no aprendizado da linguagem. Nesse caso surgem as seguintes questões: a dificuldade é inerente à discriminação auditiva; o indivíduo pode não só apresentar problemas de compreensão, mas também articular as palavras de forma inadequada [3]. A capacidade de processar rapidamente mensagens linguísticas depende de um lóbulo temporal esquerdo intacto. Assim, danos a esta zona neural ou o seu desenvolvimento com algum tipo de anomalia, em geral, são suficientes para produzir problemas de linguagem [4]. Mesmo que muitos indivíduos apresentem dificuldades de inteligência linguística, esta não é simplesmente uma forma de inteligência auditiva, pois pessoas surdas podem adquirir a linguagem, dominando sistemas alternativos de comunicação. Desse modo, diz-se que a comunicação dos surdos se dá por sistemas de comunicação não-verbais, classificados em não-auxiliares e auxiliares. Os não-auxiliares baseiam-se em recursos do próprio indivíduo, sem outro suporte além do gesto, que 20 faz uso da anatomia visual e da anatomia da mão e do braço (línguas de sinais). Em contrapartida, sistemas auxiliares são todas as ajudas técnicas que servem de suporte à comunicação, seja um simples papel até as máquinas de escrever, chegando aos computadores e a outras tecnologias relacionadas, como sintetizadores de voz [4]. A Língua Brasileira de Sinais é considerada a linguagem natural dos surdos, na qual eles aprendem com mais facilidade e rapidez, além de terem acesso a uma linguagem completa, o que possibilita um desenvolvimento cognitivo e social adequado, entre outros tipos de desenvolvimento, adquirindo, assim, a língua materna do seu país como sua segunda língua [5]. É importante salientar que os surdos têm maiores dificuldades nos processos de interação. De um modo geral, o surdo não acessa a informação escrita como as pessoas ouvintes e apresenta muita resistência à escrita de textos e leitura de informações, devido ao fato da Língua Portuguesa não ser considerada sua língua materna. Acredita-se que a produção de um texto significativo pode ocorrer a par de um lento e cumulativo domínio gráfico, ou seja, essa produção é um meio de relação afetiva do indivíduo com a palavra escrita [6]. Portanto, a possibilidade da pessoa surda ter como fonte de apoio um sistema de tradução da Língua Portuguesa para LIBRAS visa à autonomia e pode trazer resultados significativos no que diz respeito ao processo de construção de conhecimento da linguagem. Esta capacidade também proporciona condições para o seu desenvolvimento cognitivo, além de aumentar as possibilidades de interação com outras pessoas e possibilitar o desenvolvimento social dos portadores de deficiência auditiva. Se essa interação for suportada por tecnologias, além da inclusão social pode-se também incluir digitalmente tais indivíduos, o que na sociedade atual torna-se algo, além de desejável, imprescindível. 1.2 OBJETIVO A partir das pesquisas realizadas foi possível perceber o quão escassos são os softwares voltados para auxiliar os deficientes auditivos no que diz respeito à sua forma de comunicação. São visíveis as dificuldades que os surdos têm para ler, escrever e compreender a Língua Portuguesa, já que sua língua materna é a Língua Brasileira de Sinais. 21 Dessa forma, o objetivo deste trabalho é o desenvolvimento de uma ferramenta web, um fórum de discussão que permite não só a tradução de mensagens na Língua Portuguesa para a Língua Brasileira de Sinais, como também o envio de vídeos contendo a mensagem em LIBRAS, funcionalidade esta que não foi observada em nenhum dos sistemas estudados. 1.3 ESTRUTURA DOS CAPÍTULOS A seguir é apresentada uma breve descrição sobre a organização dos próximos capítulos deste trabalho. No capítulo 2 são expostos alguns sistemas computacionais que serviram de apoio para a construção das ideias, contribuindo no desenvolvimento da ferramenta. O capítulo 3 contém um referencial teórico, apresentando a definição de Ambiente Virtual de Aprendizagem e os principais conceitos da Língua Brasileira de Sinais e suas representações. Também é feito um estudo sobre a área de Recuperação de Informação, dando ênfase em um dos processos realizados nos Sistemas de Recuperação de Informação - a etapa de pré-processamento do texto. Além disso, é explicado como será feita a tradução no fórum, da mensagem de texto em Português para LIBRAS, seguindo os conceitos mencionados anteriormente. O capítulo 4 relata um estudo das tecnologias que foram necessárias para o desenvolvimento do sistema, incluindo as bibliotecas de classe do Java que fornecem um conjunto de funções que serviram de suporte na construção da ferramenta. No capítulo 5 é feito um estudo de caso sobre o sistema proposto, envolvendo as fases de especificação de requisitos, de análise e de projeto, a fim de compreender o problema e obter um maior conhecimento a respeito das particularidades do negócio. O capítulo 6 contém a conclusão do trabalho, mostrando os pontos que foram abordados durante o mesmo. Além de serem apresentadas algumas sugestões de trabalhos futuros. Por fim, são apresentadas as referências dos trabalhos e conceitos que nortearam o desenvolvimento desta monografia. 22 2 TRABALHOS CORRELATOS Neste capítulo serão apresentadas algumas ferramentas computacionais, encontradas na literatura especializada, que promovem a tradução de textos do Português para a LIBRAS. 2.1 FALIBRAS O projeto FALIBRAS [2] foi concebido, inicialmente, como um sistema que ao captar a fala no microfone exibe, no monitor de um computador, a tradução do que foi dito em LIBRAS, na sua forma gestual, animada e em tempo real. O ambiente FALIBRAS possui recursos de autoria de tradutores e de tradução de textos na Língua Portuguesa para apresentações na forma gestual animada da Língua Brasileira de Sinais. O objetivo desse sistema é facilitar a comunicação entre ouvintes e surdos, além de facilitar a aprendizagem da Língua Portuguesa para portadores de deficiência auditiva, bem como o aperfeiçoamento dos conhecimentos de LIBRAS do usuário surdo ou ouvinte (por exemplo: intérpretes). Nesse ambiente existe um recurso para permitir a edição de textos a partir do reconhecimento da voz de uma pessoa no idioma Português. De uma maneira geral, o sistema capta a voz e a transforma em texto usando recursos do IBM Via voice [7]. Em seguida, esse texto é analisado por um interpretador que, além de corrigir a ortografia, definirá o contexto em que as palavras estão inseridas na frase, a fim de mostrar a tradução adequada em LIBRAS. Uma tarefa complexa desse processo é a tradução de Português para LIBRAS, pois, envolvendo duas línguas naturais, com todas as suas particularidades, faz-se necessário o uso de técnicas de processamento de linguagem natural. A Figura 1 apresenta o ambiente FALIBRAS. 23 Figura 1: Tela do FALIBRAS 2.2 DICIONÁRIO DE LIBRAS O site Acessibilidade Brasil [8] disponibiliza um dicionário on-line, feito em Flash, para divulgar, difundir e capacitar as pessoas para o uso da Língua Brasileira de Sinais, que é muito utilizada por grande parte dos deficientes auditivos, por suas famílias, amigos e profissionais de ensino e saúde. Este dicionário permite consultar palavras em Português, na qual são apresentados: o significado da palavra, um exemplo em uma frase, um exemplo em LIBRAS, o vídeo em LIBRAS e a classe gramatical da palavra. Consultas por assunto, onde é escolhida a palavra desejada, permitem a apresentação de diversas informações, tais como na consulta por palavras. Consultas por sinais de mão, em que é necessário escolher um dos 73 sinais mostrados na tela, permite visualizar uma lista de palavras para as quais o mesmo sinal é utilizado. E por fim, podem ser feitas consultas através de palavras-chave. A Figura 2 apresenta o Dicionário on-line disponibilizado pelo site Acessibilidade Brasil. 24 Figura 2: Tela do Dicionário de LIBRAS 2.3 PLAYER RYBENÁ O Player Rybená [9] é uma ferramenta proprietária e funciona como um tradutor que auxilia na compreensão do conteúdo de textos em Português. Este sistema é capaz de converter qualquer página da Internet ou texto escrito em Português para a Língua Brasileira de Sinais. Com este recurso no site os usuários podem selecionar com o mouse qualquer parte do texto do site e ver a tradução em LIBRAS por intermédio de um desenho animado. A Figura 3 apresenta um site que utiliza a ferramenta Player Rybená. 25 Figura 3: Tela do Player Rybená 2.4 SOTAC O SOTAC [10] é um ambiente desktop, que foi desenvolvido como uma dissertação de Mestrado do Programa de Pós-Graduação do Departamento de Informática da UFES. O ambiente apresenta uma proposta de tradução automática baseada em conhecimento, um sistema de autoria1 e uso de tradutores automatizados para apoio à tradução, tendo como estudo de caso a tradução de Português para LIBRAS. Esse sistema possui um ambiente para manipulação dos elementos utilizados no processo de tradução automática e um para tradução automática de textos de uma língua-fonte, em forma de texto, para uma língua-alvo, em forma de texto, vídeo e/ou áudio. A Figura 4 apresenta a tela principal do SOTAC. 1 Um sistema de autoria possibilta a simplificação do processo de criação de um programa multimídia. 26 Figura 4: Tela do SOTAC 27 3 REFERENCIAL TEÓRICO Neste capítulo será apresentado um pequeno estudo sobre Ambiente Virtual de Aprendizagem, no qual pretende-se, como um projeto futuro, implantar a ferramenta desenvolvida. Além disso, serão apresentados alguns conceitos que são importantes para o entendimento do trabalho, definindo LIBRAS, algumas de suas características e um estudo sobre a área de Recuperação de Informação, contendo as etapas de pré-processamento de um texto e a técnica de stemming que será aplicada no desenvolvimento da ferramenta. A partir desses temas, será explicado como é feita a tradução no fórum, da mensagem em Português para LIBRAS. 3.1 AMBIENTE VIRTUAL DE APRENDIZAGEM É notável que o avanço tecnológico possibilitou uma nova realidade educacional: o ensino mediado por computador. A inserção do computador na educação provoca uma mudança de comportamento dos participantes do processo ensino-aprendizagem. Um de seus efeitos é o aumento crescente da quantidade de informação disponível e acessível aos alunos e professores. Paralelamente, surge a possibilidade de contato remoto entre os participantes do processo através da comunicação pela Internet. Desta forma, a sala de aula perde gradativamente suas fronteiras de tempo e espaço. Esse novo ambiente de aprendizagem favorece também a reflexão e a reformulação das metodologias de ensino praticadas nas escolas e nas universidades. Ambientes Virtuais de Aprendizagem são softwares educativos que permitem que ocorra o processo ensino-aprendizagem, através da mediação pedagógica entre alunos e professor ou um grupo de professores que se encontram geograficamente dispersos. Como ferramenta para Educação a distância (EaD), também podem ser utilizados para complementar aulas presenciais [11]. Os exemplos mais conhecidos destes tipos de ambientes são Moodle [12] e TelEduc [13]. 28 No ensino a distância, o AVA é o espaço que organiza os recursos e ferramentas para acesso aos cursos e permite a interação com os conteúdos, realização de atividades de aprendizagem e a interação com o professor e colegas. Para ocorrer essa interação o AVA possui ferramentas de comunicação síncronas ou assíncronas. A comunicação assíncrona é aquela onde o receptor recebe a informação num tempo posterior, como exemplo tem-se as listas e os fóruns de discussão. Já a síncrona é a que possibilita que as pessoas se comuniquem em tempo real, como nos chats [11]. 3.2 LIBRAS A LIBRAS, língua materna dos surdos brasileiros, é uma língua visual-espacial articulada através das mãos, das expressões faciais e do corpo. A figura 5 representa o alfabeto brasileiro em LIBRAS. Figura 5: Alfabeto brasileiro em LIBRAS A LIBRAS, teve sua origem através do Alfabeto Manual Francês que chegou ao Brasil em 1856, sendo que estudos sobre essa língua foram iniciados no Brasil em 1981. Como é derivada tanto de uma Língua de Sinais autóctone quanto da língua gestual francesa, é semelhante a outras Línguas de Sinais da Europa e da América. A LIBRAS não é a simples gestualização da Língua Portuguesa, e sim uma língua à parte, como comprova o fato de que em Portugual usa-se uma Língua de Sinais diferente, a Língua Gestual Portuguesa (LGP) [1]. Ao contrário do que muitos imaginam, as Línguas de Sinais não são simplesmente mímicas e gestos soltos, utilizados pelos surdos para facilitar a comunicação. São 29 línguas com estruturas gramaticais próprias. A LIBRAS, como as Línguas de Sinais utilizadas em outros países ou como diversas línguas naturais e humanas existentes, apresenta organização, estrutura formal e gramatical próprias, e é composta pelos níveis linguísticos: fonologia, morfologia, sintaxe e semântica [14] [15]. Da mesma forma que nas línguas orais-auditivas existem palavras, nas Línguas de Sinais também existem itens lexicais, que recebem o nome de sinais. Assim sendo, para se comunicar em LIBRAS, não basta apenas conhecer sinais, é necessário conhecer a sua gramática para combinar as frases, estabelecendo a comunicação. Os sinais surgem da combinação de configurações de mão, movimentos e de pontos de articulação - locais no espaço ou no corpo onde os sinais são feitos, os quais, juntos compõem as unidades básicas dessa língua e expressam diferentes significados [16]. Logo, podem ser encontrados os seguintes parâmetros que formarão os sinais [1]: • Configuração das mãos: são formas das mãos que podem ser da datilologia (alfabeto manual) ou outras formas feitas pela mão predominante (mão direita para os destros ou esquerda para os canhotos), ou pelas duas mãos. Os sinais DESCULPAR, EVITAR e IDADE, apresentados na imagem 6, por exemplo, possuem a mesma configuração de mão (com a letra y). A diferença é que cada uma é produzida em um ponto diferente no corpo. Figura 6: Sinais de DESCULPAR, EVITAR E IDADE. • Ponto de articulação: é o lugar onde incide a mão predominante configurada, ou seja, local onde é feito o sinal, podendo tocar alguma parte do corpo ou estar em um espaço neutro. • Movimento: os sinais podem ter um movimento ou não. Por exemplo, os sinais PENSAR e EM-PÉ não têm movimento; já os sinais EVITAR e TRABALHAR possuem movimento. 30 • Expressão facial e/ou corporal: as expressões faciais/corporais são de fundamental importância para o entendimento real do sinal, sendo que a entonação em Língua de Sinais é feita pela expressão facial. • Orientação/Direção: os sinais têm uma direção com relação aos parâmetros acima. Assim, os verbos IR e VIR se opõem em relação à direcionalidade. A LIBRAS não dispõe de sinais para artigos, para a maior parte das preposições e conjunções do Português, já que o significado expresso por tais elementos está contido no próprio sinal. Os modos e tempos verbais, assim como os sufixos e prefixos, são produzidos por movimentos das mãos no espaço [16]. Dessa forma, a LIBRAS é representada na Língua Portuguesa a partir de regras básicas, que serão utilizadas no sistema desenvolvido. A seguir são apresentadas essas convenções [1]: • Os sinais em LIBRAS são representados na Língua Portuguesa em letra maiúscula. Exemplo: CASA, INSTRUTOR; • A datilologia usada para expressar nomes de pessoas, lugares e outras palavras que não possuem sinal, é representada pelas palavras separadas por hífen. Exemplo: M-A-R-I-A, H-I-P-Ó-T-E-S-E; • Um sinal, que é traduzido por duas ou mais palavras em Língua Portuguesa, é representado pelas palavras correspondentes separadas por hífen. Exemplo: CORTAR-COM-FACA, QUERER-NÃO “não querer”, MEIO-DIA, AINDA-NÃO etc; • Os verbos são apresentados no infinitivo. Todas as concordâncias e conjugações são feitas no espaço. Exemplo: EU QUERER CURSO; • As frases obedecem à estrutura da LIBRAS, e não à do Português. Exemplo: VOCÊ GOSTAR CURSO? (Você gosta do curso?); 31 • Na LIBRAS não há desinências para gêneros (masculino e feminino) e número (plural), o sinal, representado por palavra da Língua Portuguesa que possui estas marcas, termina com o símbolo @ para reforçar a ideia de ausência e não haver confusão. Exemplo: AMIG@ “amiga(s) e amigo(s)”, MUIT@ “muita(s) e muito(s)”, EL@ “ela(s), ele(s)”, ME@ “minha(s) e meu(s)”, etc. 3.3 RECUPERAÇÃO DE INFORMAÇÃO Recuperação de Informação (RI) é uma área da Ciência da Computação que lida com o armazenamento de documentos e a recuperação automática de informação associada a eles. É uma área de pesquisa relacionada à busca por informações em documentos, busca por documentos propriamente ditos e buscas em banco de dados [17]. Um sistema de Recuperação de Informação (SRI) pode ser estruturado conforme a figura 7 [18]. Figura 7: Componentes de um sistema de recuperação de informação O objetivo principal de um SRI é, basicamente, organizar uma coleção de documentos, receber do usuário consultas (que exprimem textualmente sua necessidade 32 de informação), processá-las e retornar ao usuário o máximo de documentos relevantes, ou seja, que contenham a informação desejada pelo mesmo [19]. A recuperação eficaz de informações relevantes está diretamente ligada tanto pela tarefa do usuário, quanto pela visão lógica dos documentos. Nem todas as palavras num texto são igualmente importantes para representá-lo semanticamente. Geralmente substantivos (ou grupos de substantivos) são mais representativos do conteúdo de um documento. Por isso, usar um conjunto de todas as palavras numa coleção para indexar os documentos gera muito “ruído” para a tarefa de recuperação. A fim de reduzir este problema, deve-se diminuir o conjunto de palavras usadas na representação do documento. Para tanto, uma das técnicas que pode ser utilizada é a de pré-processamento dos documentos numa coleção, que tem por objetivo diminuir o tamanho do vocabulário, o que leva a um melhor desempenho dos Sistemas de Recuperação de Informação. O pré-processamento pode ser dividido basicamente em cinco operações sobre os textos, que serão listadas logo abaixo [17]. Sendo que o sistema computacional proposto abordará as três primeiras operações. • Análise Léxica: nesta etapa busca-se fazer um tratamento dos caracteres do texto, eliminando, por exemplo, espaços em branco, hífens, acentos, pontuações, etc. • Eliminação de stopwords: as stopwords são palavras com pouco significado, tais como artigos, preposições, etc. • Aplicação da técnica de Stemming das palavras restantes: a técnica de stemming busca reduzir uma palavra a sua raiz, eliminando seus sufixos e prefixos, permitindo a recuperação de variações sintáticas das palavras. • Seleção de termos de indexação: nesta etapa são escolhidos os termos de indexação que melhor representarão um documento. Podem ser usadas todas as palavras ou escolher algumas mais significativas e isso pode ser feito de forma manual ou automática. 33 • Construção de estruturas de categorização de termos: essa etapa é importante para a classificação de documentos. Estas construções, tais como thesaurus, tem como objetivo extrair estruturas diretamente representadas no texto, para permitir, por exemplo, a expansão de consultas. Thesaurus é uma lista précompilada de palavras importantes num determinado domínio de conhecimento, sendo que para cada palavra dessa lista, é criado um conjunto de outras palavras relacionadas. A figura 8 representa uma visão lógica do documento com o resultado obtido quando cada uma das fases acima está concluída. Conclui-se que ao utilizar as operações de pré-processamento em um texto é possível transformar a visão lógica dos documentos a partir de sua representação total do texto (full text) para a de um conjunto de termos de indexação de alto nível [17]. Figura 8: Visão lógica do documento ao longo das fases de pré-processamento do texto 34 3.3.1 Técnica de Stemming Stemmers são programas ou algoritmos que têm por objetivo reduzir palavras a uma forma comum de representação, chamada de stem (ou radical) através do processo de conflação, que significa fundir ou combinar as formas morfologicamente variantes de um termo [17]. A técnica de stemming consiste em reduzir as palavras aos seus radicais, através da remoção de seus afixos (sufixos e prefixos), de forma que palavras morfologicamente relacionadas sejam representadas por uma única forma comum, permitindo assim serem combinadas. Por exemplo, as palavras “aprendo”, “aprendeu” e “aprendendo” (todas formas derivadas do verbo “aprender”) poderiam, através da remoção de seus sufixos, ser reduzidas ao stem “aprend”. Este radical não faz sentido como palavra na Língua Portuguesa, pois não é necessariamente o mesmo radical linguístico da palavra. Apesar disso, é possível manter informação suficiente sobre as palavras que o originaram, não perdendo precisão e permitindo recuperá-las em uma pesquisa [17]. Apesar das vantagens citadas, o uso de stemming pode causar erros que são divididos em duas categorias [20]: • Overstemming ou excesso de radicalização: ocorre quando parte do stem também é removido na extração do sufixo, podendo resultar na conflação de palavras não relacionadas. Um exemplo é a remoção do sufixo “inho” (indicando diminutivo), que é correta na palavra “filhinho”, mas incorreta na palavra “linho”. • Understemming: este erro ocorre quando o sufixo não é completamente removido da palavra, resultando em um stem incorreto. Por exemplo, a palavra “referência” cujo stem obtido é “referênc”, em vez de “refer”, que seria considerado o correto. 3.3.1.1 Métodos de Stemming São citados na literatura três métodos de stemming de palavras. Estes métodos são brevemente descritos a seguir [17]: 35 • Consulta de dicionários: a ideia deste método é possuir um dicionário com todas as palavras de determinada língua e seus respectivos radicais. A palavra a ser processada é procurada no dicionário, e quando encontrada, consulta-se seu stem. Uma grande falha neste método é que obviamente não é viável identificar absolutamente todas as palavras e suas variantes de uma língua, além do ônus que representa armazenar tal dicionário, devido as suas dimensões. Se fosse possível criar este dicionário, este método de stemming certamente apresentaria os melhores resultados, pois seria exato. • Variedade de sucessores: necessita de um corpus3 definido antes do processamento das palavras. Este método utiliza substrings de uma palavra, contabilizando o número de caracteres que a sucedem nas palavras do corpus. Este número é a chamada “variedade de sucessores”, que será cada vez menor quanto mais longa for a substring utilizada. Este método é divido em três etapas distintas: determinação da variedade de sucessores, segmentação da palavra e, finalmente, a seleção do stem. • Remoção de afixos (sufixos/prefixos): este método baseia-se na remoção de afixos das palavras, que resultam em seus respectivos radicais. Estes afixos são definidos em um conjunto de regras pré-definidas, que é verificado a cada palavra processada. Caso a palavra possua o prefixo ou sufixo definido na regra, ele é removido (ou substituído por outro, para remoção em uma regra posterior). Ao contrário do método de Variedade de Sucessores, a Remoção de afixos é dependente do vocabulário da língua, pois os afixos mais conhecidos devem ser definidos nas regras citadas. Além destas, podem existir também listas de exceções, que contêm palavras que não devem ter seus afixos removidos, evitando-se assim erros de overstemming. A maioria dos stemmers em uso baseiam-se neste método. 3 Uma coletânea de textos em formato eletrônico, compilada segundo critérios específicos, considerada representativa de uma língua (ou da parte que se pretende estudar), destinada à pesquisa. 36 3.3.1.2 Stemmers para a Língua Portuguesa Uma das características dos algoritmos de stemming que utilizam remoção de afixos é que estes são extremamente dependentes das línguas para as quais foram escritas, pois baseiam-se diretamente nas regras de formação de palavras de cada língua para detectá-los e removê-los [21]. A maioria destes algoritmos por terem sido desenvolvidos para a Língua Inglesa não apresentam um desempenho tão bom quanto o obtido sobre a língua original, quando aplicados a línguas derivadas do latim como o Português, pois estas são mais complexas gramaticamente. Além disso, a Língua Portuguesa apresenta inflexões que geralmente causam alterações profundas no radical das palavras, impedindo seu processo de conflação, no qual o stemming é baseado. Por este motivo, há a necessidade de se utilizar um stemmer especialmente projetado para o processamento de palavras escritas em Português. Dentre os algoritmos propostos para a Língua Portuguesa, três se destacam: a versão para o Português do algoritmo de Porter (2005); o algoritmo STEMBR, proposto por Alvares, Garcia e Ferraz (2005) e o “Removedor de Sufixos da Língua Portuguesa” (RSLP), proposto por Orengo e Huyck (2001). Sendo estes baseados no método de remoção de afixos. O desempenho desses três algoritmos foram medidos e comparados em vários trabalhos. O algoritmo RSLP, ao ser comparado com a versão para Português do algoritmo de Porter, é considerado mais eficiente, por cometer um número menor de erros de overstemming e de understemming. Ao ser comparado com o algoritmo de STEMBR, estes mostraram-se equivalentes, apresentando resultados praticamente idênticos na maioria das avaliações. Portanto, para a Língua Portuguesa, o algoritmo mais moderno e mais completo é o proposto por Orengo [22]. Dessa forma, a seguir apresenta-se um breve estudo sobre esses algoritmos, sendo que o algoritmo implementado por Orengo é o que será utilizado na ferramenta proposta neste trabalho. 3.3.1.2.1 Algoritmo de Porter O algoritmo original de Porter (1980) [23], projetado para a Língua Inglesa, é baseado em uma série de regras e condições aplicadas sequencialmente. Uma regra é definida na forma 37 (condição) sufixo1 -> sufixo2 onde: a) (condição) é uma condição a ser testada (por exemplo, tamanho da palavra restante após a remoção do sufixo1). b) sufixo1 é o sufixo a ser procurado na palavra sendo processada. c) sufixo2 é o sufixo a ser adicionado à palavra resultante da remoção de sufixo1. As regras são aplicadas caso o item “b” seja encontrado na palavra analisada e as condições definidas no item “a” sejam atendidas, sendo então o sufixo1 removido da palavra e substituído por sufixo2, caso este esteja definido. Assim, aplicando-se estas regras em uma sequência pré-definida, a palavra resultante será o stem da palavra original. São definidas ao total cinco regras, responsáveis pela remoção de sufixos de plural, sufixos de verbo e sufixos comuns [23]. A implementação do algoritmo de Porter para Português, apresentada posteriormente, segue o mesmo modelo do algoritmo original, possuindo também cinco regras básicas [23]: a) Regra de remoção dos sufixos comuns. b) Regra de remoção de sufixos verbais, executado caso a regra em “a” não tenha modificado a palavra. c) Regra de remoção da vogal “i”, caso precedida da consoante “c” no final da palavra. d) Regra de remoção de sufixos residuais (“os”, “a”, “i”, “o”, “á”, “í”, “ó”), executada caso ambas as regras “a” e “b” não tenham alterado a palavra. e) Regra de remoção dos sufixos “e”, “é” e “ê”, tratamento da cedilha e tratamento das sílabas “gue”, “gué” e “guê”. Antes das aplicações das regras, as vogais nasalizadas “ã” e “õ” são substituídas no termo por “a~” e “o~”. Após a aplicação das regras, essas vogais nasalizadas são retornadas à sua forma original. 3.3.1.2.2 Algoritmo STEMBR O algoritmo STEMBR [24] foi proposto baseado em um estudo estatístico de onde 38 se obteve uma lista mostrando a frequência da última letra das palavras processadas. Ele se diferencia dos outros dois algoritmos analisados, pois realiza também a redução de prefixos. O algoritmo possui basicamente três módulos aos quais a palavra a ser processada é submetida [24]: a) Tratamento de casos específicos, onde os módulos “b” e “c” não devem ser aplicados, como verbos em suas formas irregulares de conjugação e palavras muito comuns (conhecidas como stopwords). b) Redução de prefixos, a partir de uma lista de prefixos conhecidos e suas execeções. c) Redução de sufixos, considerado o processo mais importante a ser executado. Consiste em um conjunto de regras, onde cada regra indica o sufixo a ser removido, o tamanho mínimo do stem resultante e uma lista de exceções, de forma similar ao algoritmo RSLP. Como será visto, este algoritmo guarda várias semelhanças como o RSLP apresentado a seguir. 3.3.1.2.3 Algoritmo Removedor de Sufixos da Língua Portuguesa (RSLP) Foi proposto por Orengo e Huyck (2001) [20] um algoritmo especialmente projetado para o Português, chamado de “Removedor de Sufixos da Língua Portuguesa”, ou RSLP. Sua arquitetura é similar a do algoritmo de Porter, no sentido de aplicar sucessivos passos de remoção de sufixos sobre uma palavra, definidos através de regras. A diferença é que, além de utilizar regras específicas para o Português, conta também com um dicionário de exceções, evitando assim remover sufixos de palavras cuja terminação é somente similar a um sufixo (por exemplo, o sufixo de diminutivo “inho” pode ser removido de “passarinho”, mas não da palavra “linho”, apesar desta terminar com uma sequência de caracteres idêntica ao sufixo em questão). O processo de stemming do RSLP é definido com uma sequência de oito passos de redução executados em uma determinada ordem. A figura 9 apresenta um fluxograma com estes passos [20]. 39 Figura 9: Fluxograma passos do algoritmo RSLP 40 Cada passo possui um conjunto de regras (descritas no anexo A) que são examinadas em sequência, de forma que o maior sufixo possível é testado antes de um sufixo menor. Isso garante que, por exemplo, o sufixo “s”, pertencente a redução de plural, não seja incorretamente removido de uma palavra antes do sufixo “es” ser testado. Cada regra contém os seguintes itens [20]: a) O sufixo a ser removido; b) O tamanho mínimo para o stem resultante após a remoção do sufixo. Desta forma, evita-se assim remover sufixos de palavras muito pequenas, que resultariam em stems incorretos; c) O sufixo de substituição; d) E uma lista de exceções. Cada regra é declarada na forma apresentada na figura 10 [20]. Figura 10: Exemplo de declaração de regra do algoritmo RSLP As regras de um passo são testadas sucessivamente, verificando-se o sufixo da palavra processada. Se o sufixo da regra for encontrado, é conferido se a palavra não consta na lista de exceções daquela regra. Caso não conste, é verificado se o stem resultante da remoção do sufixo possui o tamanho mínimo requerido pela regra. Se possuir, o sufixo é removido, adiciona-se o sufixo de substituição e a execução deste passo é encerrada passando para o próximo. Caso a palavra conste na regra de exceções passa-se diretamente para a próxima regra. A seguir é descrito cada um dos oitos passos do algoritmo RSLP [20]: a) Redução de plural: com raras exceções, as formas em plural na Língua Portuguesa terminam em “s”. Entretanto, nem todas as palavras terminadas em “s” denotam plural, por exemplo “lápis”. Esta etapa consiste basicamente em remover o caracter “s” das palavras que não são listadas nas exceções. Outra exceção ocorre 41 com as palavras terminas em “ns”, onde seu sufixo é modificado para “m”, como “bombons - bombom”. b) Redução de feminino: esta etapa consiste em transformar as formas femininas para o seu correspondente no masculino, uma vez que todos os nomes e adjetivos da Língua Portuguesa possuem gênero. Somente as palavras terminadas em “a” são testadas nesta etapa, mas nem todas são convertidas, somente as que terminam nos sufixos mais comuns, por exemplo “chinesa - chinês”. c) Redução adverbial: esta é a menor de todas as etapas, só existe um único sufixo que denota advérbio - “mente”. Como nem todas as palavras terminadas com este sufixo são advérbios, então, uma lista de exceções também é necessária. d) Redução de aumentativo e diminutivo: nomes e adjetivos da Língua Portuguesa apresentam muito mais formas variantes do que seus equivalentes da Língua Inglesa. As palavras possuem formas aumentativas, diminutivas e superlativas. Esta etapa trata casos como a palavra “cachorrinho”, onde o seu sufixo “inho” é retirado. e) Redução nominal: este passo define 61 sufixos para substantivos e adjetivos. Caso a palavra seja reduzida neste passo, os passos indicados por “f” e “g” não são executados. f) Redução verbal: esta etapa reflete a complexidade da Língua Portuguesa em relação à Inglesa. São definidas 101 regras diferentes, pois os verbos regulares em Português têm mais de 50 formas, cada uma com um sufixo específico. Após a execução desta etapa o verbo é reduzido a sua raiz. g) Remoção de vogais: este passo consiste em remover a última vogal (“a”, “e” ou “o”) das palavras que ainda não passaram pelas etapas “e” e “f”, por exemplo a palavra “menino” não sofre modificações pelas etapas precedentes. Neste caso o final “o” é removido para que a palavra possua o radical “menin”. h) Remoção de acentos: a remoção de acentos é necessária porque existem casos em que algumas formas variantes de palavras são acentuadas e algumas outras não, como “psicólogo” e “psicologia”, depois desta etapa ambas as formas são reduzidas ao radical “psicolog”. É importante que esta etapa seja a última pois existem alguns casos que a presença da acentuação é significante para algumas regras, a exemplo da transformação “óis” para “ol”. 42 3.4 PROCESSO DE TRADUÇÃO DA MENSAGEM EM PORTUGUÊS PARA LIBRAS O diferencial desta ferramenta com relação aos sistemas estudados está em possibilitar a interação entre usuários que falam as línguas Português e LIBRAS, ao invés de permitir apenas a tradução de textos em Português para LIBRAS, oferecendo assim, uma participação mais ativa do usuário surdo, já que esse tipo de usuário poderá não só receber mensagens e traduzi-las, como também enviar mensagens em vídeo, funcionalidade esta que não foi observada em nenhum dos sistemas estudados. Dessa forma, esta seção apresenta como será realizado o processo de tradução da mensagem em Português para LIBRAS a partir das pesquisas realizadas sobre a estruturação da Língua Brasileira de Sinais e as operações de pré-processamento, descritos nas seções anteriores. No momento em que o usuário solicitar a tradução da mensagem em Português para LIBRAS, haverá uma recuperação dessas informações que serão transformadas no texto parcial pré-processado, ou seja, será feito um tratamento deste texto para que ele seja representado na estrutura de LIBRAS. Depois deste tratamento é que irão ocorrer as consultas das palavras no banco de dados, que retornarão os vídeos com os gestos em LIBRAS. Finalmente, em uma nova janela será apresentada uma sequência de vídeos em LIBRAS que corresponde à representação do texto parcial. Esse procedimento é retratado na Figura 11: Figura 11: Funcionamento da tradução Os elementos do processo apresentado na Figura 11 são descritos a seguir: • Texto fonte: é o texto em Português a ser traduzido; • Texto parcial: é o texto pré-processado, traduzido do texto-fonte, com as estruturas frasais em LIBRAS; 43 • Vídeos: uma sequência de vídeos que corresponde à apresentação do texto parcial em LIBRAS, na forma gestual animada. A estruturação das frases em LIBRAS é diferente do Português, ou seja, não há desinências para gênero e número. Além disso, todos os verbos são no infinitivo. Portanto, assim como nos Sistemas de Recuperação de Informação, haverá um pré-processamento do texto fonte para transformá-lo em texto parcial. O préprocessamento aplicará todas as etapas vistas na seção 3.3, com exceção da quarta e quinta etapas. A primeira etapa é o tratamento da sequência de caracteres do texto, eliminando acentos, espaços em branco, pontuações, etc. A segunda etapa será a eliminação de stopwords, que tem por objetivo filtrar as palavras do texto em Português que sejam irrelevantes para a construção da frase em LIBRAS, como artigos, preposições e até algumas conjunções e verbos. A terceira etapa é a aplicação da técnica de stemming. Neste passo será aplicado o algoritmo RSLP descrito na seção 3.3.1.2.3. Após o pré-processamento, as palavras restantes serão utilizadas para fazer a tradução do texto original para LIBRAS. A Tabela 1 apresenta um exemplo de resultado do tratamento do texto fonte para o texto parcial, após aplicadas as etapas de pré-processamento do texto, descritas anteriormente. Tabela 1: Tradução texto fonte para texto parcial Sentença em Português (Texto fonte) Sentença em LIBRAS (Texto parcial) O meu carro é verde. MEU CARR VERD Minha bicicleta é nova. MEU BICICLET NOV Eu gosto de sair. EU GOST SAIR A partir do texto parcial é que serão realizadas as consultas das palavras, no banco de dados, que retornará o seu respectivo vídeo, como mostra a Tabela 2. Caso a palavra não tenha uma ligação direta com um vídeo, ela será soletrada, ou seja, será apresentada uma sequência de vídeos em LIBRAS correspondente a cada letra da palavra. 44 Tabela 2: Palavra relacionada com seu respectivo vídeo Símbolo em LIBRAS Vídeo em LIBRAS MEU meu.avi CARR carro.avi VERD verde.avi BICICLET bicicleta.avi NOV nova.avi EU eu.avi GOST gostar.avi SAIR sair.avi O resultado da tradução do texto em Português para LIBRAS será apresentado como uma sequência de vídeos correspondente ao texto parcial em LIBRAS, como mostra a Tabela 3. Tabela 3: Resultado da tradução Sentença em Português Sentença em LIBRAS Sequência de Vídeos O meu carro é verde. MEU CARR VERD meu.avi carro.avi verde.avi Minha bicicleta é nova. MEU BICICLET NOV meu.avi bicicleta.avi nova.avi Eu gosto de sair. EU GOST SAIR eu.avi gostar.avi sair.avi 45 4 TECNOLOGIAS Neste capítulo serão apresentadas as tecnologias escolhidas como base para o desenvolvimento do sistema proposto, relatando as principais definições do estudo realizado. 4.1 LINGUAGEM JAVA Java é uma linguagem de programação orientada a objetos, desenvolvida por uma pequena equipe de pessoas na Sun Microsystems, na década de 1990. Inicialmente elaborada para ser a linguagem-base de projetos de software para produtos eletrônicos, Java teve seu grande boom em 1995, devido ao sucesso mundial da World Wide Web (WWW) [25]. A tecnologia Java começou a ser criada em 1991 com o nome de Green Project, nele trabalhavam James Gosling, Mike Sheridan e Patrik Naughton, e tinham como objetivo principal criar um interpretador para dispositivos eletrônicos [26]. No verão de 1992 eles emergiram de um escritório de Sand Hill Road no Menlo Park com uma demonstração funcional da ideia inicial. O protótipo se chamava *7 (StarSeven), um controle remoto com uma interface gráfica touchscreen, que tinha a habilidade de controlar diversos dispositivos e aplicações. James Gosling especificou uma nova linguagem de programação para o *7 e decidiu batizá-la de Oak, que quer dizer carvalho, uma árvore que ele podia observar quando olhava pela sua janela [26]. O próximo passo era encontrar um mercado para o *7. A ideia que o *7 tentava vender, hoje já é realidade em programas interativos e também na televisão digital. Permitir ao telespectador interagir com a emissora e com a programação em uma grande rede a cabos, era algo muito visionário e estava muito longe do que as empresas de TV a cabo tinham capacidade de entender e comprar. A ideia era certa, mas na época errada [26]. 46 A sorte é que o boom da Internet aconteceu, e rapidamente uma grande rede interativa estava se estabelecendo. Era este tipo de rede interativa que a equipe do *7 estava tentando vender para as empresas de TV a cabo. Então, Gosling foi incumbido de adaptar o Oak para a Internet e em janeiro de 1995 foi lançada uma nova versão do Oak que foi rebatizada para Java. A partir daí, a plataforma foi crescendo e ganhando força tornando-se hoje uma das mais usadas no mundo [27]. Este sucesso ocorre por ser uma linguagem de programação de alto nível e possuir diversas características que a tornaram tão popular. A seguir são descritas as suas principais características [26]: • Orientação a objetos: programas em Java são baseados na composição e interação entre diversas unidades de software chamadas de objetos. • Independente de platarforma: O byte-code gerado pelo compilador para uma aplicação específica pode ser transportado entre plataformas distintas que suportam Java (Solaris, Windows, Mac OS, Linux etc). Não é necessário recompilar um programa para que ele rode entre máquinas com sistemas diferentes. • Segura: A presença de coleta automática de lixo (garbage collection) evita erros comuns que os programadores comentem quando são obrigados a gerenciar diretamente a memória. Os mecanismos de tratamento de exceções tornam as aplicações mais robustas. • Suporte à concorrência: Permite de maneira fácil a criação de vários threads de execução amplamente usados em animações e processamento paralelo. • Suporte para programação de sistemas distribuídos: Java fornece facilidades para programação de sockets, TCP/IP, chamadas de métodos remotamente, entre outras. Com o tempo, o Java foi amadurecendo e vislumbrando possibilidades em outros setores da indústria além da Internet e, reconhecendo a impossibilidade de criar uma plataforma única capaz de abranger completamente as demais áreas de mercado, a 47 Sun2 dividiu a tecnologia em três edições, cada uma visando segmentos específicos de negócio [28]: • JSE (Java Standard Edition): projetada para rodar em computadores pessoais (desktops) e estações de trabalho. • JME (Java Micro Edition): especializada em pequenos dispositivos com memória, tela e poder de processamento limitados. • JEE (Java Enterprise Edition): projetada com foco em aplicações para serem executadas no servidor. A figura 12 apresenta um diagrama com uma visão geral da plataforma Java: Figura 12: Plataforma Java e suas edições 4.1.1 Plataforma JEE A arquitetura JEE foi desenvolvida sobre a plataforma JSE utilizando assim as APIs básicas para o desenvolvimento de programas e aplicações. Logo, herda todas as características que difundiram e consolidaram a tecnologia pela indústria de TI [29]. 2A empresa Sun Microsystems foi comprada pela Oracle em janeiro de 2010. O acordo dá à Oracle a propriedade sobre a linguagem de programação Java e o sistema operacional Solaris. 48 JEE faz uso do modelo de aplicação multicamadas onde cada aplicação lógica é dividida em componentes de acordo com sua funcionalidade e vários componentes das aplicações podem ser instalados em diferentes máquinas dependendo da camada em que ele se encontra. Os componentes do JEE estão divididos em [30]: • Aplicações cliente e applets: esses componentes encontram-se na camada do cliente. São eles os responsáveis pela interação do usuário com o sistema. • Java Servlets e JavaServer Pages (JSP): ambas desenvolvidas em classes Java. Elas recebem uma requisição dinamicamente para depois construir a resposta para o navegador; normalmente, essas respostas geram páginas dinâmicas. Essas classes são gerenciadas por um container localizado na camada web. • Enterprise JavaBeans (EJB): e o componente de negócio que roda no servidor JEE. Os componentes de negócios funcionam da seguinte forma: primeiro recebem uma requisição da aplicação cliente, processam essa requisição se necessário, e enviam uma resposta para as aplicações cliente. Esses componentes também podem recuperar dados armazenados, processá-los e enviá-los para as aplicações. A figura 13 ilustra o funcionamento da arquitetura JEE com suas camadas e componentes [30]. Figura 13: Representação da divisão em camadas através do JEE 49 4.1.1.1 Java Servlets e JavaServer Pages Servlets e JavaServer Pages são duas tecnologias criadas pela Sun para desenvolvimento de aplicações na web a partir de componentes Java que executam no lado servidor. Elas fazem parte da plataforma JEE que fornece um conjunto de tecnologias para o desenvolvimento de soluções escaláveis e robustas para a web [31]. No relacionamento cliente-servidor, o cliente solicita que alguma ação seja executada e o servidor a realiza e responde para o cliente. Esse modelo de comunicação solicitação-resposta é a base para as visualizações de nível mais alto de rede no Java Servlets e JavaServer Pages. As JSP´s são uma maneira eficiente de implementar o mecanismo de solicitação-resposta da web sem entrar nos detalhes de nível mais baixo dos Servlets [32]. Os Servlets são classes Java responsáveis por receber requisições de formulários proveniente de uma página HTML (HyperText Markup Language), tratando os atributos passados por parâmetro e realizando a lógica apropriada para àquela requisição. Por fim, os Servlets ou geram uma nova página HTML de resposta para o usuário ou redirecionam o fluxo para uma nova página JSP [33]. Servlets não possuem interface gráfica e suas instâncias são executadas dentro de um ambiente Java denominado Container. O container gerencia as instâncias dos Servlets e provê os serviços de rede necessários para as requisições e respostas e atua em associação com servidores web recebendo as requisições reencaminhada por eles. Tipicamente existe apenas uma instância de cada Servlet, no entando, o container pode criar vários threads de modo a permitir que uma única instância atenda mais de uma requisição simultaneamente. A figura 14 fornece uma visão do relacionamento destes componentes [31]. Figura 14: Relacionamento entre Servlets, container e servidor web 50 As páginas JSP, foram criadas para contornar algumas das limitações no desenvolvimento com Servlets: se em um Servlets a formatação da página HTML resultante do processamento de uma requisição se mistura com a lógica da aplicação em si, dificultando a alteração dessa formatação, em uma página JSP essa formatação se encontra separada da programação, podendo ser modificada sem afetar o restante da aplicação [33]. Assim, um JSP consiste de uma página HTML com alguns elementos especiais, que conferem o caráter dinâmico da página. Esses elementos podem tanto realizar um processamento por si, como podem recuperar o resultado do processamento realizado em um Servlets, por exemplo, e apresentar esse conteúdo dinâmico junto a página JSP [33]. Na maioria dos casos as tecnologias de Servlets e JSP são intercambiáveis. Os Servlets fazem a comunicação entre clientes e servidores através do protocolo HTTP. Um cliente faz uma solicitação de HTTP ao servidor. O container de Servlets recebe a solicitação e a redireciona para ser processada pelo Servlet apropriado. O Servlet faz seu processamento, que pode interagir com o banco de dados ou com outros Servlets ou JSP no servidor. O Servlet retorna seus resultados ao cliente, normalmente na forma de documentos HTML, XHTML ou XML para exibir em um navegador. 4.2 BIBLIOTECAS DE CLASSE DO JAVA Esta seção tem como objetivo apresentar as bibiliotecas de classe do Java, também conhecidas como APIs Java (Application Programming Interface) que serviram de suporte na construção da ferramenta. Na maioria dos sistemas operacionais modernos, um corpo formado por código reusável é organizado e disponibilizado para simplificar o trabalho do programador. Este código encontra-se, normalmente, na forma de bibliotecas dinâmicas que a aplicação utiliza durante a sua execução. Como a plataforma Java não é dependente de qualquer sistema operacional, as aplicações não podem depender das bibliotecas destes sistemas. Ao contrário, a plataforma Java disponibiliza um grande conjunto padronizado de bibliotecas de classe, que contém praticamente o mesmo número de funções encontradas nos sistemas operacionais modernos [34]. Uma classe de biblioteca serve a três propósitos dentro da plataforma Java. Como 51 outras bibliotecas padrão, elas disponibilizam ao programador um conjunto de funções bem conhecidas que realizam tarefas comuns, como a manutenção de listas de elementos ou manipulação de strings. Em adição, a biblioteca contém uma interface para tarefas que dependem do hardware e do sistema operacional. Tarefas como acesso a rede e a arquivos são altamente dependentes das capacidades nativas do ambiente. Finalmente, se alguma plataforma não suportar alguma função que uma aplicação Java necessita, as bibliotecas implementam esta funcionalidade usando os recursos disponíveis, ou disponibilizam um meio consistente para que a aplicação verifique a presença de determinada funcionalidade [34]. Na ferramenta desenvolvida existe um módulo que permite ao usuário enviar um vídeo contendo a sua mensagem em LIBRAS, para isso ele irá fazer o upload de um arquivo de vídeo para “postar” no fórum. Para implementação do upload optou-se por utilizar a biblioteca Commons FileUpload do projeto Jakarta disponibilizado pela organização Apache. A API Commons FileUpload tornou fácil e robusta a capacidade de realizar uploads através de Servlets e aplicações web. O projeto Jakarta é um conjunto de componentes desenvolvidos em Java para auxiliar no desenvolvimento de aplicativos web [35]. Também foi empregada a API MySQL Connector, um driver nativo do Java que converte as chamadas geradas pelo JDBC (Java Data Base Connectivity ) no protocolo de rede que utiliza a base de dados MySQL. Foi possível então interagir com a base de dados, de forma a ser feita as conexões necessárias para inserções e consultas dos dados armazenadas no SGBD [36]. Por fim, para a manipulação e exibição dos vídeos utilizados em alguns módulos da ferramenta, foi necessário fazer uso da API Java Media Framework (JMF). Esta biblioteca permite criar aplicativos Java que reproduzem, editam e capturam muitos tipos populares de mídia, além de ser uma arquitetura unificada e multiplataforma [37]. 52 5 ESTUDO DE CASO Este capítulo tem como objetivo apresentar o sistema proposto como estudo de caso, um fórum de discussão que traduz mensagens de texto em Português para LIBRAS. Neste sistema serão utilizados os conceitos da Linguagem de Modelagem Unificada (UML). Esta linguagem é constituída de elementos gráficos (visuais) utilizados na modelagem que permitem representar os conceitos do paradigma da orientação a objetos. Através dos elementos gráficos definidos nesta linguagem pode-se construir diagramas que representam diversas perspectivas do sistema [38]. Desta forma, serão descritos os principais processos e etapas envolvidos no desenvolvimento deste fórum. Dentro dos processos citados incluem-se a fase de levantamento de requisitos, análise e projeto, responsáveis por estabelecer um conhecimento maior a respeito das particularidades do negócio. 5.1 ESPECIFICAÇÃO DE REQUISITOS A especificação de requisitos busca compreender o problema e levantar todas as necessidades do futuro sistema a ser desenvolvido, tendo como objetivo obter produtos de software de melhor qualidade que satisfaçam as reais necessidades do cliente. Esta seção foi desenvolvida usando a técnica de modelagem de casos de uso apresentando os diagramas de caso de uso, descrição dos casos de usos identificados e o mini-mundo, sendo este uma breve descrição do domínio do problema [38]. 5.1.1 Descrição do Mini-Mundo O administrador do sistema precisa manter os dados cadastrais das palavras e para isso deve-se armazenar os seguintes dados: nome da palavra e o nome do seu 53 respectivo vídeo em LIBRAS, contendo o sinal da palavra determinada. Estes dados ainda poderão ser visualizados, editados ou excluídos. O usuário da ferramenta irá usufruir das mesmas funcionalidades comum a qualquer outro fórum. Será possível criar um tópico contendo um título como tema e uma mensagem, sendo responsabilidade do sistema armazenar o usuário e data/hora de criação deste tópico. Existem duas maneiras de interação no fórum, através do envio de uma mensagem de texto ou o envio de um vídeo contendo a mensagem em LIBRAS, sendo que para essas duas formas de envio deverão ser informados o assunto da mensagem, destacando que será feito um upload da mensagem em vídeo a fim de realizar o seu envio. As mensagens que forem enviadas ao fórum poderão ser excluídas a qualquer momento pelo usuário que a enviou ou pelo administrador. Já os tópicos só poderão ser excluídos pelo administrador por uma questão de segurança. O diferencial deste fórum se encontra na possibilidade de tradução de uma mensagem de texto na Língua Portuguesa para Língua Brasileira de Sinais. Desta forma, cabe ao usuário escolher uma das mensagens de texto que foi enviada ao fórum e optar por traduzi-la. Em seguida, será apresentada uma sequência de vídeos em LIBRAS correspondente à tradução do texto. 5.1.2 Diagrama de Caso de Uso Um diagrama de caso de uso representa graficamente os atores, casos de uso e relacionamentos entre esses elementos e tem o objetivo de ilustrar quais elementos externos interagem com determinadas funcionalidades do sistema [38]. A figura 15 ilustra o diagrama de casos de uso referente ao sistema. Os atores desta ferramenta estarão divididos em dois perfis: o administrador, responsável pela manutenção das palavras cadastradas com seus respectivos vídeos em LIBRAS e a exclusão de um tópico ou uma mensagem; e o usuário, que utilizará as operações básicas da ferramenta, como criar um tópico, enviar uma mensagem textual ou em vídeo, excluir uma mensagem e traduzir uma mensagem de texto para LIBRAS. 54 Figura 15: Diagrama de Casos de Uso De acordo com a figura acima a ferramenta terá as seguintes funcionalidades: • Cadastrar, editar, excluir e visualizar palavra: A fim de possuir um banco de palavras para a tradução do texto em Português para LIBRAS, será permitido ao administrador manter uma palavra em Português e associá-la ao seu respectivo vídeo, contendo os gestos em LIBRAS. Sendo operações possíveis: o cadastro, a visualização, edição ou exclusão desta palavra. • Criar e excluir um tópico: Será possível ao usuário da ferramenta criar um tópico de acordo com o assunto que desejar, sendo que cada tópico terá suas respectivas mensagens. E por uma questão de segurança este tópico só poderá ser excluído pelo administrador do sistema. • Enviar mensagem de texto: Será permitido ao usuário enviar uma mensagem de texto, que poderá ser visualizada por todos os participantes do fórum. • Enviar mensagem em forma de vídeo: Será permitido ao usuário enviar o seu próprio vídeo contendo a mensagem em LIBRAS. Esta mensagem poderá ser visualizada por todos os participantes do fórum. 55 • Excluir mensagem: A exclusão das mensagens do fórum, tanto textual, quanto em vídeo, só poderão ser efetuadas pelo administrador do sistema ou pelo usuário que enviou a respectiva mensagem. • Traduzir mensagem textual para LIBRAS: Com esta funcionalidade na ferramenta, usuários surdos, ou até mesmo ouvintes, poderão escolher uma mensagem que foi enviada ao fórum e selecionar a opção para traduzi-la do Português para LIBRAS. Em uma nova janela será apresentada uma sequência de vídeos em LIBRAS que corresponde à tradução. 5.1.3 Descrições de Caso de Uso Nesta seção é feita uma descrição dos casos de uso apresentados no diagrama da seção 5.1.2. 5.1.3.1 Manter Palavra Sumário: Ator realiza a manutenção (inclusão, edição, exclusão e visualização) dos dados necessários para fazer a ligação entre cada palavra da LIBRAS escrita e seu respectivo vídeo na forma de representação em LIBRAS. Ator: Administrador. Pré-Condições: Ator deverá estar logado no sistema. 1. Fluxo Básico - Visualizar Palavra 1.1. Este caso de uso inicia quando o ator opta por visulizar as palavras cadastradas no sistema; 1.2. O ator pode escolher por incluir, editar ou excluir alguma palavra; ( A1 ) ( A2 ) ( A3 ) 1.3. Este caso de uso se encerra. 2. Fluxos Alternativos 2.1. (A1) - Cadastrar Palavra 2.1.1. Este caso de uso inicia quando o ator opta por incluir uma nova palavra; 56 2.1.2. O ator insere os dados da palavra (Palavra e o arquivo de vídeo); 2.1.3. O sistema faz a validação dos dados; ( E1 ) ( E2 ) 2.1.4. O ator salva os dados da palavra; 2.1.5. O sistema retorna uma mensagem de sucesso; 2.1.6. O ator confirma a mensagem; 2.1.7. Este caso de uso se encerra. 2.2. (A2) - Editar Palavra 2.2.1. O ator opta por editar uma palavra já cadastrada; 2.2.2. O ator insere os dados que deseja alterar; 2.2.3. O sistema faz a validação dos dados; ( E1 ) ( E2 ) 2.2.4. O ator salva os dados da palavra; 2.2.5. O sistema retorna uma mensagem de sucesso; 2.2.6. O ator confirma a mensagem; 2.2.7. Este caso de uso se encerra. 2.3. (A3) - Excluir Palavra 2.3.1. O ator opta por excluir uma palavra já cadastrada; 2.3.2. O sistema solicita a confirmação da exclusão; 2.3.3. O ator confirma; 2.3.4. O sistema exclui os dados; 2.3.5. O sistema retorna uma mensagem de sucesso; 2.3.6. Este caso de uso se encerra. 3. Fluxos de Exceções 3.1. (E1) - Dados Obrigatórios 3.1.1. Caso os dados obrigatórios não sejam fornecidos, é emitida uma men- 57 sagem de erro informando. 3.1.2. Retornar ao ponto em que foi chamado. 3.2. (E2) - Palavra já cadastrada 3.2.1. O ator fornece os dados de uma palavra já cadastrada no sistema, é emitida uma mensagem de erro informando. 3.2.2. Retornar ao ponto em que foi chamado. Pós-condições: Uma palavra foi inserida, editada ou excluída. 5.1.3.2 Manter Tópico Sumário: Ator realiza a manutenção (inclusão e exclusão) dos tópicos criados ao fórum. Ator: Usuário ou admistrador. Pré-Condições: Ator deverá estar logado no sistema. 1. Fluxo Básico - Criar tópico 1.1. Este caso de uso inicia quando usuário opta por criar um novo tópico; 1.2. O usuário informa o assunto e a mensagem do tópico; 1.3. O usuário salva o novo tópico; ( E2 ) 1.4. O sistema retorna uma mensagem de sucesso; 1.5. O usuário confirma a mensagem; 1.6. Este caso de uso se encerra. 2. Fluxo Básico - Excluir Tópico 2.1. Este caso de uso inicia quando o administrador optar por excluir um tópico que foi criado; ( E1 ) 2.2. O sistema solicita a confirmação da exclusão; ( E2 ) 58 2.3. O administrador confirma; 2.4. O sistema exclui o tópico; 2.5. O sistema retorna uma mensagem de sucesso; 2.6. Este caso de uso se encerra. 3. Fluxos de Exceções 3.1. (E1) - Tópico ainda tem mensagens 3.1.1. Caso o ator tente excluir um tópico que ainda possui mensagens é emitida uma mensagem de erro informando. 3.1.2. Retornar ao ponto em que foi chamado. 3.2. (E2) - Erro no sistema 3.2.1. Caso ocorra um erro no sistema e ele não consiga realizar a operação que foi pedida, é emitida uma mensagem de erro informando. 3.2.2. Retornar ao ponto em que foi chamado. Pós-condições: Um tópico foi criado ou excluído. 5.1.3.3 Manter Mensagem Sumário: Ator realiza a manutenção (inclusão e exclusão) das mensagens enviadas ao fórum. Ator: Usuário. Pré-Condições: Ator deverá estar logado no sistema. 1. Fluxo Básico - Enviar Mensagem 1.1. Este caso de uso inicia quando o ator está acessando um tópico e opta por enviar uma mensagem; ( A1 ) ( A2 ) 1.2. O ator envia a mensagem ao fórum; ( E1 ) 59 1.3. O sistema retorna uma mensagem de sucesso; 1.4. O ator confirma a mensagem; 1.5. Este caso de uso se encerra. 2. Fluxo Básico - Excluir Mensagem 2.1. Este caso de uso inicia quando o ator opta por excluir uma mensagem que foi enviada ao fórum; 2.2. O sistema solicita a confirmação da exclusão; ( E1 ) ( E2 ) 2.3. O ator confirma; 2.4. O sistema exclui a mensagem; 2.5. O sistema retorna uma mensagem de sucesso; 2.6. Este caso de uso se encerra. 3. Fluxos Alternativos 3.1. (A1) - Enviar Mensagem Textual 3.1.1. O ator opta por enviar uma mensagem textual em Português; 3.1.2. O sistema exibe uma caixa de texto; 3.1.3. O ator digita a mensagem; 3.1.4. Retorna ao ponto em que foi chamado. 3.2. (A2) - Enviar mensagem em forma de vídeo 3.2.1. O ator opta por enviar uma mensagem em forma de vídeo; 3.2.2. O sistema exibe uma lista com os documentos que estão armazenados no computador local; 3.2.3. O ator escolhe um vídeo da lista exibida; 3.2.4. Retorna ao ponto em que foi chamado. 4. Fluxos de Exceções 60 4.1. (E1) - Erro no sistema 4.1.1. Caso ocorra um erro no sistema e ele não consiga realizar a operação que foi pedida, é emitida uma mensagem de erro informando. 4.1.2. Retornar ao ponto em que foi chamado. 4.2. (E2) - Usuário não permitido 4.2.1. Caso o ator que esteja tentando excluir a mensagem não seja o autor da mesma e nem o administrador do sistema, é emitida uma mensagem de erro informando. 4.2.2. Retornar ao ponto em que foi chamado. Pós-condições: Uma mensagem foi enviada ou excluída ou um tópico foi criado ou excluído. 5.1.3.4 Traduzir mensagem textual para LIBRAS Sumário: Realiza tradução de uma mensagem do fórum na Língua Portuguesa para LIBRAS. Ator: Usuário. Pré-Condições: Ator deverá estar logado no sistema. 1. Fluxo Básico - Executar Tradução de um Texto 1.1. Este caso de uso inicia quando o ator opta por traduzir uma mensagem de texto que foi enviada ao fórum; 1.2. O sistema faz um tratamento do texto (Descrito na seção 3.4); 1.3. O sistema faz uma consulta no banco de dados de acordo com as palavras da mensagem; ( E1 ) 1.4. O sistema traduz o texto para LIBRAS gerando uma sequência de vídeos; (RN01) 1.5. O sistema apresenta sequência de vídeos para o usuário contendo a 61 tradução da mensagem; 1.6. Este caso de uso se encerra. 2. Fluxos de Exceções 2.1. (E1) - Erro no sistema 2.1.1. Caso ocorra um erro no sistema e ele não consiga realizar a operação que foi pedida, é emitida uma mensagem de erro informando. 2.1.2. Retornar ao ponto em que foi chamado. Pós-condições: Um texto em Língua Portuguesa foi traduzido para LIBRAS. Regras de Negócio Relacionadas: RN01 - Caso a palavra que deseja ser traduzida não seja cadastrada ela será soletrada, através de vídeos das letras do alfabeto em LIBRAS. 5.2 ESPECIFICAÇÃO DE ANÁLISE A análise corresponde à fase onde é realizado um estudo detalhado dos requisitos levantados e então são construídos os modelos que representam o sistema [38]. No sistema proposto será utilizada a abordagem da Análise Orientada a Objetos. Esta seção será dividida em três partes: na apresentação do diagrama de classes, dos driagramas de atividade e dos diagramas de sequência. 5.2.1 Diagrama de Classes O diagrama de classes representa a estrutura das classes de objetos do sistema e suas relações. Vale ressaltar que os dados relativos às classes usuário e tipo de usuário serão importados do Ambiente Virtual de Aprendizagem em que a ferramenta estiver inserida. A figura 16 ilustra o diagrama de classes do sistema. 62 Figura 16: Diagrama de Classes 5.2.2 Diagramas de Atividade Um diagrama de atividade é um tipo especial de diagrama de estados, em que são representados os estados de uma atividade, em vez dos estados de um objeto. Os diagramas de atividade são orientados a fluxos de controle e podem ser vistos como uma extensão dos fluxogramas [38]. As figuras 17, 18, 19, 20, 21, ilustram os respectivos diagramas de atividade dos casos de uso cadastrar e excluir palavra, criar tópico, enviar mensagem e executar tradução da mensagem de texto. 63 Figura 17: Diagrama de Atividade Cadastrar Palavra Figura 18: Diagrama de Atividade Excluir Palavra 64 Figura 19: Diagrama de Atividade Criar Tópico Figura 20: Diagrama de Atividade Enviar Mensagem 65 Figura 21: Diagrama de Atividade Executar tradução da mensagem de texto para LIBRAS 5.2.3 Diagramas de Sequência O diagrama de sequência descreve a maneira como os grupos de objetos colaboram em algum comportamento ao longo do tempo. Ele registra o comportamento de um único caso de uso e exibe os objetos e as mensagens passadas entre eles no caso de uso. Este diagrama dá ênfase à ordenação temporal em que as mensagens são trocadas entre os objetos de um sistema. Entende-se por mensagens os serviços solicitados de um objeto a outro, e as respostas desenvolvidas para as solicitações [38]. As figuras 22, 23, 24, 25, 26, 27 ilustram os diagramas de sequência dos casos de uso cadastrar, editar e excluir palavra, criar tópico, enviar mensagem e executar tradução da mensagem de texto. 66 Figura 22: Diagrama de Sequência Cadastrar Palavra Figura 23: Diagrama de Sequência Editar Palavra Figura 24: Diagrama de Sequência Excluir Palavra 67 Figura 25: Diagrama de Sequência Criar Tópico Figura 26: Diagrama de Sequência Enviar Mensagem Figura 27: Diagrama de Sequência Executar tradução da mensagem de texto para LIBRAS 68 5.3 ESPECIFICAÇÃO DE PROJETO Esta seção contém a Especificação de Projeto para o sistema proposto. Sendo ela divida em três partes: a primeira parte apresenta uma visão das tecnologias e ferramentas utilizadas pelo sistema. A segunda parte apresenta a arquitetura do sistema e sua divisão em camadas, além da discussão sobre cada uma delas e seus respectivos diagramas de classe. E por fim, a última parte, demonstra um protótipo com as telas da ferramenta. 5.3.1 Linguagens e Ferramentas utilizadas Para o desenvolvimento do sistema proposto foram analisadas algumas ferramentas consideradas importantes à construção, e dentre elas escolhidas as seguintes tecnologias que mais se apropriavam ao objetivo do sistema. Ainda na fase inicial do projeto foi utilizada a Linguagem de Modelagem Unificada (UML) para especificação, documentação, visualização e desenvolvimento do sistema. A UML é composta por muitos elementos de modelo que são usados para criar diagramas, que representam uma determinada parte, ou um ponto de vista do sistema. Dessa forma, foi possível fazer uma modelagem visual de maneira que os relacionamentos entre os componentes do sistema fossem melhor visualizados, compreendidos e documentados. Em um sentido mais amplo, o modelo é uma simplificação da realidade, o que torna a arquitetura do sistema mais tangível, permitindo a avaliação em dimensões múltiplas. Como editor de UML, foi utilizada a ferramenta JUDE Community, a escolha do JUDE teve como incentivo o fato da ferramenta ser bastante intuitiva e fácil de utilizar, além de ser disponibilizada de forma gratuita e possuir características que não são encontradas em outras ferramentas gratuitas. A figura 28 apresenta a tela principal do JUDE Community. A linguagem de programação Java foi empregada no desenvolvimento da ferramenta por ser uma linguagem orientada à objetos, independente de plataforma, gratuita, robusta e segura, além de ser distribuída com um vasto conjunto de bibliotecas. Sendo assim, é possível criar um sistema altamente flexível, extensível, de fácil manutenção e entendimento. 69 Figura 28: Tela Principal do JUDE Community A utilização do padrão de arquitetura MVC na concepção do protótipo, e a utilização da linguagem de programação Java permitiu o uso de ferramentas para programação orientadas à objetos. Assim, a programação do sistema foi feita com o auxílio do NetBeans IDE, um ambiente de desenvolvimento integrado, multiplataforma, fortemente utilizado por desenvolvedores Java, que visa simplificar o desenvolvimento e aumentar a produtividade. A figura 29 apresenta a tela principal do NetBeans IDE versão 6.8. Figura 29: Tela Principal do NetBeans IDE 70 O GlassFish foi utilizado como servidor de aplicação, por ser baseado na Plataforma Java Enterprise Edition e possuir código aberto, oferecendo desempenho e praticidade. O GlassFish, no ambiente do desenvolvedor, já vem integrado ao NetBeans IDE, o que facilitou a configuração do mesmo como servidor de aplicação do projeto. O banco de dados adotado foi o MySQL, que apresenta as vantagens de ser leve, rápido, seguro, prático, além de ser gratuito e inscrito no tipo de licenciamento GNU. O MySQL é considerado o banco de dados mais rápido do mercado e fornece suporte a diversas linguagens de programação incluindo o Java [39]. E por fim, quanto à modelagem do banco de dados, foi escolhida a ferramenta MySQL Workbench por ser de fácil utilização, intuitiva, autoexplicativa e trabalhar com diversas entidades e relacionamentos. Também possui a vantagem de ser uma ferramenta de modelagem MySQL, o que torna fácil a interação com o banco de dados, permitindo a exportação da modelagem diretamente do banco. A figura 30 apresenta a tela principal do MySQL Workbench versão 5.2 CE. Figura 30: Tela Principal do MySQL Workbench 5.3.2 Arquitetura do Sistema A arquitetura de um sistema pode ser estudada de acordo com diversas perspectivas. Uma delas permite visualizar o sistema de software como um conjunto de camadas, sendo cada camada uma coleção de unidades de software que podem ser 71 executadas ou acessadas [38]. A divisão de um sistema de software em camadas permite que este seja mais portável e modificável. Uma mudança em uma camada mais baixa que não afete a sua interface não implicará em mudanças nas camadas mais altas. E vice-versa, uma mudança em uma camada mais alta que não implica na criação de um novo serviço em uma camada mais baixa não afetará esta última [38]. Uma das formas de dividir o sistema em camadas é através da utilização do padrão arquitetural MVC Estendido (Model-View-Controller ), que tem como objetivo criar uma independência e divisão de responsabilidades entre as partes que envolvem o sistema [40]. Dessa forma, o sistema proposto será dividido nos seguintes pacotes: Domínio do Problema (DP), Gerência de Tarefas (GT), Gerência de Dados (GD) e Interface com o Usuário (IU) de acordo com o modelo MVC Estendido e tendo suas classes identificadas por estereótipos. A figura 31 ilustra o diagrama de pacotes do sistema de acordo com o modelo MVC Estendido. A dependência entre os pacotes representa a requisição de serviços para realização das funcionalidades do sistema. Figura 31: Diagrama de Pacotes Nas próximas seções serão explicados com mais detalhes quais as responsabilidades dos seguintes pacotes citados nesta seção: domínio do problema, gerência de tarefas, gerência de dados e interface com o usuário. 72 5.3.2.1 Domínio do Problema (DP) O pacote de domínio do problema é o local onde estão contidas as classes, suas multiplicidades e associações que modelam o domínio do problema. Esta camada contém todos os requisitos dos usuários. A figura 32 representa o diagrama de classes do domínio do problema. Figura 32: Diagrama de Classes do Domínio do Problema 5.3.2.2 Gerência de Tarefas (GT) No pacote de gerência de tarefas estão as classes que lidam com as regras de negócio do sistema. Esta camada tem como finalidade controlar as interações que ocorram a partir do usuário. A figura 33 representa as classes para o pacote de gerência de tarefas. 73 Figura 33: Diagrama de Classes de Gerência de Tarefas 5.3.2.3 Gerência de Dados (GD) No pacote gerência de dados estão as classes responsáveis por realizar a persistência das informações do sistema em um banco de dados. Para isso será utilizado o padrão de projeto chamado DAO (Data Access Object). Este é um padrão para persistência de dados que permite separar as regras de negócio das regras de acesso a banco de dados, sendo o seu principal objetivo promover isolamento e flexibilidade do banco de dados [41]. Sendo assim, todas as funcionalidades relacionadas ao banco de dados serão feitas por classes DAO. As figuras 34 e 35 representam as classes para o pacote de gerência de dados. Figura 34: Diagrama de Classes de Gerência de Dados parte I 74 Figura 35: Diagrama de Classes de Gerência de Dados parte II 5.3.2.3.1 Modelo de Entidade e Relacionamento O Modelo de Entidade e Relacionamento (MER) é um modelo abstrato cuja finalidade é descrever, de maneira conceitual, os dados a serem utilizados em um sistema de informações ou que pertencem a um domínio [42]. O sistema proposto utilizará um banco de dados relacional para a persistência de dados e, assim, foi necessário realizar o mapeamento Objeto-Relacional. A figura 36 ilustra o modelo de entidade e relacionamento. Figura 36: Modelo de Entidade e Relacionamento 5.3.2.4 Interface com Usuário (IU) Esta camada será responsável por implementar as interfaces com o usuário. A figura 37 representa o diagrama de classe referente ao componente de interface com o usuário. 75 Figura 37: Diagrama de Classes de Interface com Usuário 5.3.3 Padrões de Interface Para auxiliar na usabilidade do sistema por parte do usuário, textos, ícones, cores podem ser utilizados em uma forma padrão. Esta seção mostrará os itens, citados anteriormente, que foram utilizados na ferramenta. A figura 38 apresenta os ícones utilizados na interface, que ajudam o usuário a identificar as funcionalidades do sistema. Esses ícones são, respectivamente, de edição de palavras e de exclusão, tanto de palavras, quanto de tópicos e mensagens. Figura 38: Ícones A tabela 4 apresenta a lista de cores, no padrão RGB, empregadas na interface do sistema. Tabela 4: Cores Item Código Hexadecimal Plano de fundo #F5F5F5 Plano de fundo das tabelas #F1F1F1 e #FCFCFC Texto padrão #000000 Título das páginas e links #1B6633 Demais textos #333333 76 5.3.4 Protótipo Um protótipo pode ser considerado uma implementação concreta, embora parcial, de um programa. Eles podem ser criados para explorar múltiplas questões durante o desenvolvimento do software. O protótipo de uma interface com o usuário tem como principal objetivo conseguir captar as necessidades efetivas e concretas do usuário [43]. Sendo assim, a seguir serão apresentadas as telas do sistema contemplando as funcionalidades discutidas na seção 5.1.2. A figura 39 apresenta a tela de visualização das palavras cadastradas no sistema, sendo possível removê-las ou editá-las. Além disso, é permitido cadastrar uma nova palavra. Figura 39: Tela Visualizar Palavras 77 A figura 40 apresenta a tela na qual é realizado o cadastro de palavras associando ao seu respectivo sinal em LIBRAS. Figura 40: Tela Cadastro de Palavras A figura 41 apresenta a tela contendo a listagem dos tópicos que já foram criados no fórum. Nela são exibidos o assunto e a quantidade de postagens dos tópicos, além de especificar o último usuário que enviou uma mensagem. As operações possíveis nessa tela são: criar um novo tópico e acessar ou excluir um existente. Figura 41: Tela Lista de Tópicos 78 A figura 42 apresenta a tela de criação de um novo tópico, sendo necessário informar qual o assunto e a mensagem. Figura 42: Tela Novo Tópico A figura 43 apresenta a tela com as respectivas mensagens do tópico: “O que é LIBRAS?”. As duas primeiras mensagens foram enviadas em forma de texto e a última como um vídeo em LIBRAS, sendo que para assistí-lo é necessário clicar no botão ao lado da frase “Esta é uma mensagem de vídeo, clique no botão ao lado para vê-la:”, na qual é aberto uma nova janela onde este será exibido. As operações possíveis nessa tela são: o envio de uma nova mensagem em texto ou em vídeo para este tópico e a tradução para LIBRAS de uma mensagem de texto. 79 Figura 43: Tela Tópico Acessado 80 As figuras 44 e 45 apresentam, respectivamente, as telas que tornam possível enviar uma mensagem em texto ou em vídeo para o tópico “Windows ou Linux?”, sendo que nestas duas telas é exibido uma lista com as últimas mensagens do tópico. Figura 44: Tela Envio Mensagem de Texto Para que o usuário possa enviar um vídeo contendo a sua mensagem em LIBRAS é necessário fazer o upload do arquivo, como mostra a figura 45. Figura 45: Tela Envio Mensagem em LIBRAS 81 A figura 46 apresenta a tela do tópico “Windows ou Linux?”, na qual está sendo traduzida a mensagem de texto para LIBRAS. Para isso é apresentado em uma nova janela a sequência de vídeos correspondente à tradução. Figura 46: Tela Tradução da Mensagem 82 6 CONCLUSÃO Na maioria das vezes, as pessoas com deficiência são tratadas diferentemente das outras, sofrem com os preconceitos e são privadas de suas liberdades. Isto porque a sociedade os encara como seres diferentes dos outros. Considerando esses fatos, um assunto de grande importância e que vem sendo constantemente discutido, é a inclusão social desses indivíduos. A sociedade, embora tenha um discurso que prega a inclusão social de pessoas com deficiência, ainda vê esses indivíduos pelo que não tem, ou pelo que não são. Não é de costume olhá-los pelo que são ou pelo que podem oferecer. Nesta medida, a pessoa com deficiência auditiva é censurada como aquela que não ouve, sendo omitido as suas qualidades. Dessa forma, esse sentimento pressupõe sempre uma atitude e um comportamento de negação que traz para essas pessoas sérias consequências como discriminação, marginalização e principalmente a exclusão. Dessa maneira, devem ser criados mecanimos que adaptem os deficientes aos sistemas sociais comuns e, em caso de incapacidade por parte de alguns deles, criarlhes sistemas especiais em que possa, participar ou “tentar” acompanhar o ritmo dos que não tenham alguma deficiência específica. Sendo analisadas todas essas questões e com base nos estudos realizados, foi possível amadurecer a ideia para a construção de uma ferramenta computacional que promove o desenvolvimento social dos portadores de deficiência auditiva, diminuindo assim a exclusão social desses indivíduos. Portanto, a finalidade deste trabalho foi o desenvolvimento de uma ferramenta web, um fórum de discussão que permite não só a tradução de mensagens na Língua Portuguesa para a Língua Brasileira de Sinais, como também o envio de vídeos contendo a mensagem em LIBRAS. Sendo que, na implementação do projeto estes objetivos foram alcançados com sucesso. 83 6.1 CONTRIBUIÇÃO DAS PESQUISAS Após as pesquisas realizadas sobre os softwares de tradução Português-LIBRAS, foi possível concluir que estes possuem apenas algumas propriedades diferentes entre si. O Dicionário de LIBRAS é um sistema web que só possibilita a tradução de uma palavra, e não de um texto. O FALIBRAS e o SOTAC são sistemas desktop isolados de qualquer outro ambiente, que para serem utilizados exigiria que um usuário copiasse e colasse o texto em Português para ver sua tradução em LIBRAS, o que muitas vezes pode se tornar um impedimento para sua utilização. Já o Player Rybená é uma ferramenta web, que pode ser acoplada a qualquer página da Internet, porém não é distribuída de forma gratuita. Além disso, em todos os trabalhos encontrados não foi observada a possibilidade de interação entre as pessoas surdas e ouvintes e sim apenas uma forma de consultar, traduzir ou aprender a Língua Brasileira de Sinais. Dessa forma, as características desses sistemas não permitem que esses indivíduos acessem a informação e interajam com outras pessoas da mesma forma, sejam elas surdas ou ouvintes. No fórum construído, as formas de comunicação são: por mensagem de texto, sendo opcional traduzir a mensagem para LIBRAS; ou por mensagem em forma de vídeo, na qual o usuário surdo poderá gravar seu próprio vídeo, contendo a mensagem em LIBRAS e disponibilizar para todos os participantes do fórum. Essas estratégias de comunicação possibilitam a interação não apenas no sentido ouvinte/surdo, mas também no sentido surdo/ouvinte. Sendo assim, o principal diferencial desta ferramenta é ajudar no processo de inclusão social das pessoas portadoras de deficiência auditiva. 6.2 RETORNO PARA O GRUPO E TRABALHOS FUTUROS O desenvolvimento deste projeto teve como grande benefício o aprendizado para o complemento da grade acadêmica e profissional, pois foi possível aplicar uma gama considerável de conhecimentos adquiridos durante o curso, praticando as atividades de analista de sistemas e programador. Como trabalhos futuros, pretende-se aplicar este sistema no contexto de um Ambiente Virtual de Aprendizagem, para ser utilizado como uma ferramenta assíncrona, 84 com o objetivo de promover a interação dos usuários em uma comunidade virtual, sem diferenças. E como continuidade das pesquisas e desenvolvimento é possível adicionar posteriormente a funcionalidade inversa de tradução, ou seja, traduzir a mensagem em LIBRAS para a Língua Portuguesa. Além disso, pode-se ainda aperfeiçoar o modo de tradução que já existe, aplicando métodos de Processamento de Linguagem Natural (PLN) junto com o conceito de ontologias. Os métodos de Processamento de Linguagem Natural fornecem ao computador a capacidade de entender e compor textos. E “entender” um texto significa reconhecer o contexto, fazer análise léxica, sintática, semântica e morfológica, interpretar os sentidos e até aprender conceitos com os textos processados. Uma ontologia é um conjunto de termos ordenados hierarquicamente para descrever um domínio que pode ser usado como um esqueleto para uma base de conhecimentos. Dessa forma, ontologias fornecem um vocabulário para representação do conhecimento. Esse vocabulário tem por trás uma conceitualização que o sustenta, evitando assim interpretações ambíguas. Na tarefa de processar linguagem natural, o conhecimento do domínio é muito importante para uma compreensão coerente do texto. Esse conhecimento do domínio pode ser dado por meio de uma ontologia sobre o domínio de discurso do texto. Por fim, com o objetivo de analisar a viabilidade da ferramenta, deseja-se realizar uma série de testes com portadores de deficiência auditiva, correlacionando as funcionalidades do sistema em casos reais. 85 REFERÊNCIAS [1] LIBRAS. Língua Brasileira de Sinais. Disponível <http://www.libras.org.br/libras.php>. Acessado em: mar/2010. em: [2] TAVARES, O. L.; CORADINE, L. C.; BREDA, W. L. Falibras-mt. autoria de tradutores automáticos de textos do português para libras, na forma gestual animada: Uma abordagem com memória de tradução. XXV Congresso da Sociedade Brasileira de Computação, 2005. [3] SANTAROSA, L. M.; THEMIS, A. S. Telemática: Um novo canal de comunicação para deficientes auditivos. [S.l.]: Universidade Federal do Rio Grande do Sul, 2008. [4] LIMA, D. M. C. A. Educação infantil: Saberes e práticas da inclusão: Dificuldades de comunicação e sinalização: Surdez. 4. ed. [S.l.]: MEC, Secretaria do Estado de Educação do Distrito Federal, 2006. [5] GOMES, D.; NETO, V. L. Falibras e sign webmessage: Novas tecnlogias para tradução língua portuguesa-libras. 2o Simpósio Hipertexto e Tecnologias na Educação, 2008. [6] REDONDO, M. C. F.; CARVALHO, J. M. Deficiência Auditiva. [S.l.]: MEC, Secretaria de Educação a Distância, 2000. [7] IBM. Embedded ViaVoice. Disponível em: <http://www01.ibm.com/software/pervasive/embedded_viavoice>. Acessado em: abr/2010. [8] BRASIL, A. Acesso Brasil. Disponível em: <http://www.acessobrasil.org.br/libras>. Acessado em: abr/2010. [9] RYBENÁ. Player Rybená. Disponível em: <http://www.rybena.com.br>. Acessado em: abr/2010. [10] BREDA, W. L. Um ambiente para apoio à tradução baseado em conhecimento Estudo de caso com Português-LIBRAS. Dissertação (Mestrado) — Universidade Federal do Espírito Santo, 2008. [11] WIKIPÉDIA. Ambiente Virtual de Aprendizagem. Disponível em: <http://pt.wikipedia.org/wiki/Ambiente_virtual_de_aprendizagem>. Acessado em: out/2010. [12] MOODLE. Disponível em: <http://www.moodle.org.br>. Acessado em: out/2010. [13] TELEDUC. O que é TelEduc? Disponível <http://gentil.pbworks.com/f/CAPITULO_I.pdf>. Acessado em: out/2010. em: 86 [14] INES. Instituto Nacional de Educação dos Surdos - INES. Disponível em: <http://www.ines.gov.br>. Acessado em: out/2010. [15] WIKIPÉDIA. Língua Brasileira de Sinais. Disponível http://pt.wikipedia.org/wiki/Libras>. Acessado em: mar/2010. em: <URL: [16] ALMEIDA, E. O. C. Leitura e Surdez - Um estudo com adultos não oralizados. [S.l.]: Revinter, 2000. [17] BAEZA-YATES, R.; RIBEIRO-NETO, B. Modern Information Retrieval. 1. ed. New York: Addison-Wesley, 1998. [18] GEY, F. Models in Information Retrieval. [S.l.]: Tutorial Presented at the 19th ACM Conference on Research and Development in Information Retrieval (SIGIR), 1992. [19] CARDOSO, O. N. Recuperação de informação. Infocomp - Journal of Computer Science, 2009. [20] ORENGO, V. M.; HUYCK, C. A stemming algorithm for portuguese language. Symposium on String Processing and Information Retrieval, 2001. [21] HONRADO, A. A word stemming algorithm for spanish language. Symposium on String Processing and Information Retrieval, 2000. [22] VIERA, A. F. G.; VIRGIL, J. Uma revisão dos algoritmos de radicalização em língua portuguesa. Information Research, 2007. [23] PORTER, M. F. The Stemming Algorithm. Disponível <http://tartarus.org/ martin/PorterStemmer/def.txt>. Acessado em: out/2010. em: [24] ALVARES, R. V.; GARCIA, A. C. B.; FERRAZ, I. Stembr: A stemming algorithm for the brazilian portuguese language. Portuguese Conference on Artificial Intelligence, 2005. [25] JAVAFREE.ORG. Tutorial Java. Disponível <http://javafree.uol.com.br/artigo/871498>. Acessado em: out/2010. em: [26] WESTER, I. Linguagem Java. Disponível <http://www.infowester.com/lingjava.php>. Acessado em: out/2010. em: [27] SOFTWARE, T. Visual Programming Languages Popular. URL:. Acessado em: out/2010. [28] ORACLE. Java Technology. Disponível em: <http://www.oracle.com/us/technologies/java>. Acessado em: out/2010. Java EE at a Glance. [29] ORACLE. <http://www.oracle.com/technetwork/java/javaee/overview>. out/2010. Disponível Acessado [30] MICROSYSTEMS, S. Java EE Tutorial. Disponível <http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/Overview2.html>. Acessado out/2010. em: em: em: em: 87 [31] OLIVEIRA, A. de P. Apostila Servlet/JSP. [S.l.]: Universidade Federal de Viçosa Departamento de Informática, 2001. [32] DEITEL. Java Como programar. 6. ed. [S.l.]: Pearson Prentice Hall, 2005. [33] TEMPLE, A.; FERNANDES, R. JSP, Servlets e J2EE. [S.l.: s.n.], 2004. Plataforma Java. Disponível [34] WIKIPÉDIA. <http://pt.wikipedia.org/wiki/Plataforma_Java>. Acessado em: nov/2010. em: [35] COMMONS, A. Commons FileUpload. Disponível <http://commons.apache.org/fileupload>. Acessado em: nov/2010. em: [36] MYSQL. Conectividade Java ao MySQL. Disponível <http://dev.mysql.com/doc/refman/4.1/pt/java.html>. Acessado em: nov/2010. em: [37] ORACLE. Java Media Framework API (JMF). Disponível em: <http://www.oracle.com/technetwork/java/javase/tech/index-jsp-140239.html>. Acessado em: out/2010. [38] BEZERRA, E. Princípios de Análise e Projeto de Sistemas com UML. [S.l.]: Elsevier, 2006. [39] CORRÊA, E. Principais Vantagens do MySQL. <http://eduardocorrea.net/?p=156>. Acessado em: nov/2010. Disponível em: [40] MACORATTI.NET. Padrões de Projeto - O modelo MVC. Disponível em: <http://www.macoratti.net/vbn_mvc.htm>. Acessado em: nov/2010. [41] MICROSYSTEMS, S. Data Access Object. 2010. Disponível em: <http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html>. Acessado em: nov/2010. [42] WIKIPÉDIA. Modelo de Entidades e Relacionamentos. Disponível em: <http://pt.wikipedia.org/wiki/Modelo_de_Entidades_e_Relacionamentos>. Acessado em: nov/2010. [43] ROSSON, M.; CARROLL, J. Usability Engineering: Scenario-Based Development of Human Computer Interaction. [S.l.]: Morgan Kaufmann Publishers, 2002. 88 ANEXO A -- REGRAS DE REMOÇÃO DOS SUFIXOS Segue abaixo uma listagem das regras de remoção de sufixos de todos os passos do algoritmo RSLP descrito na seção 3.3.1.2.3 [20]. Regras para redução do plural Figura 47: Regras para redução do plural Regras para redução do feminino Figura 48: Regras para redução do feminino 89 Regras para redução adverbial Figura 49: Regras para redução adverbial Regras para redução aumentativo-diminutivo Figura 50: Regras para redução aumentativo-diminutivo Regras para redução nominal Figura 51: Regras para redução nominal parte I 90 Figura 52: Regras para redução nominal parte II Regras para remoção de vogais Figura 53: Regras para remoção de vogais 91 Regras para redução verbal Figura 54: Regras para redução verbal parte I 92 Figura 55: Regras para redução verbal parte II