Você está na página 1de 6

XII Workshop de Computac ao Aplicada -WORCAP 2012

LattesMiner: uma linguagem de domnio especco para


extrac ao autom atica de informac oes da Plataforma Lattes
Alexandre Donizeti Alves
1
, Horacio Hideki Yanasse
1
, Nei Yoshihiro Soma
2
1
Programa de Doutorado em Computac ao Aplicada CAP
Instituto Nacional de Pesquisas Espaciais INPE
2
Instituto Tecnol ogico de Aeron autica (ITA)
12.228010 S ao Jos e dos Campos SP Brasil
alexandre.alves@inpe.br, horacio@lac.inpe.br, soma@ita.br
Abstract. The Lattes CV system, a curricular information system maintained
by CNPq, is the main component of the Lattes Platform. Currently, the system
stores around 2.000.000 curricula of professionals from diverse areas of kno-
wledge. This system is undoubtedly a major source of information on Brazilian
researchers and it has a very high information extraction potential. This paper
describes LattesMiner, an internal multilingual domain-specic language for
automatic information extraction and identication of academic social networks
from Lattes curricula.
Resumo. O sistema Currculo Lattes, que e um sistema de informac ao curricu-
lar mantido pelo CNPq, e o principal componente da Plataforma Lattes. Atual-
mente, o sistema armazena mais de dois milh oes de currculos de prossionais
das diversas areas do conhecimento. Esse sistema e hoje, sem d uvida, a prin-
cipal fonte de informac oes sobre os pesquisadores brasileiros e tem um elevado
potencial para extrac ao de informac oes. Este artigo descreve LattesMiner,
uma linguagem de domnio especco interna e multilngue para extrac ao au-
tom atica de informac oes e identicac ao de redes sociais acad emicas a partir de
currculos Lattes.
Palavras-chave: Linguagem de Domnio Especco, Extrac ao de Informac ao, Plata-
forma Lattes
1. Introduc ao
A Plataforma Lattes (PL) e um sistema de informac ao desenvolvido e mantido pelo CNPq
para gerenciar informac oes relacionadas a pesquisadores e instituic oes no pas. Recente-
mente, a PL foi citada como exemplo de banco de dados completo e altamente qualicado
em um artigo publicado na Nature [Lane 2010]. O principal componente da plataforma e
o sistema Currculo Lattes, que e um sistema de informac ao curricular. Atualmente, o sis-
tema armazena mais de dois milh oes de currculos de pesquisadores, docentes, estudantes
e prossionais das diversas areas do conhecimento que atuam em ci encia, tecnologia e
inovac ao, principalmente no Brasil. Percebe-se, portanto que esse sistema tem um ele-
vado potencial para extrac ao de informac ao.
Este artigo descreve LattesMiner, uma linguagem de domnio especco (LDE) para
extrac ao autom atica de informac oes de currculos Lattes. As informac oes extradas po-
dem ser analisadas e usadas, por exemplo, para identicar redes sociais acad emicas, com-
pet encias regionais, perl de grupos de diferentes areas de pesquisa e conhecimento etc.
XII Workshop de Computac ao Aplicada -WORCAP 2012
2. Trabalhos Relacionados
De nosso conhecimento, h a duas ferramentas atualmente que permitem extrair
informac oes do sistema Currculo Lattes de forma autom atica: Lattes Extrator e script-
Lattes.
Lattes Extrator e uma ferramenta acessvel via Web
1
que foi desenvolvida pelo pr oprio
CNPq e e uma das ferramentas que comp oe a PL. O acesso e restrito a instituic oes li-
cenciadas que podem extrair somente informac oes de seus pesquisadores, docentes, estu-
dantes e colaboradores. As informac oes s ao extradas diretamente do banco de dados do
sistema Currculo Lattes e disponibilizadas em arquivos no formato XML. Dessa forma,
as instituic oes precisam desenvolver rotinas para a importac ao dessas informac oes para as
suas pr oprias bases. As extrac oes s ao feitas em lote e podem ser conguradas de acordo
com o interesse e as permiss oes de cada usu ario.
scriptLattes e um script desenvolvido em Python para extrac ao e compilac ao
autom atica de produc oes bibliogr acas, produc oes t ecnicas, produc oes artsticas,
orientac oes, projetos de pesquisa, pr emios e ttulos, grafos de colaborac oes e mapa de
geolocalizac ao de um grupo de pesquisadores cadastrados no sistema Currculo Lat-
tes [Mena-Chalco and Junior 2009].
Na revis ao de literatura realizada n ao foi encontrada nenhuma biblioteca ou LDE que
extraia informac oes de currculos Lattes e/ou identique relacionamentos entre eles, prin-
cipalmente quando se levam em considerac ao grupos com muitos pesquisadores.
3. Linguagem LattesMiner
LattesMiner e uma LDE interna para extrac ao autom atica de informac oes de currculos
Lattes.

