lexml / lexml-parser-projeto-lei

Parser LexML de documentos normativos
GNU General Public License v2.0
10 stars 4 forks source link

problema no uso do linker+parser para gerar arquivo xml da constituição #8

Closed pdelfino closed 6 years ago

pdelfino commented 6 years ago

Oi pessoal,

Eu vi essa discussão interessante no issue #2 sobre a Constituição. Eu quero justamente esse dado para a pesquisa que estou participando na FGV-RJ. No entanto, achei melhor criar outra issue . Eu tentei gerar esse dado via linker+parser do LexML Brasil e estou tendo dificuldades.

A nossa equipe de pesquisa já conseguiu, de forma bem-sucedida, usar essa aplicação para converter normas do formato doc/docx para o formato XML dentro da estrutura definida pelo LexML Brasil. Para isso, foi necessário apenas adaptar o cabeçalho, fazendo a norma em vigor parecer um projeto de lei, já que a aplicação só funciona, por enquanto, para projetos de lei.

Nesse diretório é possível encontrar (i) a lei 8906, (ii) o código de ética da OAB (norma infra-legal) e (iii) o regulamento geral (norma infra-legal). Seguindo a orientação da reproducible research, disponibilizamos todos os passos da conversão. É possível encontrar, no caso do regulamento e do código de ética, o pdf, o docx (após a conversão pdf->docx), o docx adaptado para ser input no parser+linker (cabeçalho alterado) e o xml de output do processo.

Eu repeti esse procedimento que usei nas outras normas com a Constituição brasileira. Nesse caso, não houve um arquivo pdf envolvido. Entrei no site do planalto, copiei o texto e colei no word. Salvei esse arquivo docx. Essa etapa foi bem parecida com a conversão da Lei 8906, que foi bem-sucedida.

Em seguida, adaptei o cabeçalho e fiz esse arquivo para ser o input no linker+parser.. Submeti na aplicação. Infelizmente, o Simulador de Conversão de Documentos Articulados esgotou o tempo de processamento e não retornou nada. Estou anexando um print da tela. bug

Como a Constituição é uma norma beeem maior do que as outras normas que já havíamos submetido, eu especulei a hipótese que isso poderia estar ocorrendo pelo arquivo ser longo. Decidi então pegar uma parte apenas da constituição. Criei esse arquivo de sample.

Curiosamente, esse arquivo foi processado pelo Simulador. Ele retornou um documento xml da amostra da Constituição. O output de xml de parte da Constituição está aqui.

Pode ser que isso tenha ocorrido por o arquivo da Constituição ser maior. Mas a causa do erro pode ser outra. Pode ser, por exemplo, que no meio do texto tenha algum caracter ou algum detalhe de formatação que atrapalhe o parser+linker.

Por fim, gostaria de relatar uma última tentativa que fiz para conseguir o XML da Constituição. Especulando a hipótese que o erro poderia estar em algo associado à formatação, eu copiei e colei o texto da Constituição e fiz isso retirando a formação do texto. Aqui está o doc.

Depois, inseri o cabeçalho de projeto de lei e submeti o arquivo no Simulador. O sistema retornou um arquivo em XML completo da Constituição. O XML está disponível aqui.

Passando o olho, o documento parece certo. No entanto, ainda precisamos checar com mais calma.

De qualquer forma, achei que já havia material suficiente para abrir uma issue. Gostaria de encerrar com algumas perguntas:

1 - Retirar a formatação do texto pode comprometer a execução do parser+linker?

2 - Na aplicação web com GUI não temos uma mensagem de erro detalhada de porque o arquivo docx completo da constituição não foi processado. Vocês poderiam rodá-lo localmente e nos dizer a mensagem de erro? Ou nos ajudar a rodar o script (ver #7)?

3 - Aparentemente, conseguimos o arquivo XML da Constituição mas estou inseguro se ele está correto. Por #2 , esse parece ser um dado requisitado pela comunidade. Vocês teriam alguma sugestão de como eu poderia me certificar que esse XML está certinho?

Observação: obviamente, tem que ser retirado desse XML as informações que eu inputei para fazer o cabeçalho de projeto de lei. Por exemplo, alterar a epígrafe: <Epigrafe id="epigrafe">PROJETO DE LEI DO SENADO Nº 999, DE 2017</Epigrafe> para <Epigrafe id="epigrafe">CONSTITUIÇÃO DA REPÚBLICA FEDERATIVA DO BRASIL DE 1988</Epigrafe>

P.S.: Esse é o primeiro projeto open-source que eu participo. Peço desculpas se esse issue está, de alguma forma, inadequado.

joaoli13 commented 6 years ago

A Constituição de 1988 (CF) é formada por dois textos: o principal, que originalmente possuía 245 artigos, e o do Ato das Disposições Constitucionais Transitórias (ADCT), que originalmente possuía 70 artigos. Desde a promulgação, em 5 de outubro de 1988, foram editadas 6 Emendas Constitucionais de Revisão e 99 Emendas Constitucionais.

Veja um exemplo de XML da CF e do ADCT em https://github.com/lexml/lexml-xml-samples/tree/master/LexML . Nesse diretório você encontrará tanto o texto original como o atualizado para março de 2015.

Um dos principais motivos para a sua tentativa de parser inicial não ter funcionado foi que você salvou o texto da CF e do ADCT em um único arquivo. Se não fosse isso e usando a estratégia de adaptar o cabeçalho que vc empregou, provavelmente, teria funcionado.

Verifiquei ainda que, no caso do último arquivo enviado, o texto principal possui apenas 114 artigos. Ele está incompleto. Outro problema é que na parte inicial tem uma série de informações que não faz parte do texto da constituição (quase tudo antes do Preâmbulo).

Agora, respondendo às perguntas:

1 - Retirar a formatação do texto pode comprometer a execução do parser+linker? Não compromete.

2 - Na aplicação web com GUI não temos uma mensagem de erro detalhada de porque o arquivo docx completo da constituição não foi processado. Vocês poderiam rodá-lo localmente e nos dizer a mensagem de erro? Ou nos ajudar a rodar o script (ver #7)? A aplicação não rodou pois na primeira tentativa existiam textos de duas normas. É necessário fazer o parser da CF separado do ADCT.

3 - Aparentemente, conseguimos o arquivo XML da Constituição mas estou inseguro se ele está correto. Por #2 , esse parece ser um dado requisitado pela comunidade. Vocês teriam alguma sugestão de como eu poderia me certificar que esse XML está certinho? Como expliquei, o XML está incompleto pois o texto submetido possui apenas 114 artigos.

pdelfino commented 6 years ago

Obrigado @joaoli13, vou fechar a issue!