Obter a legislação do dre.tretas.org

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. 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.166GB.

  • Dump no formato do dump do Postgresql das tabelas dreapp_document e dreapp_documenttext.

    Este dump tem, descomprimido, cerca de 5.369GB.

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" serial NOT NULL PRIMARY KEY,
    "claint" integer NOT NULL UNIQUE,
    "doc_type" varchar(64) NOT NULL,
    "number" varchar(32) NOT NULL,
    "emiting_body" varchar(512) NOT NULL,
    "source" varchar(128) NOT NULL,
    "dre_key" varchar(32) NOT NULL,
    "in_force" boolean NOT NULL,
    "conditional" boolean NOT NULL,
    "processing" boolean NOT NULL,
    "date" date NOT NULL,
    "notes" varchar(20480) NOT NULL,
    "plain_text" varchar(200) NOT NULL,
    "dre_pdf" varchar(200) NOT NULL,
    "pdf_error" boolean NOT NULL,
    "timestamp" timestamp with time zone NOT NULL
);

e

CREATE TABLE "dreapp_documenttext" (
    "id" serial NOT NULL PRIMARY KEY,
    "document_id" integer NOT NULL REFERENCES "dreapp_document" ("id") DEFERRABLE INITIALLY DEFERRED,
    "timestamp" timestamp with time zone NOT NULL,
    "text_url" varchar(200) NOT NULL,
    "text_type" integer NOT NULL,
    "text" text NOT NULL,
    UNIQUE ("document_id", "text_type")
);
ATENÇÃO – Em Setembro de 2014 a Casa da Moeda alterou o site do DRE pelo que as notas seguintes, referentes ao dre.pt, já não são válidas. Mantêm-se no post para memória futura.

Reparámos, por acaso, que o site oficial disponibiliza este texto integral de outra forma. Assim que se soube deste facto, foi acrescentada esta tabela, bem como os métodos necessários para fazer uso desta nova fonte.

Já agora, temos, para a primeira série do DR, URLs do género para obter o texto integral:

http://www.dre.pt/cgi/dr1s.exe?
    t=d&
    cap=&
    doc=<dre_key>&
    v01=2&
    v02=<date>&
    v03=&
    v04=&
    v05=&
    v06=&
    v07=&
    v08=&
    v09=&
    v10=&
    v11=&
    v12=&
    v13=&
    v14=&
    v15=&
    sort=0&
    submit=Pesquisar

Onde:

  • dre_key – é um número de ordem atribuído pela casa da moeda com um formato \d+@s1, sem o sufixo ‘@s1’;
  • date – é a data do documento em formato ISO (AAAA-MM-DD).

Para a segunda série, o url vem:

http://www.dre.pt/cgi/dr2s.exe?t=d2&cap=&doc=<dre_key>

Onde:

  • dre_key – é um número de ordem atribuído pela casa da moeda com um formato \d+@s2, sem o sufixo ‘@s2’;
Anúncios

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s