E composta por um conjunto de classes escritas em Java que permite que outros
desenvolvedores implementem suas pr oprias aplicac oes com alto nvel de abstrac ao e
poder de express ao [Alves et al. 2011a].
A linguagem LattesMiner faz parte de um projeto maior denominado Sistema Uni-
cado de Currculos e Programas: Identicac ao de Redes Acad emicas - SUCUPIRA
2
. O
projeto SUCUPIRA, cujo acr onimo traz a lembranca do sobrenome do falecido Profes-
sor Em erito da Universidade Federal do Rio de Janeiro, Newton Lins Buarque Sucupira,
relator do importante Parecer 977/65 sobre a P os-Graduac ao, visa ser uma ferramenta
computacional automatizada e de domnio p ublico que possa eventualmente auxiliar na
obtenc ao de indicadores de desempenho de docentes, pesquisadores e programas de p os-
graduac ao.
3.1. Projeto
A primeira tarefa no projeto de uma LDE e denir os termos do pro-
blema [van Deursen et al. 2000]. Vale a pena mencionar que, embora o currculo Lat-
tes esteja disponvel em Portugu es, tamb em e possvel disponibiliz a-lo em Ingl es. Al em
disso, o sistema Currculo Lattes j a est a sendo usado em outros idiomas e pases, como
Argentina, Chile, Col ombia, Cuba, Equador, M exico, Panam a, Paraguai, Peru, Portugal e
Venezuela.
1
http://lattesextrator.cnpq.br/lattesextrator/
2
processo Capes 23038-029609/2008-02
XII Workshop de Computac ao Aplicada -WORCAP 2012
Assim, quando a LDE LattesMiner foi projetada, estes fatos foram levados em
considerac ao. Atualmente, a linguagem LattesMiner permitir usar os principais termos
do currculo Lattes em Portugu es e Ingl es, sendo facilmente estendido para outros idi-
omas. A denic ao dos termos do problema e muito importante, pois os mesmos s ao
considerados e usados para projetar a LDE, que deve descrever concisamente aplicac oes
de um domnio particular (nesse caso, do currculo Lattes), permitindo uma soluc ao no
idioma e no nvel de abstrac ao do domnio do problema.
3.2. Implementac ao
LattesMiner e composta por um conjunto de classes escritas em Java e sua classe principal
fornece a maioria das funcionalidades da LDE. Foi implementada usando uma interface
uente, que fornece uma representac ao compacta e f acil de ler do domnio do problema.
Interfaces uentes s ao implementadas usando o m etodo de encadeamento (method chai-
ning).

