[Gastosabertos-dev] CSV -> Restful API

Luiz Armesto luiz.armesto em gmail.com
Terça Março 24 23:40:31 UTC 2015


Achei a ideia bem interessante e útil. Também me parece que é possível
descrever bem o processo de criação de uma API para fornecer dados de um
CSV e com isso tentarmos automatizar.

As inferências de tipos de dados das colunas e de quais possuem
identificador único parece ser bem tranquilo.
Quais colunas possuem dados categóricos também não acho que seria difícil.

A parte de achar a hierarquia pode ser meio complicado. Precisaria mesmo de
confirmação de um usuário.
Não sei se compreendi direito a ideia da contagem das colunas. Tem algum
exemplo simples para demonstrar?

Em uma hierarquia simples, se entendi bem, acho que essa contagem
funcionaria com uma frequência boa, mas em cenários mais complexos não sei.

Sobre uma possível arquitetura, acho que seria interessante desmembrar essa
ferramenta em duas, que formariam um pipeline.

Teriamos uma ferramenta que recebe o CSV e uma espécie de schema (um json
por exemplo) -- o schema descreveria o modelo do banco de dados, como
processar o CSV para popular o banco e quais os endpoints serão criados,
uma espécie de receita --  e a partir dele criaria os modelos e a API em
si. Uma outra ferramenta, separada, que seria a de inferência. Ela
receberia o CSV, faria todo o trabalho de inferência e confirmação e teria
como saída esse schema. O que acham?

[]'s


2015-03-24 18:38 GMT-03:00 Edgar Zanella Alvarenga <e em vaz.io>:

> Eu comentei no email anterior uma idéia de ferramenta para gerar API's
> RESTful a partir de um CSV. Deixei para descrever em detalhes num outro
> email, que é este:
>
>  Criamos para a visualização da página da Receita uma API contruída
>  em cima do Flask utilizando a extensão RESTful. Se quisermos criar uma
>  nova API a partir de um de nossos outros dados iremos provavelmente
>  replicar boa parte do trabalho que tivemos, copiando e colando código,
>  mudando nomes aqui e acolá, tirando um argumento de busca, adicionando
>  outros. Me pareceu que todo esse processo poderia ser automatizado de
>  certa forma.
>
> Pensando nisso acabei pensando no processo para criação da API e tentei
> generalizar parcialmente o que foi feito. Me parece que se tivermos um
> CSV deveremos:
>
>  1 Identificar os tipos das colunas.
>  2 Identificar quais coluans possivelmente possuem um identificador único.
>  3 Quais colunas possuem dados categóricos.
>  4 Quais colunas possuem algum tipo de relação hierárquica.
>
> Todos os passos acima podem ser automatizados ou serem realizados com ajuda
> de um humano, perguntando se as inferências realizadas foram corretas ou
> não.
>
> O passo 4 pode ser feito de forma algorítmica mas com confirmação do
> usuário
> analisando:
>
>  * Coluna X possui quantas linhas no CSV?
>  * Coluna W possui quantas linhas no CSV?
>
> Se número de linhas de W for maior que X, pode-se supor que X está numa
> hierarquia
> acima de W. O número de linhas de W será maior ou igual ao número de
> linhas de X,
> conseguem compreender?
>
> Resumindo, a idéia é que depois de poucos passos, após uma inferência
> automatizada
> seja criado um modelo no banco de dados e diversos endpoints para ele.
> Essa ferramenta
> iria muito além de dados de gastos públicos, o que é excelente se formos
> pensar
> em termos estratégicos para conseguirmos mais desenvolvedores interessados
> no projeto.
> De certa forma isso é o que é feito atualmente no OpenSpending, mas a
> parte de inferência
> é inexistente, e o modelo de dados que geram é muito restrito,
> limitando-se a um
> modelo possuindo uma coluna temporal e uma com informação float.
>
> Eu dei uma pesquisada rápida a algum tempo atrás por algo desse tipo e não
> obtive muitos
> resultados, apenas discussões onde técnicos ou developers demonstraram ter
> interesse
> que uma ferramenta do gênero existisse. O máximo que encontrei foi isso:
>
>  * https://github.com/project-open-data/csv-to-api
>
> O que acham? Ambicioso demais? Genérico demais? Too much work?
>
> Idéias, críticas e sugestões, não sejam polidos!
> E.
> _______________________________________________
> Gastosabertos-dev mailing list
> Gastosabertos-dev em lists.okfn.org
> https://lists.okfn.org/mailman/listinfo/gastosabertos-dev
>



-- 
Luiz Armesto
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://lists.okfn.org/pipermail/gastosabertos-dev/attachments/20150324/13ba80d1/attachment-0003.html>


Mais detalhes sobre a lista de discussão Gastosabertos-dev