você está aqui: Home  → Coluna do Cesar Brod

De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


Brincando com Dados Abertos

Por Cesar Brod

Data de Publicação: 06 de Outubro de 2011

Na semana do dia 19 de setembro tive a oportunidade de acompanhar, em parte, o trabalho do núcleo de dados abertos da Secretaria de Logística e Tecnologia da Informação do Ministério do Planejamento. A equipe, formada por Nitai Silva, Christian Miranda, Augusto Herrmann, Carlos Vieira, João Bosco Junior e Marina Parente apresentou-me uma aplicação exemplo, desenvolvida em apenas 25 horas. Apenas com o uso de HTML e JavaScript para acessar dados abertos, a aplicação permite acompanhar o recadastramento de fornecedores do portal de compras do Governo Federal, o Comprasnet.

Tudo o que é necessário para trabalhar com os dados abertos do Comprasnet está no Portal de Dados Abertos do Sistema de Cadastramento Unificado de Fornecedores. Como nerd que se preza, porém, resolvi fazer algumas pequenas brincadeiras:

Digite a seguinte URL em seu navegador:

http://api.comprasnet.gov.br/sicaf/v1/consulta/municipios.xml?uf=rs

Você obterá, como resposta, um arquivo no formato xml listando todos os municípios do Rio Grande do Sul.

O utilitário curl permite o acesso ao conteúdo da web através da linha de comando. Digite, em seu terminal:

curl -s http://api.comprasnet.gov.br/sicaf/v1/consulta/municipios.xml?uf=rs | grep "<nome>" | sed 's/<nome>//g' | sed 's/<\/nome>//g' | sed -e 's/^[ \t]*//'

O parâmetro -s faz com que o curl suprima as informações da busca da informação, exibindo apenas o conteúdo buscado através da URL. O comando grep irá filtrar apenas as linhas que contém a string <nome>. Os dois primeiros comandos sed eliminarão da saída as strings <nome> e </nome> e o último comando sed elimina linhas em branco e tabs no início de cada linha. Compare o resultado com o arquivo xml vindo diretamente da URL e você entenderá melhor o que os comandos acima fizeram. Para mais informações sobre cada um dos comandos usados digite, em seu terminal:

man curl
man sed

ou use o bem e velho Google!

Você pode também, facilmente, saber o número de municípios de cada estado adicionando mais um comando na linha acima, o wc (word count) com o parâmetro -l (para contar as linhas). Assim, o número de municípios do Rio Grande do Sul é obtido com o comando abaixo:

curl -s http://api.comprasnet.gov.br/sicaf/v1/consulta/municipios.xml?uf=rs | grep "<nome>" | sed 's/<nome>//g' | sed 's/<\/nome>//g' | sed -e 's/^[ \t]*//' | wc -l

Mas o formato xml é apenas um dos vários formatos permitidos pela API de Dados Abertos do Comprasnet. Experimente, na mesma URL acima substituir xml por csv ou rdf.

Usei o seguinte comando para obter a latitude e longitude da Pérola do Vale, a cidade de Arroio do Meio, no Rio Grande do Sul, em um arquivo no formato csv (arroio.csv) que depois abri no LibreOffice:

curl -s http://api.comprasnet.gov.br/sicaf/v1/consulta/municipios.csv?nome=arroio%20do%20meio > arroio.csv

Mas isto não é nada comparado a tudo o que é possível realizar com dados abertos. Troque a extensão csv por rdf, por exemplo e cada uma das consultas acima pode ser ainda mais refinada com o uso de ferramentas da web semântica como o RAP.

Quer saber mais? Dá uma espiadinha aqui!

Sobre o autor

Cesar Brod usa Linux desde antes do kernel atingir a versão 1.0. Dissemina o uso (e usa) métodos ágeis antes deles ganharem esse nome. Ainda assim, não está extinto! Escritor, consultor, pai e avô, tem como seu princípio fundamental a liberdade ampla, total e irrestrita, em especial a do conhecimento.

Mais sobre o Cesar Brod: [ Linkedin ] | [ Twitter ] | [ Tumblr ].

Veja a relação completa dos artigos de Cesar Brod