E importante notar que o m etodo de encadeamento por si s o n ao e suciente para
criar uma LDE. Por exemplo, a classe StringBuilder da linguagem Java tem um
m etodo append() que sempre retorna uma inst ancia da pr opria classe. Por em, ela n ao
resolve o problema de um domnio especifco, portanto n ao e uma LDE.
Tamb em e interessante notar que usando o m etodo de encadeamento, qualquer
m etodo da linguagem LattesMiner pode ser usado em qualquer ordem e v arias ve-
zes [Ruiz and Bay 2008]. Al em do m etodo de encadeamento, a linguagem LattesMiner
tamb em faz uso de m etodos est aticos que permitem criar c odigos mais compactos e ainda
assim legveis.
Uma quest ao que mereceu uma atenc ao especial foi a extrac ao de informac oes em
currculos Lattes. Inicialmente, foi constatado que o currculo Lattes baixado como ar-
quivo HTML n ao era balanceado e portanto, n ao foi possvel utilizar um parser. Por em,
foi observado que trechos de c odigo no arquivo HTML do currculo Lattes t em uma estru-
tura de repetic ao, ou seja, t em a mesma formatac ao HTML [Nanno et al. 2003]. Por essas
raz oes a t ecnica de extrac ao de informac ao baseada em express oes regulares foi usada.
4. Exemplo de Uso
Nesta Sec ao ser a apresentado um estudo de caso com os pesquisadores que receberam
o Pr emio Anisio Teixeira em 2011, mostrando passo a passo como usar as principais
funcionalidades da linguagem LattesMiner.
O primeiro passo e criar um arquivo texto contendo o nome dos pesquisadores. Neste
caso, foi criado o arquivo nomes.txt contendo cada nome em uma linha separada.
Passo 1 [nomes.txt]
Nelson Maculan Filho
Luiz Bevilacqua
Fernando Galembeck
Alvaro Toubes Prata
Joao Fernando Gomes de Oliveira
XII Workshop de Computac ao Aplicada -WORCAP 2012
O pr oximo passo e obter o n umero (ID) dos pesquisadores. A listagem a seguir apresenta
o c odigo de uma aplicac ao Java para descobrir o n umero (ID) dos pesquisadores usando
a linguagem LattesMiner.
Passo 2 [ Exemplo.java]
import java.util.
*
;
import lattes.util.Util;
import static lattes.miner.LattesMiner.
*
;
public class Exemplo
{
public static void main(String[] args)
{
List<String> list = new ArrayList<String>();
for (String nome : Util.getList("nomes.txt"))
list.add(search(nome));
Util.setList(list, "ids.txt");
}
}
O m etodo search() realiza a busca pelo nome do pesquisador no sistema Currculo
Lattes. Se for encontrado, e retornado o n umero (ID) do pesquisador. Caso contr ario, e
retornado o nome do pesquisador. Nos casos em que mais de um currculo com o mesmo
nome e encontrado, s ao retornados todos os n umeros (ID) concatenados e separados por
vrgula. Assim, e possvel vericar no arquivo gerado se algum problema ocorreu. O
resultado foi armazenado em um arquivo texto denominado ids.txt. Neste caso, todos
os n umeros (ID) foram encontrados, conforme apresentado a seguir.
SA

IDA [ids.txt]
K4783153E3
K4787137U2
K4787937A7
K4781599Z8
K4787011P6
Em seguida, a lista de n umeros (ID) gerada anteriormente e lida e o currculo Lattes
correspondente e baixado. Para baixar o currculo do pesquisador identicado e usado
o m etodo download(). O m etodo save() armazena o currculo baixado como
arquivo HTML e o n umero (ID) do pesquisador e usado como nome de arquivo. O
m etodo dir() e opcional e permite denir um diret orio no qual o currculo baixado e
armazenado. Se o diret orio n ao existir, ele e criado automaticamente. O trecho de c odigo
a seguir ilustra como isso pode ser feito.
XII Workshop de Computac ao Aplicada -WORCAP 2012
Passo 3
dir("cvs");
for (String id : Util.getList("ids.txt"))
download(id).save();
Ap os executar esses passos, e possvel extrair as informac oes dos currculos Lattes. A
lista de n umeros (ID) dos pesquisadores e lida novamente, conforme ilustrado no trecho
de c odigo a seguir.
Passo 4
props("mysql");
for (String id : Util.getList("ids.txt"))
{
load(id).biodata().address();
areas().formations().languages();
publications(JOURNAL).publications(CONFERENCE);
advisories().boards().save();
}
O m etodo load() e usado para carregar o arquivo HTML do pesquisador em quest ao
na mem oria como uma string. Assim, e possvel usar qualquer um dos m etodos dis-
ponveis na linguagem LattesMiner para extrac ao de informac oes. Por exemplo, o m etodo
boards() permite extrair todas as participac oes em bancas de um determinado pesqui-
sador, tanto em nvel de mestrado quanto doutorado.

