Mantemos em http://dre.tretas.org uma cópia do DRE com algumas funcionalidades que faltam no site oficial. Essas funcionalidades incluem um motor de busca eficiente, um sistema robusto de bookmarks, etiquetagem e anotação da legislação.
Para além disso, na página Acerca, do site, damos a possibilidade de fazer o download dos dados que, desde 2011, retiramos do site oficial. Disponibilizamos também, no GitLab, todo o código fonte do site. Desta forma qualquer um pode tratar estes dados como melhor entender.
Neste post descrevo a estrutura destes dados.
Na página Acerca podem-se encontrar dois dumps da base de dados:
- Dump JSON da tabela dreapp_document, um registo típico é qualquer coisa como:
{ "pdf_error": false, "conditional": false, "timestamp": "2012-08-16 20:46:39.315403", "processing": false, "plain_text": "http://digestoconvidados.dre.pt/digesto//pdf/LEX/2/2.PDF", "number": "DD1099/85", "dre_pdf": "http://www.dre.pt/util/getpdf.asp?s=dig&serie=1&iddip=19851226", "date": "1985-05-14", "doc_type": "AVISO", "claint": 2, "in_force": true, "notes": "Torna p\u00fablico ter o embaixador da Rep\u00fablica Hel\u00e9nica na Haia depositado, em conformidade com o artigo 10.\u00ba, segunda al\u00ednea, o instrumento de ratifica\u00e7\u00e3o, pela Gr\u00e9cia da Conven\u00e7\u00e3o Relativa \u00e0 Supress\u00e3o da Exist\u00eancia da Legaliza\u00e7\u00e3o de Actos P\u00fablicos Estrangeiros.", "source": "DIARIO DA REPUBLICA - 1.\u00aa SERIE, N\u00ba 110, de 14.05.1985", "emiting_body": [ "MINIST\u00c9RIO DOS NEG\u00d3CIOS ESTRANGEIROS" ], "dre_key": "19851226@s1" }
Este dump tem, descomprimido, cerca de 1.5GB.
- Dump no formato do dump do Postgresql das tabelas dreapp_document e dreapp_documenttext.
Este dump tem, descomprimido, cerca de 6GB.
Evidentemente não incluímos nestes dumps a base de dados completa usada para fazer funcionar o site. No entanto, estas tabelas representam todos os dados obtidos do site oficial.
A definição das tabelas, criadas pela ORM do Django, são:
CREATE TABLE dreapp_document ( id integer NOT NULL, claint integer NOT NULL, doc_type character varying(128) NOT NULL, number character varying(32) NOT NULL, emiting_body character varying(1024) NOT NULL, source character varying(128) NOT NULL, dre_key character varying(32) NOT NULL, in_force boolean NOT NULL, conditional boolean NOT NULL, date date NOT NULL, notes character varying(20480) NOT NULL, plain_text character varying(200) DEFAULT ''::character varying NOT NULL, dre_pdf character varying(200) NOT NULL, pdf_error boolean NOT NULL, "timestamp" timestamp with time zone NOT NULL, processing boolean DEFAULT false NOT NULL, dr_number character varying(16) DEFAULT ''::character varying NOT NULL, series integer DEFAULT 1 NOT NULL );
e
CREATE TABLE dreapp_documenttext ( id integer NOT NULL, document_id integer NOT NULL, "timestamp" timestamp with time zone NOT NULL, text_url character varying(200) NOT NULL, text text NOT NULL );
Nota, as definições destas tabelas foram actualizadas em 2018-08-29.