UNIVERSIDADE DO VALE DO ITAJAÍ
CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR
CURSO DE CIÊNCIA DA COMPUTAÇÃO
SapiSim
Um módulo para identificação de coautorias nas produções científicas do SAPI
por
Luis Fernando Balsini
Itajaí (SC), novembro de 2012
UNIVERSIDADE DO VALE DO ITAJAÍ
CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR
CURSO DE CIÊNCIA DA COMPUTAÇÃO
SapiSim
Um módulo para identificação de coautorias nas produções científicas do SAPI
Área de Sistema de Informação
por
Luis Fernando Balsini
Relatório apresentado à Banca Examinadora
do Trabalho Técnico-científico de Conclusão
do Curso de Ciência da Computação para
análise e aprovação.
Orientador: André Luís Alice Raabe, Dr
Itajaí (SC), novembro de 2012
RESUMO
Balsini, Luis Fernando. SapiSim. Um módulo para identificação de coautorias nas produções
científicas do SAPI. Itajaí, 2012. 104. Trabalho Técnico-científico de Conclusão de Curso
(Graduação em Ciência da Computação) – Centro de Ciências Tecnológicas da Terra e do
Mar, Universidade do Vale do Itajaí, Itajaí, 2012.
Este projeto tem como tema principal o desenvolvimento de um módulo de identificação de
coautorias nas produções científicas do SAPI 2.0. O SAPI é um sistema que gerência o
registro e a comprovação das produções científicas de uma instituição de ensino superior
fornecendo informações qualificadas para os gestores. O desenvolvimento do módulo
SapiSim é importante, pois o sistema SAPI apresenta redundâncias em relatórios de grupos. O
módulo SapiSim trará maior confiança nos resultados obtidos em relatórios conjuntos dos
escores dos docentes. As produções científicas são cadastradas no currículo Lattes e
importadas para o SAPI. O currículo Lattes gerencia uma base de dados sobre pesquisadores.
Ao cadastrar uma produção científica ocorre a inserção manual de atributos pelo docente,
podendo ocorrer erros de digitação. Por este motivo uma mesma produção pode ter diferentes
atributos o que dificulta com que sejam identificadas como sendo a mesma produção. Foi
realizada uma análise de métodos e técnicas utilizadas em outros trabalhos onde se pode
observar que as técnicas de tokenização, normalização e retirada de stopwords são
fundamentais para este trabalho e também a métrica de similaridade textual, a distância de
Levenshtein como sendo a melhor e mais confiável maneira de se determinar a similaridade
entre duas produções. As técnicas propostas foram implementadas em uma versão de testes do
sistema SAPI e foram conduzidos dois estudos de caso com docentes da UNIVALI. Os
resultados ilustram a conclusão da ferramenta alcançando o seu objetivo, de encontrar a
grande maioria das coautorias viabilizando a validade da abordagem e possibilitam que sua
implantação como novo módulo do sistema SAPI seja concretizada em um futuro próximo.
Palavras-chave: Tratamento de redundâncias. Tratamento da linguagem natural. Métrica de
similaridade textual.
ABSTRACT
This project has as main theme the development of an identification module authorships
scientific production in the SAPI 2.0. SAPI is a system that manages the registration and
verification of the scientific production of a higher education institution providing quality
information for managers. The module development is important because the system has
redundancies in SAPI group reports. The module SapiSim bring greater confidence in the
results obtained in joint reports of scores of teachers. The scientific products are registered in
the Lattes curriculum and imported into the SAPI. Curriculum Lattes manages a database of
researchers. When registering a scientific manual editing occurs by the teacher attributes,
typographical errors may occur. For this reason the same production run may have different
characteristics which makes them to be identified as being the same output. An analysis of
methods and techniques used in other studies where one can observe that the techniques of
tokenization, normalization and removal of stopwords are fundamental to this work and also
the textual similarity metric, the Levenshtein distance as the best and most reliable way to
determine the similarity between two productions. The proposed techniques were tested in the
software and two case studies with UNIVALI researchers were conducted showed. The
results illustrate the tool completes reaching your goal, to find the vast majority of coauthorships enabling the validity of the approach and enable their deployment as new SAPI
module system is implemented in the near future.
Keywords: Handling redundancies. Treatment of natural language. textual similarity metric
LISTA DE TABELAS
Tabela 1. Comparação de produções cientifica entre dois docentes. ....................................... 13
Tabela 2. Comparativo entre trabalhos pesquisados. ............................................................... 39
LISTA DE FIGURAS
Figura 1. Diagrama de integração de tecnologias SmartClient ................................................ 21
Figura 2. Modelo de Dados do SAPI 2.0 .................................................................................. 23
Figura 3. Matriz Distância de Levenshtein ............................................................................... 32
Figura 4. Passo a passo Distância de Levenshtein.................................................................... 32
Figura 5 Diagrama de Classe – Pacote Controle. ..................................................................... 50
Figura 6 Diagrama de Classes – Pacote Tratador. .................................................................... 52
Figura 7 Diagrama de classe – Pacote Similaridade................................................................. 54
Figura 8 Diagrama de classe – Pacote Modelo......................................................................... 55
Figura 9 Diagrama de Classe – Pacote Acessa Banco.............................................................. 56
Figura 10. Tela do sistema SAPI 2.0 – TEL001. ...................................................................... 61
Figura 11. Tela do sistema SAPI 2.0 – TEL001. ...................................................................... 61
Figura 12. Tela do Módulo SapiSim – TEL002 ....................................................................... 62
Figura 13. Tela do Módulo SapiSim – TEL002. ...................................................................... 63
Figura 14. Tela do Módulo SapiSim – TEL003. ...................................................................... 64
Figura 15. Tela do Módulo SapiSim – TEL003. ...................................................................... 65
Figura 16. Tela do Módulo SapiSim – TEL003. ...................................................................... 65
Figura 17. Tela do Módulo SapiSim – TEL003. ...................................................................... 66
Figura 18. Tela do sistema SAPI 2.0 – TEL001 ....................................................................... 66
Figura 19. Tela do Módulo do SapiSim – TEL004. ................................................................. 67
Figura 20. Tela do Módulo SapiSim – TEL004. ...................................................................... 68
Figura 21. Tela do Módulo do SapiSim – TEL005. ................................................................. 69
Figura 22. Resultado do estudo de caso 1. ............................................................................... 73
Figura 23. Resultado do estudo de caso 2. ............................................................................... 76
Figura 24. Diagrama de classe – Controle................................................................................ 87
Figura 25. Diagrama de classe – Pacote Tratador. ................................................................... 90
Figura 26. Diagrama de classe – Pacote Similaridade.............................................................. 94
Figura 27. Diagrama de classe – Pacote Modelo...................................................................... 97
Figura 28. Diagrama de classe – Pacote Acessa Banco. .......................................................... 99
LISTA DE QUADROS
Quadro 1.StopWords em português.......................................................................................... 26
Quadro 2. StopWords em inglês ............................................................................................... 27
Quadro 3. Algoritmo de Levenshtein em Java. ........................................................................ 84
Quadro 4. Algoritmo Cosine Similarity ................................................................................... 85
Quadro 5. Definição dos atributos da classe IdentificaCoautoria. ........................................... 88
Quadro 6. Descrição dos métodos da classe JPAIdentificaCoautoriaDAO. ............................ 89
Quadro 7. Descrição dos atributos da classe JPACommandDAO. .......................................... 89
Quadro 8. Descrição dos métodos da classe JPACommandDAO. ........................................... 89
Quadro 9. Descrição dos atributos da classe JPAStopWordsDAO .......................................... 90
Quadro 10. Descrição dos métodos da classe JPAStopWordsDAO ........................................ 91
Quadro 11. Descrição dos atributos da classe JPANormalizacaoDAO.................................... 91
Quadro 12. Descrição dos métodos da classe JPANormalizacaoDAO .................................... 91
Quadro 13. Descrição dos métodos da classe
JPANormalizacaoEStopWordsTrabalhosEmEventosDAO.............................................. 92
Quadro 14. Descrição dos métodos da classe
JPANormalizacaoEStopWordsProjetoDePesquisaDAO .................................................. 92
Quadro 15. Descrição dos métodos da classe JPANormalizacaoEStopWordsLivroDAO ....... 93
Quadro 16. Descrição dos métodos da classe
JPANormalizacaoEStopWordsCapituloDeLivroDAO ..................................................... 93
Quadro 17. Descrição dos métodos da classe JPANormalizacaoEStopWordsBancaDAO ...... 93
Quadro 18. Descrição dos métodos da classe
JPANormalizacaoEStopWordsArtigoPublicadoDAO...................................................... 94
Quadro 19. Descrição dos atributos da classe JPAFormulasSimilaridadeDAO ...................... 95
Quadro 20. Descrição dos métodos da classe JPAFormulasSimilaridadeDAO ....................... 96
Quadro 21. Descrição dos atributos da classe JPACalculoSimilaridadeDAO ......................... 96
Quadro 22. Descrição dos métodos da classe JPACalculoSimilaridadeDAO .......................... 96
Quadro 23. Descrição dos atributos da classe Copia ................................................................ 98
Quadro 24. Descrição dos métodos da classe Copia. ............................................................... 98
Quadro 25. Descrição dos métodos da classe JPAProducaoDAO. ........................................ 102
Quadro 26. Descrição dos atributos da classe Produção. ....................................................... 103
Quadro 27. Descrição dos métodos da classe Produção ......................................................... 104
Quadro 28. Descrição dos métodos da classe JPAAutomaticoMonitoriaDAO. ..................... 105
Quadro 29. Descrição dos atributos da classe AutMon. ......................................................... 105
Quadro 30 . Descrição dos métodos da classe AutMon. ........................................................ 106
Quadro 31. Algoritmo da Formula de Similaridade ............................................................... 109
Quadro 32. Algoritmo da Formula de Similaridade ............................................................... 110
LISTA DE EQUAÇÕES
Equação 1 ................................................................................................................................. 12
Equação 2 ................................................................................................................................. 29
Equação 3 ................................................................................................................................. 30
Equação 4 ................................................................................................................................. 32
Equação 5 ................................................................................................................................. 33
Equação 6 ................................................................................................................................. 35
Equação 7 ................................................................................................................................. 44
Equação 8 ................................................................................................................................. 44
Equação 9 ................................................................................................................................. 44
Equação 10 ............................................................................................................................... 45
Equação 11 ............................................................................................................................... 45
Equação 12 ............................................................................................................................... 45
LISTA DE ABREVIATURAS E SIGLAS
TTC
UNIVALI
SAPI
CNPq
XML
GPL
PUC-RS
PLN
UML
RIA
HTML
GUI
POJO
DAO
MVC
CRUD
HTTP
API
JSON
KDT
SGBD
KDD
MT
RI
URL
WEB
SRI
Trabalho Técnico-científico de Conclusão de Curso
Universidade do Vale do Itajaí
Sistema de Avaliação de Produção Institucional
Conselho Nacional de Desenvolvimento Científico e Tecnológico
Extensible Markup Language
General Public Licence
Pontíficia Universidade do Rio Grande do Sul
Processamento da Linguagem Natural
Unified Modeling Language
Rick Internet Application
Hyper Text Markup Language
Graphical User Interface
Plain Old Java Objects
Data Access Objects
Model-View-Controller
Create-Read-Update-Delete
HyperText Transfer Protocol
Application Programming Interface
JavaScrip Objetc Notation
Knowledge Discovered in Texts
Sistema de Grenciamento de Banco de Dados
Knowledge Discovered in Databases
Mineração de Texto
Recuperação de Informação
Uniform Resource Locator
World Wide Web
Sistema de Recuperação de Informação
SUMÁRIO
1 INTRODUÇÃO .................................................................................... 12
1.1 PROBLEMATIZAÇÃO .................................................................................. 13
1.1.1 Formulação do Problema ............................................................................. 13
1.1.2 Solução Proposta .......................................................................................... 14
1.2 OBJETIVOS ..................................................................................................... 15
1.2.1 Objetivo Geral .............................................................................................. 15
1.2.2 Objetivos Específicos .................................................................................... 15
1.3 METODOLOGIA ............................................................................................ 15
1.4 ESTRUTURA DO TRABALHO ..................................................................... 16
2 FUNDAMENTAÇÃO TEÓRICA ...................................................... 17
2.1 SISTEMA SAPI ................................................................................................ 17
2.1.1 Detalhamento da Versão 2.0 do SAPI ......................................................... 17
2.2 MINERAÇÃO DE TEXTO ............................................................................. 23
2.2.1 Processamento da Linguagem Natural (PLN) ............................................ 24
2.2.2 Retirada de StopWords................................................................................ 25
2.3 MODELOS DE RECUPERAÇÃO DE INFORMAÇÕES............................. 27
2.3.1 Modelo booleano........................................................................................... 28
2.3.2 Modelo da busca direta ................................................................................ 28
2.4 MEDIDAS BÁSICAS DE AVALIAÇÃO E EFICIÊNCIA DE
SISTEMAS ............................................................................................................. 29
2.4.1 Recordação ................................................................................................... 29
2.4.2 Precisão ......................................................................................................... 30
2.5 MÉTRICAS DE SIMILARIDADE TEXTUAL ............................................. 30
2.5.1 Distancia de Levenshtein ............................................................................. 31
2.5.2 Distância do Cosseno .................................................................................... 32
2.6 BIBLIOTECA SIMMETRICS ........................................................................ 34
2.7 ANÁLISE DE TRABALHOS SIMILARES ................................................... 36
2.7.1 ScriptLattes .................................................................................................. 36
2.7.2 Análise de Redes de Colaboração entre Pesquisadores .............................. 37
2.7.3 Análise das Áreas de Interesse dos Pesquisadores ..................................... 37
2.7.4 Remoção de ambiguidade das autorias de objetos bibliográficos .............. 38
3 DESENVOLVIMENTO ...................................................................... 41
3.1 DESCRIÇÃO GERAL DO SAPISIM ............................................................. 41
3.2 REQUISITOS FUNCIONAIS ......................................................................... 41
3.3 REQUISITOS NÃO FUNCIONAIS................................................................ 41
3.4 REGRAS DE NEGÓCIO ................................................................................. 42
3.5 CÁLCULO DA SIMILARIDADE .................................................................. 43
3.5.1 Formula de Similaridade ................................... Erro! Indicador não definido.
3.6 DIAGRAMAS DE CLASSES .......................................................................... 46
3.6.1 Pacote Controle ............................................................................................ 50
3.6.2 Pacote Tratador ............................................................................................ 51
3.6.3 Pacote Similaridade...................................................................................... 53
3.6.4 Pacote Modelo .............................................................................................. 55
3.6.5 Pacote Acessa Banco .................................................................................... 55
3.7 CASO DE USO ................................................................................................. 57
3.7.1 UC03 Confirmar / Rejeitar produções científicas ...................................... 57
3.8 TELAS DO MÓDULO SAPISIM ................................................................... 60
4 RESULTADOS ..................................................................................... 70
4.1 ESTUDO DE CASO 1 ...................................................................................... 71
4.2 ESTUDO DE CASO 2 ...................................................................................... 75
4.3 CONSIDERAÇÕES SOBRE OS ESTUDOS DE CASOS ............................. 77
5 CONCLUSÕES .................................................................................... 78
APÊNDICE A. ALGORITMOS DE MÉTRICAS DE
SIMILARIDADE ..................................................................................... 83
APÊNDICE B. DETALHAMENTO DE CLASSES ............................ 86
12
1 INTRODUÇÃO
Este trabalho propõe a criação de um novo módulo para o sistema SAPI – Sistema de
Avaliação da Produção Institucional. O SAPI gerência o registro e a comprovação das
produções científicas de uma instituição de ensino superior fornecendo informações
qualificadas para os gestores da instituição, poder tomar decisões acerca da produtividade
de seus docentes. O desenvolvimento do Sistema SAPI foi iniciado na UNIVALI no ano de
2002 e segue em constante aprimoramento.
O SAPI importa as produções dos docentes a partir dos currículos inseridos na
Plataforma LATTES e também a partir de produções inseridas diretamente pelos docentes
no sistema. A Plataforma Lattes é uma base de dados de currículos de pesquisadores e
instituições, das áreas de Ciência e Tecnologia, atuando no Brasil. O sistema de currículos
Lattes surgiu da necessidade do Conselho Nacional de Desenvolvimento Cientifico e
Tecnológico (CNPq) de gerenciar uma base de dados sobre pesquisadores em C&T para
credenciamento de orientadores no país. (PACIEVITCH, 2009). O SAPI avalia estas
produções e gera um escore. Este escore é um valor numérico que representa os critérios de
avaliação definidos pelos gestores da instituição (SAPI, 2011).
Com o desenvolvimento de uma nova versão do sistema SAPI em 2011, a
experiência pessoal do autor deste TTC, que atua como estagiário do sistema SAPI,
permitiu identificar uma necessidade nesta versão referente a identificação de produções de
docentes coautores.
A coautoria é um aspecto importante de ser identificado, pois poderá aprimorar os
resultados de análise de grupos de pesquisa e unidades institucionais (como cursos e
centros) que possuam coautores frequentes. Por exemplo, um relatório da produtividade dos
docentes de um curso sem considerar coautoria será a soma (união) de todas as produções
destes. Ao considerar a coautoria excluem-se desta soma as produções idênticas, ou seja, as
produções de docentes de um mesmo curso, que sejam coautoras serão retiradas desta soma,
(intersecção entre eles) consequentemente não ocorrendo redundância conforme ilustra a
Equação 1.
Pcurso  ( prodDocentes   coautoria)
Equação 1
Segundo Chalco e Junior, (2009), as produções acadêmicas são frequentemente
desenvolvidas por pesquisadores que pertencem ao mesmo grupo ou pesquisadores de fora
13
do grupo, mas que colaboram com o mesmo. Por exemplo, uma produção do tipo, artigo
completo em periódico às vezes pode possuir dois autores, caracterizando uma coautoria.
Por exemplo, as produções são cadastradas no currículo Lattes (CNPq) pelo docente
e capturada pelo SAPI por meio de um arquivo XML. As produções cadastradas possuem
vários atributos, e muitos deles são digitados, como (titulo do evento, nome do evento,
etc...).
O currículo Lattes, até o ano de 2012, não apresentava nenhum tipo de suporte para
identificar produções de coautoria, obrigando a realização do tratamento deste problema
dentro do próprio SAPI. Com isso o problema que está sendo abordado neste TTC está em
identificar a coautoria de produções presentes na base de dados do sistema SAPI 2.0
utilizando para isso a comparação dos atributos das produções dos currículos dos docentes.
1.1 PROBLEMATIZAÇÃO
1.1.1
Formulação do Problema
Na versão do SAPI 1.0, é realizada a identificação de coautorias, mas ocorrem erros
em sua identificação com resultados ainda distantes do ideal. Com o início do
desenvolvimento do SAPI 2.0 em 2011 surgiu a oportunidade de se tratar as redundâncias
entre produções coautoras de uma forma mais robusta.
O problema de identificação de coautorias tem como principal dificuldade a
comparação entre duas produções de dois docentes que ao inserirem-nas em seus currículos
Lattes o fazem com pequenas diferenças na forma de digitação. Um exemplo está ilustrado na
Tabela 1.
Tabela 1. Comparação de produções cientifica entre dois docentes.
Autor
Título
trabalho
Nome
Evento
do
do
André Luis Alice Raabe
Bipide: Ambiente de Desenvolvimento
Integrado
para
Utilização
dos
Processadores
BIP
no
Ensino
de
Programação
XX Simpósio Brasileiro de Informática na
Educação
Cesar Albenes Zeferino
Bipide: ambiente de desenvolvimento integrado
para utilização dos processadore BIP no ensino de
programação
SIMPÓSIO BRASILEIRO DE INFORMÁTICA NA
EDUCAÇÃO - SBIE 2009, 20.
Ao analisar a Tabela 1 verifica-se que ocorrer diferenças sutis de digitação, por
exemplo, letras (maiúsculas e minúsculas), erros ortográficos (Processadores e
processadore), a falta de símbolos e palavras (XX) ou sobra de palavras (- SBIE 2009, 20.).
14
Estas diferenças dificultam que as produções sejam identificadas como sendo a
mesma produção, dependendo de uma abordagem que utilize a similaridade textual e não a
exatidão.
1.1.2 Solução Proposta
A solução proposta é desenvolver um módulo de identificação de coautorias de
produções científicas presentes na base de dados do sistema SAPI 2.0, utilizando para isto,
uma combinação de regras heurísticas e métricas de similaridade textual para identificar
apenas casos de atributos idênticos entre produções, mas também caso de produções
similares.
Este problema já foi abordado no trabalho de Chalco e Junior, (2009), o qual detecta
produções similares através da comparação entre todas as produções acadêmicas presentes
em um conjunto de dados. As produções só são consideradas iguais, se a porcentagem de
similaridade entre elas for maior que a porcentagem definida pela ferramenta.
Ainda neste trabalho foi utilizada a similaridade entre dois strings baseando-se na
distância de Levenshtein (1966), a qual é obtida através do numero mínimo de operações,
inserções, eliminação ou substituição de caracteres necessários para transformar um texto
em outro, ou seja, na comparação entre dois strings similares, usando a distância de
Levenshtein (1966), sempre terá a strings que está analisando (mandante), e a strings
analisada, então o algoritmo de Levenshtein (1966), analisará a strings analisada tendo a
strings mandante como modelo, com o objetivo de descobrir caracteres que estejam faltando
(inserções) ou que existe caracteres a mais (eliminação) ou até mesmo caracteres que só
precisam ser substituídos (substituição) entre os dois strings com o objetivo da strings
analisada seja transformada na strings mandante, que para no final seja retornado o número
de operações realizadas que servirá para a realização de uma média que resultará na
similaridade entre estes dois strings.
Para a determinação da similaridade entre strings e redução do risco de erros na
realização do cálculo da similaridade, foi utilizada a biblioteca SimMetrics. Esta biblioteca
Java de licença livre GPL (Gereral Public License) implementa algoritmos de similaridade
entre strings, utiliza métricas e resultados normalizados, para facilitar comparações entre os
algoritmos.
15
1.2 OBJETIVOS
1.2.1 Objetivo Geral
Desenvolver um módulo para o sistema SAPI 2.0 que identifique coautorias entre
produções acadêmicas.
1.2.2 Objetivos Específicos
 Pesquisar e documentar conceitos relacionados à similaridade de atributos;
 Definir algoritmos de similaridade textual para comparação dos atributos;
 Definir heurísticas e regras para ponderar a similaridade entre os atributos das