E importante destacar que a ordem
dos m etodos e indiferente, pois cada um deles retorna uma inst ancia da pr opria classe
principal (LattesMiner), permitindo o encadeamento de m etodos.
O m etodo save() usado nesse trecho de c odigo tem uma funcionalidade diferente do
mesmo m etodo usado no Passo 3. Este m etodo armazena as informac oes extradas, de
acordo com os m etodos de extrac ao usados, em um banco de dados denido em um
arquivo de propriedades (por exemplo, mysql.properties). O arquivo de proprie-
dades e denido atrav es do m etodo props(). Outra possibilidade seria armazenar as
informac oes extradas em arquivos XML. Nesse caso, o m etodo xml() seria usado ao
inv es do m etodo save().
Depois que as informac oes extradas est ao armazenadas em um banco de dados, outras
consultas podem ser feitas e informac oes diferentes podem ser obtidas. Apesar de ser
possvel obter essas informac oes diretamente dos currculos Lattes armazenados como
p aginas HTML, isso n ao e vi avel principalmente quando o grupo que est a sendo analisado
cont em muitos pesquisadores.
Diversas outras informac oes podem ser obtidas com a Linguagem LattesMiner. O exem-
plo apresentado aqui pode ser generalizado para qualquer grupo de pesquisadores cadas-
trados na PL.
XII Workshop de Computac ao Aplicada -WORCAP 2012
5. Conclus oes e trabalhos futuros
Atualmente o currculo Lattes est a disponvel em HTML, o que imp oe um esforco adicio-
nal para a extrac ao de informac oes. A linguagem LattesMiner e independente do formato
dos dados contidos no currculo Lattes e permite que os usu arios programem suas pr oprias
aplicac oes com um alto nvel de abstrac ao e poder de express ao. Se o formato de dados
for eventualmente modicado, a interface da linguagem permanecer a a mesma. Al em
disso, e possvel realizar a busca tamb em pelo nome do pesquisador, o que n ao ocorre
com o Lattes Extrator e o scriptLattes.
A linguagem LattesMiner foi usada para o desenvolvimento do sistema SUCU-
PIRA [Alves et al. 2011c] e tamb em para analisar o perl dos bolsistas de produtivi-
dade em pesquisa de outra sub area do conhecimento [Alves et al. 2011b]. A principal
contribuic ao deste trabalho e permitir analisar grupos de pesquisadores cadastrados na
PL, de forma r apida e autom atica e em diferentes perodos de tempo.
O pr oximo passo que j a est a sendo implementado na linguagem LattesMiner e a an alise
de redes sociais acad emicas. A vers ao beta da linguagem LattesMiner estar a dis-
ponvel em breve para testes. Para usar a linguagem ser a necess ario apenas importar
a biblioteca (LattesMiner.jar) e a biblioteca para banco de dados (por exemplo,
mysql-connector-java-5.1.21-bin.jar), caso o usu ario queira armazenar os
dados em um banco de dados.
Refer encias
Alves, A. D., Yanasse, H. H., and Soma, N. Y. (2011a). Lattesminer: a multilingual
dsl for information extraction from lattes platform. In 11th SPLASH Workshop on
Domain-Specic Modeling (DSM11), pages 8592.
Alves, A. D., Yanasse, H. H., and Soma, N. Y. (2011b). Perl dos bolsistas pq das

Areas
de engenharia de produc ao e de transportes do cnpq: enfoque na sub area de pesquisa
operacional. In XLIII Simp osio Brasileiro de Pesquisa Operacional, Ubatuba, SP.
Alves, A. D., Yanasse, H. H., and Soma, N. Y. (2011c). Sucupira: a system for infor-
mation extraction of the lattes platform to identify academic social networks. In 6th
Iberian Conference on Information Systems and Technologies (CISTI), pages 371376,
Chaves, Portugal.
Lane, J. (2010). Lets make science metrics more scientic. Nature, 464(7288):488489.
Mena-Chalco, J. P. and Junior, R. M. C. (2009). scriptlattes: an open-source knowledge
extraction system from the lattes platform. Journal of the Brazilian Computer Society,
15(4):3139.
Nanno, T., Saito, S., and Okumura, M. (2003). Structuring web pages based on repetition
of elements. In Second International Workshop on Web Document Analysis, Jap ao.
Ruiz, A. and Bay, J. (2008). An approach to internal domain-specic languages in java.
http://www.infoq.com/articles/internal-dsls-java.
van Deursen, A., Paul, K., and Joost, V. (2000). Domain-specic languages: an annotated
bibliography. ACM SIGPLAN Notices, 35(6):2636.