02_Parser

Propaganda
Parser de Normas do LexML
<nova versão>
João Lima
Novidades da atual versão

Formatos de Entrada



Alteração de Norma
Conversão para XHTML


Formato intermediário
Parâmetros (opcional)


TXT e RTF
Metadados
 Identificação
 Contexto (URN)
Tabelas

simples
Parser - Aplicações

Filtros

Traduz uma entrada em uma saída


Validadores


Verifica se uma entrada obedece a uma gramática
Processadores


sem considerar uma gramática
Valida e Processa (sem re-escrita)
 Ações: cálculos, atualizar banco de dados, etc.
Tradutores

Valida e Traduz
 a entrada em outro formato

Parse tree
Etapas (ANTLR)
caracteres
Lexer
tokens
Tabela
de
Símbolos
Parser
AST
P(Tree)
Saída
(XML)
Arq.rtf
Lexer
Arq.txt
Arq.rtf
.txt
Parser
Normaliza.g
Arq_
Normal.txt
Lexer
Parser
LexML.g
RTF.g
GeraXHTML.g
NormalizaAlt.g
Arq_
rtf.xml.
html
Arq_
NormalAlt
.txt
XHTML2TXT.g
GeraXML.g
Arq_
LexML.xml
Lingüístico.g
Arq_
LexML
Lang.xml
Arq.rtf.log.txt (Normal)
Arquivo de Entrada (RTF)
Arquivo XHTML (reduzido)
Arquivo TXT (b, i, u, sub, super)
Arquivo Normal
Arquivo NormalAlt
Arquivo LexML
Arq.rtf.log.txt (com erro)
Linha 8:5 - erro
Limitações (atuais)

Tabelas


Colspan / Rowspan
Tabelas dentro de tabela
A ser implementado

Esquema Flexível
Anexos
Retificação
Passo de validação com o XML Schema

Filtro para conversão de HTML/XHTML para o formato “XHTML reduzido” do LexML





Comparação entre arquivos LexML de diferentes fontes


RTF, TXT, HTML e XHTML
Qualidade da informação
Parser de Remissões


Internas
Externas

Parser de Eventos Alteração

Consolidador de Alteraçõer
Como Instalar / Executar


Descompactar arquivo LexMLParser.zip
Baixar antlrWorks


Alterar nos arquivos exp.bat e expe.bat


as variáveis CP e JAVA_HOME
exp.bat arq.xxx


http://www.antlr.org/download/antlrworks-1.1.7.jar
Compila e Executa
expe.bat arq.xxx

Executa
Exp.bat
SET JAVA_HOME=C:\Arquiv~1\Java\jdk1.5.0_05
SET CP=antlrworks-1.1.7.jar;.
%JAVA_HOME%/bin/java -ms64m -mx1G -cp %CP% org.antlr.Tool RTF.g
GeraXHTML.g XHTML2TXT.g Normaliza.g NormalizaAlt.g LexML.g
GeraXML.g Linguistico.g
pause
%JAVA_HOME%/bin/javac -classpath %CP% RTFParser.java RTFLexer.java
GeraXHTML.java XHTML2TXTLexer.java NormalizaLexer.java
NormalizaAltLexer.java LexMLParser.java LexMLLexer.java
GeraXML.java LinguisticoLexer.java PipeLexML.java UtilLexML.java
Pause
SET ARQ=%1
SHIFT
%JAVA_HOME%/bin/java -ms64m -mx1G -Dfile.encoding=ISO8859-1 -cp %CP%
PipeLexML %ARQ% %1 %2 %3 %4 %5 %6 %7 %8 %9
Linha de Comando
Parâmetros



PipeLexML Arq.EXT [ jurisdicao autoridade
tipo numero dataRepresentativa
DataVigencia DataPublicacao
FormaConteudo Lingua ]
EXT = “RTF” ou “TXT”
leis\2000\lei09953.rtf br federal lei 9953
2000-01-04 dataVig 2000-01-05 texto pt-BR
Estatísticas

> 80% de conversão


Leis 2000-2007
Erros

~ 15%

Problemas de codificação



Falta de aspas ou espaço em branco
Uso de caracteres errados para delimitar dispositivos
~ 5%




Problemas de técnica legislativa > flexível
Tabela ou texto no corpo da norma
Alteração de anexo no corpo da norma
Artigos com “Pena –” ou “Pena:”, às vezes com título do artigo.
Download