produções;
 Testar e avaliar o módulo SapiSim no Sistema de Avaliação de Produção
Institucional (SAPI) da Universidade do Vale do Itajaí (UNIVALI).
1.3 METODOLOGIA
A etapa inicial do TTC foi o levantamento bibliográfico a análise de trabalhos
correlatos, buscando conhecer outras ferramentas com a finalidade similar que pudesse
auxiliar na definição de soluções para o módulo SapiSim. Além disso, foi apresentado o SAPI
e as tecnologias utilizadas em seu desenvolvimento como SmartClient, Hibernate e Padrões
de Projetos.
A segunda etapa foi à definição das heurísticas de similaridade que acabaram sendo
definidas utilizando a notação de regras de negócio que foram apresentadas no capítulo 3. Em
paralelo foram iniciados testes para apropriação das tecnologias utilizadas com o
desenvolvimento de pequenas aplicações de acesso a banco de dados.
A terceira etapa foi o estudo e implementação do módulo SapiSim integrado ao
SAPI. O módulo foi desenvolvido usando um branch no ciclo de desenvolvimento do SAPI
de forma que o código gerado pode ser integrado mais facilmente a versão do SAPI que se
encontra em uso.
16
A quarta etapa foi à realização de dois estudos de caso com docentes típicos usuários
do SAPI e que possuíam um bom número de coautorias. Para realização dos testes diversas
necessidades e aprimoramentos foram identificados e implementados no módulo SapiSim.
A quinta e última etapa foi à produção desta monografia integrando os resultados e
redigindo as conclusões do trabalho.
1.4 ESTRUTURA DO TRABALHO
Este documento está estruturado em cinco capítulos. O Capítulo 1, Introdução,
apresenta o problema, solução e objetivos deste trabalho. No Capítulo 2, Fundamentação
Teórica, é apresentada uma revisão bibliográfica sobre: Sistema SAPI 2.0, Mineração de
texto, Modelos de Recuperação de Informações, Medidas básicas de avaliação e eficiência de
sistemas, Algoritmos de similaridade textual, Biblioteca SimMetrics, assim como uma análise
de trabalhos similares.
O Capítulo 3 apresenta o desenvolvimento detalhado do sistema que foi
desenvolvido, incluindo sua especificação e a sua modelagem em UML. O capítulo também
discute como foi implementado o módulo, apresentando a metodologia que foi utilizada no
desenvolvimento.
No Capítulo 4, apresentam-se os resultados das análises dos estudos de casos, onde
são abordados os resultados finais, e para concluir no capítulo 5 são apresentadas as
conclusões. O texto ainda inclui dois apêndices que complementam os diagramas de classes.
17
2 FUNDAMENTAÇÃO TEÓRICA
Esta fundamentação teórica foi separada em seções que são as seguintes:
1. Sistema Sapi: Apresenta um detalhamento dos assuntos pertinentes para este
trabalho;
2. Mineração de texto: Apresenta técnicas de manipulação e tratamento de texto;
3. Modelos de Recuperação de texto: Apresenta os modelos de recuperação de texto,
mais pertinentes para este trabalho;
4. Medidas Básicas de Avaliação e Eficiência de Sistemas: Apresenta duas medidas,
Precision e Recall.
5. Métrica de similaridade textual: Relata a métrica de similaridade textual definida e a
descrição de seus algoritmos;
6. Biblioteca SimMetrics: Relata a biblioteca SimMetrics e seus métodos; e
7. Análise de Trabalhos similares: É feita a análise de trabalhos, que poderão ajudar
este TTC, com suas técnicas, com seus erros e acertos.
2.1 SISTEMA SAPI
SAPI – Sistema de Avaliação da Produção Institucional. O SAPI gerencia o registro
e a comprovação das produções de uma instituição de ensino superior fornecendo
informações qualificadas para os gestores de uma instituição poder tomar decisões acerca da
produtividade de docentes.
O SAPI importa as produções dos docentes a partir dos currículos inseridos na
Plataforma LATTES e também a partir de produções inseridas diretamente pelos docentes no
sistema. O SAPI avalia estas produções e gera um escore. Este escore é um valor numérico
que representa os critérios de avaliação definidos pelos gestores da instituição (SAPI, 2011).
Toda vez que novas produções são cadastradas no currículo Lattes (CNPq) pelo docente é
feito um pedido de atualização de produção para o SAPI e realizada a captura das mesmas por
meio de um arquivo XML.
2.1.1 Detalhamento da Versão 2.0 do SAPI
Serão detalhados a seguir os seguintes aspectos: Relatórios disponíveis, tecnologias
utilizadas, forma de armazenamento das produções e seus atributos.
18
2.1.1.1 Relatórios
O SAPI possui uma gama de relatórios de produtividade das produções dos docentes,
o qual é utilizado para tomadas de decisões administrativas. Os relatórios são utilizados para
publicar os escores dos docentes de uma forma organizada e estruturada. Os relatórios são
divididos em: (i) Produtividade Individual; (ii) Produtividade Conjunta; (iii) Produtividade de
Curso; (iv) Produtividade de Setor.
1. Relatório de Produtividade Individual: Este relatório permite a visualização do
escore de um docente, permitindo selecionar um único docente e visualizar a sua
pontuação;
2. Relatório de Produtividade Conjunta: Este relatório permite a visualização de dois ou
mais escores dos docentes e comparar as suas pontuações;
3. Relatório de Produtividade por Curso: Este relatório permite a visualização da
pontuação dos cursos selecionados no sistema SAPI, permitindo comparar seus
escores. A pontuação do curso é a soma da pontuação de todos os docentes lotados
no curso;
4. Relatório de Produtividade por Departamento: Este relatório permite um ou mais
departamentos/setores da instituição visualizar suas pontuações e compara-las. A
pontuação do departamento/setor é a soma da pontuação de todos os docentes lotados
no departamento/setor.
2.1.1.2 Tecnologias Utilizadas
Serão apresentadas a seguir as tecnologias utilizadas no sistema SAPI 2.0 tais como:
(i) SmartClient que é responsável por gerar a interface com o usuário do sistema SAPI 2.0; (ii)
Framework Hibernate que é responsável por realizar a persistência de objetos JAVA na base
de dados do sistema e (iii) Padrões de Projeto escritos em Java que foram utilizados para
realizar a abstração da comunicação entre o SmartClient e o Hibernate; e por fim (iv)
Integração das tecnologias do SAPI 2.0, que descreve sucintamente como elas se comunicam
entre si mesmas.
SmartClient
A ferramenta SmartClient é uma Rich Internet Application (RIA), ou seja, uma
permite construir aplicações Web com características e funcionalidades de software desktop,
19
transferindo todo o processamento da interface para o navegador da Internet e mantendo a
maior parte dos dados no servidor da aplicação.(SMARTCLIENT, 2012).
A ferramenta SmartClient realiza todas as suas funções e geração de Hyper Text
Markup Language (HTML)
no browser. Nenhuma geração de HTML ou função é
manipulada pelo servidor. Uma vez carregada apenas os dados são transmitidos entre o
navegador e o servidor. Ao minimizar a carga de recursos no servidor para atualização da
GUI, essa arquitetura aumenta a capacidade de resposta e escalabilidade. Ao minimizar a
quantidade de código no servidor, a arquitetura também melhore a estabilidade e a
confiabilidade. (SMARTCLIENT, 2012).
Hibernate
O Hibernate facilita o armazenamento e recuperação de objetos de domínio Java
através de mapeamento objeto/relacional. O Hibernate abstrai o domínio do problema através
do desenvolvimento de padrões de projetos. (HIBERNATE, 2012)
O Hibernate é uma coleção de projetos relacionados permitindo aos desenvolvedores
utilizar modelos Plain Old Java Objects (POJO) estilo de domínio em suas aplicações de
forma que se estendem muito além do mapeamento objeto/relacional. Atualmente o Hibernate
já é utilizado no SAPI versão 2.0 com o principal objetivo de realizar a persistência de objetos
Java na base de dados.
Padrões de Projeto
Um Padrão de Projeto de Software ou também conhecido pelo termo original em
inglês, Design Pattern, descreve uma solução geral reutilizável para um problema recorrente
no desenvolvimento de sistemas de software orientados a objetos. É uma descrição ou modelo
de como resolver o problema, que pode ser usada em muitas situações diferentes.
Os Padrões de Projeto normalmente definem as relações e interações entre as classes
ou objetos, sem especificar os detalhes das classes ou objetos envolvidos, ou seja, os padrões
de projeto realizam uma abstração do problema do qual o usuário deseja solucionar utilizando
apenas informações pertinentes para a tarefa, por exemplo, se o usuário deseja visualizar a
tela das suas produções, o sistema abstrairá o problema e passará apenas o nome da tela que
mostrará as produções. Os padrões de projeto geralmente pertencem a camadas mais altas de
abstração. (ALEXANDER, 1993).
Um padrão de projeto deve ter as seguintes características: (i) Encapsulamento; (ii)
Generalidade; (iii) Equilíbrio; (iv) Abstração; (v) Abertura; (vi) Combinatoriedade; (vii)
20
Nome; (viii) Exemplo; (ix) Contexto; (x) Problema; (xi) Solução. (ALEXANDER,1993). O
SAPI 2.0 utiliza os seguintes padrões de projeto: (i) Singleton; (ii) DAO; (iii) MVC; (iv)
Abstract Facture; (v) Lazy Initialization; (vi) Null Object.
Integração das tecnologias usadas no SAPI 2.0
Através de uma ação do usuário é acionado um DataSources que fornece uma API
independente de provedor de dados para SmartClient (componentes visuais), que permite
realizar as 4 operações CRUD (Criar, recuperar, atualizar e excluir). Os detalhes de
implementação, de como o DataSource recupera ou atualiza os dados é desconhecido para os
componentes SmartClient, para efeito disso os DataSource eles podem ser substituídos sem
afetar a interface do usuário. (ISOMORPHIC, 2012).
Existem duas abordagens principais para realizar a integração de DataSource com a
sua tecnologia. No lado servidor, recebe a requisição realizada pelo navegador em formato de
objeto Java, então esta requisição é processada e retorna a resposta para o navegador em
formato de objeto Java. (ISOMORPHIC, 2012).
Relatando outras formas de integração do lado cliente é dada por um DataSource que
recebe pedidos simples HTTP que o código do servidor recebe diretamente em Java e usa
uma API Servlet para mandar as requisições. As respostas são devolvidas em formato XML
ou JSON para gerar diretamente. As abordagens possíveis são resumidas no diagrama da
Figura 1.
21
Figura 1. Diagrama de integração de tecnologias SmartClient
Fonte: ISOMORPHIC (2012)
Os caminhos 2, 3 e 4 são abordagens do lado do cliente, que não são utilizados pelo
SAPI 2.0, o caminho 1 inclui todas as abordagens do lado do servidor de integração.
(ISOMORPHIC, 2012).
O usuário do SAPI 2.0 executa uma uma das quatro ações basicas na interface
SmartClient, por exemplo, listar as produções de um docente, então é acionado o arquivo
XML do DataSource que através do atributo serverConstructor, chama a classe que irá
chamar os métodos do CRUD, por exemplo, método Fetch (listar). Através do objeto
DSResponse é retornado a lista de produções de um docente que foram buscadas na base de
dados, através do Custom DataSource, nela é implementada os métodos CRUD, então é
retornado uma lista de objetos de produções do docente, estes objetos são transformados para
uma string JSON, que vão ser recebidos pelo arquivo XML, que interpreta e trata estes dados
e deixa-os no formato que a interface SmartClient possa lê-los e apresenta-los para o usuário.
2.1.1.3 Armazenamento das Produções e seus atributos
Como o foco deste trabalho está na análise de coautoria das produções, serão
detalhadas a seguir as partes do modelo de dados do SAPI 2.0 que se refere a estas
informações. As produções do SAPI 2.0 são separadas em três tabelas:
22
1. Tabela Produção: São reunidas as características mais comuns da produção, ou seja,
características que toda produção acadêmica terá, como ano da produção, data de
criação, status e tipo de produção. Ha duas categorias para as produções no SAPI;
2. Tabela Produções Lattes e tabela Produções Não Lattes: As produções Lattes
possuem atributos de produção, por exemplo, titulo, ano, âmbito, etc;
3. Tabela Atributo Produção: Guarda os atributos das Produções Lattes e Produções
Não Lattes. Os atributos seguem uma estrutura de tabela organizacional hierárquica
para os atributos das produções, para uma melhor análise e processamento;
4. Tabela Atributo Produção: É responsável por definir quais são os atributos dos tipos
de produções que vão ser visíveis para uma determinada produção;
5. Tabela Atributo Tipo Produção: Ela é responsável por reunir as características mais
comuns do atributo do tipo de produção, pois o nome do atributo é encontrado na
tabela Atributo;
6. Tabela Tipo Produção: Pois ela define quais são os tipos de produções, possuindo um
relacionamento com a tabela Produção demonstrando que para cada produção
cadastrada existe um tipo de produção relacionada a ela;
7. Tabela Atributo Tipo Produção Prod: Que é uma tabela fraca de ligação que
relaciona um atributo para cada tipo de produção;
8. Tabela Usuário: Os autores das produções cadastradas na tabela Produção são
referenciados na tabela Usuário, ela reúne todas as informações pertinentes para um
docente que realiza um relacionamento com a tabela Docente e juntamente com a
tabela Docente Produção que juntas identificam as produções pertencentes para um
determinado docente;
9. Tabela Grupo Usuário e tabela Grupo: Permite a criação de grupos de docente.
23
Figura 2. Modelo de Dados do SAPI 2.0
Fonte: SAPI versão 2.0 (2012).
2.2 MINERAÇÃO DE TEXTO
Para Barion e Lago (2008, p. 01), mineração de textos também é conhecida como
Descoberta de Conhecimento em Textos (Knowledge Discovered in Texts - KDT) refere-se
ao processo de extração de informação útil (conhecimento) em documentos de textos não
estruturados.
Barion e Lago (2008, p. 02), ainda complementam dizendo que apesar da evolução
dos Sistemas Gerenciadores de Banco de Dados (SGBD), os mesmos não possuem suporte
para tomadas de decisões, tornando-se impossível a extração de conhecimento útil. Muitas
técnicas foram desenvolvidas com o objetivo de auxiliar na extração de informação útil,
implícitas nas bases de dados, dando origem á chamada Descoberta de Conhecimento em
Banco de Dados (Knowledge Discovered in Databases - KDD).
Seguno Aranha (2007, p. 01), numa visão geral um processo de mineração de textos
contém quatro macros etapas:
1. Coleta: Tem por objetivo a coleta das informações que vão compor a base textual de
trabalho.
24
2. Pré-processamento: É responsável por obter uma representação estruturada dos
dados, geralmente no formato de uma tabela atributo-valor. Essa tabela atributo-valor
que representa os documentos tem como característica principal valores dispersos
dos dados e uma alta dimensionalidade. Essas características são inseparáveis de
problemas relacionados ao processo de mineração de texto (MT), pois cada palavra
presente nos documentos pode ser um possível elemento do conjunto de atributos
dessa tabela atributo-valor. Após os documentos serem organizados em um formato
adequado, é possível aplicar técnicas de extração de conhecimento utilizando
sistemas de mineração de dados ou se os documentos estiverem organizados num
formato de tabela atributo-valor, poderá ser aplicados métodos de recuperação da
informação (RI).
3. Indexação: Método de recuperação da informação (RI), para aumentar o desempenho
do processo de mineração de texto (MT).
4. Análise da informação: Descobrir padrões úteis e desconhecidos presentes nos
documentos.
A seguir serão apresentadas as seguintes seções: Sistemas de descoberta de
conhecimento em textos e Processamento de linguagem natural (PLN).
2.2.1 Processamento da Linguagem Natural (PLN)
“O Processamento de Linguagem Natural (PLN) é um campo da ciência que abrange
um conjunto de métodos formais para analisar textos e gerar frases em um idioma humano”.
(ARANHA, 2007, p.01).
As duas técnicas de processamento da linguagem natural apresentadas a seguir:
tokenização e normalização, são fundamentais para este trabalho, pois elas informam como
poderá ser feita a manipulação e tratamento de textos para a resolução do problema.
2.2.1.1 Tokenização
Para Aranha (2007, p.05), a tokenização é a primeira parte da etapa de préprocessamento de um texto. Nele, o texto é representado por uma sequência de caracteres
agrupados em um primeiro nível, podendo ser interrompida por caracteres primitivos por
exemplo, espaço em branco (“ ”), virgula (,), ponto (.), etc.
Aranha (2007, p.05) relata que cada grupo de caractere definido no primeiro nível é
chamado de token. A sequência desses grupos, por sua vez, é chamada de tokenstream.
25
Considerando uma nova análise, os grupos de caracteres já definidos na primeira parte, como
os delimitadores se tornam tokens, o único caractere descartado é o espaço em branco.
Vejamos um exemplo de tokenização, de como ficaria a disposição das palavras de
uma frase, cada palavra ou caracter dentro de colchetes significa um token. É apresentada a
seguinte frase :
“O jogador, que está de camisa verde, marcou o gol da vitória”.
“[O] [jogador] [,] [que] [está] [de] [camisa] [verde] [,] [marcou] [o] [gol] [da]
[vitória] [.]”. (ARANHA, 2007, p.06).
Segundo Aranha (2007, p.06), o resultado deste processo é uma sequencia de
palavras intercaladas por espaço e algumas vezes por símbolos delimitadores. Apenas com
esse processo de tokenização já é possível aplicar o processo de indexação para recuperação
de informações.
Dessa forma podemos separar as palavras de maior significado da frase e analisá-las,
com isto podemos ter um ganho em desempenho não analisando palavras de pouco
significado na frase.
2.2.1.2 Normalização
Segundo Aranha (2007, p.06), é uma técnica para eliminar as diversas representações
de um mesmo conceito. Por exemplo, a palavra “livro” e “livros” (plural), ou LIVRO e livro
(maiúscula e minuscula), ou análise e ANALISE (maiúscula e minúscula e sem acento e com
acento). O processo de normalização propõe que estas duas formas sejam agrupadas,
indicando para a análise elas tenham o mesmo significado. A normalização é uma
aproximação de conceitos, ou seja, os lexemas (sequencia de caracteres que pode conter
qualquer caractere incluindo o espaço (“ ”).
2.2.2 Retirada de StopWords
Wives (2002, p.52), cita que existem palavras presentes em um texto que é utilizado
com objetivo de conectar as frases. Essas pertencem a classes de palavras cuja finalidade é
auxiliar a estruturação da linguagem (conjunções, preposições, artigos, advérbios), não
necessita ser incluídas na estrutura de um texto.
Segundo Korfhage (1997 apud WIVES, 2002, p.53),
Todas essas palavras, consideradas sem valor para a busca, devido a sua natureza
frequênte ou semântica são denominadas palavras negativas (ou stopwords). Essas
palavras dificilmente são utilizadas em uma consulta, pois sua indexação somente
tornaria o índice maior do que o necessário.
26
Weber (2005), cita exemplos de palavras da língua portuguesa como artigos e
preposições, por exemplo, “um”, ”uma”, “desde”, “de”, etc. As stoplists são listas de
stopwords, e existem padrões para os principais idiomas, por exemplo, no Quadro 1 e Quadro
2.
A
à
agora
ainda
alguém
algum
alguma
algumas
alguns
ampla
amplas
amplo
amplos
ante
antes
da
daquele
daqueles
fosse
fossem
grande
grandes
há
isso
isto
já
la
la
lá
lhe
muitas
tenha
ter
teu
teus
ti
todo
ao
aos
após
aquela
aquelas
aquele
aqueles
aquilo
as
até
através
cada
coisa
coisas
com
como
contra
contudo
lhes
lo
mas
me
mesma
mesmas
mesmo
mesmos
meu
meus
minha
minhas
muita
tido
tinha
tinham
toda
todas
vir
das
de
dela
delas
dele
deles
depois
dessa
dessas
desse
desses
desta
destas
deste
deste
destes
deve
devem
muito
muitos
na
não
nas
nem
nenhum
nessa
nessas
nesta
nestas
ninguém
no
todos
tu
tua
tuas
tudo
vos
Quadro 1.StopWords em português
Fonte: Stanley (2008)
devendo
dever
deverá
deverão
deveria
deveriam
devia
deviam
disse
disso
disto
dito
diz
dizem
do
dos
e
é
nos
nós
nossa
nossas
nosso
nossos
num
numa
nunca
o
os
ou
outra
últimas
último
últimos
um
última
vós
ela
elas
ele
eles
em
enquanto
entre
era
essa
essas
esse
esses
esta
está
estamos
estão
estas
estava
outras
outro
outros
para
pela
pelas
pelo
pelos
pequena
pequenas
pequeno
pequenos
per
últimas
último
últimos
um
todavia
vindo
estavam
estávamos
este
estes
estou
eu
fazendo
fazer
feita
feitas
feito
feitos
foi
for
foram
perante
pode
pôde
podendo
poder
poderia
poderiam
podia
podiam
pois
por
porém
porque
posso
pouca
poucas
uma
umas
uns
vendo
ver
vez
pouco
poucos
primeiro
primeiros
própria
próprias
próprio
próprios
quais
qual
quando
quanto
quantos
que
quem
são
se
seja
sejam
sem
sempre
sendo
será
serão
seu
seus
si
sido
só
sob
sobre
sua
suas
talvez
também
tampouco
te
tem
tendo
27
behind
being
below
besides
better
between
beyond
both
but
by
can
certain
could
do
does
during
each
else
enough
even
ever
few
for
from
further
get
going
got
great
has
have
he
her
here
high
his
how
however
i
if
in
instead
into
is
it
its
itself
just
later
least
less
less
let
little
many
may
maybe
me
might
more
most
much
must
neither
never
new
no
non
nor
not
nothing
of
off
often
old
on
once
one
only
or
other
our
out
over
perhaps
put
rather
really
set
several
she
should
since
snot
snt
so
some
something
sometimes
soon
still
such
t
than
that
the
their
them
then
there
therefore
these
they
thing
this
those
though
three
through
till
to
together
too
toward
towards
two
under
up
upon
us
very
very
was
were
what
when
where
whether
which
while
whole
whose
will
with
within
without
would
yet
you
your
Quadro 2. StopWords em inglês
Fonte: Stanley (2008)
2.3 MODELOS DE RECUPERAÇÃO DE INFORMAÇÕES
“Recuperação de informação é uma subárea da ciência da computação que estuda o
armazenamento e recuperação automática de documentos, que são objetos de dados,
geralmente textos.” (CARDOSO, 2005, p. 01). Um sistema de Recuperação de Informação
pode ser também chamado de (SRI).
Segundo Wives (2002), o texto é composto por palavras que são consideradas os
atributos dos textos, e elas que distinguem um texto de outro. O casamento textual é feito por
palavras, e com isso a verificação de texto relevante é feita a se retornar documentos
semelhantes.
28
Segundo Chen (1994 apud WEBER, 2005), a comparação de palavras em
documentos nem sempre retorna um grau de similaridade aceitável, recuperando assim
objetos dos mais diversos conteúdos. A seguir é apresentado o modelo conceitual booleano de
recuperação de informação.
2.3.1 Modelo booleano
O modelo conceitual booleano segundo Rijsbergen (1979 apud WIVES, 2002, p.37),
considera os documentos como sendo conjuntos de palavras e possui esse nome por manipular
e descrever esses conjuntos através de conectivos de boole (and, or e not). As expressões
booleanas unem descrevem intersecções e retiram partes de um conjunto.
Por exemplo, segundo Wives (2002, p.38), em um sistema de comparação de
palavras (elementos), o sistema analisa o texto (conjunto) em questão retornando um conjunto
resultante. Assim o texto que possui interseção com o outro texto (mesmas palavras) é
retornado.
Wives (2002, p.38), cita que existe uma série de operadores que o sistema pode
utilizar para definir sua análise. Os operadores mais comuns são o “and” (união), “or”
(interseção) e o “not” (exclusão ou negação). Neste caso, o modelo pode ser compreendido de
outra forma, onde o conjunto de textos relevantes à análise é o conjunto de textos que satisfaz
as restrições especificadas na análise.
Um problema do modelo booleano segundo Wives (2002, p.38) é ele não ser capaz
de identificar a importância de um termo em um texto, ou seja, se um termo está presente em
um documento ele é considerado muito importante. Porém, o fato de uma palavra constar em
um documento não significa que ela seja significativamente importante para o texto.
Wives (2002, p.38) ainda cita que palavras são utilizadas para ligar frases
(conjunções) que não são relevantes para análise de texto, ao contrario existe palavras que dão
sentido ao texto e que são extremamente importantes (palavras em títulos, por exemplo). O
modelo booleano não leva em conta nenhum destes casos, considerando relevantes os textos
que possuem as mesmas palavras.
2.3.2 Modelo da busca direta
O modelo de busca direta é denominado modelo de busca de padrões e utiliza
métodos de busca de termos ou expressões regulares para localizar palavras relevantes em um
texto. A análise de comparação é realizada diretamente nos textos originais, em tempo de
execução onde o resultado é a localização de todas as palavras relevantes. (WIVES, 2002)
29
Segundo (FRAKES, 1992 apud WIVES, 2002) esta técnica é chamada de string
search e ela é usada em casos onde a quantidade de texto a ser analisado é pequena, segundo
Wives (2002) não a necessidade de utilização de índices e etapas de normalização, mesmo
tendo o tempo compensado nas análises de texto que se tornam mais rápidas. Ela é utilizada,
por exemplo, em softwares que se possam localizar palavras ou expressões no texto.
2.4 MEDIDAS BÁSICAS DE AVALIAÇÃO E EFICIÊNCIA DE
SISTEMAS
A seguir serão apresentadas duas medidas de avaliação e eficiência de sistemas,
precision e recordação.
Aranha (2007), cita que precisão (precision) e recordação (recall), são as medidas
básicas usadas na avaliação de eficiência de sistemas tanto para busca quanto para
aprendizado. A busca do tipo precisão é usada quando se sabe exatamente o que quer. A
busca do tipo recordação é usada quando não se sabe o que se quer e precisa-se fazer uma
exploração, ou seja, retornar documentos relevantes e não relevantes para o problema, para
então decidir que documentos são pertinentes e os não pertinentes.
2.4.1 Recordação
Para Lancaster (1968 apud WIVES, 2002), recall (abrangência) mede a habilidade do
sistema em recuperar os documentos, mais relevantes para o usuário. Ele mede a quantidade
de itens relevantes, dentre os existentes na base de dados, que foram recuperados. Mas, o
sistema ou usuário que esta avaliando o resultado deve saber quantos documentos relevantes a
sua consulta existem na base de dados, esta informação pode ser conhecida estatisticamente.
Equação 2
Segundo Wives (2002, p.72),
Para que sistemas diferentes possam ser comparados deve-se adotar uma seleção
especifica para testes e comparações, onde as classes de documentos são conhecidas
a priori. Deste modo, identificam-se quantos documentos o sistema conseguiu
recuperar para cada classe e quantos ele deveria ter recuperado. Assim a métrica
pode ser aplicada.
30
2.4.2 Precisão
Segundo Lancaster (1968 apud WIVES, 2002, p.72),
Precision mede a habilidade do sistema em manter os documentos irrelevantes fora
do resultado de uma consulta. O usuário indica quantos documentos recuperados são
relevantes para ele e o SRI pode calcular a quantidade de documentos recuperados
que são relevantes.
Equação 3
Wives (2002), cita que a precisão indica o esforço que o usuário teria para analisar o
resultado de uma determinada busca. Isso significa que, se 60% dos itens retornados fossem
relevantes, o usuário teria desperdiçado 40% de seu esforço analisando itens não relevantes.
Então, quanto maior a precisão, menor o esforço do usuário em analisar itens.
“Portanto, a precisão pode ser utilizada nas iterações do usuário com o sistema para
indicar o quanto ainda o usuário necessita iterar para conseguir filtrar os itens irrelevantes e
retornar itens mais relevantes”. (DOYLE, 1975 apud WIVES, 2002, p.72).
Segundo Aranha (2007, p.05), tecnicamente a busca Precisão tende a retornar poucos
documentos e a busca Recordação a retornar muitos documentos. Um sistema de aprendizado
orientado a precisão dificilmente comete erros, porém demora a aprender novos lexemas. Um
sistema voltado à recordação tende a memorizar mais conhecimento com menos documentos,
porém pode cometer mais erros.
Aranha (2007, p.05), cita que na pratica, existe um contrapeso entre precisão e
recordação. Ao maximizar a precisão perdesse recordação. Ao maximizar recordação perde-se
precisão. Se retornarmos todos os documentos maximizamos a recordação e minimizamos
precisão. Se recuperarmos só um documento, correto, maximizamos precisão e minimizamos
recordação formando uma estreita visão da base.
2.5 MÉTRICAS DE SIMILARIDADE TEXTUAL
Nesta etapa do trabalho será apresentada uma breve explicação das métricas de
similaridade textuais mais relevantes para este TTC e suas principais características. São elas:
(i) Distância de Levenshtein; (ii) Distância do Cosseno. As métricas de similaridade textual
permite a comparação entre dois textos, definindo o grau de similaridade que definirá o quão
similar é um texto do outro.
31
2.5.1 Distancia de Levenshtein
Segundo Oliveira (2010) o algoritmo Levenshtein Distance foi criado pelo Cientista
russo Vlademir Levenshtein em 1966. A distância de Levenshtein (1966) ou distância de
edição é obtida através do numero mínimo de operações, ou seja, inserções, eliminação ou
substituição de caracteres necessários para transformar um texto em outro.
Oliveira (2010) ainda escreve que a partir da quantidade total de caracteres dos textos
comparados é montada uma matriz (m, n), onde serão inseridos os custos de cada operação,
geralmente, cada operação possui custo 1, ou seja, para cada operação executada há mais, será
somado 1 no total de operações de edição. Ao final das comparações, a distância é dada pela
ultima posição da matriz.
A matriz pode ser preenchida a partir do canto superior esquerdo para o canto
inferior direito. Cada salto horizontal significa uma inserção ou uma substituição, cada salto
vertical significa uma exclusão e cada salto vertical significa uma equivalência.
É apresentada na Figura 3, a matriz utilizada pelo algoritmo da Distância de
Levenshtein, para exemplificar a transformação da palavra “levenshtein” em “meilenstein” e
na Figura 4, é mostrado um passo a passo da transformação de uma palavra para outra. Para
maiores informações é apresentado no APÊNDICE A, o algoritmo da Distância de
Levenshtein.
Legenda:
 "=" Equivalente;
 "o" Substituição;
 "+" Inserção;
 "-" Exclusão.
32
Figura 3. Matriz Distância de Levenshtein
Fonte: Levenshtein.net (2012)
Figura 4. Passo a passo Distância de Levenshtein
Fonte: Levenshtein.net (2012)
2.5.2 Distância do Cosseno
Similaridade cosseno é uma medida de similaridade entre dois vetores medindo o
cosseno do ângulo entre eles. O cosseno de 0 é 1, e menos de 1 por qualquer outro ângulo, o
valor mais baixo do cosseno é -1. O cosseno do ângulo entre dois vetores é determinado
quando dois vetores são apontados na mesma direção. (GARCIA, 2006).
Este é frequentemente usado para comparar documentos em mineração de textos .
Além disso, é usado para medir a coesão no interior de grupos no domínio da extração de
dados. O cosseno de dois vetores pode ser facilmente derivado, usando o produto da fórmula
Euclidiana: (GARCIA, 2006).
Equação 4
33
Dado dois vectores de atributos, A e B, onde a similaridade do cosseno, θ, é
representado por um produto como:
Equação 5
“Para normalizar o A • B que dividi pela distância euclidiana entre A e B, ou seja, A
• B / (| A | | B |). Este raciocinio define o ângulo entre os vetores de cosseno, com valores
entre 0 e 1.” (GARCIA, 2006).
Garcia (2006), descreve as variaveis da Equação 6:
 Símbolo sigma significa "a soma";
 Q é uma consulta;
 D é um documento relevante para Q;
 W são pesos.
 N como número de documentos em uma coleção;
 n como o número de documentos que contenham um termo de consulta.
Equação 6
“Esta relação é utilizada como uma medida de semelhança entre quaisquer dois
vetores que representam documentos, consultas, fragmentos ou a combinação destes.”
(GARCIA, 2006).
Para maiores informações no APÊNDICE A, consta o algoritmo da cosine similaryte
que será feito uma breve explicação para melhor entendimento do leitor.
O algoritmo da cosine similaryte mede a distância do cosseno entre dois textos, veja
como segue o desenvolvimento do algoritmo:

No algoritmo é passado por parametro dois textos a serem comparados;
34

Os textos são processados e transformados em tokens e guardados em uma estrutura
de lista;

Adiciona a lista de tokens em outra estrutura de dados chamado HashSet, que
possui a abilidade de não repetir tokens dentro da estrutura;

Guarda o tamanho do HashSet que possui a lista de tokens do primeiro texto
avaliado.
Repetece o processo do item 2 até o item 4. Depois de realizar o mesmo processo com o
segundo texto, possui-se dois HashSet, duas variáveis guardando os tamanhos de cada
HashSet. O próximo passo é descobrir o tamanho do HashSet resultante:

Adicionando o segundo HashSet no primeiro HashSet, como uma das
caracteristicas do HashSet é de não repetir objetos iguais, será retornado um HashSet
resultante que nos dará o tamanho resultante entre os dois textos;

Agora retira-se a quantidade dos termos em comum, atravez de uma fórmula
matemática.

Aplica-se a fórmula da cosine similaryte.
2.6 BIBLIOTECA SIMMETRICS
Segundo Weber (2005, p.29), a bilbioteca SimMetrics é um projeto desenvolvido
pelo grupo de processamento de linguagem natural do departamento de Ciência da
Computação na Universidade de Sheffield, a biblioteca de código aberto com licença
GPL(General Public License) pode ser encontrada no repositório sourceforge.net. Será
apresentado alguns conceitos de métricas de similaridade presentes na biblioteca SimMetrics.
1. Hamming distance: “Define a diferença de bits entre palavras, ou seja, o numero de
bits que devem ser alterados para que os dois textos se tornem idênticas. Esta técnica
não esta incluída na biblioteca”; (WEBER, 2005, p.29).
2. Levenshtein Distance: “A distancia é calculado considerando o esforço mínimo de
transformação de uma string por outra”; (WEBER, 2005, p.29).
3. Needleman-Wunch distance ou Sellers Algorithm: “É um algoritmo baseado no
anterior, contudo sofrendo ajustes em variáveis”; (WEBER, 2005, p.29)
4. Smith-Waterman distance: Segundo Smith (1981), este algoritmo foi desenvolvido
para identificar algoritmos ótimos de DNA e seqüências de proteínas;
35
5. Gotoh ou Smith-Waterman-Gotoh distance: É a implementação do algoritmo escrito
por Smith Waterman e é encontrado na referência Gotoh (1981);
6. Block Distance ou L1 distance ou City Block distance: “Esta métrica é um cálculo
baseado em vetores e dados pela formula”. (WEBER, 2005, p.30), apresentada na
Equação 6:
Equação 6
7. Monge Elkan distance: Este algoritmo amplia o algoritmo de Gotoh (1981), com
mais campos de avaliação e possui uma complexidade de tempo quadrática. Melhor
descrição sobre este algoritmo pode ser encontrado em Monge (1996).
8. Jaro distance metric: Especificações sobre esta métrica de distância de Jaro pode ser
encontrada em Jaro (1989).
9. Jaro Winkler: Segundo Weber (2005) é uma modificação da métrica anterior;
10. Matching Coefficient: Weber (2005) cita que esta métrica trabalha com um vetor
simples de termos;
11. Jaccard Similarity or Jaccard Coefficient or Tanimoto coefficient: “O algoritmo de
Jaccard, utiliza o conjunto de palavras para avaliar a comparação de similaridade.
Este algoritmo é utilizado para comparar similaridade de composições químicas”;
(WEBER, 2005, p.30).
12. Overlap Coefficient: “Esta é uma métrica onde se um valor de X está contido em Y
ou vise versa, a similaridade é um valor cheio”; (WEBER, 2005, p.31).
13. Euclidean distance or L2 distance: “Este utiliza o calculo “euclidiano” em vetores
para definir as distancias entres os termos do vetor”; (WEBER, 2005, p.31).
14. Cosine similarity: Este algoritmo separa as strings em vetores, e compara os termos
similares, para calcular a similaridade entre os vetores de termos. Melhor descrição
sobre esta métrica, pode ser encontrado em Cosine similarity.
36
As métricas de Levenshtein e Cosine similarity apresentadas acima são relevantes
para a realização deste trabalho, pois foram desenvolvidas para trabalha com conceitos de
similaridade textual, o qual é o foco deste trabalho.
2.7 ANÁLISE DE TRABALHOS SIMILARES
Foram realizadas pesquisas na Internet com o objetivo de encontrar módulos de
sistemas similares ao proposto neste trabalho. A partir desta pesquisa foram encontrados
quatro sistemas para a realização de uma comparação com o módulo proposto. São eles: (i)
ScriptLattes; (ii) Análise de redes de colaboração entre pesquisadores; (iii) Análise das áreas
de interesse dos pesquisadores; (iv) Remoção de ambiguidade das autorias de objetos
bibliográficos. Os quatro sistemas analisados utilizam técnicas de tratamento de texto e
métricas de similaridade, a partir disto realizam as análises e processamentos textuais em
comparação com a base de dados, para identificar as produções similares ou resolver o
problema proposto por cada trabalho.
2.7.1 ScriptLattes
O principal trabalho encontrado é a ferramenta ScriptLattes (Chalco e Cesar Junior,
2009). O foco da ferramenta ScriptLattes consiste em utilizar o Currículo Lattes como base de
dados para a geração de relatórios no formato HTML tratando as suas coautorias e similares,
segundo Chalco e Cesar Junior (2009), permite a criação automática de grafos (redes) de
coautoria entre os membros do grupo e um mapa de geolocalização dos membros e alunos (de
pós-doutorado, doutorado e mestrado) com orientação concluída.
As principais características da ferramenta para este trabalho é um módulo de
tratamento de redundâncias que permite a detecção de produções acadêmicas iguais ou
similares. Assim, dois ou mais membros são considerados coautores, se existe uma produção
comum entre eles.
Chalco e Cesar Junior (2009) citam para isso as produções similares são detectadas
através de comparações entre todas as produções separadas por ano e tipo de produção (por
ex., artigo publicado em periódico ou capitulo de livro), de tal forma produções com ano de
publicação diferente não seja utilizada em nenhuma comparação, permitindo assim uma
diminuição de tempo de processamento do módulo.
Segundo Chalco e Cesar Junior (2009) o módulo de redundâncias da ferramenta
ScriptLattes utiliza o método do casamento de atributos associados a cada cadastro de
produções. Para a ferramenta duas publicações são consideradas iguais se a porcentagem de
37
similaridade entre os títulos for maior que a determinada pela ferramenta, no entanto os
autores não explicitam qual a taxa de similaridade utilizada.
A métrica de similaridade é obtida através da distancia de Levenshtein (1966) para
determinar a distancia de uma cadeia de caracteres. A distancia de Levenshtein (1966) é
calculada com base no numero mínimo de edições de caracteres para transformar um texto em
outro.
2.7.2 Análise de Redes de Colaboração entre Pesquisadores
O segundo sistema pesquisado é um sistema para análise de redes de pesquisa
baseado na Plataforma Lattes. Foi desenvolvido como uma extensão da ferramenta
ScriptLattes.
Tem como atividade principal do projeto segundo Farias, Vargas e Borges (2011) a
especificação e desenvolvimento de um componente de software capaz de extrair a produção
científica do currículo Lattes do docente, analisar os dados capturados e visualizar
graficamente as redes de colaboração entre pesquisadores, apresentando algumas melhorias
em relação a ferramenta ScriptLattes por exemplo: (i) permitir ao usuário alterar a disposição
dos vértices e arestas, (ii) listar as publicações em comum a dois pesquisadores, (iii) visualizar
as múltiplas representações de cada publicação, (iv) avaliar a identificação de referencias
bibliográficas duplicadas.
A principal característica desta ferramenta para este TTC é o processo de análise dos
dados extraídos do currículo Lattes dos docentes, é onde ocorre o tratamento das coautorias.
Esta ferramenta utiliza o mesmo algoritmo do ScriptLattes e métrica de similaridade a
distancia de Levenshtein (1966).
2.7.3 Análise das Áreas de Interesse dos Pesquisadores
O terceiro trabalho pesquisado busca identificar áreas de atuação do pesquisador a
partir da análise do currículo Lattes armazenando estas informações em um banco de dados.
Segundo Ribeiro Junior, Borges, Lichtnow, Loh e Saldaña (2005) para isso, são
aplicadas técnicas de recuperação de informação e descoberta de conhecimento textual, sobre
o conteúdo armazenado em um documento XML.
Ribeiro Junior, Borges, Lichtnow, Loh e Saldaña (2005) citam que o presente
trabalho utiliza o modelo vetorial para representar internamente as áreas existentes em um
conjunto de termos associados, sendo que para cada termo é dado um peso (valor numérico)
que determina o grau de afinidade que um determinado termo possui com outro.
38
Conforme os autores, para verificar a afinidade de um documento em relação a um
conceito é construído um vetor com os termos presentes no documento (são retiradas as
stopwods – termos muito frequentes como preposições). Para cada termo do documento é
gerado um valor mediante o cálculo da frequência relativa do termo (numero de vezes que o
termo aparece no documento dividido pelo numero de termos presentes no documento). É
então realizado o produto dos pesos dos termos que estão presentes no vetor do documento
pelos pesos dos termos comuns existentes no vetor de uma área. A soma deste produto
determina a similaridade do documento em relação aos conceitos presentes na ontologia
(coleção de áreas de interesse) de domínio onde estão definidas as possíveis áreas de
interesse.
2.7.4 Remoção de ambiguidade das autorias de objetos bibliográficos
O quarto trabalho pesquisado apresenta uma estratégia que possibilita a identificação
de várias formas de nomes de autores em repositórios de bibliotecas digitais.
Segundo os autores, esta estratégia utiliza funções de casamento de padrão e técnicas
de recuperação de informação, associadas a um algoritmo de agrupamento (clustering). O
resultado é um arquivo de autoridade (Auld, 1982), na forma de um índice unificado, que tem
a finalidade de manter a correspondência entre diferentes formas permissíveis de nomes de
autores.
Oliveira, Laender, Gonçalves (2005) citam que o arquivo de autoridade apresenta a
forma mais representativa de nomes dos diferentes autores, para cada um deles, os objetos
bibliográficos de sua autoria contidos no repositório. A partir de um índice unificado é
possível identificar quais são as obras contidas no repositório de uma biblioteca digital de
autoria de um mesmo autor independentemente da forma como o seu nome está registrado.
Segundo Oliveira, Laender, Gonçalves (2005) a estratégia para a etapa de análise de
dados consiste em uma função para casamento de padrões que comparam os nomes dos
autores contidos no índice de autoria. Só serão considerados candidatos a representar um
mesmo autor, casamentos entre dois nomes de autores que alcançarem um determinado limite
arbitrário de similaridade, então o par é associado formando um grupo. Um nome de autor ou
grupo também poderá ser comparado a outro grupo.
Segundo os autores, os autores utilizam três funções para casamento de padrão: o
casamento exato de padrão, que considera dois nomes como candidatos apenas se sua grafia
for idêntica, a distância de edição (1966), na qual é contabilizado o número de edições de uma
cadeia de caracteres comparada à outra cadeia de caracteres, e a comparação de fragmentos,
39
que compara individualmente, através de distância de edição, cada fragmento delimitado por
espaço em branco nas cadeias de caracteres normalizadas, considerando também o casamento
entre iniciais e nomes por extenso e ignorando a ordem em que os fragmentos aparecem nos
nomes.
Oliveira, Laender, Gonçalves, (2005) utilizaram técnicas derivadas da área de
recuperação de informação para determinar o grau de similaridade entre títulos, veículos de
publicação e coautores de trabalhos. Os autores definiram o casamento exato de padrão,
quando há veículos de publicação disponíveis através de suas siglas, da mesma forma para
informações adicionais como datas. Quando há disposição de informações escritas por
extenso, utilizamos para a determinação do grau de similaridade os métodos: (i) medida do
cosseno (Baeza-Yates & Ribeiro-Neto; 1999; Salton, 1988), (ii) coeficiente de Jaccard
(Salton, 1988). Para coautores utilizaram a comparação por fragmentos.
Será apresentado na Tabela 2, um comparativo entre os trabalhos pesquisados, serão
comparados as técnicas de, comparação textual, recuperação de informação, também serão
comparados as fontes de dados e métodos de tratamento textual utilizados nos trabalhos
pesquisados.
Tabela 2. Comparativo entre trabalhos pesquisados.
ScripLattes
Análise de Redes
Colaboração entre
Pesquisadores
Análise das Areas
de Interesse dos
Pesquisadores
Remoção de
ambiguidade das
Autorias de
objetos
Bibliográficos
Distância
de Levenshtein
Currículo Lattes
Limiar de
Similaridade
Recuperação de
Informação
Modelo Vetorial
StopWords
Clustering
Casamento de
Padrões
Comparação entre
Fragmentos
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Ao analisar estes trabalhos percebe-se que: (i) O currículo Lattes é utilizado como
fonte de informações em diferentes trabalhos que extrai conhecimento através deste. (ii) A
40
distancia de Levenshtein é o algoritmo de similaridade mais usado entre os trabalhos
pesquisados. (iii) O modelo espaço vetorial é útil para comparação de fragmentos de
documentos, seu aproveitamento para comparação de atributos como títulos de trabalhos ou
nomes de eventos. (iv) Foram apresentadas outras métricas de similaridade, mostrando uma
visão mais ampla de algoritmos de similaridade que trabalham com informações textuais.
41
3 DESENVOLVIMENTO
Esta etapa visa apresentar os requisitos funcionais do módulo SapiSim, os requisitos
não funcionais e regras de negócio, também será apresentado as fórmulas de similaridade
descrevem a forma utilizada para se obter coautoria. Foram desenvolvidos diagramas de
classe da UML e diagramas de classe das Telas para uma melhor especificação do módulo.
Com eles pode se ter uma melhor visão da disposição das classes e métodos e atributos. Um
caso de uso foi desenvolvido descrevendo toda a sua tarefa e também são apresentadas as
telas do módulo SapiSim que foram desenvolvidas para uma visão geral da interface e por fim
será apresentado dois estudos de caso que apresentão uma análise dos resultados obtidos pelo
algoritmo do módulo SapiSim.
3.1 DESCRIÇÃO GERAL DO SAPISIM
O SapiSim é um módulo de processamento desenvolvido para o sistema SAPI 2.0 da
UNIVALI, para identificar coautoria entre duas produções científicas acadêmicas.
3.2 REQUISITOS FUNCIONAIS
A seguir são especificadas as tarefas que o módulo realizou, durante o seu
desenvolvimento no TTC II. São elas:
 RF01 – O sistema deverá realizar a identificação automática e monitorada (ver RF3)
de Coautoria nas produções científicas importadas do currículo lattes dos docentes;
 RF02 – O sistema deverá permitir ao usuário visualizar a lista de produções que
foram identificadas automaticamente;
 RF3 – O sistema deverá permitir ao usuário confirmar ou rejeitar a lista de produções
cuja Coautoria depende de sua intervenção (Identificação Monitorada).
3.3 REQUISITOS NÃO FUNCIONAIS
Agora serão apresentadas as especificações de desenvolvimento do sistema do
módulo, que foram utilizados, durante o seu desenvolvimento no TTC II. São elas:
 RNF01 - O módulo SapiSim somente poderá ser acessado pelo sistema SAPI 2.0.
 RNF02 - O módulo SapiSim deverá ser desenvolvido utilizando a linguagem de
programação JAVA.
42
 RNF03 - Usar paradigma orientação a objetos.
 RNF04 – Usar conceito RIA.
 RNF05 - O módulo SapiSim deverá ser desenvolvido com o framework
HIBERNATE para persistência e recuperação de objetos JAVA na base de dados do
SAPI 2.0.
3.4 REGRAS DE NEGÓCIO
Agora serão especificadas as regras de funcionamento do módulo SapiSim, estas
regras são muito importantes, pois são elas que definem, por exemplo, como foi inicializado o
módulo ou como saber se a produção é coautora ou não e até mesmo de como foi realizado
uma tarefa. São elas:
 RN 1 - A identificação da Coautoria das produções será realizada no momento que o
docente importa seu currículo Lattes para o SAPI.
 RN 2 - Serão consideradas para análise apenas produções novas, ou seja, que estão
sendo inseridas no SAPI no momento da importação.
 RN 3 - A identificação da Coautoria pode ser Automática ou Monitorada
o Identificação Automática – O grau de similaridade entre os atributos de duas
produções, atinge uma porcentagem pré-estabelecida (chamado de LIMITE
SUPERIOR), criando uma associação definitiva entre as duas produções
(limite será estipulado no TTC II).
o Identificação Monitorada – O grau de similaridade entre os atributos de duas
produções, atinge uma porcentagem pré-estabelecida entre os limites
chamados de “LIMITE INFERIOR” e limite “LIMITE SUPERIOR”, criando
uma associação a ser confirmada pelo ““USUÁRIO VALIDADOR””, entre
as duas produções (limites que serão definidos no TTC II).
 RN 4 - O LIMITE INFERIOR e SUPERIOR são valores não fixos pré-estabelecidos
pelo administrador do sistema SAPI.
 RN 5 - A FÓRMULA DE SIMILARIDADE compara duas produções depende do
tipo da produção e está definida no tópico (3.4.1 Formula de Similaridade).
 RN 6 - Serão candidatas à análise de similaridade apenas produções dos tipos:
Participação em Bancas, Projetos de Pesquisa, Artigos em Periódicos, Livros e
Capítulos de livros e Artigos em Eventos.
43
 RN 7 - As produções do próprio docente não serão candidatas à análise de
similaridade.
 RN 8 - Para a identificação de Coautorias apenas serão candidatas produções do
mesmo tipo, mesmo ano, já presentes na base do sistema SAPI 2.0.
3.5 CÁLCULO DA SIMILARIDADE
Neste tópico será apresentado fórmulas para calcular a similaridade entre duas
produções científica no módulo SapiSim. O cálculo da similaridade foi separado em tipos de
produções: (i) Periódico; (ii) Evento; (iii) Capítulo de Livro; (iv) Livro; (v) Participação em
Banca; e (vi) Projeto de Pesquisa. Cada tipo de produção possui os seus respectivos atributos,
dos quais foi feita uma FÓRMULA DE SIMILARIDADE ponderada para determinar a
similaridade entre duas produções.
Foram desenvolvidas varias fórmulas de similaridade porque cada tipo de produção
apresenta os principais atributos para a aplicação da fórmula de uma forma diferente, tanto
nas informações quanto em número (quantidade) de atributos. Outro motivo que levou o
desenvolvimento das formulas separadamente é poder ajustar os pesos dos atributos
individualmente para cada tipo de produção não dependendo do outro, se houver uma
mudança em seus pesos.
Legenda:
DL: Distancia de Levenstein.
PN: Produção Nova.
C: Produção Candidata.
Explicando PN e C e DL:
 PN – Produção Nova – São as novas produções importadas do currículo lattes do
docente;
 C – Produção Candidata – São as produções já importadas e cadastradas no banco de
dados e que serão buscadas para serem comparadas com as novas;
 DL – Distância de Levenshtein (1966) – Métrica usada para determinar a
similaridade entre duas produções.
44
A seguir será exibida uma lista de fórmulas de similaridade organizadas por tipo de
produção com seus respectivos atributos.
 Periódico
o Atributos

Titulo;

Nome do periódico;

Fórmula.
DL( PN n titulo , C n titulo ) * 0,6 
SimPer ( PN n , C n )  100 
Equação 7
DL( PN n nomePeriod ico , C n nomePeriod ico ) * 0,4
( strlen ( PN n titulo )  strlen ( PN n nomePeriod ico ))
 Evento
o Atributos

Título;

Nome do Evento;

Fórmula;
DL( PN n titulo , C n titulo ) * 0,6 
Equação 8
DL( PN n nomeEvento, C n nomeEvento) * 0,4
SimEven( PN n , C n )  100 
( strlen ( PN n titulo )  strlen ( PN n nomeEvento))
 Capitulo de livro
o Atributos

Título do Capítulo;

Título do Livro;

Editora;

Fórmula.
DL( PN n tituloCapí tulo , C n tituloCapí tulo ) * 0,6 
DL( PN n títuloLivr o, C n títuloLivr o) * 0,2 
SimCapL( PN n , C n )  100 
DL( PN n nomeEditor a, C n nomeEditor a) * 0,2
( strlen ( PN n tituloCapí tulo )  strlen ( PN n títuloLivr o)  strlen ( PN n nomeEditor a))
Equação 9
45
 Livro
o Atributos

Título;

Editora;

Fórmula.
DL( PN n titulo , C n titulo ) * 0,6 
DL( PN n nomeEditor a, C n nomeEditor a) * 0,4
SimL( PN n , C n )  100 
( strlen ( PN n titulo )  trlen ( PN n nomeEditor a))
Equação 10
 Participação em Banca
o Atributos

Título do Trabalho;

Nome do Aluno;

Fórmula.
DL( PN n tituloTrab alho, C n tituloTrab alho ) * 0,6 
DL( PN n nomeAluno , C n nomeAluno ) * 0,4
SimBan ( PN n , C n )  100 
( strlen ( PN n tituloTrab alho )  trlen ( PN n nomeAluno ))
Equação 11
 Projetos de Pesquisa
o Atributos

Nome do Projeto;

Nome do Autor;

Fórmula.
DL( PN n nome Pr ojeto , C n nome Pr ojeto ) * 0,6 
DL( PN n nomeAutor , C n nomeAutor ) * 0,4
SimPP ( PN n , C n )  100 
( strlen ( PN n nome Pr ojeto )  trlen ( PN n nomeAutor ))
Equação 12
3.6 ALGORITMO DE COMPARAÇÃO DE PRODUÇÕES
Este algoritmo demonstra como foi feito a comparação entre duas produções no
módulo SapiSim. O sistema possui uma lista de produções novas, ou seja, produções que o
46
docente acabou de importar do seu currículo Lattes para SAPI 2.0, então cada produção nova
será comparada com uma lista de produções candidatas que serão buscadas na base de dados
filtrando-as por tipo de produção e ano de produção. Continuando, cada produção candidata
da lista será comparada com a produção nova em questão e tentar determinar uma coautoria
com alguma(s) produções presentes na lista de produções candidatas. Depois de ter verificado
toda a lista de produções candidatas e retornado para a lista de produções novas, pegasse a
próxima produção nova e recomeça todo o processo, este processo será realizado até a lista de
produções novas chegar ao fim. Esta seção apresenta o apêndice C, onde exibe um algoritmo
em pseud. código onde descreve a ideia geral do algoritmo desenvolvido no módulo SapiSim.
3.7 UM CASO PASSO A PASSO ENTRE DUAS PRODUÇÕES
Neste tópico será exibido um passo a passo de um caso de comparação entre
produções, simulando a execução do módulo SapiSim, exibindo as produções antes de serem
tratadas e o resultado do tratamento de texto realizado, as porcentagens de similaridade entre
as produções, identificando ou não uma coautoria. Este passo à passo será realizado para um
melhor entendimento do leitor ao processo aplicado ao módulo SapiSim e melhor
entendimento aos tratamentos textuais, podendo ser visualizado os resultados obtidos em
tempo real de execução.
A seguir serão exibidas na Tabela 3 duas produções acadêmicas do tipo “Trabalho
Em Eventos” ilustrando dois atributos da mesma, o atributo “Titulo do Trabalho” e o atributo
“Nome do Evento”, com seus respectivos donos o docente André Raabe e o docente Cesar
Zeferino.
Tabela 3. Comparação de produções cientifica entre dois docentes.
Autor
Título
trabalho
Nome
Evento
do
do
André Luis Alice Raabe
Bipide: Ambiente de Desenvolvimento
Integrado
para
Utilização
dos
Processadores
BIP
no
Ensino
de
Programação
XX Simpósio Brasileiro de Informática na
Educação
Cesar Albenes Zeferino
Bipide: ambiente de desenvolvimento integrado
para utilização dos processadore BIP no ensino de
programação
SIMPÓSIO BRASILEIRO DE INFORMÁTICA NA
EDUCAÇÃO - SBIE 2009, 20.
No módulo SapiSim sempre existe a produção que esta comparando e a produção
que esta sendo comparada. A produção que esta comparando é a do docente André Raabe e a
produção que esta sendo comparada é a do docente Cesar Zeferino. No algoritmo do SapiSim
primeiro são tratadas todas as produções que estão comparando e depois todas as produções
47
que então sendo comparadas. Será realizado o tratamento da produção do docente Raabe,
antes de serem tratadas elas possuem o seguinte formato:
 Titulo do trabalho: Bipide: Ambiente de Desenvolvimento Integrado para Utilização
dos Processadores BIP no Ensino de Programação
 Nome do Evento: XX Simpósio Brasileiro de Informática na Educação
Então o SapiSim irá realizar o tratamento textual proposto neste trabalho nos atributos
citados, e o resultado do seu tratamento será este:
 Titulo do Trabalho: BIPIDE AMBIENTE DESENVOLVIMENTO INTEGRADO
UTILIZACAO PROCESSADORES BIP ENSINO PROGRAMACAO
 Nome do Evento: XX SIMPOSIO BRASILEIRO INFORMATICA EDUCACAO
Este tratamento será guardado em memória para posteriormente comparar-se com as
“produções candidatas”. A produção do docente Raabe neste caso representa uma produção
“mandante”, e a do docente Zeferino representa a produção “candidata”. A seguir será
realizado o tratamento textual dos atributos da produção do docente Zeferino, antes de serem
tratadas elas possuem o seguinte formato:
 Titulo do Trabalho: Bipide: ambiente de desenvolvimento integrado para utilização
dos processadores BIP no ensino de programação
 Nome
do
Evento:
SIMPÓSIO
BRASILEIRO
DE
INFORMÁTICA
NA
EDUCAÇÃO - SBIE 2009, 20.
Então o SapiSim irá realizar o tratamento textual proposto neste trabalho nos atributos
citados, e o resultado do seu tratamento será este:

Titulo de Trabalho: BIPIDE AMBIENTE DESENVOLVIMENTO INTEGRADO
UTILIZACAO PROCESSADORES BIP ENSINO PROGRAMACAO

Nome do Evento: SIMPOSIO BRASILEIRO INFORMATICA EDUCACAO – SBIE
2009 20
48
Este processamento será guardado em memória para posteriormente ser comparado com uma
produção “mandante”. O próximo passo no SapiSim é retirar a similaridade entre os atributos
das duas produções tratadas e determinar se é coautoria ou não.
Foi realizada a similaridade entre os atributos tratados de mesmo nome de cada um
dos docentes, por exemplo, Titulo do Trabalho da produção do docente Raabe e o atributo
Titulo do Trabalho da produção do docente Zeferino, ponderando o seu resultado com peso de
0.9. O resultado de similaridade é 90 %, ou seja, alcançou 100 % na comparação parcial dos
atributos.
A seguir será realizada a mesma similaridade entre atributos tratados Nome do
Evento e ponderando com um peso de 0.1. O resultado da similaridade entre os atributos
Nome do Evento é 6,7, ou seja, alcançou mais de 50% da similaridade o que significa um
resultado bom.
Os resultados até agora exibidos foram parciais entre atributos, então para termos um
resultado final basta somarmos os resultados das similaridades dos atributos que é 96,7%, ou
seja, a soma da similaridade entre os atributos tratados atingiu 96,7% identificando uma
coautoria da modalidade automática.
Neste passo a passo podem ser visualizados os atributos das produções antes de
serem tratados e depois de serem tratados, observando que o tratamento realizado sobre o
texto eliminou varias diferenças entre os atributos, que se não fossem tratadas certeza
reduziria a similaridade total encontrada, e para um pior caso não identificando uma
coautoria.
3.8 DIAGRAMAS DE CLASSES
Os diagramas de classes foram separados em camadas de funcionalidades, este tipo
de modelagem foi adotado para uma melhor organização do conteúdo a ser apresentado. O
módulo possui três classes e duas interfaces que pertencem ao sistema SAPI 2.0, são elas:
 ProduçãoDAO;
 Produção;
 DAO;
 JPAProducaoDAO;
 JPADAO .
49
A classe Produção foi configurada como abstrata, é mostrada no diagrama com o
nome da classe em itálico, a interface ProduçãoDAO estende a interface DAO que é do tipo
genérico. O módulo SapiSim possui 14 classes que foram desenvolvidas, são elas:
 JPAIdentificaCoAutoriaDAO;
 JPANormalizaçãoDAO;
 JPAStopWordsDAO;
 Copia;
 JPAComandDAO;
 JPANormalizacaoEStopWordsBancaDAO;
JPANormalizacaoEStopWordsCapituloDeLivroDAO;
JPANormalizacaoEStopWordsLivroDAO;
 JPANormalizacaoEStopWordsProjetoDePesquisa;
JPANormalizacaoEStopWordsArtigoPublicadoDAO;
JPANormalizacaoEStopWordsTrabalhoEmEventoDAO;
 AutMon;
 JPAFormulasSimilaridadeDAO;
 JPACalculoSimilaridadeDAO;
 JPAAutomaticoMonitoriaDAO.
E 5 interfaces que foram desenvolvidas, são elas:
 NormalizacaoEStopWordsDAO;
 CoAutoriaDAO;
 FormulasSimilaridadeDAO;
 CalculoSimilaridadeDAO;
 AutomaticoMonitoriaDAO.
O módulo foi separado em quatro pacotes, no qual cada um exerce uma
funcionalidade que contribuirá para o todo. Os pacotes são:
 Controle;
 Tratador;
 Similaridade;
 Modelo.
50
O próximo tópico abordará os conceitos das classes dos pacotes da modelagem do
projeto do módulo SapiSim.
3.8.1 Pacote Controle
O pacote apresenta duas classes e uma interface, responsáveis pelo controle do fluxo
do algoritmo no módulo SapiSim, para a identificação de coautorias. O diagrama de classe
desenvolvido para o pacote Controle pode ser visto na Figura 5.
Figura 5 Diagrama de Classe – Pacote Controle.
No diagrama são apresentadas duas classes e uma interface:
51
1. JPAIdentificaCoAutoriaDAO: Esta classe controla todo o fluxo do algoritmo,
estabelecendo uma organização nas ações executadas para a identificação da
Coautoria, é a principal classe do módulo.
2. JPACommandDAO: Esta classe possui um mapeamento das classes tratadoras, do
pacote tratador chaveadas pelo código do tipo da produção, indicando a classe
tratadora correta de acordo com o tipo da produção a ser tratada, ou seja, é ela que
vai determinar qual classe será chamada de acordo com a identificação passada.
3. CoAutoriaDAO: Esta interface realiza o acesso aos métodos da classe
JPAIdentificaCoAutoriaDAO.
A descrição completa deste diagrama encontra-se no APÊNDICE B.
3.8.2 Pacote Tratador
O pacote tratador foi criado com a finalidade de tratar os atributos das produções, ou
seja, realizar a normalização textual e retirada de stopwords dos atributos. Tratamento que é
fundamental para a identificação da Coautoria, pois ela elimina palavras ou símbolos que
poderiam determinar alguma diferença na comparação dos títulos das produções. O diagrama
de classe desenvolvido para o pacote Tratador pode ser visto na Figura 6.
52
Figura 6 Diagrama de Classes – Pacote Tratador.
No diagrama são apresentadas oito classes e uma interface:
1. JPAStopWordsDAO: Esta classe tem a finalidade de retirar dos atributos da
produção palavras de menor significado na frase, por exemplo, artigos, conjunções,
preposições. Cabe avisar o leitor que esta classe possui os seus métodos e atributos
declarados como STATIC;
2. JPANormalizaçãoDAO: Esta classe tem a finalidade de realizar a normalização dos
atributos produção, por exemplo, palavras com letras minúsculas são normalizadas
para o padrão maiúsculo, acentos são retirados, sinais de pontuação e caracteres
especiais. Cabe avisar ao leitor que os métodos e atributos desta classe foram
declarados como STATIC.
3. JPANormalizacaoEStopWordsTrabalhoEmEventoDAO: Esta classe tem a finalidade
de organizar o fluxo das ações do algoritmo para o tratamento dos atributos da
produção do tipo trabalho em evento, realizando chamadas aos métodos das classes
JPAStopWordsDAO e JPANormalizaçãoDAO e salvar os novos atributos numa lista
de objetos copia do pacote modelo.
4. JPANormalizacaoEStopWordsArtigoPublicadoDAO: Esta classe tem a finalidade de
organizar o fluxo das ações do algoritmo para o tratamento dos atributos da produção
do tipo artigo publicado, realizando chamadas aos métodos das classes
JPAStopWordsDAO e JPANormalizaçãoDAO e salvar os novos atributos numa lista
de objetos copia do pacote modelo.
5. JPANormalizacaoEStopWordsProjetoDePesquisaDAO: Esta classe tem a finalidade
de organizar o fluxo das ações do algoritmo para o tratamento dos atributos da
produção do tipo pesquisa de pesquisa, realizando chamadas aos métodos das classes
JPAStopWordsDAO e JPANormalizaçãoDAO e salvar os novos atributos numa lista
de objetos copia do pacote modelo.
6. JPANormalizacaoEStopWordsLivroDAO: Esta classe tem a finalidade de organizar
o fluxo das ações do algoritmo para o tratamento dos atributos da produção do tipo
livro, realizando chamadas aos métodos das classes JPAStopWordsDAO e
JPANormalizaçãoDAO e salvar os novos atributos numa lista de objetos copia do
pacote modelo.
7. JPANormalizacaoEStopWordsCapituloDeLivroDAO: Esta classe tem a finalidade de
organizar o fluxo das ações do algoritmo para o tratamento dos atributos da produção
53
do tipo capitulo de livro, realizando chamadas aos métodos das classes
JPAStopWordsDAO e JPANormalizaçãoDAO e salvar os novos atributos numa lista
de objetos copia do pacote modelo.
8. JPANormalizacaoEStopWordsBancaDAO: Esta classe tem a finalidade de organizar
o fluxo das ações do algoritmo para o tratamento dos atributos da produção do tipo
participação em bancas de graduação, realizando chamadas aos métodos das classes
JPAStopWordsDAO e JPANormalizaçãoDAO e salvar os novos atributos numa lista
de objetos copia do pacote modelo.
9. NormalizacaoEStopWordsDAO: Esta interface é implementada por varias classes, e
é ela que vai acessar a classe que a implementa, a qual foi solicitado o seu acessado.
A descrição completa deste diagrama encontra-se no APÊNDICE B.
3.8.3 Pacote Similaridade
O pacote similaridade foi criado para o desenvolvimento das fórmulas de similaridade
para cada tipo de produção descritas na seção 3.5.1. Ele é usado para a realização dos cálculos
de similaridade textual entre atributos de duas produções científicas. O diagrama de classe
para o pacote Similaridade pode ser visto na Figura 7.
54
Figura 7 Diagrama de classe – Pacote Similaridade
No diagrama são apresentadas duas classes e duas interfaces são elas:
1. JPAFormulasSimilaridadeDAO: Esta classe tem a finalidade de executar as
fórmulas de similaridade para cada tipo de produção para a determinação da
similaridade entre atributos de duas produções.
2. JPACalculoSimilaridadeDAO: Esta classe tem a finalidade de acessar os métodos
da classe Levenstein da biblioteca SimMetrics.
3. FormulasSimilaridadeDAO:
Esta
interface
é
implementada
pela
classe
JPAFormulasSimilaridadeDAO e tem a finalidade de acessar os métodos da classe
que a implementa, somente com objetos do tipo FormulasSimilaridadeDAO.
55
4. CalculoSimilaridadeDAO:
Esta
interface
é
implementada
pela
classe
JPACalculoSimilaridadeDAO e tem a finalidade de acessar os métodos da classe
que a implementa, somente com objetos do tipo CalculoSimilaridadeDAO.
3.8.4 Pacote Modelo
O pacote modelo surgiu com a necessidade de um processamento com melhor
desempenho para a identificação das coautorias. A sua finalidade é realizar uma cópia dos
atributos dos objetos produção, com o objetivo de desvincular o objeto ao acesso a DAO, para
conseguir um melhor desempenho de processamento entre os atributos das produções. O
diagrama de classe para o pacote Modelo pode ser visto na Figura 8.
Figura 8 Diagrama de classe – Pacote Modelo
No diagrama é apresentada a classe Copia:
1. Copia: Esta classe tem a finalidade de realizar uma copia dos atributos do objeto
produção.
3.8.5 Pacote Acessa Banco
56
O pacote acessa banco foi criado para separar as funcionalidades de acesso ao banco
de dados do resto da aplicação. Este pacote tem como objetivo principal tornar transparente o
acesso ao banco de dados. O diagrama de classe desenvolvido para o pacote Acessa Banco
pode ser visto na Figura 9.
Figura 9 Diagrama de Classe – Pacote Acessa Banco.
No diagrama são apresentadas cinco classes e três interfaces são elas:
1. AutomaticoMonitoriaDAO:
Esta
interface
é
implementada
pela
classe
JPAAutomaticoMonitoriaDAO e tem como finalidade permitir o acesso aos seus
métodos somente por objetos do tipo AutomaticoMonitoriaDAO.
2. ProduçãoDAO: Esta interface é implementada pela classe JPAProducaoDAO, e sua
finalidade é que seus métodos sejam acessados por objetos do tipo ProducaoDAO.
3. DAO: Esta interface é do tipo genérico e tem como finalidade a auto adaptação ao
tipo da entidade de relacionamento estabelecida nas extensões com interfaces DAO,
por
exemplo,
producaoDAO
extends
DAO<Producao>.
ou
AutomaticoMonitoriaDAO extends DAO<AutMon>, além de conter o conjunto de
métodos do CRUD.
4. Produção: Esta classe ou entidade de relacionamento é responsável em reproduzir
uma tabela no banco de dados e conter os atributos das produções de todos os
57
docentes do sistema SAPI 2.0. Através dela é possível construir um objeto produção,
e seus atributos poderão ser persistidos em banco, para a tabela que o objeto
produção representa.
5. AutMon: Esta classe ou entidade de relacionamento é responsável em reproduzir
uma tabela no banco de dados e conter os dados das produções identificadas
automaticamente e manualmente, somente depois de ter passado por análise. Através
dela é possível construir um objeto autmon, e seus atributos seriam persistidos em
banco, para a tabela que o objeto representa.
6. JPAAutomaticoMonitoriaDAO: Esta classe tem a finalidade de realizar consultas ao
banco de dados para a entidade relacional AutMon.
7. JPAProducaoDAO: Esta classe tem a finalidade de realizar consultas ao banco de
dados para a entidade relacional Producao.
8. JPADAO: Esta classe tem a finalidade de conter a implementação do CRUD, ela é
do tipo genérica (Figura 9, mostra comentário T) e se adapta a qualquer tipo de
entidade relacional que seja passada através de uma extensão numa interface DAO.
Exemplo mostrado no tópico 3.
A descrição completa deste diagrama encontra-se no APÊNDICE B.
3.9
CASO DE USO
Neste tópico será apresentado um caso de uso explicando como foi executa a tarefa
de Confirmação ou Rejeição das produções acadêmicas monitoradas, através de cenários, e
também serão apresentadas as telas do módulo SapiSim desenvolvidas durante o TTC II para
uma melhor compreensão de como ficarão.
3.7.1 UC03 Confirmar / Rejeitar produções científicas
Permite ao “USUÁRIO VALIDADOR” confirmar produções que poderão ser
coautoras, ou rejeitar produções que não são coautoras (Figura 14). Além disso, o “USUÁRIO
VALIDADOR” pode consultar a quantidade de produções pendentes (Figura 12), e consultar
a quantidade de produções finalizadas (Figura 19) para um determinado ano e tipo de
produção.
3.7.1.1 Requisitos
Este é o requisito que define a tarefa Confirmar / Rejeitar produções científicas.
58
RF03 – O sistema deverá permitir ao usuário confirmar ou rejeitar a lista de
produções cuja Coautoria depende de sua intervenção (Identificação Monitorada).
3.7.1.2 Constrainst
Constrainst definem ações anteriores a execução da tarefa, a tarefa depende destas
ações para ser executada, e ações posteriores a sua execução, geralmente são os resultados da
tarefa.
 Pré-condição. O “USUÁRIO VALIDADOR” ter executado o módulo pelo menos
uma vez;
 Pré-condição. As produções identificadas como Monitoradas já devem estar
cadastradas;
 Pós-condição. Visualizar consulta atualizada dos registros (Figura 12 e Figura 19).
3.7.1.3 Cenários
Nesta etapa, é apresentado um detalhamento do cenário. Realizando um passo a
passo nas telas do módulo SapiSim, exemplificando a tarefa. (i) Consultar registros (Figura
19); e Produções Pendentes (Figura 12).
Produções Pendentes {Figura 12}
Será descrito os passo 7 e passo 8 a serem realizados para a confirmação ou rejeição
da coautoria da produções identificadas como monitoradas, para cada passo é mostrado um
cenário alternativo mostrando as ações necessárias para se realizar cada objetivo do cenário.
 “USUÁRIO VALIDADOR” clica no botão “Produções Pendentes” no sub menu na
(Figura 11 );
 O sistema apresenta a tela “Produções Pendentes” da (Figura 12), já mostrando os
registros de produções monitoradas encontradas;
 O “USUÁRIO VALIDADOR” deve filtrar pelo tipo de produção desejado. (Figura
12);
 O “USUÁRIO VALIDADOR” pressiona o botão ‘+’ (Figura 13), para surgir às
produções agrupadas para um determinado ano;
 O “USUÁRIO VALIDADOR” deve clicar em uma produção para abrir a próxima
tela (Figura 14).
59
 O sistema abrirá a tela da Figura 14 apresentando os detalhes da produção clicada na Figura
13 e os detalhes da “PRODUÇÃO CANDIDATA” a ser coautora da produção original.
 O “USUÁRIO VALIDADOR” poder confirma Coautoria;
 O “USUÁRIO VALIDADOR” pode rejeitar Coautoria;
 O “USUÁRIO VALIDADOR” pode fecha a tela (Figura 14);
 O sistema retorna para a (Figura 12).
 O “USUÁRIO VALIDADOR” fecha a tela (Figura 12)
 O sistema retorna para a (Figura 11) passo 1.
Será mostrado o 1º cenário alternativo com uma sequência de passos para a sua
realização.
Cenário alternativo confirmar coautoria:
 O “USUÁRIO VALIDADOR” seleciona uma “PRODUÇÃO CANDIDATA” (Figura
14);
 O “USUÁRIO VALIDADOR” analisa os detalhes da produção original e da
“PRODUÇÃO CANDIDATA”, e opta em confirmar Coautoria;
 O sistema processa a solicitação do “USUÁRIO VALIDADOR”;
 O sistema retorna para a (Figura 12) passo 2.
Será mostrado o 2º cenário alternativo com uma sequência de passos para a sua
realização.
Cenário alternativo rejeitar coautoria:
 O “USUÁRIO VALIDADOR” seleciona uma “PRODUÇÃO CANDIDATA” (Figura
14);
 O “USUÁRIO VALIDADOR” analisa os detalhes da produção original e da
“PRODUÇÃO CANDIDATA”, e opta em rejeitar Coautoria;
 O sistema processa a solicitação do “USUÁRIO VALIDADOR”;
 O sistema retorna para a (Figura 12) passo 2.
Consultar Registros {Figura 19}
 “USUÁRIO VALIDADOR” clica no botão “Definir CoAutorias” no sub menu na
(Figura 18);
60
 O sistema apresenta a tela “Definir CoAutorias” da (Figura 19), já mostrando os
registros de coautorias encontradas;
 O “USUÁRIO VALIDADOR” deve filtrar por ‘Monitoria’ e pelo tipo de produção
correspondente a produção confirmada como coautora (Figura 19);
 O “USUÁRIO VALIDADOR” pressiona o botão ‘+’ (Figura 19), para surgir as
produções agrupadas para um determinado ano;
 O “USUÁRIO VALIDADOR” deve clicar em uma produção para abrir a próxima
tela (Figura 21).
 O sistema abrirá a tela da Figura 21 apresentando os detalhes da produção clicada na
Figura 20 e os detalhes da produção coautora para visualizar os detalhes das duas
produções confirmadas como produções monitoradas (Figura 21).
3.10 TELAS DO MÓDULO SAPISIM
As telas desenvolvidas durante o TTC II serão acessadas pelo ““USUÁRIO
VALIDADOR””, que é um funcionário do projeto SAPI que verifica a comprovação dos
trabalhos
acadêmicos.
Nelas
serão
visualizadas
as
produções
entituladas
como
“PRODUÇÕES MONITORADAS”, produções que estiverem entre o LIMITE INFERIOR,
75% e o LIMITE SUPERIOR, 87% de similaridade e necessitam da confirmação da coautoria
ou a sua rejeição.
O LIMITE INFERIOR e o limite SUPERIOR, foram definidos analisando préresultados obtidos com os primeiros testes e neles foi identificado que todas as comparações
que atingiram similaridades de 87% eram coautorias consideradas automáticas e todas as
comparações que atingiram abaixo de 75% eram comparações que poderiam ser descartadas.
Para o “USUÁRIO VALIDADOR” poder acessa-las primeiro é preciso fazer login
no sistema SAPI 2.0. Feito isso o “USUÁRIO VALIDADOR” deverá acessar um sub menu
chamado “CoAutorias”, na Figura 10 é apresentado uma ilustração da tela TEL001.
61
.
Figura 10. Tela do sistema SAPI 2.0 – TEL001.
Então surgirão dois botões chamados Produções Pendentes e Definir CoAutoria, o
“USUÁRIO VALIDADOR” acessará primeiramente o botão chamado Produções Pendentes.
A Figura 11, é a continuação da Figura 10.
Figura 11. Tela do sistema SAPI 2.0 – TEL001.
62
Na Figura 12, é exibida a tela “Produções Pendentes” que tem o objetivo de
apresentar uma lista com todas as produções de um tipo identificadas como monitoradas, ou
seja, as produções que tiveram similaridade entre 70% a 86%, e organizadas e agrupadas por
ano. Na ilustração da Figura 12, existe um filtro por tipo de produção, ou seja, o “USUÁRIO
VALIDADOR” poderá filtrar a lista por um tipo presente no filtro, trazendo apenas as
produções monitoradas para o tipo de produção selecionado no filtro, agrupadas por ano.
Então o “USUÁRIO VALIDADOR” deverá clicar no sinal de ‘+’ à esquerda da tela para um
grupo de produções surgirem. Segue ilustração na Figura 13.
Figura 12. Tela do Módulo SapiSim – TEL002
Na Figura 13, é apresentada a continuação da Figura 12, que mostra o surgimento
das produções de um agrupamento por ano. Então o “USUÁRIO VALIDADOR” deverá
clicar em uma referência de produção que surgiu, para poder acessar a próxima tela.
63
Figura 13. Tela do Módulo SapiSim – TEL002.
Quando clicado uma produção acessa a ilustração da Figura 14. A tela da Figura 14
possui duas listas, a primeira que mostra os atributos da produção clicada na ilustração da
Figura 13, e a segunda mostra produções candidatas a serem coautoras da produção original,
ou seja, da produção que foi clicada na ilustração da Figura 13.
O “USUÁRIO VALIDADOR” ainda poderá clicar na flecha à esquerda da
“PRODUÇÃO CANDIDATA”, presente na lista de produções candidatas, para surgir os
detalhes da “PRODUÇÃO CANDIDATA”. Esta ilustração será mostrada na Figura 15. A
ilustração da Figura 14 tem como objetivo principal mostrar para o “USUÁRIO
VALIDADOR” os detalhes da “PRODUÇÃO MANDANTE” e os detalhes da “PRODUÇÃO
CANDIDATA”, dando-lhe uma visão completa sobre os atributos das produções avaliadas,
podendo realizar uma análise completa dos dados e decidir sem restar dúvidas se as produções
são coautoras ou não são coautoras.
64
Para o “USUÁRIO VALIDADOR” poder confirmar ou rejeitar a coautoria, ele deve
clicar em alguma referência de produção da lista de produções candidatas e clicar no botão
“Confirmar CoAutoria”, se foi identificado uma coautoria entre as produções em análise ou
clicar no botão “Não Existe CoAutoria”, se foi identificado que entre as produções em análise
não possui uma coautoria.
Então a ação tomada será processada e atualizará a lista de produções candidatas, se
a coautoria for confirmada então o registro será transferido para a tabela das produções
identificadas automaticamente que deverá aparecer no relatório das produções identificadas
automaticamente, se a coautoria não existir então o registro será deletado da tabela de
produções monitoradas.
Na Figura 16 é apresentada uma ilustração da tela com a lista de produções
candidatas atualizada e na Figura 17 é mostrada uma ilustração da tela quando não houver
mais produções candidatas a serem comparadas com a produção original.
Figura 14. Tela do Módulo SapiSim – TEL003.
65
Figura 15. Tela do Módulo SapiSim – TEL003.
Figura 16. Tela do Módulo SapiSim – TEL003.
66
Figura 17. Tela do Módulo SapiSim – TEL003.
Nas telas a seguir pode-se visualizar a produção confirmada como coautoria e todas
as produções identificadas como automáticas, ele deverá voltar a tela principal do sistema
SAPI 2.0, acessar o sub menu CoAutorias e clicar no botão chamado “Definir CoAutorias”
acessando a tela chamada “Definir CoAutorias” como é mostrado na Figura 18.
Figura 18. Tela do sistema SAPI 2.0 – TEL001
67
A tela “Definir CoAutorias”, é exibida na ilustração da Figura 19, ela possui dois
filtros e uma lista chamada “CoAutorias Finalizadas” que agrupa por ano as produções
filtradas por (automática ou monitorada).
O primeiro filtro chamado de “tipos de produções” é responsável por filtrar todas as
produções da lista pelo tipo de produção selecionado no filtro. O segundo filtro chamado de
“Tipos de CoAutorias” é responsável por filtrar somente as produções identificadas como
“Automaticas” ou “Monitoradas”.
Esta tela tem como objetivo principal mostrar um relatório para simples conferência
das
produções
identificadas
automaticamente
e
monitoradamente.
O
“USUÁRIO
VALIDADOR” deverá clicar no sinal de ‘+’ à esquerda da Figura 19, onde surgirá as
produções agrupadas para aquele ano, a Figura 20 ilustra esta situação.
Figura 19. Tela do Módulo do SapiSim – TEL004.
68
Figura 20. Tela do Módulo SapiSim – TEL004.
Clicando na referência da produção será aberta uma próxima tela que é exibida na
Figura 21. A tela da Figura 21 apresenta os detalhes da produção clicada na Figura 20,
identificada como “Produção Original” e uma lista chamada de “Produções CoAutoras” que
são as produções coautoras da produção clicada na Figura 20. Clicando na flecha à esquerda
da Figura 21, surgirá os detalhes da produção coautora.
A tela da Figura 21 tem como objetivo apresentar os detalhes da produção original e
os detalhes da produção coautora para simples conferência de atributos e constatar que
realmente são coautoras.
69
Figura 21. Tela do Módulo do SapiSim – TEL005.
70
4 RESULTADOS
Foram realizados estudos de casos com docentes que possuem produções de
diferentes tipos contendo coautores. Os docentes foram selecionados pelos seguintes critérios:
(i) possuírem uma boa produtividade; (ii) terem proximidade com o desenvolvimento do
SAPI (importante para elucidar casos específicos); (iii) apresentarem um bom número de
produções com coautorias; (iv) serem de áreas de atuação diferentes. Os docentes
selecionados seguindo estes critérios foram: André Luís Alice Raabe, pesquisador de
Computação e Educação, orientador deste trabalho e responsável pelo SAPI e Valdir Cechinel
Filho, Pro-reitor de pesquisa, pesquisador dá área de Farmácia.
Para cada um destes docentes foram definidos os sete coautores mais frequentes para
realização deste estudo de caso. O currículo Lattes dos dois docentes e de cada um dos sete
coautores (16 pessoas no total) foi então importado pelo SAPI 2.0 disparando assim o
processo de identificação de coautorias.
Os estudos de caso apresentados a seguir são análises dos resultados obtidos com a
execução do processo de identificação de coautorias criado no TTC II, ou seja, são análises
das produções identificadas automaticamente, monitoradamente e identificação das produções
que poderiam ter sido identificadas, mas não foram e as respectivas causas.
Para interpretação dos resultados de ambos os estudos de caso, são necessários
definir os seguintes termos:
 Automáticas: Produções encontradas automaticamente, ou seja, similaridades
apresentadas acima dos 86%.
 Monitoradas: Produções encontradas monitoradamente, ou seja, similaridades
apresentadas entre 75% a 86%.
 Não Encontradas: São produções coautoras existentes nos currículos Lattes dos
docentes, mas por falha no processo não foram encontradas.
 Não existe: São produções presentes no currículo Lattes do docente e que deveriam
ter produções coautoras, mas não são encontradas por não existirem nos currículos
71
lattes de seus docentes coautores, ou seja, o docente coautor não a publicou no seu
currículo lattes para serem baixadas pelo sistema SAPI 2.0.
4.1 ESTUDO DE CASO 1
O estudo de caso foi conduzido com o docente André Raabe. Foram escolhidos 7
(sete) docentes que tinham mais de um trabalho em coautoria com o docente André Raabe
para que a análise fosse feita com estes. Os docentes são: (i) Anita Maria Rocha Fernandes;
(ii) Cesar Albenes Zeferino; (iii) Rudimar Luis Scaranto Dazzi; (iv) Fabiane Barreto
Vavassori Benitti; (v) Rafael de Santiago; (vi) Adriana Gomes Alves; (vii) Elieser Ademir de
Jesus.
Definido isto foi feito uma busca no SAPI 1.0, pelas produções do docente André
Luís Alice Raabe filtradas pelos tipos de produções que o SAPI tratará coautorias. Nestas
foram recuperadas as referências bibliográficas a fim de saber quem são os coautores de cada
produção.
Os dados foram tabulados no programa Excel, (das produções do docente André
Raabe) para os tipos trabalhos considerados, contendo produções de todos os seus coautores
(além dos sete escolhidos), então foram retiradas manualmente as produções com coautores
não analisados, restando uma lista de produções somente dos docentes analisados. O total de
produções resultante desta etapa foi 102 produções sendo: 36 trabalhos em eventos; 10 artigos
em periódicos; 3 capítulos de livros; 48 bancas de trabalho de conclusão e 4 projetos de
pesquisa.
O próximo passo foi acessar a base de dados do módulo SapiSim, para buscar as
produções encontradas monitoradamente, desta forma obtendo os títulos e autores das
produções através do seu ID, desta forma foi possível saber qual produção de qual docente é
candidata a coautoria de uma produção do docente Raabe.
Após, os títulos das produções do docente Raabe eram copiados e pesquisado na lista
de produções, assim que encontrado era feito uma marca na linha da produção para indicar
que aquela produção com aquele docente foi encontrado como sendo ‘monitorada’ e marcava
numa tabela um ponto para o docente encontrado para a categoria monitoria.
72
Após o término desta etapa, iniciou um processo parecido como o anterior.
Buscaram-se as produções encontradas automaticamente na base de dados do módulo
SapiSim, desta forma obtendo os títulos e autores das produções através do seu ID. Então o
seu título era copiado e pesquisado na lista de produções, assim que encontrado o titulo da
produção na lista, a sua referência bibliográfica era comparada ao resultado obtido na base de
dados.
Por exemplo, uma produção do docente Raabe do tipo ‘trabalho em evento’ presente
na lista de produções, mostra em sua referência bibliográfica (exemplo mostrado acima) que a
produção possui dois coautores o docente Santiago e Dazzi. Esta produção do docente Raabe
foi encontrada como sendo automática, e para a mesma foi encontrada uma produção coautora
do docente Santiago . Então foi feito uma busca na base de dados mostrando o relacionamento
entre estas duas produções através de seus Ids e depois copiando o seu titulo e pesquisando na
lista de produções, assim que encontrado, analisava-se a referência da produção da lista de
produções verificando que a mesma possui dois coautores Santiago e Dazzi, mas na base de
dados somente foi encontrado a produção do docente Santiago como coautora, então era
marcado 1 (um) ponto para o Santiago para a categoria ‘automatica’ e era marcado 1 (um)
ponto para o Dazzi na categoria ‘Não encontradas’ ou ‘Não Existe’.
Ao analisar as produções encontradas ‘monitoradas’ e ‘automáticas’ presentes na
base de dados do SapiSim, sobravam produções na lista de produções que não foram
identificadas nem como sendo ‘monitoradas’ e nem como sendo ‘automáticas’, então foi feito
uma busca no banco de dados pelo ano e código do coautor verificando se a produção do
coautor presente na referência bibliográfica da produção do docente Raabe existia no
currículo Lattes do docente coautor ou não existia no seu currículo Lattes do mesmo, se
existia era marcado um ponto para o docente coautor na categoria ‘Não encontrada’, mas se
não existia era marcado um ponto para o docente coautor na categoria ‘Não Existe’. A seguir
será apresentada a figura de resultados do estudo de caso 1.
Os resultados obtidos estão apresentados no quadro da Figura 22. O quadro apresenta
o total de produções do docente Raabe que foram analisados, e ilustra para cada um dos sete
coautores quantas produções foram identificadas.
73
Anit a M aria da Rocha Fernandes
André
Raabe
Aut omát icas
M onit oradas
Trabalhos em
event os
Art igos em
Periódicos
36
2
0
1
10
0
0
Livros Publicados
0
0
Capí t ulo de Livro
Publicado
Part icipação em
Banca de
Graduação
Projet o de
Pesquisa
3
Cesar Albenes Zef erino
Não
Não Exist e
Encont radas
Não
Não exsit e
Encont radas
Aut omát icas
M onit oradas
0
6
0
0
0
0
0
2
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
48
5
0
1
0
1
0
0
0
4
0
0
0
0
0
0
0
1
Fabiane Barret o Vavassori
André
Raabe
Aut omát icas
M onit oradas
Trabalhos em
event os
Art igos em
Periódicos
36
8
2
0
10
2
0
Livros Publicados
0
0
Capí t ulo de Livro
Publicado
Part icipação em
Banca de
Graduação
Projet o de
Pesquisa
3
Raf ael de Sant iago
Não
Não Exist e
Encont radas
Não
Não Exist e
Encont radas
Aut omát icas
M onit oradas
1
8
1
0
0
0
0
3
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
48
17
0
0
2
6
0
0
0
4
0
1
0
1
0
0
0
1
Adriana Gomes Alves
André
Raabe
Aut omát icas
M onit oradas
Trabalhos em
event os
Art igos em
Periódicos
36
5
0
1
10
0
0
Livros Publicados
0
0
0
Capí t ulo de Livro
Publicado
Part icipação em
Banca de
Graduação
Projet o de
Pesquisa
3
0
48
4
Elieser Ademir de Jesus
Não
Não Exist e
Encont radas
Não
Encont radas Não Exist e
Aut omát icas
M onit oradas
0
5
0
0
0
0
0
2
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
10
0
1
0
3
0
0
0
1
0
0
0
0
0
0
2
Rudimar Luis Scarant o Dazzi
André
Raabe
Aut omát ico
M onit oradas
Não
Encont radas
Não Exist e
Trabalhos em
event os
Art igos em
Periódicos
36
2
0
0
0
10
0
0
0
0
Livros Publicados
0
0
0
0
0
Capí t ulo de Livro
Publicado
Part icipação em
Banca de
Graduação
Projet o de
Pesquisa
3
1
0
0
0
48
18
0
0
2
4
1
0
0
1
Figura 22. Resultado do estudo de caso 1.
A interpretação deste quadro pode ser feita da seguinte forma. Em cada linha da
tabela é apresentado o total de produções de cada tipo que o docente Raabe possui em
coautoria com colegas. Esta informação é repetida quatro vezes para facilitar comparação
visual. Em cada coautor as produções do docente caem necessariamente em uma das quatro
modalidades (Automática, Monitorada, Não encontrada, Não existe).
74
Por exemplo, O docente Raabe teve como a docente Fabiane Benitti 11 produções do
tipo trabalhos em eventos. Destas, 8 foram identificadas de forma automática, duas de forma
monitorada e uma não existe no lattes da coautora. Deve-se salientar que por existirem
produções com mais de um coautor (entre os sete analisados) o total de trabalhos identificados
somando todos os coautores pode ser superior aos trabalhos do docente Raabe.
Desta forma, a coluna que indica problemas ou insuficiência do sistema é a coluna
(não encontradas) as demais são situações que tem causas explicadas ou então que estão de
acordo com o propósito do trabalho.
A seguir será feito um levantamento dos principais pontos do estudo de caso 1.
 No total, apenas cinco produções não foram encontradas das 102 analisadas, ou seja
um erro inferior a 5%, pois este trabalho não tem o objetivo de identificar todas as
coautorias.
 Apenas 2 (dois) docentes dos 7 (sete) escolhidos apresentaram produções cuja
coautoria não foi encontrada. A docente Anita Fernandes teve 3 produções não
encontradas em 10, ou seja, o SapiSim encontrou 70% das coautorias. Já a docente
Adriana Alves teve duas produções não encontradas de um total de 20, ou seja, em
90% das produções o SapiSim encontrou as coautorias.
 Na coautoria com o docente Cesar Zeferino o SapiSim encontrou 100% das
produções dos tipos trabalho em evento e em periódico.
 Também encontrou 100% das bancas de Trabalho de graduação em conjunto com a
docente Fabiane Benitti (as duas não encontradas não constavam no currículo da
docente).
 Somando todas as produções do tipo artigo publicado em periódico o SapiSim não
falhou em nenhuma coautoria, tendo 100% de acerto.
 Somando todas as produções tipo participação em banca o SapiSim falhou em apenas
3% para coautorias não encontradas.
75
4.2 ESTUDO DE CASO 2
O estudo de caso 2 foi conduzido com o docente Valdir Cechinel Filho. A estratégia
adotada para desenvolver o estudo de caso 2 foi à mesma estratégia do estudo de caso 1. Os
docentes principais coautores analisados foram: (i) Cristiani Burger; (ii) Alexandre Bella
Cruz; (iii) Luciano Gonzaga Galvão; (iv) Rogério Corrêa; (v) Rivaldo Niero; (vi) Edneia
Casagranda Bueno; (vii) Nara Lins Meira Quintão.
O total de produções analisado foi 310 produções sendo: 186 trabalhos em eventos;
91 artigos em periódicos; 9 capítulos de livros; 16 bancas de trabalho de conclusão e 8
projetos de pesquisa. A seguir são apresentados os resultados do estudo de caso 2.
76
Crist iani Burger
Valdir Cechinel
Alexandre Bella Cruz
Não
Aut omat icas M onit oradas
Não Exist e
Encont radas
Aut omat icas
M onit oradas
Não
Encont radas
Não Exist e
Trabalho em
Event os
Art igo em
Periodico
186
10
0
0
0
30
4
1
7
91
2
0
1
1
16
2
1
1
Livro
0
0
0
0
0
0
0
0
0
Capit ulo de
Livro
Part icipação
em bancas
Projet o de
Pesquisa
9
0
0
0
0
1
0
0
0
16
2
0
0
0
5
0
1
0
8
0
0
0
0
0
0
0
1
Luciano Gonzaga Galvao
Valdir Cechinel
Rogerio Corrêa
Não
Aut omat icas M onit oradas
Não Exist e
Encont radas
Aut omat icas
M onit oradas
Não
Encont radas
Não Exist e
Trabalho em
Event os
Art igo em
Periodico
186
0
0
0
4
32
4
0
16
91
0
0
0
1
26
1
5
1
Livro
0
0
0
0
0
0
0
0
0
Capit ulo de
Livro
Part icipação
em bancas
Projet o de
Pesquisa
9
0
0
0
0
2
0
0
0
16
0
0
0
0
3
0
0
0
8
0
0
0
0
1
0
0
1
Edneia Casagranda Bueno
Rivaldo Niero
Valdir Cechinel
Não
Aut omat icas M onit oradas
Não Exist e
Encont radas
Aut omat icas
M onit orias
Não
Encont radas
Não Exist e
Trabalho em
Event os
Art igo em
Periodico
186
50
4
0
13
6
4
0
0
91
28
7
4
1
1
0
1
0
Livro
0
0
0
0
0
0
0
0
0
Capit ulo de
Livro
Part icipação
em bancas
Projet o de
Pesquisa
9
2
0
0
3
0
0
0
0
16
6
0
0
0
0
0
0
0
8
1
0
0
0
0
0
0
0
Nara Lins Quint ao
Não
Não Exist e
Encont radas
Valdir Cechinel
Aut omat icas
M onit orias
Trabalho em
Event os
Art igo em
Periodico
186
18
4
0
3
91
5
0
2
0
Livro
0
0
0
0
0
Capit ulo de
Livro
Part icipação
em bancas
Projet o de
Pesquisa
9
0
0
1
0
16
0
0
0
0
8
2
0
0
1
Figura 23. Resultado do estudo de caso 2.
Os principais pontos do estudo de caso 2 a serem salientados são:
 No total, apenas 17 produções não foram encontradas das 310 analisadas, ou seja, um
erro inferior a 5,5%, pois este trabalho não tem o objetivo de identificar toda as
coautorias, mas sim a grande maioria.
77
 O docente Rivaldo Niero somando todas as produções constou 119 vezes sendo
identificadas como não encontradas apenas 4 (quatro) produções, representando um
erro de 3,3% do total de produções coautoras.
 O docente Rogério Corrêa somando todas as produções constou 92 vezes sendo
identificadas como não encontradas 5 (cinco) produções, representando um erro de
5,4% do total de produções coautoras.
 O docente Alexandre Cruz somando todas as produções constou 70 vezes sendo
identificadas como não encontradas 3 (três) produções, representando um erro de
4,2% do total de produções coautoras.
 Para a docente Cristiani Burger o SapiSim encontrou todas as produções coautoras.
Tendo 0% de erro para o tipo trabalhos em eventos.

Para o docente Alexandre Bella Cruz o SapiSim encontrou 30 produções sendo
que 7 (sete) produções não foram encontradas por causa que as produções do docente
não constavam em seu currículo Lattes, 4 (quatro) produções constaram como
monitoradas e em somente 1 (uma) produção o SapiSim falhou. Tendo apenas 2,3%
de erro.
4.3 CONSIDERAÇÕES SOBRE OS ESTUDOS DE CASOS
Após análise dos dois estudos de caso alguns pontos comuns foram identificados que
são salientados a seguir:
 A grande maioria das coautorias que não foram identificadas ocorreu por não
existirem no currículo Lattes do correspondente coautor. Não significando uma falha
do módulo SapiSim.
 Nos dois estudos de caso a identificação de coautorias na modalidade automática foi
amplamente superior às demais modalidades;
 Durante a realização dos testes foram ajustados os limites inferior e superior da
similaridade para ampliar a exatidão dos resultados. Os limite superior (ligado a para
identificação automática) passou para 87% de similaridade (antes dos testes era 90%)
78
e o limite inferior (ligado a identificação monitorada) passou para 75% (antes era
70%). Em resumo os limites ficaram como segue:
o Automática: similaridade >= 87%
o Monitorada: similaridade >= 75% e similaridade < 87%
 O erro total na modalidade (produções não encontradas) dos dois estudos de caso foi
de 22 produções, sendo o total de produções 412. Desta forma o erro foi de 5,34 % o
que pode ser considerado um valor baixo.
 Duas causas identificadas que provocaram erros no SapiSim durante os testes de
identificação de coautorias, (i) Ao analisar os atributos das produções comparadas,
poderiam ser consideradas coautoras, mas foram excluídas pela regra do ISSN ou
ISBN, que descartam comparações com ISSN e ISBN diferentes. (ii) O grau de
similaridade entre as produções ficou abaixo do LIMITE SUPERIOR.
5 CONCLUSÕES
Este trabalho buscou trazer melhorias para o sistema SAPI 2.0 da UNIVALI. O
objetivo principal era a construção de um módulo para identificar coautorias entre produções
acadêmicas. Este objetivo foi atendido como pode ser verificado no decorrer desta
monografia, em especial nas ilustrações de telas (na seção 3.8) e dos resultados das análises
dos estudos de casos (no capítulo 4) que demostram os resultados obtidos pela utilização do
módulo. O módulo, denominado SapiSim, identificou coautorias no sistema SAPI 2.0, dando
uma maior confiança nos resultados obtidos em relatórios dos escores dos docentes ao
eliminar redundâncias geradas por estas coautorias.
Os objetivos específicos foram todos alcançados. O objetivo (i) Pesquisar e
documentar conceitos relacionados à similaridade de atributos foi obtido por meio da
pesquisa de trabalhos correlatos e fundamentação teórica apresentados no capítulo 2. Os
objetivos (ii) Definir algoritmos de similaridade textual para comparação dos atributos e (iii)
Definir heurísticas e regras para ponderar a similaridade entre os atributos das produções
foram alcançados e estão apresentados no capítulo 3 que detalha o desenvolvimento do
módulo SapiSim contendo os algoritmos de similaridade e regras de negócio implementadas.
79
Já o objetivo (iv) Testar e avaliar o módulo SapiSim no Sistema de Avaliação de
Produção Institucional (SAPI) da Universidade do Vale do Itajaí (UNIVALI) foi alcançado
por meio da realização de dois estudos de caso de docentes típicos usuários do SAPI,
conforme consta no capítulo 4.
Não foi criada nenhuma tarefa adicional para o docente do sistema. Basta atualizar
seus currículo no SAPI que o módulo SapiSim irá buscar as coautorias. Já a tarefa de
identificação monitorada criar uma tarefa a mais para o “USUÁRIO VALIDADOR” do SAPI.
Desta forma, esta tarefa foi organizada para que a identificação das produções possa ser
realizada em partes, sendo segmentada por ano e/ou por tipo de produção. Desta forma caso
exista uma necessidade específica de análise os esforços de identificação das coautorias
monitoradas poderão ocorrer conforme a demanda.
A principal dificuldade para desenvolvimento do módulo foi compreender e
desenvolver utilizando o conjunto de tecnologias adotado no SAPI 2.0, ou seja, Smart Client e
Hibernate. Esta dificuldade foi ultrapassada e pode-se considerar que o módulo produzido
possui características adequadas a sua utilização como produto do sistema SAPI.
Uma cópia de todo o código do desenvolvimento do módulo está no servidor do
projeto SAPI, no entanto o módulo foi testado apenas em uma máquina local. Para
implantação no SAPI duas tarefas encontram-se pendentes (que não eram escopo deste TCC):
(i) Homologação da implementação pelos desenvolvedores do SAPI e (ii) Alteração da forma
de cálculo do escore do SAPI considerar as produções com coautoria.
O módulo SapiSim foi pioneiro na identificação de coautorias no Sistema SAPI, mas
ainda há muito o que fazer, então o autor deixa algumas sugestões de trabalhos futuros. (i)
Tornar o LIMITE SUPERIOR e LIMITE INFERIOR configuráveis, ou seja, ter a opção de
modifica-lo conforme a necessidade do sistema. (ii) Avisar o docente de uma produção não
cadastrada em seu currículo LATTES, para poder ser identificada uma coautoria.
Analisando os resultados obtidos, pode-se afirmar que o SapiSim apresentou
resultados satisfatórios viabilizando a tarefa de identificação de coautorias nas produções
científicas do sistema SAPI 2.0. No entanto é importante admitir que os dois estudos de caso ,
ainda que conduzidos de forma rigorosa, não fornecem uma garantia plena de que novos
ajustes nas regras e limites de similaridade sejam necessários ao ampliar-se o número de
docentes. Como tem mostrado a história de desenvolvimento do SAPI, muitas situações só
são passíveis de serem detectadas quando o universo de docentes com ampla diversidade de
tipos de produção é contemplado.
80
Espera-se com este trabalho ter contribuído para melhoria de um produto que tornase cada vez mais um diferencial da UNIVALI e que tem boas perspectivas de futuro.
81
REFERÊNCIAS BIBLIOGRÁFICAS
ALEXANDER, C.; An Introduction for Object-Oriented Designers. 2012. Disponível em: <
http://g.oswego.edu/dl/ca/ca/ca.html > . Acessado em 20 abr. 2012.
ARANHA, C. N.; Uma Abordagem de Pré-Processamento Automático para Mineração de
Textos em Português: Sob o Enfoque da Inteligência Computacional. 2007. Tese - Pontifícia
Universidade Católica do Rio de janeiro. Local: PUC-RJ. Data: 2007.
BARION, E. C. N.; LAGO, D.; Mineração de Textos. Revista de Ciências Exatas e
Tecnologia. São Paulo. Vol. (III). N. (III), p. (18). Dez. 2008.
CARDOSO, O. N. P.; Recuperação de Informação. Universidade Federal de Lavras.
Departamento de Ciência da Computação. Pag. inicial. 1, Pag. final. 6. 2005.
CHALCO, J. P. M.; CESAR JUNIOR, R. M. ScriptLattes: an open-source knowledge
extraction system from the Lattes platform. Journal of the Brazilian Computer Society. Local:
Campinas. Vol. (15). N. (4), 15 dez, 2009.
FARIAS, L. R.; VARGAS, A. P.; BORGES, E. N.; Um sistema para análise de redes de
pesquisa baseado na Plataforma Lattes. Centro de Ciências Computacionais – Universidade
Federal
do
Rio
Grande
(FURG).
2011
Disponível
em:
<http://www.eduardo.c3.furg.br/arquivos/download/erbd-pesquisa2012.pdf> . Acessado em:
20 mar. 2012.
GARCIA, E.; Cosine Similarity and Term Weight Tutorial. In: An Information Retrieval
Tutorial on Cosine Similarity Measures, Dot Products and Term Weight Calculations.
Information Retrieval Tutorials. Série. 2. 2006.
HIBERNATE. Visão geral Hibernate. 2010. Disponível em: <http://www.hibernate.org/ > .
Acessado em : 23 abr. 2012.
JARO, M. A.; Advances in Record-Linkage Methodology as
Applied to Matching the 1985 Census of Tampa. 1989. Disponível
<http://www.fcsm.gov/working-papers/mjaro.pdf>. Acessado em: 23 jun. 2012.
em
:
JEAN, W. A.; OLIVEIRA, A. H. F.; LAENDER, M. A. G.; Remoção de ambiguidade das
autorias de objetos bibliográficos. Departamento de Ciência da Computação - Universidade
Federal
de
Minas
Gerais.
2005.
Disponível
em:
<http://www.google.com.br/url?sa=t&rct=j&q=remo%C3%A7%C3%A3o%20de%20ambig%
C3%BCidades%20na%20identifica%C3%A7%C3%A3o%20de%20autoria%20de%20objetos
%20bibliogr%C3%A1ficos%201&source=web&cd=1&ved=0CCQQFjAA&url=http%3A%2
F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fdownload%3Fdoi%3D10.1.1.137.5843%26rep%
3Drep1%26type%3Dpdf&ei=VaaT6aaMMqItwfViKynBA&usg=AFQjCNGYqNCyJoA2UTDncnWfQCYu2RHCaw&cad=rj
a > . Acessado em: 25 mar. 2012.
LEVENSHTEIN.
The
Levensgtein-Algorithm.
2012.
Disponível
em:
<http://www.levenshtein.net/index.html>. Acessado em : 27 jun. 2012.
82
MONGE, A. E.; ELKAN, C. P.; The field matching problem: Algorithms and applications.
Department of Computer Science and Engineering. University of California, San Diego, La
Jolla,
California.
Disponível
em:
<http://pdf.aminer.org/000/473/089/the_field_matching_problem_algorithms_and_application
s.pdf>. Acessado em : 23 jun. 2012.
PACIEVITCH, T.; Conselho Nacional de Desenvolvimento Científico e Tecnológico. 2009.
Disponível
em
:
<http://www.infoescola.com/ciencias/conselho-nacional-dedesenvolvimento-cientifico-e-tecnologico-cnpq/>. Acessado em : 02 jul. 2012.
RAABE,
A.
L.
A.;
O
que
é
o
SAPI.
2011.
Disponível
<http://siaiacad17.univali.br/~sapi/index.html>. Acessado em: 09 fev. 2012.
em:
RIBEIRO JUNIOR, L. C.; BORGES, T.; LICHTNOW, D.; LOH, S.; SALDANÃ, R.;
Identificação de Áreas de Interesse a partir da Extração de Informações de Currículos
Lattes/XML. Escola de Informática – Universidade Católica de Pelotas (UCPel). 2005.
Disponível em: <http://paginas.ucpel.tche.br/~loh/pdfs/erbd-2005.pdf >. Acessado em: 23
mar. 2012.
ROSETTACODE.
Levenshtein
Distance.
2012.
Disponível
<http://rosettacode.org/wiki/Levenshtein_distance>. Acessado em : 20 mai. 2012.
em
:
SMARTCLIENT.
Client-Server
Integration.
2010.
Disponível
em:
<http://localhost:8080/isomorphic/system/reference/SmartClient_Reference.html#group..clien
tServerIntegration> . Acessado em: 25 abr. 2012.
SMARTCLIENT.
Visão
geral
SmartClient.
<http://www.smartclient.com >. Acessado em : 23 abr. 2012
2010.
Disponível
em:
SMITH, T. F.; WATERMAN, M. S.; Identification of Common Molecular Subsequences.
1981. Disponível em : <http://www.cmb.usc.edu/papers/msw_papers/msw-042.pdf>.
Acessado em : 23 jun. 2012.
SOURCEFORGE. SimMetrics. UK Sheffield University. 2004. Disponivel
<http://sourceforge.net/projects/simmetrics/files/>. Acessado em: 19 fev. 2012.
em:
STANLEY BLOG. Lista de StopWords nas línguas portuguesa, inglêsa e espanhola. 2008.
Disponível em : <http://paginas.ucpel.tche.br/~loh/stoplists.zip>. Acessado em 23 de jun. de
2012.
WEBER, M. H.; Uma API para criação de aplicações de recuperação de informação.
Universidade do Vale do Itajaí. 2005.
WIVES, L. K.; Tecnologias de Descoberta de Conhecimento em Textos Aplicadas à
Inteligência Competitiva. 2002. Pag. 116, Tese - Universidade Federal do Rio Grande do Sul,
Instituto de Informática, Programa de Pós-Graduação em Computação. Local: Porto Alegre.
Data: jan. 2002.
83
APÊNDICE A. ALGORITMOS DE MÉTRICAS DE
SIMILARIDADE
84
Serão apresentados dois algoritmos de métricas de similaridade já abordados neste
documento, o algoritmo de Levenshtein (1966), e o algoritmo da Cosine Similarity. No
Quadro 5, é mostrado o algoritmo de Levenshtein (1966) e no Quadro 6, é mostrado o
algoritmo da Cosine Similarity.
public class LevenshteinDistance
{
public static int computeDistance(String s1, String s2)
{
s1 = s1.toLowerCase();
s2 = s2.toLowerCase();
int[] costs = new int[s2.length() + 1];
for (int i = 0; i <= s1.length(); i++)
{
int lastValue = i;
for (int j = 0; j <= s2.length(); j++)
{
if (i == 0)
costs[j] = j;
else
{
if (j > 0)
{
int newValue = costs[j - 1];
if (s1.charAt(i - 1) != s2.charAt(j - 1))
newValue = Math.min(Math.min(newValue, lastValue), costs[j])
+ 1;
costs[j - 1] = lastValue;
lastValue = newValue;
}
}
}
if (i > 0)
costs[s2.length()] = lastValue;
}
return costs[s2.length()];
}
public static void printDistance(String s1, String s2)
{
System.out.println(s1 + "-->" + s2 + ": " + computeDistance(s1, s2));
}
public static void main(String[] args)
{
printDistance("kitten", "sitting");
printDistance("rosettacode", "raisethysword");
printDistance(new StringBuilder("rosettacode").reverse().toString(),
new StringBuilder("raisethysword").reverse().toString());
for (int i = 1; i < args.length; i += 2)
printDistance(args[i - 1], args[i]);
}
}
Quadro 3. Algoritmo de Levenshtein em Java.
Fonte: ROSETTACODE (2012)
85
public float getSimilarity(final String string1, final String string2) {
final ArrayList<String> str1Tokens = tokeniser.tokenizeToArrayList(string1);
final ArrayList<String> str2Tokens = tokeniser.tokenizeToArrayList(string2);
final Set<String> allTokens = new HashSet<String>();
allTokens.addAll(str1Tokens);
final int termsInString1 = allTokens.size();
final Set<String> secondStringTokens = new HashSet<String>();
secondStringTokens.addAll(str2Tokens);
final int termsInString2 = secondStringTokens.size();
//now combine the sets
allTokens.addAll(secondStringTokens);
final int commonTerms = (termsInString1 + termsInString2) - allTokens.size();
//return CosineSimilarity
return (float) (commonTerms) / (float) (Math.pow((float) termsInString1, 0.5f) *
Math.pow((float) termsInString2, 0.5f));
}
Quadro 4. Algoritmo Cosine Similarity
Fonte: SimMetrics (2006)
86
APÊNDICE B. DETALHAMENTO DE CLASSES
87
A. Modelagem UML
A.1 Visão Lógica (Diagrama de Classe)
A.1.1 Controle
Figura 24. Diagrama de classe – Controle.
JPAIdentificaCoAutoriaDAO
Type:
public Class
Implements: CoAutoriaDAO.
Status:
Proposed. Version 1.0. Phase 1.0.
Package:
Controle
Details:
Created on 06/06/2012 17:16:29. Modified on 06/06/2012 17:16:30.
Author: Luis Fernando Balsini.
88
Identifica CoAutoria Attributes
Attribute
Type
listaProducoesDocent
ePrincipal
listaProducoesCandid
atas
AutomaticaMonitoria
Depois
copiaProducoesCandi
datas
copiaProducoesDoce
ntes
fabricaDAO
valorsimilaridade
Notes
private :
List<Object[]>
Armazena as produções do docente principal
Private :
List<Object[]>
Armazena as produções candidatas
private :
AutMon
private :
List<Copia>
Objeto para chamar métodos
AutomaticoMonitoriaDAO.
Armazena objetos produções candidatas Copia.
private :
List<Copia>
Private :
FabricaDAO
Private :
double
Armazena objetos produções docente Copia.
Objeto para acessar classes DAOs
Contem o valor da similaridade entre duas
produções.
Quadro 5. Definição dos atributos da classe IdentificaCoautoria.
IdentificaCoAutoria Methods
Method
Type
Notes
public: void
Executa módulo sapisim.
public: void
Inicia identificação de Coautoria.
Public :
Construtor da classe
private :
List<Object[]
>.
Retorna lista de array de object das produções do
docente principal.
CompararCoAutori
a ();
DisparaIdentificaca
oCoAutoria ();
JPAIdentificaCoaut
oriaDAO();
getListaProducoesD
ocentePrincipal();
setListaProducoesD
ocentePrincipal();
getListaProducoesC
andidatas();
private :
void
Private :
List<Object[]
>
setListaProducoesC Private :
andidatas();
void
getValorSimilaridad Private :
e();
double
Set
Private :
ValorSimilaridade
Void
Seta na lista array de objects de produções do docente
principal retornada do banco.
Retorna lista de array de object das produções
candidatas
Seta na lista array de object de produções candidatas
retornadas do banco.
Retorna o valor final da similaridade entre duas
produções.
Seta na variável valorsimilaridade o resultado final da
coautoria entre duas produções.
89
ClassificaResultado
DaSimilaridade();
getCopiaProducoes
Docente();
setCopiaProduções
Docente():
getCopiaProducoes
Candidatas():
setCopiaProducoes
Candidatas();
Public :
boolean
Public :
List<Copia>
Public :
Void
Public :
List<Copia>
Public :
void
Classifica a ação tomada de acordo com o limiar de
similaridade definido.
Retorna uma lista de produções do docente principal do
tipo copia.
Seta na lista objeto do tipo copia de produções do
docente principal.
Retorna uma lista de produções candidatas do tipo
copia.
Seta na lista objetos do tipo copia de produções
candidatas.
Quadro 6. Descrição dos métodos da classe JPAIdentificaCoautoriaDAO.
JPACommandDAO
Type:
public abstract Class
Status:
Proposed. Version 1.0. Phase 1.0.
Package:
Controle
Details:
Created on 06/06/2012 17:16:29. Modified on 06/06/2012 17:16:30.
Autor : Luis Fernando Balsini.
JPACommandDAO Attributes
Attribute
Type
MapeandoTipoDaPro
ducao
Notes
Public :
HashMap<String,
NormalizacaoEStopWord
sDAO>
Executa um mapeamento das classes que
implementam a interface
NormalizacaoEEstopWordsDAO.
Quadro 7. Descrição dos atributos da classe JPACommandDAO.
JPACommandDAO Methods
Method
Type
getObjetosClasses(
String)
public:
NormalizacaoEStop
WordsDAO
JPACommandDAO public:
Notes
Retorna o objeto da classe especifica a ser
chamada.
Construtor da classe.
Quadro 8. Descrição dos métodos da classe JPACommandDAO.
.
90
A 1.2 Tratador
Figura 25. Diagrama de classe – Pacote Tratador.
JPAStopWordsDAO
Type:
public final Class
Status:
Proposed. Version 1.0. Phase 1.0.
Package:
Tratador
Details:
Created on 06/06/2012 17:16:29. Modified on 06/06/2012 17:16:30.
Author: Luis Fernando Balsini
JPAStopWordsDAO Attributes
Attribute
Type
builder
listaStopWords
static :
StringBuilder
Static final :
String[]
Notes
Buffer para armazenar a concatenação de
strings.
Lista de palavras stopWords.
Quadro 9. Descrição dos atributos da classe JPAStopWordsDAO
91
JPAStopWordsDAO Methods
Method
Type
JAPStopWords
public:
DAO();
getStringBuilder ()
static:
StringBuilder
Public static
SeparaFraseEmToken final:
s (String)
String[]
Public static
RetiraStopWords(Stri final: String
ng[])
Notes
Construtor da classe.
Retorna um buffer com strings comcatenados.
Separa string passada por parâmetro em tokens.
Remonta frase passada por parâmetro no array de
string retirando as stopwords.
Quadro 10. Descrição dos métodos da classe JPAStopWordsDAO
JPANormalizacaoDAO
Type:
public final Class
Status:
Proposed. Version 1.0. Phase 1.0.
Package:
Tratador
Details:
Created on 06/06/2012 17:16:29. Modified on 06/06/2012 17:16:30.
Autor : Luis Fernando Balsini.
JPANormalizacaoDAO Attributes
Attribute
Type
listacaracteres
static final :
char[][]
Notes
Matriz de caracteres a serem normalizados nos
títulos das produções.
Quadro 11. Descrição dos atributos da classe JPANormalizacaoDAO
JPANormalizacaoDAO Methods
Method
Type
JPANormalizacaoD public:
AO();
Normalizar(String); Public static
final : String
Notes
construtor da classe
É passado por parâmetro um texto não normalizado e
retorna um texto normalizado.
Quadro 12. Descrição dos métodos da classe JPANormalizacaoDAO
JPANormalizacaoEStopWodsTrabalhosEmEventosDAO
Type:
public Class
Implements: NormalizacaoEStopWordsDAO.
92
Status:
Proposed. Version 1.0. Phase 1.0.
Package:
Tratador
Details:
Created on 06/06/2012 17:16:29. Modified on 06/06/2012 17:16:30.
Autor : Luis Fernando Balsini.
JPANormalizacaoEStopWordsTrabalhosEmEventosDAO Methods
Method
Type
Notes
executaNormalizacaoEStopWords(
List<.Object[]>,List<Copia>);
public : void
Método executa a normalizações e retira
stopWords dos atributos das produções.
Quadro 13. Descrição dos métodos da classe
JPANormalizacaoEStopWordsTrabalhosEmEventosDAO
JPANormalizacaoEStopWodsProjetoDePesquisaDAO
Type:
public Class
Implements: NormalizacaoEStopWordsDAO.
Status:
Proposed. Version 1.0. Phase 1.0.
Package:
Tratador
Details:
Created on 06/06/2012 17:16:29. Modified on 06/06/2012 17:16:30.
Autor : Luis Fernando Balsini.
JPANormalizacaoEStopWordsProjetoDePesquisaDAO Methods
Method
Type
Notes
executaNormalizacaoEStopWords(
List<.Object[]>,List<Copia>);
public : void
Método executa a normalizações e retira
stopWords dos atributos das produções.
Quadro 14. Descrição dos métodos da classe
JPANormalizacaoEStopWordsProjetoDePesquisaDAO
JPANormalizacaoEStopWodsLivroDAO
Type:
public Class
Implements: NormalizacaoEStopWordsDAO.
Status:
Proposed. Version 1.0. Phase 1.0.
Package:
Tratador
Details:
Created on 06/06/2012 17:16:29. Modified on 06/06/2012 17:16:30.
Autor : Luis Fernando Balsini.
JPANormalizacaoEStopWordsLivroDAO Methods
Method
Type
executaNormalizacaoEStopWords(
List<.Object[]>,List<Copia>);
public : void
Notes
Método executa a normalizações e retira
stopWords dos atributos das produções.
93
Quadro 15. Descrição dos métodos da classe JPANormalizacaoEStopWordsLivroDAO
JPANormalizacaoEStopWodsCapituloDeLivroDAO
Type:
public Class
Implements: NormalizacaoEStopWordsDAO
Status:
Proposed. Version 1.0. Phase 1.0.
Package:
Tratador
Details:
Created on 06/06/2012 17:16:29. Modified on 06/06/2012 17:16:30.
Autor : Luis Fernando Balsini.
JPANormalizacaoEStopWordsCapituloDeLivroDAO Methods
Method
Type
Notes
executaNormalizacaoEStopWords(
List<.Object[]>,List<Copia>);
public : void
Método executa a normalizações e retira
stopWords dos atributos das produções.
Quadro 16. Descrição dos métodos da classe
JPANormalizacaoEStopWordsCapituloDeLivroDAO
JPANormalizacaoEStopWodsBancaDAO
Type:
public Class
Implements: NormalizacaoEStopWordsDAO.
Status:
Proposed. Version 1.0. Phase 1.0.
Package:
Tratador
Details:
Created on 06/06/2012 17:16:29. Modified on 06/06/2012 17:16:30.
Autor : Luis Fernando Balsini.
JPANormalizacaoEStopWordsBancaDAO Methods
Method
Type
executaNormalizacaoEStopWords(
List<.Object[]>,List<Copia>);
public : void
Notes
Método executa a normalizações e retira
stopWords dos atributos das produções.
Quadro 17. Descrição dos métodos da classe JPANormalizacaoEStopWordsBancaDAO
JPANormalizacaoEStopWodsArtigoPublicadoDAO
Type:
Status:
Package:
public Class
Implements: NormalizacaoEStopWordsDAO.
Proposed. Version 1.0. Phase 1.0.
Tratador
94
Details:
Created on 06/06/2012 17:16:29. Modified on 06/06/2012 17:16:30.
Autor : Luis Fernando Balsini.
JPANormalizacaoEStopWordsArtigoPublcadoDAO Methods
Method
Type
Notes
executaNormalizacaoEStopWords(
List<.Object[]>,List<Copia>);
public : void
Quadro 18. Descrição dos métodos da classe
JPANormalizacaoEStopWordsArtigoPublicadoDAO
A 1.3 Pacote Similaridade
Figura 26. Diagrama de classe – Pacote Similaridade.
Método executa a normalizações e retira
stopWords dos atributos das produções.
95
JPAFormulasSimilaridadeDAO
Type:
public Class
Implements: FormulasSimilaridadeDAO.
Status:
Proposed. Version 1.0. Phase 1.0.
Package:
Similaridade
Details:
Created on 06/06/2012 17:16:29. Modified on 06/06/2012 17:16:30.
Autor : Luis Fernando Balsini.
JPAFormulasSimilaridadeDAO Attributes
Attributes
Type
valorsimilaridade
private :
double
Notes
Guarda a valor da similaridade entre duas
produções.
Quadro 19. Descrição dos atributos da classe JPAFormulasSimilaridadeDAO
JPAFormulasSimilaridadeDAO Methods
Method
Type
getValorSimilaridade
setValorSimilaridade
JPAFormulasSimilaridadeDAO
SimBan(String, String, String, String)
public :
double
Public :
Void
Public
double
SimCapL(String, String, String,
Public :
String, String, String)
double
SimEven(String, String, String, String) Public :
Double
SimL(String, String, String, String)
SimPeriodico(String, String, String,
String)
Public :
Double
Public :
Double
Notes
Retorna valor da similaridade entre duas
produções.
Seta na variável a similaridade entre duas
produções.
Construtor da classe.
Retorna a valor da similaridade entre
duas produções do tipo participação em
banca.
Retorna o valor da similaridade entre
duas produções do tipo capitulo de livro
Retorna o valor da similaridade entre
duas produções do tipo trabalho em
evento.
Retorna o valor da similaridade entre
duas produções do tipo livro.
Retorna o valor da similaridade entre
duas produções do tipo artigo em
periódico.
96
SimPP(String, String)
Public :
Double
Retorna o valor da similaridade entre
duas produções do tipo projeto em
pesquisa.
Quadro 20. Descrição dos métodos da classe JPAFormulasSimilaridadeDAO
JPACalculoSimilaridadeDAO
Type:
public Class
Implements: CalculoSimilaridadeDAO.
Status:
Proposed. Version 1.0. Phase 1.0.
Package:
Similaridade
Details:
Created on 06/06/2012 17:16:29. Modified on 06/06/2012 17:16:30.
Autor : Luis Fernando Balsini.
JPACalculoSimilaridadeDAO Attributes
Attributes
Type
levenstein
private :
Levenshtein
Notes
Objeto para acessar os métodos da
classes Levenshtein da biblioteca
simmetrics.
Quadro 21. Descrição dos atributos da classe JPACalculoSimilaridadeDAO
JPACalculoSimilaridadeDAO Method
Method
Type
getLevenshtein();
public :
Levenshtein
Notes
Metodo retorna um objeto do tipo
Levenshtein.
Quadro 22. Descrição dos métodos da classe JPACalculoSimilaridadeDAO
97
A 1.4 Pacote Modelo
Figura 27. Diagrama de classe – Pacote Modelo.
Copia
Type:
public Class
Status:
Proposed. Version 1.0. Phase 1.0.
Package:
Modelo
Details:
Created on 06/06/2012 17:16:29. Modified on 06/06/2012 17:16:30.
Autor : Luis Fernando Balsini.
Copia Attributes
98
Attributes
Type
ano
Editora
private : int
Private :
String
Private : long
Private : long
Private : long
Private :
String
Private :
String
Private :
String
idDocente
idProducao
idTipoproducao
issn
Nome
Titulo
Notes
Quadro 23. Descrição dos atributos da classe Copia
Copia Method
Method
Copia
Copia(long,long,long,int,String,
String, String, String)
getTitulo();
setTitulo(String);
getNome();
setNome(String);
getIssn();
setIssn(String);
getAno();
setAno(int);
getIdTipoproducao()
setIdTipoProducao(long);
getEditora();
setEditora(String);
getidProducao();
setidProducao(long)
getIdDocente();
setIdDocente(long);
Type
Notes
Public
public
Construtor da classe.
Construtor da classe para instanciar os
objetos copia na lista copia.
Public :
Stirng
Public : void
Public :
String
Public : void
Public :
String
Public : void
Public : int
Public : void
Public : long
Public : void
Public :
Stirng
Public : void
Public : long
Public : void
Public : long
Public : void
Quadro 24. Descrição dos métodos da classe Copia.
99
.A 1.5 Acessa Banco
Figura 28. Diagrama de classe – Pacote Acessa Banco.
JPAProducaoDAO
Type:
public Class
Implements : ProducaoDAO.
Status:
Proposed. Version 1.0. Phase 1.0.
Package:
Acessa Banco
Details:
Created on 06/06/2012 17:16:29. Modified on 06/06/2012 17:16:30.
Author: Luis Fernando Balsini
JPAProducaoDAO Method
Method
Type
Notes
100
listaProducoesDoDoc
enteSapiSim();
listaproducoesDoMes
moTipoEAno(long,C
opia)
listaProducoesMonito
radas(long);
listaTodasProducoes
PorTipoProducao(lon
g,long)
JPAProducaoDAO
Public :
List<Producao>.
Public :
List<Object[]>
Retorna uma lista de produções do tipo produção.
Public :
List<Producao>
Public :
List<Object[]>
Retorna uma lista de com todas as produções
identificadas como monitoradas.
Retorna uma lista de array de object com todas as
produções de um tipo de producao e que seja do
mesmo docente.
Construtor da classe.
listarProducoesDocen
tePeloTipoProducao(
Docente,TipoProduca
o);
contarProducoesDoce
nteNoTipoProducao(
Docente,TipoProduca
o);
listarProducoesRefer
entesItemEscoreDoce
nte(Docente,Escoreit
em,Map,escoreReal);
Public :
List<Producao>.
listarProducoesNaoC
omprovadas(Docente
);
listarTodasProducoes
(Docente);
Public :
List<Producao>
listarProducoesComp
rovadas(Docente);
Public :
List<Producao>;
contarProducoesDoD
ocenteEmVerificacao
(Docente,List<Filtros
>,List<Ordenacao>,l
ong,long);
Public : long
listarProducoesDoDo
centeEmVerificacao(
Docente,List<Filtros
>,List<Ordenacao>,l
ong,long);
Public :
List<Producao>;
Public :
Public : int
Public :
List<Producao>;
public:
List<Producao>;
Retorna uma lista de array de objetos, esta função
é usada para a lista de produções candidatas.
Param : docente [Docente - in]
Param : tipoproducao [TipoProducao – in]
Retorna uma lista de objetos de produções de um
docente.
Param : docente [Docente - in]
Param : tipoproducao [TipoProducao – in]
Retorna quantidade de produções que um docente
possui.
Param : docente [Docente – in]
Param : item [EscoreItem - in]
Param : filtros [Map : in]
Param : decisão [boolean - in]
Retorna uma lista de objetos de produção do
docente, conforme os itens de escore.
Param : docente [Docente - in]
Retorna uma lista de objetos de produção não
comprovadas para um docente.
Param : docente [Docente - in]
Retorna uma lista de objetos de produção de um
docente.
Param : docente [Docente - in]
Retorna uma lista de objetos de produção
comprovadas de um docente.
Param : docente [Docente – in]
Param : filtros [List<Filtros> - in]
Param : ordenações [List<Ordenacao> - in]
Param : registro inicial [long - in]
Param : registro final : [long - in]
Retorna a quantidade de produções de um docente
que estejam em processo de comprovação.
param : docente [Docente – in]
param : filtros [List<Filtros> - in]
param : ordenações [List<Ordenacao> - in]
param : registro inicial [long - in]
param : registro final : [long - in]
Retorna uma lista de objetos de produção de um
docente que estejam em processo de
comprovação.
101
contarProducoesEmV Public : long
erificacao(List<Filtro
s>);
listarProducoesEmVe Public :
rificacao(List<Filtros List<Producao>
>,List<Ordenacao>,l
ong,long)
buscarProducaoEmV
erificacaoPeloCodigo
(long);
contarProducoesDoD
ocente(Docente,List<
Filtros>);
Public :
Producao
Public : long
listarProducoesDoDo Public ;
cente(Docente,List<F List<Producao>;
iltros>,List<Ordenaca
o>,long,long);
lerEx(long)
contarProducoesDoD
ocenteValidadas(Doc
ente.Usuario,List<Fil
tros>);
listarProducoesDoDo
centeValidadas(Doce
nte,List<Filtros>,List
<Ordenacao>,long,lo
ng);
Public :
List<Object[]>;
Public : long
Public :
List<Producao>;
listarProducoesDocen Public :
te(long);
List<Producao>;
listarProducoes(List<
StatusProducao>);
Public : List;
listarProducoesDoDo
centeComStatus(long
,List<StatusProducao
>);
Public : List;
Param : filtros [List<Filtros> - in]
Retorna quantidade de produções em processo de
verificação de todos os docentes.
Param : filtros [List<Filtros> - in]
Param : ordenações [List<Ordenacao> - in]
Param : registro inicial [long - in]
Param : registro final : [long - in]
Retorna uma lista de objetos de produção que
estejam em processo de verificação de todos os
docentes.
Param : código [long - in]
Retorna um objeto de produção de qualquer
docente.
Param : docente [Docente – in]
Param : filtros [List<Filtros> - in]
Retorna a quantidade de produções que um
docente possui.
param : docente [Docente – in]
param : filtros [List<Filtros> - in]
param : ordenações [List<Ordenacao> - in]
param : registro inicial [long - in]
param : registro final : [long - in]
Retorna uma lista de objetos produção de um
docente.
Param : código [long – in]
Retorna uma lista de objetos.
Param : docente [Docente – in]
Param : validador [Usuário – in]
Param : filtros [List<Filtros> - in]
Retorna a quantidade de produções do docente que
estejam validadas.
param : docente [Docente – in]
param : filtros [List<Filtros> - in]
param : ordenações [List<Ordenacao> - in]
param : registro inicial [long - in]
param : registro final : [long - in]
Retorna uma lista de objetos produção do docente
que estejam validadas.
Param : id do docente [long - in]
Retorna uma lista de objetos produção de um
docente passando somente o seu código.
Param : status [StatusProducao – in]
Retorna uma lista de objetos de produção de todos
os docentes, filtrando-os através do status passado
por parâmetro.
Param : id do docente [long – in]
Param : status [StatusProducao – in]
Retorna uma lista de objetos de produção de um
docente, de forma que só retorne produções com
status igual passado por parâmetro.
102
buscarPeloCodigoCo
mprovante(long);
Public : List;
Param : código do comprovante [long – in];
Retorna uma lista de objetos de produção, de
mesmo código do comprovante passado por
parâmetro.
Quadro 25. Descrição dos métodos da classe JPAProducaoDAO.
Producao
Type:
public abstract Class
Status:
Proposed. Version 1.0. Phase 1.0.
Package:
Acessa Banco
Details:
Created on 06/06/2012 17:16:29. Modified on 06/06/2012 17:16:30.
Autor : Luis Fernando Balsini.
Producao Attributes
Attribute
serialVersionUID
TITULO_DO_PERI
ODICO_OU_REVIS
TA
id
ano
Titulo
Datainclusao
status
comprovante
tipoProducao
autores
atributos
monitoria
Type
private static
final :
long
public final
static :
String;
private :
Long;
private :
int;
private :
String;
Private :
Date;
private :
StatusProducao
private :
Comprovante;
private :
TipoProducao;
private :
List<Docente>
private :
List<AtributoP
roducao>;
List<Producao
>
Notes
È utilizado para verificar se a produção é ou não um
periódico.
103
Quadro 26. Descrição dos atributos da classe Produção.
Producao Methods
Method
Type
Notes
Producao();
public:
construtor da classe Produção
getMonitoria()
Public :
List<Produca
o>
Public : void
Retorna um lista de produções monitoradas relacionada
a uma produção.
public: int
public: long
Retorna ano da produção.
Retorna o código da produção.
getTitulo();
public: String
Retorna o título da produção.
getDataInclusão();
public: Date
Retorna a data de inclusão da produção no SAPI 2.0.
getStatus();
Retorna o status da produção.
setId(int);
public:
Statusproduca
o
public :
Comprovante
public :
TipoProducao
public :
List<Atributo
Producao>;
public :
List<Docente
>;
public :
Docente;
public :
void
public : void
setTitulo(String);
Public : void
setDatainclusao(Da
te);
Public : void
setMonitoria(List<
Producao>)
getAno();
getId();
getComprovante();
getTipoProducao();
getAtributos();
getAutores();
getAutorPrincipal()
;
setAno(int);
Retorna objeto da classe Comprovante.
Retorna objeto da classe TipoProducao.
Retorna uma lista de objetos da classe Atributo
Produção.
Retorna uma lista de objetos da classe Docente
Retorna dados de um Docente em objeto da classe
Docente.
Param : ano [int - in]
Edita o atributo ano.
Param : id [int - in]
Edita o atributo id.
Param : titulo [String – in]
Edita o atributo titulo.
Param : dataInclusao [Date – in]
Edita o atributo dataInclusao.
104
setStatus(StatusPro
ducao);
setComprovante(Co
mprovante);
setTipoProducao(Ti
poProducao);
setAtributos(List<A
tributoProducao>);
setAutores(List<Do
cnete>);
getReferenciaBiblio
grafica();
montareferenciaaut
or(Docente);
Public : void
buscarAtributo(Stri
ng);
Public :
AtributoProd
ucao;
Public :
boolean;
Public :
boolean;
Public : int
ehPeriodico();
equals();
hashCode();
Public : void
Public : void
Public : void
Public : void
Public :
String;
Private :
String;
Param : status [StatusProducao - in]
Edita o objeto status.
Param : comprovante [Comprovante – in]
Edita o objeto comprovante.
Param : tipoProducao [TipoProducao – in]
Edita o objeto tipoProducao.
Param : atributos [AtributoProducao – in]
Edita o objeto atributos.
Param : autores [Docente – in]
Edita o objeto autores.
Retorna a referência da produção.
Param : autor [Docente – in]
É usada dentro do método getReferenciaBibliográfica(),
e monta a referência de acordo com um modelo padrão.
Param : nomeAtributo [String – in]
Retorna atributo dinamicamente. É usado dentro do
método ehPeriodico();
Verifica se produção é ou não periódico.
Sobrescreve método equals do java.
Realiza um mapeamento de atributos das produções.
Quadro 27. Descrição dos métodos da classe Produção
JPAAutomaticoMonitoriaDAO
Type:
public abstract Class
Implements : AutomaticoMonitoriaDAO.
Status:
Proposed. Version 1.0. Phase 1.0.
Package:
Acessa Banco
Details:
Created on 06/06/2012 17:16:29. Modified on 06/06/2012 17:16:30.
Autor : Luis Fernando Balsini.
JPAAutomaticoMonitoriaDAO Methods
Method
Type
Notes
JPAAutomaticoMo
nitoriaDAO
CriaObjetoAutMon
(Producao,
Producao, Long,
int, long);
getDataTime();
Public
Construtor da classe.
Public :
AutMon
Constroi um objeto AutMon com os parametros
passados e retorna-o.
Public :
Stirng
Retorna a data do sistema formatada.
105
listaproducoesRelat
orioSapiSimAutom
aticas
listaProducoesSubR
elatorioSapiSim(lon
g)
listaProducoesRelat
orioSapiSimAux
listaProducoesRelat
orioSapiSimMonito
radas
listaProducoesRelat
orioSapiSimMonito
radasAux
Public :
List<Long>
Retorna uma lista com os IDS das produções
identificadas como automáticas.
Public :
List<AutMon
>
Public :
List<AutMon
>
Public :
List<Long>
Retorna uma lista das produções coautoras relacionadas
a produções principal.
Retorna lista com os ids das produções confirmadas
como sendo coautoras
Public :
List<AutMon
>
Quadro 28. Descrição dos métodos da classe JPAAutomaticoMonitoriaDAO.
AutMon
Type:
public abstract Class
Status:
Proposed. Version 1.0. Phase 1.0.
Package:
Acessa Banco
Details:
Created on 06/06/2012 17:16:29. Modified on 06/06/2012 17:16:30.
Autor : Luis Fernando Balsini.
AutMon Attributes
Attributes
SerialVersionUID
Id
objectProducaoAut
or
objectproducaoCoa
utor
datainclusaoObject
Type
Notes
Private static
final : long
Private : long
Private : long
Private : long
Objetodocente
Private :
String
Private : long
Valor
Private : int
Idtipoproducao
Private : long
Quadro 29. Descrição dos atributos da classe AutMon.
106
AutMon Method
Method
Type
getId()
Public : Long
setId(long)
Public : void
getObjectProducao
Autor();
setObjectProducao
Autor(long)
getObjectProducao
CoAutor
setobjectProducaoC
oAutor(long)
getDataInclusaoObj
ect()
setDataInclusaoObj
ect(String)
getObjectDocente()
;
setObjectDocente(L
ong)
getValor();
Public : long
setValor(int)
Public : void
Notes
Public :void
Public : long
Public : void
Public :
String
Public : void
Public : Long
Public : void
Public : int
getidTipoProducao( Public : Long
)
setidTipoProducao( Public : void
long)
Quadro 30 . Descrição dos métodos da classe AutMon.
107
APÊNDICE C. ALGORITMO DE COMPARAÇÃO DE
PRODUÇÕES
108
Será abordado neste apêndice um algoritmo em pseudo código para comparação das
produções acadêmicas com finalidade de identificar coautorias. O algoritmo também
determina qual modalidade (automáticas, monitoras ou nenhuma delas) a comparação entre
produções corrente pertencerá.
109
Recupera lista de produções novas (PN)
Para cada produção (PNn)
Recupera lista de produções do mesmo tipo e ano (C)
Para cada produção candidata (Cn)
Se (Cn .tipo == periódico)
Se (Cn.ISSN != PNn.ISSN)
retorna (pega próxima Cn)
senao
Se (simPer( PN n , C n ) > 87)
retorna (Identifica Automática)
senao
Se (70 < simPer( PN n , C n ) < 86)
retorna (Identificação Monitorada)
senao
Se (simPer( PN n , C n ) < 70)
Retorna (pega próxima Cn)
Se (Cn. tipo == Evento)
Se(Cn. ISBN != PNn. ISBN)
return (pega próxima Cn)
senao
Se (simEven( PN n , C n ) > 87)
retorna (Identifica Automática)
senão
Se(70 < simEven( PN n , C n ) < 86)
retorna (Identificação Monitorada)
senao
Se (simEven ( PN n , C n ) < 70)
Retorna (pega próxima Cn)
Se(Cn. tipo == Capítulo de Livro)
Se(Cn. ISBN != PNn. ISBN)
retorna (pega próxima Cn)
senao
Se(simCapL( PN n , C n ) > 87)
retorna (Identifica Automática)
senão
Se(70 < simCapL( PN n , C n ) < 86)
retorna (Identificação Monitorada)
senao
Se (simCapL ( PN n , C n ) < 70)
Retorna (pega próxima Cn)
Quadro 31. Algoritmo da Formula de Similaridade
110
Fim
Se(Cn. tipo == Livro)
Se(Cn. ISBN != PNn. ISBN)
retorna (pega próxima Cn)
senao
Se(simL( PN n , C n ) > 87)
retorna (Identificação Automática)
senão
Se(70 < simL( PN n , C n ) < 86)
retorna (Identificação Monitorada)
senao
Se (simL ( PN n , C n ) < 70)
Retorna (pega próxima Cn)
Se(Cn. tipo == Participação em Banca)
Se(simBan( PN n , C n ) > 87)
retorna (Identificação Automática)
senão
Se(70 < simBan( PN n , C n ) < 86)
retorna (Identificação Monitorada)
senao
Se (simBan ( PN n , C n ) < 70)
Retorna (pega próxima Cn)
Se(Cn. tipo == Projeto de Pesquisa)
Se(simPP( PN n , C n ) > 87)
retorna (Identificação Automática)
senão
Se(70 < simPP( PN n , C n ) < 86)
retorna (Identificação Monitorada)
senao
Se (simPP ( PN n , C n ) < 70)
Retorna (pega próxima Cn)
Fim Fim
Quadro 32. Algoritmo da Formula de Similaridade
Download

Modelo de TCC para o Curso de Ciência da Computação da UNIVALI