CamaraDosDeputados / dados-abertos

Repositório do serviço de Dados Abertos da Câmara. Consulte as "Issues" para atendimento a dúvidas e sugestões.
http://dadosabertos.camara.leg.br
198 stars 13 forks source link

Chaves de ligação entre as tabelas #244

Open lucasmation opened 5 years ago

lucasmation commented 5 years ago

Ola,

Estou explorando os dados. Esta super bacana e organizado. Parabens aos envolvidos!

So nao estou conseguindo encontrar algo como um MER, ou dicionario de dados, que diga quais sao as chaves de ligacao entre as tabelas (estou trabalhando com as tabelas em CSV). Os "ids" nao tem os mesmos nomes nas tabelas.

Poderiam me enviar alguma documentação (ou MER) indicando quais são as chaves de ligação entre as tabelas (também sugiro que incluam esta documentação no site, na pagina dos tutoriais)?

EM particular, estou tendo dificuldade em encontrar as chaves de ligação entre "proposicoesAutores" e "proposicoes".

EDIT: relacionado com #182, apesar do meu foco ser menos TI, 'endpoint', etc. E mais nas chaves que permitem fazer o join das tabelas em CSV.

EquipeDadosAbertosCD commented 5 years ago

Olá, Lucas!

Obrigado pelo interesse, pelo contato e pelas palavras :)

Não sei se é só isso, mas tenho a impressão de que você está se referindo especificamente aos nomes de campos/colunas nos conjuntos de arquivos. A regra básica é a seguinte:

Especificamente no caso que você mencionou, o que há de idProposicao e uriProposicao nos arquivos proposicoesAutores-{ano}.* se refere, inequivocamente, a registros nos arquivos proposicoes-{ano}.*.

Observe, porém, que especificamente nesse conjunto de arquivos é importante observar uma recomendação para dados abertos feita pelo próprio "pai da internet", Tim Berners-Lee: URIs devem ser os identificadores principais de entidades na internet, para evitar ambiguidades.

Ocorre que não somente deputados podem ser autores de proposições. Por isso, as URLs no campo uriAutor ora apontam para um recurso da classe deputados, ora apontam para um recurso da classe orgaos. Se você se guiar pelo campo idDeputadoAutor (que, aliás, está com nome errado), terá que analisar em conjunto os campos codTipoAutor e/ou tipoAutor para saber se a relação será feita com o arquivo orgaos.csv ou com o arquivo deputados.csv.

Espero que isso ajude. Desculpe a ignorância, mas eu não tenho a menor ideia de o que seja um MER (e pesquisar no Google não ajudou a esclarecer!)

Abraço!

Fabricio Rocha Equipe Dados Abertos - Câmara

lucasmation commented 5 years ago

@EquipeDadosAbertosCD , Fabricio, muito obrigado!!

Por MER eu me refiro a "modelo entidade relacionamento (modelo ER)" que eh um esqueminha que pessoal mais de banco de dados usa para descrever relacionamentos entre tabelas. Eu sou economista mas como trabalho muito com os registros administrativos do governo federal aprendi a apreciar estas figuras.

Outra possibilidade de documentacao seria Uma "meta-tabela" esplicitando como ligar , duas a duas, todas as tabelas diretamente ligaveis. Isto eh, esta tabela teria as seguintes colunas:

De todo modo, obrigado pela explicacao para este par de tabelas.

EDIT1: Dadas as explicacoes acima o pareamento funcionou.

Sobre a documentação:

O fato do usuário ter que presumir que o significado de uri varia de acordo com a cardinalidade de cada tabela pode ate ser natural para o mundo da TI, API, progarmadores Web, etc. Mas nao eh usual para usuários de dados (economistas, cientistas sociais, etc). Eu sou economista do Ipea, trabalho muito com microdados de diferentes pesquisas, registroa adm de vários tipos, etc. e nunca tinha visto isso. Até onde sei, o bom padrao nas ciencias sociais eh que os nomes de variáveis sejam unicos e auto explicativos. Por sinal, suponho que a maioria dos cientistas sociais nao saiba o que é uma uri (tive que procurar no google) e, na falta de documentacao, tendera a usar id. Toda a documentacao esta voltada para a API, para desenvolvedores web, o que a torna meio ininteligível para reles mortais (o que é huma entidade por exemplo?).

Nao quero insistir muito neste ponto, pois as explicações acima. ja me bastam. Mas sugiro voces façam uma nota explicativa de meia pagina sobre estas questões (basicamente a resposta acima), explicando as mudanças de significado de uri entre tabelas e que uris sao mais confiáveis que ids.

De todo modo, agradeço novamente as explicações dadas e continuem firm neste excelente trabalho.

EquipeDadosAbertosCD commented 5 years ago

Salve outra vez, Lucas!

A sua ideia sobre a "meta-tabela" é interessante e simpels. Vamos pensar a respeito, e pesquisar se já existe algum padrão para isso, apenas para evitarmos uma reinvenção da roda.

Seu questionamento sobre a utilização e a documentação do Dados Abertos é um input interessante. Um dos objetivos do projeto de atualização do serviço em 2016 era, justamente, tornar o uso dos dados mais amigável para pessoas que não são programadores ou da área de TI. O usuário intermediário de planilhas eletrônicas é o principal exemplo. Por isso demos ênfase nos formatos tabulares. Inclusive, é previsto desde o início que a API também forneça respostas em CSV, o que ainda não foi feito por falta de tempo e estrutura.

Pelos mesmos problemas de tempo e estrutura a documentação também está ainda incompleta. Não é simples de elaborar e manter atualizada, ainda mais enquanto o sistema ainda não está estabilizado e maduro. Assim como você exemplificou com entidade, cardinalidade e mesmo variáveis também não são conceitos exatamente populares, e essas coisas tornam o esforço de documentação complexo. Veja ainda que na página dos arquivos, na seção de download dos arquivos de autores de proposições, o texto diz:

Uma proposição pode ter um ou mais autor(es), não necessariamente parlamentares. Estes arquivos trazem os identificadores básicos de proposições e de cada um de seus autores.

Eu que escrevi. Não consigo imaginar uma forma mais simples e breve de explicar a cardinalidade 1:n desses arquivos. E ainda assim você teve a sensação de que não há documentação. Temos que pensar o que é possível fazer para que essa sensação não ocorra.

Agora em abril demos início ao wiki do Dados Abertos aqui no GitHub, com a expectativa que os próprios usuários colaborem na elaboração de documentação. Espero que, pelo menos dentro de algum tempo, isso possa compensar o que ainda não conseguimos melhorar na usabilidade do serviço.

Abraço!

Fabricio Rocha Equipe Dados Abertos - Câmara

lucasmation commented 5 years ago

Acho que eh bem menos complicado e verboso que voce tem em mente. Vc so precisa criar 3 planilhas planilhas:

Cada uma destas vc provavelmente faz rapidamente. É como o IBGE e outros provedores de dados fazem.

Wiki: sou muito cetico. Os usuários nao vão colaborar a ponto de escrever a wiki p vc.. Tenho experiencia com Ipeadata, microdadosBrasil, etc. É o provedor do serviço quem tem que documentar.