Ir para o conteúdo.

Página Notícia

Devagar e sempre: as atualizações do Dados Abertos em julho

Segundo semestre de 2019 começa com muitas mudanças na API, nos arquivos e até na equipe do serviço

Às vezes apenas os usuários mais atentos do Dados Abertos da Câmara podem perceber o que está havendo de evolução no serviço. Três meses sem notícias de mudanças e correções no portal podem passar uma impressão de calmaria ou até acomodação.

Essa impressão não poderia ser mais enganosa.

De abril a julho, o serviço recebeu diversas alterações na API, nos arquivos, neste Portal de Dados Abertos e no GitHub – às vezes pequenas demais para valerem uma página de notícia, ou simplesmente tratadas de forma discreta. Uma redução na equipe e um esforço concentrado para eliminar bugs conhecidos também têm consumido muito tempo. Mas a primeira atualização maior da API no segundo semestre de 2019 é uma oportunidade para noticiarmos de uma vez só o que ficou acumulado por todo esse tempo.

Novos dados e esclarecimentos sobre autoria de proposições

Vinham se tornando frequentes as questões e solicitações de usuários do Dados Abertos sobre os autores de proposições. "Como identifico os autores e os co-autores?", por exemplo, já era uma das perguntas mais frequentes, inclusive de usuários internos. Em parceria com a equipe do Serviço de Ciência de Dados da Câmara, voltamos a consultar a Secretaria Geral da Mesa e o Regimento Interno da Câmara dos Deputados para incluirmos mais dados nos arquivos proposicoesAutores-{ano}.* e no retorno de /proposicoes/{id}/autores na API.

Ocorre que, segundo o artigo 102 do Regimento Interno, todos os deputados que assinam uma proposição são oficialmente autores – sem distinção entre aqueles que simplesmente manifestaram apoio a uma proposta e aqueles que efetivamente a apresentaram. Apenas o primeiro signatário tem algumas atribuições especiais, como escrever a justificativa da proposição (artigo 102, parágrafo 2º) ou falar sobre ela durante votações de emendas no Plenário (artigo 192, parágrafo 7º).

Não existe oficialmente, portanto, uma diferenciação entre "autores" e "co-autores" de uma proposição. No entanto, uma distinção entre proponentes e apoiadores pode ter utilidade para buscas, impressão ou layout de aplicações. Por isso, passamos a incluir no retorno do endpoint os seguintes campos:

  • ordemAssinatura - Número inteiro, de 1 a n, que permite identificar o primeiro e os demais signatários de uma proposição

  • proponente - Valor booleano, em que 1 corresponde a "verdadeiro" e 0 a "falso", para identificar os autores que fizeram a apresentação inicial da proposta e os que a assinaram em apoio.

O último relator

Ainda não conseguimos implementar o endpoint /proposicoes/{id}/relatores, tão desejado pelos nossos usuários e previsto desde as primeiras versões da especificação da nova API. Mas implementamos mudanças no campo ultimoRelator da estrutura de dados retornada pelo endpoint /proposicoes/{id}.

Em primeiro lugar: o campo passou para dentro do objeto/elemento que é valor do campo ultimoStatus, já que se trata de uma das várias informações sobre uma proposição que podem variar ao longo do tempo. E, o mais importante, o campo, que vinha sendo retornado sempre vazio, passou a ser preenchido, com a URI que identifica o deputado mais recentemente designado como relator.

Só é preciso ressalvar que, quando uma proposição está tramitando em regime de urgência, ela é regimentalmente enviada para várias comissões ao mesmo tempo, e por isso pode haver mais de um "último relator", mas, ao menos por enquanto, só é fornecido o identificador do parlamentar que foi mais recentemente cadastrado como relator.

Não podemos deixar de agradecer à usuária Liziane Felix, que nos questionou sobre o problema ainda em dezembro de 2018. É, às vezes demora um pouco, mas a gente sempre tenta atender a todos...

Datas dos discursos parlamentares

Desde o fim de maio, recebemos de alguns usuários, como João Areal e Gabriela Pessoa, uma reclamação muito pertinente: os discursos listados no retorno do endpoint /deputados/{id}/discursos não tinham data, o que, na prática, tornava praticamente inútil a informação.

Na verdade o problema decorreu de uma decisão deliberada, ainda em agosto de 2018. Na estrutura de dados que representa cada discurso, os campos dataHoraInicio e dataHoraFim deveriam, obviamente, conter data e horário de ocorrência do discurso representado. Mas percebemos que havia uma série de inconsistências sobre essas informações nas bases de dados com registros de discursos (uma para discursos anteriores ao ano 2000, outra para os anos seguintes). Resolvemos deixar os campos vazios até estudarmos a possibilidade de encontrar informações mais precisas em outras bases – mas isso nunca aconteceu.

