Projeto: Lattes Spidering

spiderDivulgação do tema do projeto: Segunda-feria, 02 de Dezembro de 2012

Datas de entrega: 15 de Fevereiro de 2013

Forma de entrega: Todos os grupos devem enviar via e-mail um arquivo .zip com todo o código fonte do programa e um breve relatório sobre seu funcionamento. O relatório deve incluir também uma descrição detalhada das atividades realizadas por cada um dos alunos.

Grupos: Este projeto deverá ser em grupos de até três alunos.

Política para atraso na entrega: diminuição de 20% da nota por dia de atraso até um total de 3 dias. O projeto não será considerado se entregue com mais de 3 dias de atraso

Política para plágio: Todos os casos de plágio serão punidos com nota 0 no projeto, tanto nas cópias quanto no original.

Linguagem de Programação: Todos os programas devem ser implementados em Java.

Descrição do Projeto

Sua tarefa é implementar um sistema de web spidering para o Currículo Lattes (Exemplo: http://lattes.cnpq.br/1982919735990024).
O seu sistema deve receber como entrada o link para um currículo lattes, como o mencionado no exemplo acima, e retornar como saída todos os currículos lattes acessíveis a partir do currículo de entrada através de um ou mais saltos.

Por exemplo, no currículo do exemplo acima há uma link para o currículo do professor Alisson Vasconcelos de Brito (http://lattes.cnpq.br/6321676636193625), que por sua vez faz referência ao currículo do professor Elmar Uwe Kurt Melcher (http://lattes.cnpq.br/2995510206880397), portanto, esses dois currículos devem ser incluídos na saída.

Seu sistema deve percorrer em amplitude (breadth first) a rede formada pelos currículos lattes e parar de acordo com uma das seguintes três opções:

  • Não há mais currículos a serem visitados
  • O número de currículos recuperados atingiu o limite L, especificado pelo usuário.
  • A profundidade da busca atingiu o limpe P, especificado pelo usuário.

Por exemplo, assumindo que seu programa se chame LattesSpider.class ele teria o comportamento abaixo quando executado com os seguintes conjuntos de parâmetros:

  • java LattesSpider http://lattes.cnpq.br/1982919735990024
    • Retorna todos os currículos acessíveis a partir de http://lattes.cnpq.br/1982919735990024, independente da profundidade da busca
  • java LattesSpider http://lattes.cnpq.br/1982919735990024 L=100
    • Retorna os primeiros 100 currículos acessíveis a partir de http://lattes.cnpq.br/1982919735990024, realizando a busca em amplitude (breadth first)
  • java LattesSpider http://lattes.cnpq.br/1982919735990024 P=3
    • Retorna todos os currículos acessíveis a partir de http://lattes.cnpq.br/1982919735990024 com 3 ou menos saltos.

Critérios de Avaliação

Seu projeto será avaliado de acordo com os seguinte critérios:

  • Funcionamento de acordo com a especificação: 70%
  • Organização e documentação (comentários) do código: 15%
  • Qualidade dos testes automáticos (JUnit) fornecidos: 15%

Ponto extra

Os projetos que utilizarem (corretamente) múltiplos threads para fazer a recuperação dos currículos receberão um ponto extra na nota, que poderá chegar a 11 pontos.