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”.