Então voltamos atrás na decisão, mas com ressalvas: melhor uma informação com grau limitado de precisão do que informação nenhuma. O campo dataHoraInicio volta a ser fornecido com valores, mas pedimos aos usuários que observem que, quando não estão flagrantemente errados (com alguma data de 1899, por exemplo), os horários são meramente aproximados e não representam, exatamente, quando que um discurso foi iniciado. Vamos continuar procurando uma fonte de informação mais precisa.

Eventos: de quando a quando?

Descobrimos que o endpoint /eventos da API estava exagerando em suas respostas quando não são usados os parâmetros de tempo dataInicio e dataFim. O comportamento do endpoint com ou sem parâmetros foi revisado para ficar assim:

  • Se nenhum dos parâmetros for utilizado, a lista retornada terá como itens dados de eventos ocorridos até cinco dias antes e até cinco dias depois do dia em que for feita a requisição.
  • Se apenas dataInicio for usado, serão retornados dados sobre todos os eventos, ocorridos ou registrados como previstos, desta data em diante, até o fim dos tempos.
  • Se apenas dataFim for usado, serão retornados dados sobre todos os eventos registrados, tanto ocorridos como previstos, até esta data, desde o descobrimento do Brasil (brincadeira: só temos até o momento dados de eventos ocorridos a partir de 1991).
  • Se os dois parâmetros forem utilizados, não há o que discutir: o usuário quer, claramente, dados sobre os eventos ocorridos entre as duas datas.

Arquivos: membros das mesas diretoras

Sem alarde, passamos a publicar em junho arquivos para download com os dados sobre as diferentes composições da Mesa Diretora da Câmara desde 1999. Os arquivos são parte do conjunto de dados sobre as legislaturas da Casa.

Outras mudanças

Foram feitos ajustes há muito tempo necessários na página de arquivos para download, tanto visuais como de texto: agora há para cada conjunto a descrição da regra para montagem do endereço completo de cada arquivo, o que pode ser usado, por exemplo, para escrever scripts muito simples para fazer os downloads.

Proposições que nunca tiveram alguma tramitação desde quando foram apresentadas não vinham sendo retornadas pelo endpoint /proposicoes. Corrigimos esse problema graças à descoberta do usuário Willian de Morais. Uma outra reclamação de Willian também nos levou a descobrir um problema que estava impedindo a listagem de proposições que não recebem numeração oficial (por exemplo, pareceres e emendas de comissão que têm tramitação restrita aos órgãos em que são apresentadas) e por isso têm o campo ano com valor 0. Valeu, Willian!

Para quem ainda não viu, foi aberto um wiki do Dados Abertos no GitHub, em que qualquer usuário que tenha uma conta no GitHub pode escrever, sobre qualquer coisa relacionada ao Dados Abertos – de bibliotecas para sua linguagem de programação favorita até aplicações sociais e educacionais dos dados. Para ler o conteúdo, não é preciso ter cadastro. Se você quiser compartilhar seu conhecimento e suas experiências, seja bem vindo!

Percebemos que nos dados sobre eventos da Câmara o conteúdo do campo descricao nem sempre era exatamente descritivo. O campo é formado a partir de quatro campos de texto livre que são preenchidos de formas muito diferentes e criativas, a depender de tipo de evento, de órgãos realizadores, de época e outros fatores. Alteramos a forma de montar o conteúdo do campodescricao e aparentemente isso o tornou mais elucidativo. Pedimos aos nossos usuários que avaliem a mudança e nos avisem sobre problemas que não percebemos.

Dança de cadeiras

No mês de junho houve mudanças significativas na Seção de Integração a Serviços Externos de Interação – a área da Diretoria de Inovação e Tecnologia da Informação da Câmara que é a responsável pelo serviço Dados Abertos. Danilo Cunha, chefe da seção, passou para o setor responsável pelos sistemas internos de informações legislativas da Câmara, e levou os desenvolvedores Vitor Marçal e Fábio Mandarino, que vinham trabalhando no Dados Abertos. A chefia da seção passou a ser ocupada por Fabricio Rocha e a manutenção dos sistemas de API e arquivos ficou com o desenvolvedor Luan Carvalho.

Explicadas as últimas mudanças mais significativas, o usuário do Dados Abertos poderá gostar de saber, ainda, que têm ocorrido avanços nas negociações para a oficialização de um Plano de Dados Abertos na Câmara, que está em negociações e desenvolvimentos preliminares a publicação de dados sobre o secretariado parlamentar, e que o Centro de Documentação e Informação da Câmara está interessado em integrar ao serviço de Dados Abertos informações históricas que até hoje só têm sido fornecidas por meio de solicitações individuais. Continuamos contando com suas ideias, críticas e sugestões por e-mail e pelo nosso fórum de issues no GitHub!


Ir para lista de Notícias