Há duas opções de trabalho para a disciplina. Os grupos, com no máximo 2 integrantes, deverão optar por uma delas.

1. TRABALHO 1 – CRIAÇÃO DE LINGUAGEM

1.1. Criar a linguagem/parser/editor para a linguagem SQL, SELECT statement.

O trabalho consiste em implementar a gramática XText do comando SELECT da linguagem SQL, usando a ferramenta XText.

A sintaxe concreta será a mesma utilizada no banco de dados SQLite. A especificação está disponível neste link: https://www.sqlite.org/syntax/select-stmt.html. Note que será necessário verificar a especificação de sub-elementos, como JOIN clause ou COMMON TABLE expression, disponíveis na seção referências.

O parser/editor e o gerador de código podem ser implementados com a tecnologia escolhida, porém recomenda-se fortemente o uso de XText para implementar a linguagem/parser/editor. O editor XText foi utilizado em aula prática para especificação da linguagem “entity”.

Documentação XText

O trabalho deverá ser desenvolvido usando boas práticas de programação. Além disso, será avaliado nestes 3 aspectos principais:

  • metamodelo da linguagem
  • especificação do parser da linguagem
  • aplicação e teste de exemplos da linguagem sobre os componentes desenvolvidos

Entrega: deverá ser entregue todo o projeto Eclipse usado, contendo a gramática XText, o metamodelo e todos os arquivos gerados com a plataforma. Também deverá ser feito um arquivo explicando como foi feita a modelagem do arquivo .xtext, e as dificuldades encontradas.


2. TRABALHO 2 – implementação de disponibilização de dados abertos

Neste trabalho, os alunos irão implementar um arquivo de mapeamento para extração e disponibilização de dados abertos educacionais. O trabalho tem 3 etapas:

2.1 Baixar os dados abertos

Os grupos deverão baixar os dados dos últimos 2 anos disponíveis dos microdados dos ANA ou do ENEM. Os microdados estão disponíveis na página do INEP/microdados: http://portal.inep.gov.br/microdados

2.2 Criar arquivo para disponibilização em API RESTful

Os dados deverão ser extraídos para o banco de dados MonetDb, e deverão ser disponibilizados para consulta através de API RESTful. Para realizar esta integração, deverá ser usada a ferramenta BIOD/BlenDb. Um passo a passo para instalação da ferramenta está disponível no Gitlab do BIOD. A ferramenta especifica quais são as métricas e dimensões que poderão ser executadas. É importante ter um conhecimento do modelo dimensional.

Entrega: deverá ser entregue o aquivo .yaml com a especificação das métricas e das dimensões e exemplos dos .CSV de entrada usados. Também deverá ser feito um arquivo explicando como foi feita a modelagem do arquivo .yaml, e as dificuldades encontradas.

ENTREGA

Os fontes devem ser entregues em um arquivo ZIP.  Para trabalhos implementados usando outras tecnologias, deve-se explicar claramente como executar o código.

DATA DE ENTREGA : 14.nov.2017. Cada dia de atraso será descontado 15 pontos na nota.

MODO DE ENTREGA : enviar o arquivo .zip por email para marcos.ddf _at_ inf.ufpr.br (até as 24h do dia 28 de novembro de 2019).
No corpo do email, colocar o nome dos integrantes da equipe (no máximo 2 integrantes). No assunto, preencher com “Entrega trabalho 7052/092”.