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.