{"id":39562044,"url":"https://github.com/abjur/constituicao","last_synced_at":"2026-01-18T07:09:14.492Z","repository":{"id":56316284,"uuid":"305516547","full_name":"abjur/constituicao","owner":"abjur","description":"Explorador da Constituição: a Constituição Federal e suas Emendas acessíveis para o mundo da Ciência de Dados","archived":false,"fork":false,"pushed_at":"2020-11-15T01:06:34.000Z","size":3074,"stargazers_count":74,"open_issues_count":0,"forks_count":7,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-09-08T23:02:12.214Z","etag":null,"topics":["lawtech","text-mining","webscraping"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/abjur.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-10-19T21:23:41.000Z","updated_at":"2025-09-02T03:54:35.000Z","dependencies_parsed_at":"2022-08-15T16:31:31.615Z","dependency_job_id":null,"html_url":"https://github.com/abjur/constituicao","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/abjur/constituicao","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abjur%2Fconstituicao","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abjur%2Fconstituicao/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abjur%2Fconstituicao/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abjur%2Fconstituicao/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/abjur","download_url":"https://codeload.github.com/abjur/constituicao/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abjur%2Fconstituicao/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28532723,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T00:39:45.795Z","status":"online","status_checked_at":"2026-01-18T02:00:07.578Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["lawtech","text-mining","webscraping"],"created_at":"2026-01-18T07:09:12.971Z","updated_at":"2026-01-18T07:09:14.482Z","avatar_url":"https://github.com/abjur.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Explorador da Constituição\n\nA _Constituição da República Federativa do Brasil_ é um documento com mais de\n300 artigos, 900 parágrafos e 1.300 incisos, totalizando em torno de 72.000\npalavras. Não apenas extensa, a Constituição também é um texto que muda\nconstantemente: desde a sua promulgação em 1988, ela já sofreu mais de 100\nrevisões na forma de Emendas Constitucionais e Emendas de Revisão.\n\nO objetivo do\n**Explorador da Constituição** é ajudar qualquer um a analisar a nossa Carta\nMagna! Abaixo você vai encontrar instruções sobre como funciona este repositório\ne informações úteis para explorar as bases de dados aqui disponibilizadas:\n\n- 📚 Sobre a Constituição\n\n  - Emendas\n\n  - Estrutura\n  \n  - ADCT\n\n- 🔍 Análise manual\n\n  - Blame, diff e history\n\n- 💻 Análise computacional\n\n- 📐 Notas metodológicas\n\n## 📚 Sobre a Constituição\n\nA nossa atual Constituição foi promulgada em 5 de outubro de 1988, após mais de\n20 anos de ditadura militar, motivo pelo qual ela é chamada de \"Constituição\nCidadã\".\n\nJustamente por ser um documento ratificado recentemente, ele ainda está sujeito\na constantes modificações por parte do Legislativo Nacional. Como aludido acima,\no texto encontra-se em sua 117ª versão, tendo passado por 108 Emendas\nConstitucionais, seis Emendas de Revisão e dois Atos Internacionais equivalentes\na Emendas.\n\nApós cada Emenda, é gerado um novo texto compilado que passa a ser considerado\na versão mais atual da Carta Magna. Esses textos são\n[publicados](https://www.senado.leg.br/atividade/const/constituicao-federal.asp)\npelo Senado Federal e serviram de base para este projeto!\n\n### Emendas\n\nEmendas Constitucionais (EMCs) começam como Propostas de Emenda à Constituição\n(PECs), que não passam de sugestões de alteração no seu texto. Se a PEC é\naprovada por três quintos da Câmara dos Deputados e do Senado Federal em dois\nturnos de votação, ela se torna uma EMC e suas determinações são incorporadas à\nConstituição.\n\nAtos Internacionais equivalentes a Emendas Constitucionais passaram a ser\npermitidos a partir da EMC 45, que previa que \"tratados e convenções\ninternacionais sobre direitos humanos que forem aprovados [como EMCs] serão\nequivalentes às emendas constitucionais\". As Emendas Constitucionais de Revisão\n(EMRs) só puderam ser ratificadas durante a Revisão Constitucional prevista de\n1993 e, portanto, não são mais permitidas.\n\n### Estrutura\n\nO texto compilado atual conta com quase 3.000 itens que versam sobre os mais\ndiversos aspectos da Federação, organizados segundo a hierarquia de qualquer outra\nlei: títulos, capítulos, seções, subseções, artigos, parágrafos, incisos e\nalíneas.\n\nOs primeiros quatro níveis (títulos,\ncapítulos, seções, subseções) são apenas separações no texto, delimitando temas\ndistintos. Nem todos esses níveis são necessários; pode haver títulos sem\ncapítulos, capítulos sem seções e assim por diante, mas um capítulo sempre faz\nparte de um título, uma seção sempre faz parte de um capítulo, etc.\n\nOs outros quatro níveis (artigos, parágrafos, incisos e alíneas) são\ngenericamente chamados de dispositivos, pois são eles que de fato contêm o texto\nda Constituição. Aqui o padrão anterior se repete: por exemplo, um artigo pode\nnão ter parágrafos, mas um parágrafo sempre faz parte de um artigo. Entretanto\nhá uma exceção importante: artigos podem ter parágrafos **ou** incisos, mas um\nparágrafo também pode ter incisos. Isso pode parecer arbitrário e sem sentido,\nmas incisos servem para listar itens, então eles são úteis tanto para artigos\ninteiros quanto para parágrafos.\n\n![](readme_files/arvore.png)\n\nAcima está ilustrada a árvore dos dispositivos da Constituição. Toda norma da\nCarta Magna cai em algum lugar da árvore, então ela pode facilitar a compreensão\nde como ambos os dispositivos exemplificados a seguir podem fazer parte do mesmo\ntexto (note os demarcadores pouco usuais: o símbolo \"§\" para parágrafos,\nnumerais romanos para incisos e letras seguidas de um parêntese para alíneas):\n\n- `Título I \u003e Art. 2º`\n\n- `Título IV \u003e Capítulo I \u003e Seção VIII \u003e Subseção III \u003e Art. 61 \u003e § 1º \u003e II \u003e b)`\n\n### ADCT\n\nÚltimo título da Carta Magna, o Ato das Disposições Constitucionais Transitórias (ADCT) é\ndiferente dos outros. Primeiro que ele tem um nome particular, sem numeração, e\nsegundo que ele reinicia a contagem dos artigos.\n\nO ADCT é uma parte separada\nda Constituição que contém normas específicas referentes à transição da ditadura\nmilitar para o novo regime democrático e outros dispositivos com escopo temporal\nlimitado. Mas não é por ser diferente que o ADCT tem menos valor; os seus\nartigos têm o mesmo peso legal que os artigos do resto da Constituição.\n\n## 🔍 Análise manual\n\nCaso você queira entender como a Constituição mudou com o tempo ou\nexplorar a sua estrutura atual, este repositório é um ótimo recurso. Para os\niniciantes, a recomendação é começar pela seção acima, pois a estrutura da nossa\nLei Maior não é tão simples.\n\nO primeiro passo para utilizar o Explorador da Constituição é clicar no arquivo\n[`CONSTITUICAO.md`](CONSTITUICAO.md) acima e ser levado ao texto completo\natualizado. Lá, é possível ler a Constituição, utilizar CTRL+F no\nseu navegador para procurar excertos e copiar links para trechos do arquivo\nclicando nos elos ao lado de cada cabeçalho.\n\n![](readme_files/link.png)\n\n### Blame, diff e history\n\nNo topo da página, está o acesso a uma das ferramentas mais úteis\npara entender a Constituição ao longo do tempo: o _blame_ (também disponível\ndiretamente através de\n[um link](https://github.com/abjur/constituicao/blame/main/CONSTITUICAO.md)).\nEsse é um termo computacional que não importa no momento, basta apenas saber que\nele traz a última versão na qual cada linha do arquivo foi alterada.\n\nNa imagem abaixo está o blame do inciso LXXVIII do Art. 5º. Como é possível ver,\na coluna da esquerda indica que ele foi modificado pela última vez 16 anos\natrás, na EMC 45. Clicando no número da linha (retângulo vermelho), é gerado um\nlink direto para esse dispositivo.\n\n![](readme_files/linha.png)\n\nAinda nesta visão, ao passar o mouse pelo número da EMC (retângulo vermelho na\nimagem abaixo), é exibida a ementa daquela Emenda. Um clique no ícone destacado\npelo quadrado verde nos leva para o blame do texto\ncompilado da Constituição em 8 de dezembro de 2004. A próxima ferramenta\nrelevante do Explorador, por sua vez, pode ser acessada clicando no próprio\nnúmero da EMC.\n\n![](readme_files/ementa.png)\n\nEste é o _diff_, outro tempo técnico irrelevante agora. Na esquerda está\nrepresentada o texto da Constituição antes da EMC de interesse (a 45 nesse\ncaso) e, na direita, o texto após a Emenda. A representação das modificações\nsão bastante intuitivas de modo que, na figura abaixo, é possível perceber que o\ninciso LXXVIII foi incluído na constituição pela EMC 45.\n\n![](readme_files/diff.png)\n\nAinda neste mesmo exemplo, um pouco mais abaixo na página está o trecho\nilustrado a seguir. Grifos em vermelho representam trechos suprimidos da\nConstituição pela EMC, enquanto os verdes destacam trechos adicionados pela mesma.\n\n![](readme_files/diff2.png)\n\nA última ferramenta para a análise manual da Constituição pode ser encontrada na\n[página do blame](https://github.com/abjur/constituicao/blame/main/CONSTITUICAO.md):\na _history_ (também disponível diretamente através de\n[um link](https://github.com/abjur/constituicao/commits/main/CONSTITUICAO.md)).\n\n![](readme_files/history.png)\n\nEssa página contém o histórico com todas as Emendas Constitucionais aprovadas\npelo Legislativo ao longo dos anos. Se voltarmos o suficiente no passado,\né possível encontrar mais uma vez a nossa EMC de interesse para este tutorial,\nilustrada abaixo.\n\nDestacada em verde está a data de aprovação da EMC. Clicando nas reticências\ncircunscritas pelo retângulo azul, a ementa da Emenda é exibida novamente. Por\nfim, o botão destacado em vermelho leva o Explorador de volta no tempo, para a\ndata daquela EMC, onde é possível utilizar todas as ferramentas destacadas no\ntutorial, mas em uma versão antiga da Constituição.\n\n![](readme_files/commit.png)\n\n## 💻 Análise computacional\n\nEsta seção do manual do Explorador da Constituição é voltada para os\nprogramadores que querem utilizar os recursos mais avançados deste repositório.\nSe você entende das funcionalidades principais do git/GitHub, como o blame, o\ndiff e o histórico de commits, então não é necessário ler a seção anterior.\n\nTodas as pastas em caixa-alta contêm dados que podem ser úteis para análises da\nconstituição. Cada arquivo desses diretórios é nomeado em referência a uma EMC e\ne à data na qual ela foi aprovada e contém os dados do texto\ncompilado da Constituição após a alterações daquela Emenda.\n\nA pasta `HTML/` tem os arquivos HTML crus\n[disponibilizados](https://www.senado.leg.br/atividade/const/constituicao-federal.asp)\npelo Senado Federal em seu site que foram utilizados para gerar os outros dados\ne o arquivo markdown [`CONSTITUICAO.md`](CONSTITUICAO.md). A pasta `CSV/`\npossui, na mesma estrutura de arquivos, arquivos CSV em que cada linha\nrepresenta um dispositivo da Constituição e a sua posição dentro do texto. Por\nfim, a pasta `JSON/` contém arquivos JSON com a Constituição em forma de lista.\n\nAbaixo há um exemplo em R de como acessar os incisos do Art. 1º. Note que\n**todas** as colunas do arquivo CSV devem ser lidas como strings; isso ocorre\nporque certos dispositivos são distinguidos com letras maiúsculas como, por\nexemplo, o Art. 146-A.\n\n```r\nlibrary(tidyverse)\nlibrary(jsonlite)\n\n\"CSV/20200826_EMC108.csv\" %\u003e%\n  read_csv(col_types = cols(.default = \"c\")) %\u003e%\n  filter(titulo == \"1\", artigo == \"1\", !is.na(inciso))\n#\u003e # A tibble: 5 x 10\n#\u003e   classe texto     titulo capitulo secao subsecao artigo paragrafo inciso alinea\n#\u003e   \u003cchr\u003e  \u003cchr\u003e     \u003cchr\u003e  \u003cchr\u003e    \u003cchr\u003e \u003cchr\u003e    \u003cchr\u003e  \u003cchr\u003e     \u003cchr\u003e  \u003cchr\u003e \n#\u003e 1 inciso I - a so… 1      \u003cNA\u003e     \u003cNA\u003e  \u003cNA\u003e     1      \u003cNA\u003e      1      \u003cNA\u003e  \n#\u003e 2 inciso II - a c… 1      \u003cNA\u003e     \u003cNA\u003e  \u003cNA\u003e     1      \u003cNA\u003e      2      \u003cNA\u003e  \n#\u003e 3 inciso III - a … 1      \u003cNA\u003e     \u003cNA\u003e  \u003cNA\u003e     1      \u003cNA\u003e      3      \u003cNA\u003e  \n#\u003e 4 inciso IV - os … 1      \u003cNA\u003e     \u003cNA\u003e  \u003cNA\u003e     1      \u003cNA\u003e      4      \u003cNA\u003e  \n#\u003e 5 inciso V - o pl… 1      \u003cNA\u003e     \u003cNA\u003e  \u003cNA\u003e     1      \u003cNA\u003e      5      \u003cNA\u003e\n\n\"JSON/20200826_EMC108.json\" %\u003e%\n  read_json() %\u003e%\n  pluck(\"titulos\", \"1\", \"artigos\", \"1\", \"incisos\") %\u003e%\n  map(pluck, \"texto\", 1)\n#\u003e $`1`\n#\u003e [1] \"I - a soberania;\"\n#\u003e \n#\u003e $`2`\n#\u003e [1] \"II - a cidadania;\"\n#\u003e \n#\u003e $`3`\n#\u003e [1] \"III - a dignidade da pessoa humana;\"\n#\u003e \n#\u003e $`4`\n#\u003e [1] \"IV - os valores sociais do trabalho e da livre iniciativa;\"\n#\u003e \n#\u003e $`5`\n#\u003e [1] \"V - o pluralismo político.\"\n```\n\nO último recurso útil para um programador é o próprio arquivo\n[`CONSTITUICAO.md`](CONSTITUICAO.md). Ele é completamente versionado e as datas\ndos commits correspondem à aprovação das Emendas, então é possível fazer uma\nanálise temporal do texto sem precisar abrir uma série de tabelas ou listas.\n\nO código utilizado para gerar todos os arquivos disponibilizados está em \n[`fonte.R`](fonte.R), assim como os comandos git que permitem fazer o commit de\ncada versão do [`CONSTITUICAO.md`](CONSTITUICAO.md) aparecer na data em que a\nEMC foi aprovada. É um truque interessante, mas difícil de manter no longo prazo.\n\n## 📐 Notas metodológicas\n\n**Por que algumas EMCs aparecem agrupadas (por exemplo, `EMC 94, EMC 95`)?**\n\nAlgumas Emendas Constitucionais foram aprovadas no mesmo dia, então o Senado\nFederal disponibiliza somente o texto compilado após a aplicação de **todas**\naquelas EMCs.\n\n**Por que algumas EMCs não apresentam diff (por exemplo, `EMC 107`)?**\n\nAlgumas Emendas Constitucionais criam artigos próprios, que não alteram o\ntexto-base da Constituição. Isso quer dizer que as EMCs 79, 91, 98, 106 e 107\nnão terão um diff no Explorador.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabjur%2Fconstituicao","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabjur%2Fconstituicao","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabjur%2Fconstituicao/lists"}