Full text
Universidade do Minho Escola de Engenharia Angélica Matos de Freitas Conceção e Implementação de uma Plataforma Web para Acolhimento de um Metadicionário Março 2024
Universidade do Minho Escola de Engenharia Angélica Matos de Freitas Conceção e Implementação de uma Plataforma Web para Acolhimento de um Metadicionário Dissertação de Mestrado Mestrado de Engenharia Informática Dissertação orientada por Professor Orlando Manuel de Oliveira Belo e Professora Anabela Leal de Barros Março 2024
ii Direitos autorais e termos de uso para trabalhos de terceiros Esta dissertação reporta trabalhos académicos que podem ser utilizados por terceiros desde que os padrões e boas práticas, internacionalmente aceites, em matéria de direitos de autor e direitos conexos sejam respeitados. Esta obra poderá posteriormente ser utilizada nos termos estabelecidos na licença abaixo. Leitores que necessitem de condições de autorização não previstas no licenciamento indicado deverão contactar o autor através do RepositóriUM da Universidade do Minho . Licença concedida aos utilizadores nesta obra: CC BY https://creativecommons.org/licenses/by/4.0/
iii Agradecimentos Ayrton Senna, a determinada altura, disse: “Eu sou parte de uma equipe. Então, quando venço, não sou eu apenas quem vence. De certa forma termino o trabalho de um grupo enorme de pessoas”. Tal como ele refere, eu também faço parte de um grupo, que não posso deixar de mencionar e a que não posso deixar de prestar o meu agradecimento, pelo apoio inexcedível que me concederam ao longo do meu percurso académico. Quero destacar a colaboração dos meus professores Orlando Manuel de Oliveira Belo e Anabela Leal de Barros, pelo tempo dispensado e os conselhos assertivos, essenciais para a execução desta minha dissertação de mestrado. Também, um forte obrigado ao Rodrigo Pimentel, que esteve sempre presente em todo o processo, quer a nível pessoal, quer a nível profissional, incentivando, partilhando ideias e fazendo propostas, sendo por isso de realçar o seu gesto altruísta e solidário. Por fim, não posso esquecer-me de agradecer à Rosa Matos, João Freitas e à minha família e amigos, que são os pilares da minha existência e me dão força para continuar a cumprir os meus objetivos, pois sei que querem o melhor de mim, são eles os principais responsáveis pela pessoa que eu sou e tenho a certeza de que posso contar com eles nos momentos bons e nos mais difíceis.
iv Declaração de Integridade Declaro ter realizado este trabalho académico com integridade. Confirmo que não recorri a plágio ou qualquer forma de uso indevido de informações ou falsificação de resultados ao longo do processo que levou à sua elaboração. Declaro ainda que tomei pleno conhecimento do Código de Conduta Ética da Universidade do Minho. Universidade do Minho, Braga, março 2024 Angélica Matos de Freitas
v Resumo Nos dias de hoje é indubitável que os processos manuais têm sido preteridos em favor das novas tecnologias. A elaboração dos dicionários em versão informática, bem como os serviços que fornecem, em muito contribui para uma mudança profunda na sociedade. Os dicionários permitem ao utilizador obter informação de forma mais eficiente e em tempo real. Adicionalmente, e a título de exemplo, a informatização dos dicionários permite a existência de funcionalidades particulares, como a audição de verbetes ou a anexação de documentos relacionados com o verbete em questão, que não seriam possíveis através de processos manuais. Surge assim a necessidade de existência e disponibilidade de uma plataforma web para acolher conjuntos de dicionários heterogéneos. Neste âmbito, os principais objetivos deste projeto de dissertação são a conceção e implementação de uma plataforma Web para acolhimento de um metadicionário. Para o desenvolvimento deste sistema utilizamos diversas ferramentas, como, por exemplo, a linguagem Python, para tratar de todos os pedidos de manipulação de dados (informação), a framework VueJS, para a exibição do sistema, o sistema de gestão de base de dados mongoDB, para o armazenamento de dados da plataforma e o Flask, uma framework da Python, que realiza a ponte entre a aplicação Python e o sistema de dados mongoDB. Nesta dissertação contextualizaremos o problema em causa bem como os objetivos a atingir. De seguida, apresentaremos o sistema de meta dicionários implementado e apresentaremos os seus serviços. Por fim, como este trabalho se foca no âmbito linguístico chinês-português, serão apresentadas as principais diferenças e esforço adicional realizado de modo a conceber uma plataforma que acolha estas línguas. Posteriormente, focar-nos-emos no desenvolvimento da plataforma web, nomeadamente na forma como esta foi concebida e desenvolvida. Finalmente, refletiremos sobre todo o projeto, sobre o trabalho realizado até ao ponto atual e referir-nos-emos a possíveis ajustes futuros. Palavras-chave: Meta Dicionários, Dicionários, Dicionários Chinês-Português, Python, VueJS, MongoDB, Flask, Plataformas Web.
vi Abstract Nowadays, there is no doubt that modern technologies have been preferred in favour of manual processes. The creation of computerized dictionaries, as well as the services they provide, contributed to a profound change in society. Dictionaries allow the user to obtain information more efficiently and in real time. Additionally, and by way of example, the computerization of dictionaries allows for the existence of functionalities, such as listening to entries or attaching documents related to the entry in question, which would not be possible through manual processes. This arises the need for the existence and availability of a web platform to host sets of heterogeneous dictionaries. In this context, the main objectives of this dissertation project are the design and implementation of a Web platform to host a meta dictionary. To develop this system, we used several tools, such as, for example, the Python language, to handle all data (information) manipulation requests, the VueJS framework, to display the system, the database management system mongoDB data system, for storing the platform's data and Flask, a Python framework, which bridges the gap between the Python application and the mongoDB data system. In this dissertation, we will contextualize the problem in question and the objectives to be achieved. Next, we will present the implemented meta dictionary system and present its services. Finally, as this work focuses on the ChinesePortuguese linguistic scope, we will highlight the main differences and additional effort made to design a platform that accommodates these languages. Later, we will focus on the development of the web platform, on how it was conceived and developed. And finally, we will reflect on the entire project, the work conducted to date and potential future adjustments. Keywords: Meta Dictionaries, Dictionaries, Chinese-Portuguese Dictionaries, Python, VueJS, MongoDB, Flask, Web Platforms.
vi Conteúdo Índice Introdução __________________________________________________________________________ 1 1.1 Contextualização _________________________________________________________________ 1 1.2 Motivação _______________________________________________________________________ 2 1.3 Objetivos _______________________________________________________________________ 3 1.4 Estrutura da dissertação ______________________________________________________________ 4 Estado de Arte ________________________________________________________________________ 5 2.1 Tradução ________________________________________________________________________ 5 2.2 Evolução da tradução _________________________________________________________________ 5 2.3 A tradução automática ________________________________________________________________ 6 2.4 O contributo de Macau ________________________________________________________________ 7 2.5 Propostas para a tradução ______________________________________________________________ 7 2.5.1 Ferramentas CAT _____________________________________________________________ 7 2.5.2 Ferramentas de tradução automática _________________________________________________ 8 2.6 Dificuldades e desafios ________________________________________________________________ 9 Dicionários, Metadicionários e Sistemas ________________________________________________________ 10 3.1 Dicionários ____________________________________________________________________ 10 3.2 Metad icionários __________________________________________________________________ 12 3.3 Sistemas e Aplicações _______________________________________________________________ 15 3.3.1 Layers _________________________________________________________________ 15 3.3.2 Model-View-Controller _________________________________________________________ 17 3.3.3 Model-View-Presenter __________________________________________________________ 18 3.3.4 A Adoção de uma Arquitetura _________________________________________________ 20 Dicionário Multilingue ___________________________________________________________________ 21 4.1 Definição do problema ______________________________________________________________ 21
3 Em particular, é necessário considerar e validar traduções ambíguas, pois existem várias interpretações em relação à mesma palavra/símbolo. Ou seja, um verbete costuma incluir várias aceções ou significados, que se traduzem em termos diferentes na língua de chegada, ou equivalências, portanto, a tradução nunca é linear (Wen & van Heuven, 2017). 1.3 Objetivos Os trabalhos desta dissertação desenvolveram-se em torno da conceção e implementação de uma plataforma Web que fosse capaz de receber, analisar, enriquecer e explorar entradas de um metadicionário. Numa primeira fase foi implementado um sistema de dicionários, que foi desenvolvido com base numa recolha de propriedades e características que frequentemente são utilizadas em processos de pesquisa num dicionário ou através do diálogo com um especialista da área, tal como foi sugerido em (Artamonov, Kshnyakov, Danilova, Cherkasskiy, & Galin, 2018) . Nesta dissertação optámos pela última técnica referida. Para tal, recorreuse ao processamento de linguagem natural para recolher e processar as características do dicionário que queríamos trabalhar, características estas delineadas por um especialista no domínio, e, de seguida, procedemos ao seu armazenamento em estruturas de dados adequadas. Além disso, desenvolvemos de raiz uma base de dados orientada ao documento - uma document store - com o intuito de acolher a informação relacionada com o conteúdo e a configuração de um metadicionário (Barros, Guimarães, & Belo, 2016). C om isso, pretendeu-se criar um meio, mecanismos e estruturas, que fossem capazes de acolher dados atuais e entradas, ou lemas con temporâneos, desenvolvidos caso a caso, em verbetes completos. A base de dados ficou também preparada para acolher outros dados provenientes de várias fontes de informação antigas. Para que tal fosse possível, a plataforma Web foi preparada de forma a ser capaz de acolher (e relacionar) o conteúdo de diversas obras metalinguísticas de Joaquim Afonso Gonçalves, o maior sinólogo português do século XIX (Barros A. L., 2014), incluindo o conteúdo de dicionários de Português-Chinês e Chinês-Português, bem como gramáticas de Chinês-Português, obras em processo de edição ou reedição (Barros & Ng, 2014) (Barros & Ng, 2017). Complementarmente, a plataforma também foi munida com mecanismos capazes de armazenar obras lexicográficas e gramaticográficas de outros autores, em particular os padres, que do século XVI ao século XIX, aprenderam e ensinaram, em Macau e na China, o Chinês, em contraste com o Português, deixando várias obras manuscritas que, atualmente, se encontram em vias de edição e publicação (Barros A. L., 2015) (Barros, Ng, & Wang, 2021) . Porém, estas obras apenas poderão ser utilizadas devidamente quando a sua informação estiver conciliada numa única plataforma, a do Meta-dicionário.
4 Como sabemos, uma expressão idiomática ou palavra nem sempre tem uma tradução fixa. Por esta razão, foi importante preparar o sistema de forma que a sua informação fosse enriquecida com novos elementos de dados fornecidos pel os utilizadores relativos a uma ou mais entradas. Tendo isso em consideração, as ligações dos dicionários externos ao metadicionário foram enriquecidas, para que o sistema se tornasse mais eficiente e pudesse inter-relacionar as entradas dos dicionários armazenados na sua base de dados. 1.4 Estrutura da dissertação Para além do presente capítulo, este documento incorpora mais quatro capítulos, nomeadamente: • Capítulo 2 – Estado de arte, onde é abordada a complexidade da tradução, especialmente entre línguas distantes como o português e o mandarim. Destacam-se também as dificuldades históricas e culturais envolvidas, mencionando o primeiro dicionário português-chinês do século XVI e a evolução de dicionários até hoje. • Capítulo 3 – Dicionários, Meta-dicionários e Sistemas, no qual neste capítulo apresentamos os principais conceitos associados aos dicio nários, metadicionários, sistemas de acolhimento e suas aplicações, abordando alguns dos aspetos mais relevantes envolvidos com a sua construção e aplicação. • Capítulo 4 - Dicionário Multilingue, no qual explicamos o que são dicionários multilíngue, definindo-os e caracterizando-os , bem como apresentamos os serviços que as suas implementações computacionais integram . • Capítulo 5 - Implementação do Sistema, em que se apresenta a arquitetura geral do sistema e a forma como foi integrado um corpus de dicionários chinês-português. Além disso, apresentam-se também as diversas funcionalidades do sistema, incluindo a forma como se fez a gestão dos seus ficheiros e o seu fluxo de atividades. • Capítulo 6 - Conclusões e Trabalho Futuro, no qual se apresenta uma breve reflexão sobre o trabalho realizado nesta dissertação e se apontam algumas linhas de trabalho para futuro .
5 Capítulo 2 Estado de Arte 2.1 Tradução Num planeta de milhões de habitantes e muita complexidade, a linguagem humana é uma contínua aprendizagem que resulta da simbiose entre experiência e conhecimento. A tradução entre duas línguas, correlacionadas, deve por isso ser feita empiricamente, como defende Skinner e também pelo racionalismo, segundo Chomsky, seguindo uma estrutura e regras bem definidas. O objetivo da tradução é poder transmitir o significado exato das palavras numa língua diferente da sua, mas nem sempre o mesmo é possível. Os obstáculos são muito grandes, principalmente no caso de línguas orientais, nomeadamente o mandarim (Sproviero, 2016). Por razões históricas, a China esteve muitos séculos fechada ao exterior e, como tal, qualquer texto original é uma referência absoluta, já as traduções estão condicionadas e vão sendo realizadas lentamente ao longo destas últimas décadas. Adicionalmente, as dificuldades na tradução são imensas, pois aparecem obstáculos na passagem do discurso oral para o escrito e o significado de um termo pode seguir várias direções. Inclusive, muitos textos são entendidos pelos próprios chineses de forma diferente como afirma Hockett, passando a transcrever: “Bilingual dictionaries and easy word-by-word translations are inevitably misleading; the shortcut of asking what a form means must ultimately be supplemented by active participation in the life of the community that speaks the language. This, of course, is one of the major reasons why semantic analysis is so difficult” (Hockett, 1958). Regra geral, o tradutor (um indivíduo ou grupo) deve conhecer bem as duas línguas e entender o significado do que se está a traduzir. A tradução só será possível se ele for capaz de compreender a história e as peculiaridades sócio-culturais do povo chinês. Ora, a palavra ou termo traduzido deve ter o mesmo nível de dificuldade da composição original e deve obedecer a três normas: fidelidade, elegância e perfeito conhecimento. Seguir à risca essas normas, aumenta exponencialmente as dificuldades a tradução. 2.2 Evolução da tradução Focando-nos nos dicionários bilingue, qualquer dicionário que se cruza com o inglês é um sucesso garantido, pois tem como mais-valia a língua inglesa ser universal e haver mais capacidade financeira das editoras para investimento. No caso da língua portuguesa, como os dicionários online baseiam-se em dicionários já existentes, o trabalho fica mais complicado para o tradutor. O primeiro dicionário em papel de português-chinês ficou concluído no início da década de 1580. O manuscrito foi descoberto
6 em 1934 por Pasquale D'Elia, escritor e investigador jesuíta, nos Arquivos da Sociedade de Jesus, em Roma e não tem referências sobre o autor da obra. O dicionário era simples, com poucos termos e apenas se centrava na área da náuticageografia, na atividade comercial e no relacionamento político-diplomático (Cruz, 2018). A existência de dicionários até finais do século XX era escassa e o que havia, continha poucas palavras traduzidas. Foi então na primeira década do séc. XXI, que foi editado, verdadeiramente, o primeiro livro dicionário de português-chinês, da autoria de Carlos Botão Alves, professor na universidade de Macau, em parceria com a professora Leong Cheok I. O autor refere que as próximas edições serão feitas a seu tempo, pois afirma “é necessário continuar a alimentar o bicho”. Isto é, ir acrescentando mais termos e significados aos dicionários já existentes, enriquecendo ainda mais o conhecimento. Para a realização da obra, teve o contributo, no território de Macau, dos seus ex-alunos, tradutores, do Tribunal Superior, entre outros. Como contributo para fazer chegar o dicionário a um maior número de cidadãos, Carlos Botão Alves, propõe passar a edição em livro para CD-ROM, que contenha um programa próprio capaz de alterar automaticamente, com uma mínima margem de erro, os caracteres e termos o mais simplificado possível (Mota, Hoje Macau, 2018). Já numa vertente mais comercial, decorria o ano de 2010 quando foi lançado pela Porto Editora (Editora, s.d.) um dicionário bilingue em papel de português-chinês e chinês-português. Foi com base neste dicionário e após vários aperfeiçoamentos linguísticos feitos ao longo do tempo, que oito anos depois, em 2018, foi editado o primeiro dicionário online do português-chinês, que contou com o apoio e a autoria de Ana Cristina Alves, cuja revisão foi realizada por Sónia Ao Sio Heng. Doutorada em Filosofia da História e da cultura chinesa na Universidade de Lisboa em 2005, Ana Cristina Alves está atualmente a colaborar com várias instituições, como a Faculdade de Letras da Universidade de Lisboa e o Creative Learning Center. Os dicionários agora disponibilizados incluem mais de 25 mil entradas e exemplos e perto de 36.500 traduções. É de opinião geral dos vários autores atrás mencionados, que os dicionários estão ainda muito longe de estar concluídos. Estão a meio do processo, pois ainda existe um grande caminho a percorrer na tradução total do chinês-português (Hoje Macau, 2018). 2.3 A tradução automática Atualmente, existem sistemas online para tradução automática, que permitem converter textos diretamente de uma língua para outra. São ferramentas úteis quando se precisa de saber rapidamente o significado aproximado de um texto. Na tradução automática, o software procura frases idênticas às do original numa enorme base de dados e sugere aquelas que apresentam maior proximidade às frases originais. As sugestões propostas não podem ser verificadas e tampouco é possível confirmar se foram ou não escritas por um falante nativo. É, portanto, muito provável que essa tradução contenha erros gramaticais ou incorreções de sentido. Além disso, estes sistemas não garantem nenhum tipo de confidencialidade nem garantem qualidade. Por exemplo, para fazer as traduções que lhe são pedidas, o Google Translate utiliza textos que encontra na Internet e, por consequente, é comum ocorrerem erros, porque não compreendem sinónimos, apresentando, por vezes, palavras que podem significar coisas diferentes.
7 Assim só será viável trabalhar num dicionário bilingue e obter resultados objetivos e mais próximos da tradução. É necessário um bom conhecimento e experiência de forma a evitar a perda de credibilidade perante os consumidores, que, consequentemente, deixam de adquirir os seus produtos ou serviços. 2.4 O contributo de Macau Tendo por base a proposta-repto “Dicionário ‘online’ português-chinês ‘made in Macau’ procura voluntários para crescer”. Iao Kam Kong, lançou em meados de 2014, uma plataforma com o objetivo de abrir a base de dados do dicionário e o código de programa da página na Internet aos utilizadores que se interessem pelo desenvolvimento contínuo. O professor de português e tradutor de Macau lançou o “Dicionário Iao”, contando com quase 200 mil dados – mais de 90.000 entradas chinesas e mais de 100.000 portuguesas –, oferecendo definições de termos em português e em chinês (Lusa, 2016). Na procura de um termo em língua portuguesa, o portal vai ‘buscar’ o significado a uma série de outros ‘sites’ como ao Priberam (Priberam, 2023) ou ao Dicionário da Porto Editora (Editora, s.d.). Iao considera que o projeto pode continuar a desenvolver-se no sentido de até vir a dar um dia origem a uma aplicação de telemóvel. Inclusive, é sua intenção desenvolver uma base de dados áudio. No website é já possível ouvir a pronúncia de palavras, em português e em chinês, nomeadamente através da plataforma Forvo (Forvo, s.d.). Também não excluí a possibilidade de desenvolver um banco de imagens, com léxico de plantas e animais. 2.5 Propostas para a tradução São várias as propostas para a elaboração e tradução dos dicionários bilingue de português-chinês online e só com o empenho, dedicação e a colaboração do cidadão comum, tradutores, editoras e instituições de ensino tem será possível levar a bom porto a realização desse propósito. Atualmente, já é possível utilizar meios avançados para se realizar trabalhos de tradução, descritos de seguida. 2.5.1 Ferramentas CAT As ferramentas CAT, Computer-Aided Translation , são ferramentas de tradução que usam um software criado para auxiliar os tradutores na tarefa de adaptar textos de um idioma a outro e tornar esse processo mais rápido e eficiente. O principal objetivo é simplificar as tarefas repetitivas de consulta para o tradutor, pois possibilitam integrar num mesmo ambiente todo o tipo de informação, como glossários ou materiais de referência, agilizando o processo e facilitando a tarefa de busca e pesquisa dos tradutores. Com esta ferramenta é possível a segmentação em unidades de tradução, ou seja, as frases da língua original
8 aparecem alinhadas com as da língua de destino. Dessa forma, a visualização facilita o processo de revisão. Também usa memórias de tradução . Isto é, trata-se de um corpus bilíngue que salva as traduções anteriores para reutilizá-las em tarefas futuras. Assim, cria-se um armazenamento para cada par de idiomas que possibilita encontrar segmentos que já foram traduzidos e que podem ser reutilizados no novo trabalho. As ferramentas CAT, junto com as memórias de tradução, oferecem a possibilidade de preenchimento automático. Nesse caso, o software faz uma sugestão (automática) de segmentos que já estão incluídos na memória de tradução. A sugestão de segmentos dependerá da correspondência com o novo texto original, que pode ser exata ( exact match ) ou parcial ( fuzzy match ). 2.5.2 Ferramentas de tradução automática Em sentido oposto, temos as ferramentas de tradução automática ou Machine Translation , que apresentam um software baseado num sistema automatizado de tradução sem a intervenção humana. A diferença entre as ferramentas de tradução automática e as ferramentas CAT é que com a MT pode-se produzir uma tradução por conta própria, sem tradutores humanos. A MT utiliza três tipos de sistemas descritos de seguida (iDISC, s.d.). • Rule Based Machine (RBMT) - refere-se à tradução automática baseada em regras, com um mecanismo que traduz palavras e frases com base em regras pré-estabelecidas. • Statistical Machine Translation (SMT) - é a tradução automática estatística, ou seja, é um sistema que traduz a partir de uma análise de corpus bilíngues previamente inseridos. Este modelo de tradução automática subdivide-se em: o Modelo linguístico : responsável pela fluência da tradução e que se encarrega de verificar a probabilidade de a tradução estar correta na língua-alvo a partir de um corpus monolíngue. o Modelo de tradução : estabelece uma correspondência entre o idioma de origem e o idioma de chegada. Durante o desenvolvimento do motor de tradução, este modelo é responsável por construir um corpus de correspondência no nível da frase entre as duas línguas. o Modelo de descodificação : busca entre as múltiplas traduções possíveis qual é a mais provável para cada caso específico, com base nos modelos anteriores de linguagem e tradução. • Neural Machine Translation (NMT), apresenta um sistema que traduz segundo o que foi aprendido anteriormente e é capaz de prever o que está para vir. Esses sistemas trabalham com inteligência artificial e são capazes de imitar processos de tradução de frases completas e até mesmo de parágrafos. Um dos problemas que se coloca com a tradução automática é a necessidade da intervenção humana no processo de revisão, correção e aperfeiçoamento de um texto traduzido antes da sua edição. Isto porque a tradução automática recorre-se da inteligência artificial e como é do conhecimento geral a mesma garante, no máximo, 90 por cento de fiabilidade nas traduções. Já as ferramentas CAT são mais fiáveis. Segundo Gaspar Zhang, coordenador do Centro Pedagógico e Científico da Língua
9 Portuguesa do Instituto Politécnico de Macau, o maior desafio para garantir a fiabilidade da tradução, é a introdução de dados, porque só com informação de alta qualidade se conseguem traduções “sofisticadas”. O mesmo refere que “Nós alimentamos a máquina com os dados e a própria máquina pode aprender, digerir e juntar a informação. Ao aprender, a máquina está a melhorar a qualidade do seu próprio sistema” (Mota, Tradução Automática | Sistema desenvolvido pelo IPM utilizado em dez serviços públicos, 2019). Apesar de tudo, o sistema de tradução automática não representa uma ameaça aos profissionais de tradução, mas sim um auxílio precioso. Perante a sociedade atual, sociedade de mega-dados e IA, qualquer tradutor profissional tem de saber utilizar as tecnologias como apoio e saber dominar diversas ferramentas. 2.6 Dificuldades e desafios A introdução de novas propostas para melhoria de um dicionário bilingue carece sempre da mais estrita e colaboração entre pensadores, autores, tradutores, universidades e principalmente das editoras e dos seus programadores, pois são os principais responsáveis no financiamento dos novos projetos de tradução do português-chinês. Isto porque, qualquer livro, dicionário manual ou dicionário online só é produzido se houver interesse comercial. A partilha de informação entre editoras será sempre difícil, já que o segredo é alma do negócio. Acresce que os trabalhos desenvolvidos na área da tradução estão delimitados geograficamente ao território português e a de Macau. Os autores das obras de tradução do chinês-português reduzem-se a “meia dúzia” de pessoas em todo o mundo. Pelos fatos atrás mencionados resulta que, a realização de uma obra obriga, para além da pesquisa profunda dos trabalhos já existentes, a um grande esforço na sua concretização. A informação e as ferramentas anteriormente mencionadas para a tradução do português-chinês são fundamentais, mas infelizmente as mesmas só estão acessíveis a um número restrito de editoras.
10 Capítulo 3 Dicionários, Metadicionários e Sistemas 3.1 Dicionários Para um utilizador comum, um dicionário é tipicamente um livro de palavras escrito numa língua específica com a(s) sua(s) aceções ou definição(ões) aceite(s), classes gramaticais, pronúncia, ortografia e, em alguns casos, exemplos. Existem diversos tipos de dicionários e esse que atrás mencionamos é o dicionário monolingue, em que se usa o código linguístico para se explicar esse mesmo código, definindo as suas lexemas e oferecendo exemplos. Porém, o tipo mais conhecido e o mais relevante para este trabalho de dissertação é constituído pelos dicionários bilingues. Estes dicionários integram listas de palavras de uma dada língua e apresentam o seu equivalente numa outra língua. (Bergenholtz, 2012) . Porém, para um programador, um dicionário serve para armazenar dados através de uma coleção de pares, chave e valor. A chave, como próprio nome indica, é única, não pode ser nula e terá sempre associado um valor. Em Python, por exemplo, para fazer a construção de um dicionário, devemos atribuir a uma variável um objeto entre chavetas, que incluirá a referência à chave separada por dois pontos do seu valor, observado na Figura 1. Usualmente, a chave é colocada entre plicas. O valor pode ser qualquer tipo de dado, nomeadamente números, um objeto (que essencialmente é um conjunto de carateres, entre outros. A fim de separar cada par chave-valor, é necessário inserir uma vírgula entre os mesmos. De modo a esclarecer o mesmo, apresentamos um exemplo de um dicionário bilingue de uso (Python, 2021). Figura 1: Um pequeno exemplo de um dicionário retirado de (Drake, 2012)
11 Figura 2 : Um pequeno excerto de um dicionário retirado da Porto Editora (Editora, s.d.) Através do exemplo apresentado na Figura 2, é possível extrair um conjunto de dados bastante diversificados, que é comum a praticamente todos os dicionários. Nesse conjunto podemos incluir campos como a translineação da expressão a traduzir, a sua fonética ou a sua classe gramatical; se se trata de um substantivo, adjetivo, verbo, etc. (Alves, 2011). Numa mesma entrada, poderá estar incluído um ou mais equivalentes, também com a sua realização ou transcrição fonética e, possivelmente, contendo alguns exemplos relativos à entrada em causa. A apresentação de exemplos é muito importante, uma vez que ajudam a explicar o uso do termo em tradução, mostrando concretamente como a entrada pode ser aplicada, com uma dada sintaxe e num contexto específico. Além disso, os exemplos também enriquecem um dicionário em termos linguísticos e culturais, bem como, servem como registo de existência e evolução humana, uma vez que as línguas estão em constante crescimento (Hu, Xu, & Hao, 2019). Os serviços mais comuns que são prestados por dicionários online são a capacidade de reprodução de equivalentes, caso se trate de um dicionário bilingue ou aceções (dicionários monolingues) , permitindo ao utilizador conseguir uma melhor pronúncia, a apresentação de sinónimos e antónimos, que ajudam a diversificar o vocabulário pessoal, ou a gestão e edição da entrada em causa, para trabalhar a entrada, adaptando-a ou enriquecendo a sua definição, por exemplo. No tocante aos sinónimos, contudo, um bom dicionário monolingue apresenta-os numerados e com exemplos a seguir, para que se possa saber a que aceção se refere cada um. Já em um dicionário bilingue ou multilingue não se tratará de sinónimos, mas sim de aceções diferentes que vão exigir um equivalente distinto e um exemplo específico, para esse contexto diverso.
12 3.2 Metad icionários Os metadicionários são essencialmente dicionários aninhados, isto é, dicionários cujo conteúdo é um dicionário . Assim, a característica principal deste tipo de estrutura de dados é que tem de incorporar pelo menos um dicionário dentro do dicionário principal, formando assim um metadicionário. Especificamente e, neste caso, um conjunto heterogéneo de dicionários externos. Esta abordagem permite não só estruturar os nossos dados melhor (Nested List and Dictionary Basics, 2020), mas também uma pesquisa mais eficiente quando é necessário abordar múltiplos dicionários. Para tal, recorrer-se-á à utilização de nested dictionaries (dicionários aninhados), em que, para acedermos ao valor de uma propriedade, iremos trabalhar com tantas chaves quantos os níveis de aninhamento. Por este motivo, é importante definir com clareza e simplicidade os campos a englobar, uma vez que o metadicionário pode ficar demasiado complexo e acabar por ser ilegível, perdendo uma das suas qualidades originais: melhor estruturação de dados. Em termos do processo da construção de um metadicionário, a implementação não difere substancialmente da implementação de um dicionário simples, apenas, pelo menos uma das entradas de um dicionário tem de pertencer a outro dicionário. Nesta situação, o problema é a informação que está por trás da integração de dicionários, neste caso, externos. Apresento então, de seguida, um exemplo a fim de melhor compreensão de como construir um nested dictionary . E um esquema, de modo a consolidar o conteúdo anterior. Figura 3 : Exemplo nested dictionary , retirado de (Semwal, 2020)
19 • View -A camada responsável por representar todas as partes relativas à interface da aplicação (tal como na arquitetura Model-View-Controller ). Esta camada não deve tratar de regras de negócio, apenas de regras de apresentação visual. Qualquer interação do utilizador com esta camada deve ser passada à camada Presenter (Mishra, 2020) . • Presenter - Esta camada é o orquestrador da Aplicação, que é responsável por coligir todos os dados de que precisa da camada Model e utilizar a camada View para representar esses dados. Consoante a interação do utilizador com a camada View , a camada Presenter decide se tem de mudar os dados ou a camada visual. Este processo pode ser observado na Figura 7, que apresenta uma ilustração visual da arquitetura. A principal diferença entre este modelo e do Model-View-Controller é o maestro, digamos, da aplicação. Isto é, no ModelView-Presenter a responsabilidade da manipulação de dados é da camada View , que efetua pedidos ao Presenter , o qual, por sua vez, os transmite à camada Model. Como visto anteriormente, no Model-View-Controller o “cérebro” da aplicação é o Controller , que trata a informação dada pelo utilizador, cria uma interface apropriada e requer mais operações à camada Model (Baeldung, 2022). Devido à existência de relação one-to-one entre o Presenter e a Vista, pello facto de a View desconhecer a camada Modelo, a sua estrutura e o seu comportamento, este modelo consegue superar as desvantagens que o Model-View-Controller apresenta. Por estes motivos, este padrão não apresenta dependências fortes, obtendo uma melhor performance que o MVC , além disso, é mais simples realizar testes. Figura 7 : Ilustração da Arquitetura Model-View-Presenter , retirado de (Mishra, 2020)
20 3.3.4 A Adoção de uma Arquitetura Nas secções anteriores analisámos as arquiteturas mais comuns para sistemas de software Layers , Model View Controller e Model View Presenter , descrevendo as suas principais características, pontos vantajosos e aspetos menos desejados. Em primeiro lugar, foi estudada a arquitetura padrão Layers , que, apesar de ser de fácil implementação, não foi considerada a mais adequada para este projeto, devido aos seus constrangimentos em termos de desempenho, escalabilidade e deployment . De seguida, apresentámos a arquitetura Model-View-Controller , que responde de forma adequada a situações com as quais a arquitetura anterior não consegue lidar, nomeadamente a manutenção e o deployment da aplicação. Porém, ainda não apresenta a performance desejada . Posteriormente, observamos as características do padrão Model-View-Presenter . A principal diferença entre este padrão e o anterior verifica-se ao nível do controlo do fluxo da aplicação, que passa do Controller para a View . Por este motivo, este padrão não apresenta dependências, obtendo-se assim uma melhor performance. Deve-se salientar que estes não são os únicos padrões arquiteturais utilizados com mais frequência. Porém, tendo em conta o projeto e as observações realizadas, determinou-se que a melhor solução para a aplicação concebida seria seguir os conceitos de Model-View-Presenter .
21 Capítulo 3 Dicionário Multilingue 4.1 Definição do problema O chinês, mais concretamente o mandarim, é considerado uma das línguas mais difíceis de se aprender e com que trabalhar . O mandarim baseia-se em ideo gramas, pertencendo ao grupo das línguas sino-tibetanas, diferente das numerosas línguas da família indoeuropeia. Assim, o mandarim contrasta com as línguas românicas dessa mesma família indoeuropeia que têm origem no latim, como a língua portuguesa. O mandarim é um idioma com um número muito baixo de sílabas possíveis. As silabas só podem começar por 21 sons iniciais e acabar com 38, o que dá um total de 798, dos quais os Chineses apenas utilizam 400. Então, como se diferenciam as palavras quando o número de sílabas é tão baixo? Para o conseguirem os Chineses utilizam a entoação, distinguindo 4 tipos de tom. O primeiro tom começa alto e mantém-se alto. O segundo inicia-se em médio tom e depois sobe o mesmo. O terceiro começa baixo até chegar aos tons graves. E, por fim, o último inicia-se em tons mais agudos e depois desce abruptamente. Deste modo, estes tons fazem com que o número de sílabas passe de 400 para 1600. Isso faz com que seja difícil transpor as palavras para um dicionário, o que implica a necessidade de suporte à linguagem informática. Além disso, no mandarim não existe flexão de género e número, ou seja, plural ou singular, masculino ou feminino, e as conjugações verbais são limitadas: não se usam casos nem variações nos pronomes e os caracteres têm origens diferentes. Adicionalmente, existem pictogramas simples, pictogramas compostos e outros com base vagamente fonológica. Também, é de salientar que no mandarim se utilizam 60.000 “desenhos”, em vez das 25 a 35 letras que existem no alfabeto latino e indo-europeias, às quais estamos habituados, o que agrava ainda mais o problema da tradução manual (Maranhão, 2013).
22 A título de exemplo, a palavra “Vida” pode dizer-se/escrever-se de 15 maneiras diferentes em chinês (Figura 8) . Esta tão grande complexidade de composição ou articulação, faz com que a criação de um dicionário multilingue seja morosa e requeira a contribuição de vários agentes da sociedade, em estreita colaboração com as empresas na área da tradução. Figura 8 : As diferentes formas de escrever a palavra “vida” Por outro lado, as línguas estão em constante evolução e crescimento. Tal como o português sofreu e sofre alterações, o mesmo aconteceu e acontece com o chinês. Porém, a evolução do último foi mais radical. Atualmente, o chinês que a maioria da população utiliza é conhecido como Chinês Moderno. A versão anterior do chinês é usualmente referida por Chinês Clássico. De uma forma generalizada, a necessidade desta mudança surgiu mais fortemente quando a China, no final do século XIX, se encontrava em crise. Muitos Chineses questionavam-se se a complexidade da língua colocaria o seu país em desvantagem perante um mundo dominado pelo alfabeto Romano. Adicionalmente, e devido à dificuldade do Chinês Clássico, na população rural observava-se um elevado nível de analfabetismo. Colocavam-se questões como as seguintes: • ” Poderia a língua chinesa, com o seu difícil sistema de escrita, sobreviver?” • ” A própria civilização chinesa sobreviveria?” • ” Conseguirá a China alcançar grandeza em comparação a outros países powerhouse ?” Estas impunham-se cada vez mais, dando início ao processo de “atualização” do chinês para aquele que temos nos dias de hoje (Buruma, 2022). Como referido pelo famoso filósofo alemão Karl Marx, conhecido como o Pai do Comunismo,” History repeats itself, first as tragedy, second as farce” - isto é, a história repete-se a si própria, primeiramente como tragédia e de seguida, como uma farsa. Isto diz-nos que devemos aprender não só com os erros que cometemos, mas também com o passado. Muito deste
23 conhecimento foi derivado de artigos, documentos e livros em Chinês, mais especificamente do Chinês Clássico. A relação entre Chinês Moderno e Clássico levanta um problema: não existe uma ferramenta informatizada que facilite a correspondência das várias grafias das palavras, o que faz com que as pessoas recorram a métodos manuais e exaustivos. Assim, é necessário desenvolver ferramentas que permitam ultrapassar esses problemas. 4.2 Caracterização do Dicionário A caracterização de um dicionário é um ponto relevante para a aplicação, uma vez que o dicionário é o núcleo da própria aplicação. Os campos de informação que o dicionário precisa de considerar diferem de acordo com a língua com que estamos a trabalhar. Isto é, para certas línguas, poderemos ter de acrescentar campos de que uma outra língua não necessita, ou mesmo retirar informação que não seja pertinente no seu contexto. Por este motivo, um dicionário necessita de estar preparado para trabalhar com as especificidades de cada língua, contendo os diversos elementos de informação que cada uma das línguas exija. Por este motivo, o desenvolvimento ou a adição de outras línguas para além do português e do chinês, que são o foco principal deste projeto, serão mais simples, uma vez que a informação relativa a cada língua está armazenada num único sítio e, por sua vez, dependente . Para que isso seja possível, o dicionário principal terá subsecções incluindo dicionários independentes, correspondendo às diversas línguas, existindo a interação entre diferentes secções. Isto é, uma expressão existente numa língua pode ter um ou mais equivalentes numa outra língua qualquer. Assim, uma entrada no dicionário irá ter uma lista de expressões equivalentes. Adicionalmente, o sistema apresenta uma expressão do dia. Como o próprio nome indica, esta expressão terá um valor diferente cada dia. Assim, para armazenar a mesma será imprescindível haver uma secção no sistema com o intuito de apresentar a expressão do dia. Um dicionário multilingue é uma espécie de “animal” que tem de ser alimentado com verbos, frases modelo, divisão silábica, etc. É um instrumento que está em constante inovação e, como tal, é de extrema importância a colaboração de tradutores, professores, universidades e editoras, de forma a permitir que os dados introduzidos estejam corretos, o mais possível isentos de erros, e que correspondam à tradução efetiva da palavra. Além disso, todos esses dados devem sujeitar-se a uma verificação e teste, de forma a conseguirem-se resultados satisfatórios. Sucede que há várias formas de utilizar a língua chinesa. Porém, deve-se sempre considerar o feedback dos tradutores, porque é através deles que um indivíduo, sem um conhecimento profundo, considera algo como definitivo e inequívoco.
24 Fornecer equivalentes para uma língua como a chinesa é um procedimento complexo, pois para um determinado verbo, por exemplo, existem diferentes aceções e os correspondentes equivalentes que o mesmo pode ter em português. Para cada uma destes equivalentes estará numerado e acompanhado de frases modelo ou exemplos, com a respetiva tradução, de modo a realizar a ligação entre o que está em chinês e o que está em português. É de ressalvar que nenhuma frase pode deixar de ser uma frase natural numa das línguas, de forma a preservar a essência e o significado da mesma. Em termos práticos, o dicionário em questão deverá apresentar resultados de uma busca de termos. A pesquisa do português será feita não só com recurso a websites especializados, como por exemplo o Priberam (Priberam, 2023), ou o dicionário da Porto editora (Editora, s.d.), mas com feedback direto daquilo que o consumidor final quererá que apareça. Feedback trata-se da receção de informação relevante e/ou crítica a fim de melhorar desempenho, produtos, entre outros. Posteriormente, na secção Modelo Computacional, serão apresentados com mais detalhe todos os campos que foram implicitamente mencionados ao longo desta secção. 4.3 Serviços do Dicionário Na primeira versão deste projeto, o foco principal foi assegurar que eram fornecidos os serviços essenciais para gerir e lidar com um dicionário. Em termos de serviços que um utilizador comum terá, salienta-se a pesquisa de termos bilingues e não bilingues, a apresentação correta da informação, a criação de contas de utilização e a capacidade da realização fonética de expressões e palavras. Esta última característica é importante para que possamos ter conhecimento da forma como cada termo ou expressão são pronunciados. Além disso, é também uma ajuda para pessoas com incapacidades visuais. Todos os serviços mencionados para um utilizador comum, também estarão, obviamente, acessíveis a um administrador do sistema . Para tal, é essencial haver um serviço exclusivamente para administradores, o de criação de outras contas administradoras . Adicionalmente a estes serviços essenciais, foram introduzidos serviços que tornam este sistema mais completo. Esses serviços incorporam a realização de pedidos ao sistema, tanto para o utilizador comum como para um administrador, tendo para cada um deles objetivos e resultados diferentes. Um administrador tem sempre os serviços de que um utilizador comum dispõe. Um utilizador comum pode fazer um pedido de inserção de informação no sistema . Em contrapartida, um administrador consegue inserir essa informação diretamente e consegue também tratar da gestão de pedidos de utilizadores comuns, podendo assim aceitar ou recusar um pedido. Por outro lado, há um conjunto de serviços que foi necessário implementar de modo que as ações de um utilizador pudessem ser realizadas de forma correta e consistente. Para tal, no backoffice do sistema foi fundamental a realização de funções Create, Read, Update e Delete , mais conhecidas como CRUD , manipulando dados guardados na base. Uma função consiste em pedaços de código que efetuam lógicas e, dependo das mesmas, obtém-se um valor de retorno. Voltando às funções CRUD , as mesmas correspondem a processos de Criação, Leitura, Atualização e Remoção, respectivamente.
25 Assim foram realizadas essas operações para suportar os serviços de que os utilizadores usufruem. De seguida, referirnos-emos a cada tipo de operação e aos principais serviços nessas secções. • Create - Criação Começando pelas funções do tipo Create , algumas das presentes no sistema são a criação de verbetes não bilingues numa determinada língua e a criação de pedidos, isto é, quando um utilizador comum deseja inserir informação no sistema para um administrador posteriormente aprovar. Seria esperável que a criação de verbetes bilingues pertencesse a esta secção, mas o mesmo não acontece. A causa vai ser explicada no ponto Update . Para além destes serviços, há também a possibilidade de criação de contas normais e contas administrativas. Esta última é apenas permitida se o utilizador a que faz esta criação é também um administrador. • Read - Leitura De seguida, todos os processos de leitura tratam apenas de recolher informação para depois ser apre sentada aos utilizadores. Assim, tal como na criação de verbetes e pedidos, temos também os mesmos processos para a leitura. Ou seja, o sistema apresenta processos de leitura para verbetes bilingues e não bilingues. • Update - Atualização Para a Atualização, os métodos deste tipo tratam de atualizar secções de informação específica (mais conhecidas por campos) de um verbete ou atualizar a equivalência de um verbete. É por causa deste último método que a “criação de verbetes bilingues” se encontra nesta secção, uma vez que a operação de criar verbetes bilingues é nada mais que a atualização do campo de equivalências de um verbete. • Delete - Remoção Finalmente, todos os processos de remoção são apenas possíveis para administradores. É concebível, por exemplo, a remoção de verbetes não bilingues e remoção de pedidos de inserção de informação e ficheiros relacionados a estes pedidos que foram realizados por utilizadores comuns . Para além destas funções baseadas em CRUD , temos também o processo de efetuar login . Este é considerado para
26 alguns um processo de leitura, porém, a realização de login não segue o comportamento habitual que os métodos de leitura costumam seguir. Isto é, tipicamente, um processo de leitura recolhe uma informação e devolve a mesma . O login faz um pouco mais que isso. Primeiramente, este verifica que o utilizador introduzido existe. Se for o caso, verifica posteriormente se a hash da password introduzida corresponde à que está guardada no sistema e devolve um token . De seguida é esclarecido o que são tokens e hash’s . Normalmente, quando um utilizador entra num sistema, ao fazer login, todos os pedidos que são efetuados na aplicação são protegidos. Isto é, diante todos os pedidos que um utilizador efetue, o sistema precisa de verificar que o mesmo fez login . Para tal, e para evitar que o utilizador tenha de se identificar a cada pedido, o sistema devolve um token que indica se o utilizador está autenticado. Este token é guardado na cache do browser, até atingir o seu período de expiração. Depois deste período, o utilizador tem de se autenticar novamente. Por outro lado, uma hash de uma palavra-passe, ou hash value , é proveniente duma função típica denominada como hash . O que esta faz é devolver um valor hexadecimal conforme um algoritmo. Isto é, por exemplo, a palavra ”comer” terá diferentes valores hexadecimais se tiver algoritmos diferentes. Porém, irá retornar o mesmo valor se o algoritmo utilizado for o mesmo. Estes valores são, ao olho humano, valores que não fazem sentido, e daí serem utilizados para a implementação de segurança em aplicações. Quando inserimos as nossas credenciais num website , um pedido é feito ao sistema através de pacotes que tem a informação que introduzimos lá dentro (por exemplo, e-mail e password). Se estivermos perante um ataque malicioso, um indivíduo pode intercetar esse pacote e descobrir as nossas informações, o que poderá provocar uma série de eventos não desejados, como, por exemplo, acesso a contas de bancos, roubo de identidade de indivíduos, entre outros. Para tal, em vez de ser enviada a palavra-passe explícita nos pacotes, esta é inserida na função hash e é inserido o valor hexadecimal resultante no pacote, em vez do que foi inserido pelo utilizador. No sistema, também a password é guardada em hexadecimal. É por este motivo que tokens e hash’s são tão importantes nas aplicações nos dias de hoje. 4.4 Modelo Computacional da Base de Dados
27 Nesta secção será aprofundado em detalhe o modelo computacional da base de dados subjacente à criação e gestão do dicionário. Como referido anteriormente, o modelo integrará blocos contendo informação relevante para cada língua incorporada e para a palavra do dia. Na Figura 9 podemos ver uma ilustração do modelo do sistema . Como é possível observar, temos o bloco pt e zh, que correspondem respetivamente à secção na qual estão armazenados os dados da língua portuguesa e da chinesa. De modo a padronizar os modelos de dados relacionados com as línguas, foi criada uma lista de elementos que apresenta um conjunto de pares de valores, nome do país e língua que este utiliza, denominado Country Code Language List . O par também é conhecido por ISO Language Code e ISO Country Code e foram estabelecidos pela cláusula ISO-639 e ISO-3166, respetivamente (Fincher, 2022). Na tabela 2, são apresentados exemplos da lista referida. Figura 9 : Ilustração do modelo computacional do sistema de base de dados
28 Tabela 2 Exemplos de valores presentes na lista Country Code Language País Língua Código língua-país China Chinês zh-CN China Inglês en-CN Portugal Português pt-PT Neste caso, não é relevante para o sistema saber o país a que pertence a língua em questão . Portanto, de modo a nomear os blocos na base de dados foi apenas considerado o código da língua. Adicionalmente, é visível na figura, o bloco wotd . Como o projeto foi desenvolvido em Inglês, o nome deste bloco provém da expressão Inglesa word of the day , que se pode traduzir para ”palavra do dia”. Neste bloco, dia após dia, será armazenada uma nova palavra do dia. Para cada bloco na base de dados, e até à versão mais atual deste projeto, verifica-se um conjunto de dados que se repetem e que são comuns a todos os blocos. Ou seja, um conjunto de dados que é comum em todas as línguas. Na Tabela 3 apresenta-se a relação desses dados, juntamente com a sua descrição e um exemplo concreto de um possível valor. É de notar que estes dados foram determinados junto a especialistas desta área.
35 desenvolvimento do projeto. Em que medida foi realizada essa ajuda? A slugify (Slugify, 2022) é uma biblioteca que manipula a expressão introduzida na barra de pesquisa, realizando as seguintes ações: • Remove todos os carateres que não sejam alfa-numéricos, à exceção de hífenes e underscore (_) • Remove hífenes e underscores que estejam presentes no início e fim da expressão. • Converte espaços em hífenes. • Converte todos os carateres do lexema ou expressão, que passam para minúsculas.
36 Vejamos um exemplo. Suponhamos que temos uma expressão como a seguinte: ”uMA{COluNãº@”. O resultado dado pela slugify seria ”uma-coluna”. Este processo não só ajuda imenso a fazer a normalização de uma expressão, visto que retira o trabalho de realizar essa normalização, como também torna o processo de busca de verbetes mais simples. Isto porque apenas requer a procura da expressão resultante da slugify . Isto permite que os utilizadores tenham mais margem de erro quando inserem uma expressão numa barra de pesquisa. Porém, esta biblioteca, aparentemente, apenas funciona com línguas romanizadas. De salientar o aparentemente pois apenas foi testado com as línguas portuguesa, chinesa e inglesa. Assim, temos um obstáculo na integração de um corpus de dicionários chinês-português. Para atenuar tal circunstância , foi realizada uma verificação antecipada do input do utilizador para confirmar a língua da expressão pretendida. Caso a língua seja a chinesa, o sistema não compara a expressão introduzida com a expressão normalizada resultante do slugify. Assim, o sistema compara o input do utilizador com a expressão não normalizada armazenada na base de dados. Caso a língua seja outra que não a chinesa, o sistema procede à invocação da biblioteca slugify e compara a expressão normalizada resultante da slugify com a expressão normalizada na base de dados . Outra questão que teve de ser ponderada para a integração de um corpus de dicionários chinês-português foi a facilidade para um indivíduo ouvir um verbete, quer este fosse ou não bilingue. A principal questão a que um componente exterior teria de responder era se seria possível a audição de expressões chinesas, se a língua estava incorporada numa biblioteca. Para permitir isso utilizámos o SpeechSynthesis (SpeechSynthesis, 2023), uma ferramenta proveniente da linguagem de programação JavaScript , que foi utilizada para desenvolver a tela que o utilizador observa. Também é deveras importante que essa biblioteca seja suportada num leque amplo e extenso de browsers , como o Google Chrome, Firefox, ou Safari, entre outros.
37 Figura 12 : Compatibilidade funcionalidades SpeechSynthesis em diferentes browsers (Docs, s.d.) Na Figura 12 observamos que a biblioteca SppechSynthesis e as suas funções apresentam uma boa compatibilidade com os browsers mais utilizados: Chrome, Firefox, Safari, etc. O mesmo se verifica tanto em plataformas web como em plataformas móveis, à exceção da Opera Android e WebView Android. Assim, esta biblioteca foi considerada uma boa opção a implementar no sistema.
38 5.3 Atribuições de Funcionalidades De modo a integrar um espaço no qual a comunidade pudesse ajudar ao crescimento do conhecimento, foi necessário dividir as funcionalidades do sistema por cada tipo de utilizador. Isto é, um utilizador comum deve pedir permissão para introduzir conhecimento no sistema, porém é imprescindível que esse processo seja monitorizado por um administrador, para evitar possíveis inserções erradas ou maliciosas. Para controlar situações como essas e introduzir outras funcionalidades, foram criados dois perfis de utilização: o de administrador e o de utilizador comum. Na Tabela 5 estão apresentados os serviços e funcionalidades que cada um destes perfis pode realizar. É de salientar que, para além das funcionalidades que um administrador possui, terá também as funcionalidades que um utilizador comum apresenta. Tabela 5 Funcionalidades de cada perfil de utilização Comum Administrador Navegação no sistema Adicionar administradores Solicitar inserção de verbete Navegação no sistema Solicitar edição de verbete Inserção de verbetes direta Solicitar equivalentes de lemas Edição de verbete Inserção de equivalentes entre verbetes direta Remoção de verbete Esta separação de funcionalidades e a permissão de inserção de informação, previamente validada por administradores, permite que seja criada uma comunidade à volta do sistema, de forma que nos possamos ajudar mutuamente na obtenção de mais conhecimento. Assim, o projeto cresce mais facilmente e o mesmo fica mais fundamentado. Havendo esta interação, em que uma pessoa comum pode contribuir e fazer parte da evolução do sistema , não só esta se sentirá mais motivada como também se sentirá mais encorajada a utilizar a aplicação, devido ao sentimento de propósito que os utilizadores adquirem quando se sentem envolvidos (Bernardino, 2021). A causa da existência de admi nistradores, centra-se principalmente na possibilidade de inserção de informação errada ou maliciosa proveniente de utilizadores comuns. Um comportamento esperado, visto que tem sido registado um crescimento assinalável de crimes informáticos desde a pandemia (e o subsequente confinamento). Esse aumento tem vindo a verificar-se de modo consistente pelo menos desde 2016, de acordo com as autoridades portuguesas. (Gomes, 2021)
39 Por este motivo, o tipo de utilizador administrador foi concebido e terá um conjunto de funcionalidades adicionais, que um utilizador comum não tem, para efetuar essa validação de inserção de informação no sistema. Na secção Os Serviços do Sistema, iremos observar essas funcionalidades: uma página contendo uma lista de pedidos por aprovar, a página de validação de um pedido, entre outros. 5.4 Gestão de ficheiros Esta aplicação recorre à gestão de ficheiros de modo a guardar diversos tipos de documentos, especificamente na relação de equivalentes mútuos entre verbetes. Verificou-se a necessidade de armazenar ficheiros, de modo a colmatar a barreira de visualização de informação que não é representada pelos carateres fornecidos pelos computadores. Para tal, o utilizador pode fazer upload de qualquer tipo de documento, a fim de guardar ficheiros com esses carateres digitalmente no nosso sistema. A gestão de ficheiros não deve ser permitida a qualquer tipo de utilizador, devido à possibilidade de serem inseridos dados incorretos ou errados na base de dados do sistema. Por este motivo, apenas os administradores poderão inserir informação na aplicação sem qualquer verificação, o que inclui os ficheiros mencionados anteriormente. Todavia, como já referido, queremos que esta aplicação seja abrangente quanto à comunidade que a vai utilizar, portanto, esta funcionalidade será permitida a utilizadores comuns apenas indiretamente, e é aqui que a gestão de ficheiros se revela mais significativa. Para tal, quando um utilizador comum faz um pedido de inserção de equivalência entre expressões, o mesmo poderá tomar partido de realizar um pedido para inserir ficheiros. De seguida, esse pedido de introdução de informação irá aparecer na página de pedidos de um administrador, onde esse terá de o aprovar ou rejeitar. Devido à possibilidade de rejeição do pedido, os ficheiros que o utilizador comum remeteu não podem ter o mesmo estado nem localização de armazenamento daqueles que já foram aprovados e inseridos no sistema definitivamente. Deste modo, estes documentos estarão no local atribuído aos ficheiros que estão pendentes de aprovação. Caso o pedido seja aprovado, o ficheiro será então movido para o local de ficheiros definitivos do sistema e será removido do local onde se encontrava. Caso contrário, o mesmo apenas será removido do sistema.
40 Figura 13 : Gestão de ficheiros Através da Figura 12, conseguimos observar o processo previamente mencionado. Assim, os ficheiros que estão em via de aprovação encontram-se na subpasta static, contida na pasta “pedidos”. Os ficheiros definitivos, que já foram aprovados, encontram-se na pasta static , dentro da pasta “dicionários”. Com a existência de ficheiros no sistema surgem comportamentos que é imprescindível tratar e prevenir, como é o caso da inserção de ficheiros pesados. Ficheiros pesados podem afetar a performance da aplicação, tornando a navegação lenta. Por exemplo , imaginemos que um utilizador tenta inserir informação na base de dados que, do ponto de vista de um administrador, se apresenta correta, mas possui um tamanho elevado. Um administrador se não reparar neste aspeto, certamente aprovaria o pedido e o documento seria inserido na base dados. Este comportamento não tem um impacto negativo se for realizado apenas por um utilizador. Porém, não é possível prever a quantidade de vezes que este comportamento pode ocorrer. Portanto, é necessário limitar o tamanho de cada ficheiro, como também o total dos documentos que possam ser inseridos. O mesmo se pode observar no código que apresentamos de seguida.
41 1 2 3 4 5 Através do excerto de código, vemos que o sistema verifica primeiro se, na verdade, foram carregados ficheiros e, de seguida, que cada ficheiro não tenha mais de 1MB (linha 2). Além disso, o tamanho de todos os documentos carregados não pode exceder os 5MB (linha 4). 5.5 Os Serviços do Sistema De seguida, apresentaremos os diversos serviços fornecidos pelo sistema e revelaremos algumas das suas funcionalidades que porventura não tenham sido referidas anteriormente. Primeiramente, abordaremos o sistema desenvolvido - uma aplicação Web - apresentando e explicando cada um dos seus serviços e funcionalidades . Depois, revelaremos os dois processos de fluxos do sistema: o do utilizador comum e o do administrador do sistema. 5.5.1 Funcionalidades adicionais e comuns aos utilizadores O acesso à aplicação é realizado através da sua página de Login (Figura 14). Como é habitual neste tipo de acesso, o utilizador, para entrar na aplicação, precisa de apresentar as suas credenciais de acesso, que, neste caso, são o seu email e uma palavrapasse. Caso um utilizador ainda não tenha uma conta de acesso ao sistema, poderá fazer a sua criação através de uma página especificamente criada para esse efeito, a página de Sign up (Figura 15). Nesta página, para se credenciar, o utilizador precisa de introduzir o seu nome, email e uma palavra-passe, como é usual neste tipo de credenciação, bem como indicar a universidade e o departamento a que pertence . rules: [ files => !files || ! f i l e s . s o m e ( f i l e => file.size > 1 * 1024 * 1024) || 'O tamanho do ficheiro deve ser menor que 1 MB!', fileSizes => ! fileSizes || f i l eS i z e s . r e du c e (( s u m , file) => sum + file. size , 0) < 5 * 1024 * 1024 || 'O tamanho dos ficheiros devem ser menor que 5 MB!' ],
42 Figura 14 : Entrada na aplicação - Login
43 Figura 15 : Criação e caracterização de um utilizador - Sign up Ao longo da interação do utilizador com o sistema, podem ser emitidos vários alertas e avisos relativos às ações desencadeadas, melhorando assim a experiência do utilizador, o que é mais conhecido como User Experience . Por exemplo, se um utilizador apresentar um conjunto de credenciais de acesso inválidas, o sistema alerta-o e informa-o acerca da situação em causa. Na Figura 16, por exemplo, podemos ver um caso de um acesso que foi negado pelo sistema, sendo apresentada a devida explicação da situação em causa.
44 Figura 16 : Alerta do sistema para a apresentação de uma palavra-chave incorreta Através das Figuras 16 e 17, um utilizador é capaz de inferir que está a realizar comportamentos corretos ou corrigir Figura 17 : Alerta – Login : utilizador inexistente
51 Figura 25. A mesma apresenta as mesmas funcionalidades presentes nas páginas de verbetes não bilingues para cada verbete, à exceção da edição dos mesmos . Figura 25 : Página Verbete Bilingue Voltando à página principal, um utilizador comum poderá adicionar um verbete ou acrescentar um equivalente , criando assim um verbete bilingue. O primeiro serviço poderá ser observado na Figura 26. Como referido anteriormente, um utilizador não consegue inserir informação diretamente no sistema. Por esse mesmo motivo, temos um campo adicional no pop-up “Adicionar Verbete”, o campo de observações. Pressionando no botão Adicionar, o sistema vai guardar a informação que o utilizador introduziu como um pedido para um administrador aprovar. De seguida, temos o serviço de adição de tradução. O mesmo pode ser dividido em duas partes: seleção de línguas e Figura 26 : Página Adição verbete não bilingue: Utilizador Comum
52 seleção de verbetes. Começando pela primeira parte, o utilizador introduz as línguas dos verbetes em relação às quais pretende criar uma ligação, Figura 27. Figura 27 : Primeira Página Equivalência entre lemas? Depois de selecionar as línguas pretendidas, através do botão “Pesquisar”, será apresentada uma lista para cada língua com um conjunto de verbetes disponíveis para o utilizador selecionar. Tal como para os verbetes não bilingues, o formulário apresenta um campo para observações e ainda um campo onde podemos carregar ficheiros que achemos pertinentes no tocante à equivalência de lemas. Tal como é adicionado um pedido à lista de pedidos por aprovar na página de administradores na adição de verbetes não bilingues, o mesmo acontece na adição de equivalência entre verbetes. Figura 28 : Segunda Página Adição Tradução/Equivalência entre verbetes
53 5.5.3 Funcionalidades de um administrador Assim que um administrador realiza o login na aplicação, o mesmo será direcionado para a sua página principal, semelhante à página principal do utilizador comum. Existem, contudo, algumas diferenças entre essas páginas: os serviços “Adicionar Verbete” e “Adicionar Tradução” não se vão comportar da mesma forma, e temos dois serviços extra que os utilizadores comuns não têm. Esses serviços adicionais são identificados pelos botões no cabeçalho: “Criar Conta Admin” e “Pedidos”, Figura 29. Começando pelo serviço “Criar Conta Admin”, como o próprio nome indica, este tem como objetivo criar contas com poderes administrativos, ou seja, criar contas de administradores. Na Figura 30, conseguimos observar uma página semelhante à de sign up referida na secção 4.5.1, onde, como é claro, a diferença da mesma relativamente àquela é que a presente página tem a capacidade de criar contas administrativas. Figura 29 : Página Principal Administrador
54 Figura 30 : Página Criação de Administradores Passando para o serviço de pedidos, iremos, primeiramente, apresentar a página sem pedidos por verificar, visível na Figura 31 . Figura 31 : Página Lista de Pedidos s em pedidos por verificar - Administrador
55 Na Figura 32, podemos observar a lista de pedidos e informação principal de cada: o seu tipo, “Adicionar tradução” neste caso; o utilizador que efetuou o pedido; observações deste pedido; data em que este foi realizado e dois ícones. Estes últimos servem para remover o pedido ou para visualizá-lo. De modo a não sobrecarregar a visualização da lista de pedidos, é possível estabelecer a quantidade de pedidos a apresentar por página dinamicamente. Figura 32 : Página Administrativa de Pedidos Na página de pedido, um administrador poderá rever, editar e aprovar ou rejeitar o mesmo, como podemos ver pela Figura 33. Assim que o pedido for aceite, este será inserido definitivamente na base de dados. Caso contrário, o mesmo e todos os ficheiros associados ao pedido serão removidos permanentemente do sistema.
56 É boa prática, quando se desenvolve uma aplicação, que esta seja capaz de mostrar um alerta a confirmar que o utilizador quer de facto remover qualquer tipo de informação permanentemente. Assim, foi seguida essa prática, visível na Figura 34. Figura 34 : Página Rejeição de Pedido Figura 33 : Página Pedido Individual
57 Adicionalmente, as páginas de inserção de verbetes e verbetes bilingues diferem das mesmas do utilizador comum, já que nelas não é possível efetuar um pedido para inserir informação no sistema, a adição é direta, por isso o mesmo não terá uma secção em que se redijam observações. Finalmente, na página de verbete não bilingue, ao contrário do utilizador comum, um administrador poderá remover um verbete não bilingue, como podemos observar na Figura 35. Também o serviço de edição de verbete é direto, isto é, as mudanças efetuadas não precisam de ser aprovadas por um administrador. Figura 35 : Página Administrativa Verbete
58 Capítulo 5 Conclusões e Trabalho Futuro 6.1 Conclusões Os dicionários bilingues em português-chinês em formato digital, são uma ferramenta essencial para a aprendizagem e para o ensino. Devido à complexidade lexical e compreensão entre as duas línguas, e pelo facto de a recolha de informação se resumir a um número inferior de obras realizadas por pequenas editoras e investigadores das universidades luso-chinesas, torna-se essência delinear um projeto que consiga agregar o interesse do Estado, das empresas e da sociedade em geral, especialmente em formato digital. A solução proposta visa aproveitar a existência de vários dicionários online e manuais, alguns ainda em fase de edição a partir de manuscritos inéditos dos séculos XVI-XIX, fazendo diversas recolhas de informação, bem como a confrontação e verificação da informação contida nos mesmos. Assim, obtemos um dicionário mais amplo, completo e mais próximo do verdadeiro significado dos termos em chinês e português. Ao contrário do dicionário impresso, o dicionário online é um espaço aberto à inovação, que permite um crescimento de informação mais rápido e mais propenso a agregar diariamente novas palavras, equivalentes e definições. Apesar disto, os dicionários em português-chinês podem ficar aquém dos objetivos. Isto deve-se ao facto de o estudo e a compreensão do mandarim não permitirem uma definição clara da gramática, nomeadamente, das preposições, adjetivos, expressões e advérbios. Ou seja, a equivalência das palavras e expressões nem sempre oferece uma interpretação ou tradução direta. Adicionalmente, o dicionário português-chinês não é muito atrativo para as grandes editoras internacionais, visto que a maioria da população mundial, mais especificamente alunos e aprendizes, tem preferência em aderir ao inglês. Assim, esta secção no mundo da tradução torna-se menos vantajosa em termos de negócio. Para contrariar este inconveniente e potenciar o dicionário online de português-chinês é importante agregar esforços e chamar à responsabilidade das universidades, editoras e estados chinês e português. A criação de um dicionário exige muitos recursos financeiros, muitas horas de trabalho e dedicação. As vantagens de um dicionário deste género são óbvias, uma vez que as línguas em questão se encontram entre as mais faladas no mundo.
59 Tendo em conta o potencial de utilizar uma ferramenta de estudo com um alcance tão elevado e variado sob o ponto de vista do estudo, conhecimento e aplicação ao mercado de trabalho, como é o dicionário, pretendeu-se realçar que a tradução e estudo metalinguístico em português-chinês está em constante crescimento, havendo ainda muito espaço aberto à nova informação. Como foi demonstrado nesta dissertação, a indicação de equivalente ou tradução tem o seu expoente máximo na realização de um metadicionário. Para tal, é preciso perceber o significado de um metadicionário, a sua estrutura e quais os serviços oferecidos pelo mesmo. Na execução deste devem ter-se em conta os diversos tipos de equivalência existentes, total, parcial ou sem equivalente direto, mas com explicação ou perífrase. Feita a análise de soluções arquiteturais possíveis, optou-se por utilizar o padrão MVP. Posteriormente, observou-se a arquitetura geral do sistema e qual o fluxo que um pedido percorre para poder fornecer corretamente a informação que será apresentada ao utilizador. Desta forma conseguimos perceber melhor como funcionam e comunicam entre s as diversas componentes. Na integração de um corpus de dicionários chinês-português surgem sempre dúvidas e preocupações, nomeadamente na implementação do mesmo. Recorreu-se ainda a uma atribuição de funcionalidades dependendo do tipo de utilizador. À exceção de poucos serviços comuns, cada tipo de utilizador apresenta um leque de serviços ao qual tem direito. Por fim, é importante ter em conta a forma como funciona a gestão de ficheiros no sistema e perceber visualmente como são fornecidos os serviços do sistema. Assim será possível a apresentação de todas as páginas, componentes importantes, alertas e comportamentos relevantes através de figuras da aplicação web, que alertam para pormenores que poderão ter sido esquecidos.
60 6.2 Trabalho Futuro O trabalho realizado neste projeto de dissertação atendeu genericamente aos objetivos principais que foram delineados no início do seu desenvolvimento. Porém, e tal como acontece em outras áreas tecnológicas, as aplicações estão em constante evolução, por forma a acompanhar a evolução das organizações nas quais foram instaladas (Opensoft, 2021). O mesmo irá acontecer com este projeto, uma vez que alguns dos processos e serviços que foram implementados poderão sofrer alterações num futuro próximo, para a sua melhoria. Vejamos alguns casos em concreto . Em primeiro lugar, seria interessante melhorar o motor de busca de verbetes que foi implementado. De momento, foram utilizadas expressões regulares para a pesquisa de verbetes, apresentando a mesma uma lista de restrições: os carateres introduzidos pelo utilizador não podem ser nulos (vazios) e os carateres introduzidos têm de estar contidos, parcialmente ou na totalidade, na expressão do lema que está armazenado na base de dados. O motor de busca pode ser melhorado no aspeto em que o input é maior que uma correspondência. Isto é, por exemplo, digamos que o utilizador redigiu a palavra “alegremente” no motor de pesquisa, mas apenas temos a palavra “alegre” armazenada na base de dados. O resultado da pesquisa será vazio, porque “alegremente” não está contido na palavra “alegre”. Este comportamento tecnicamente não apresenta um constrangimento ou impedimento à utilização da aplicação, uma vez que “alegre” não é a palavra que o utilizador procurou. Porém, esta palavra podia ser apresentada, visto que “alegre” representa mais de 50% da expressão “alegremente”. De seguida, dado termos implementado uma base de dados orientada ao documento para suportar um dicionário, seria interessante apresentar um equivalente de uma expressão na totalidade na coleção de ambas as línguas. Cada coleção correspondente a uma língua tem um conjunto de verbetes. Cada verbete tem diversos tipos de informação. Neste caso, para armazenar os equivalentes associadas a um verbete, apenas é referido um identificador de verbete de outra coleção. Posteriormente, para saber as traduções com informação detalhada, será necessário buscar essa informação noutra coleção na base de dados, porque apenas temos o identificador guardado, quando podíamos ter guardado a informação na totalidade na secção de traduções. Apesar de este comportamento não seguir na totalidade as práticas de base de dados NoSQL, os dados não foram reestruturados, visto que não é um ato incorreto e não foi determinado urgente, devido ao progresso já efetuado até à data/este ponto. Porém, será relevante seguir as normas das bases de dados de documentos, uma vez que seria uma ajuda preciosa na performance da aplicação. O desempenho iria melhorar, uma vez que a retração de informação deixaria de fazer um pedido adicional para pesquisar a informação da tradução. Adicionalmente, será interessante prover o sistema com uma seleção pré-definida contendo informação selecionada sobre as universidades e seus departamentos, para que os utilizadores, no momento da criação do seu pedido de acesso, pudessem escolher, sem terem a necessidade de a identificar ou caracterizar. É muito provável que diferentes utilizadores caracterizem de forma diferente uma mesma universidade.