Coder Social home page Coder Social logo

lexml-parser-projeto-lei's People

Contributors

aparra avatar joaoli13 avatar joaoraf avatar laurocesar avatar rslima avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lexml-parser-projeto-lei's Issues

Dúvida sobre uso do parse em arquivo .pdf

Estou tentando realizar o parse do arquivo PDF do projeto de lei PL 5138/2020 (http://www.camara.gov.br/proposicoesWeb/prop_mostrarintegra?codteor=1941391)
com o seguinte comando:

java -jar target/lexml-parser-projeto-lei-1.12.3-SNAPSHOT-onejar.jar parse -i <arquivo_PL-5138-2020.pdf> --mime-type application/pdf -o <arquivo_saida>

Porém, nada acontece. Nenhum erro. Nenhuma saída.

Está correto o comando?

Output completo:

Setting up logging Calling Configurator 2021-04-05 11:30:36,168 main DEBUG Not in a ServletContext environment, thus not loading WebLookup plugin. 2021-04-05 11:30:36,175 main DEBUG PluginManager 'Converter' found 44 plugins 2021-04-05 11:30:36,177 main DEBUG Starting OutputStreamManager SYSTEM_OUT.false.false-2 2021-04-05 11:30:36,178 main DEBUG Starting LoggerContext[name=610455d6, org.apache.logging.log4j.core.LoggerContext@2e5d6d97] with configuration XmlConfiguration[location=stream (870 bytes, unknown location)]... 2021-04-05 11:30:36,178 main DEBUG Shutdown hook enabled. Registering a new one. 2021-04-05 11:30:36,205 main DEBUG Apache Log4j Core 2.11.1 initializing configuration XmlConfiguration[location=stream (870 bytes, unknown location)] 2021-04-05 11:30:36,216 main DEBUG Installed 1 script engine 2021-04-05 11:30:37,233 main DEBUG Oracle Nashorn version: 1.8.0_25, language: ECMAScript, threading: Not Thread Safe, compile: true, names: [nashorn, Nashorn, js, JS, JavaScript, javascript, ECMAScript, ecmascript], factory class: jdk.nashorn.api.scripting.NashornScriptEngineFactory 2021-04-05 11:30:37,233 main DEBUG PluginManager 'Core' found 117 plugins 2021-04-05 11:30:37,234 main DEBUG PluginManager 'Level' found 0 plugins 2021-04-05 11:30:37,241 main DEBUG PluginManager 'Lookup' found 13 plugins 2021-04-05 11:30:37,244 main DEBUG Building Plugin[name=layout, class=org.apache.logging.log4j.core.layout.PatternLayout]. 2021-04-05 11:30:37,257 main TRACE TypeConverterRegistry initializing. 2021-04-05 11:30:37,258 main DEBUG PluginManager 'TypeConverter' found 26 plugins 2021-04-05 11:30:37,278 main DEBUG PatternLayout$Builder(pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n", PatternSelector=null, Configuration, Replace=null, charset="null", alwaysWriteExceptions="null", disableAnsi="null", noConsoleNoAnsi="null", header="null", footer="null") 2021-04-05 11:30:37,279 main DEBUG PluginManager 'Converter' found 44 plugins 2021-04-05 11:30:37,280 main DEBUG Building Plugin[name=appender, class=org.apache.logging.log4j.core.appender.ConsoleAppender]. 2021-04-05 11:30:37,290 main DEBUG ConsoleAppender$Builder(target="SYSTEM_OUT", follow="null", direct="null", bufferedIo="null", bufferSize="null", immediateFlush="null", ignoreExceptions="null", PatternLayout(%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n), name="ConsoleOut", Configuration, Filter=null) 2021-04-05 11:30:37,302 main DEBUG Starting OutputStreamManager SYSTEM_OUT.false.false 2021-04-05 11:30:37,302 main DEBUG Building Plugin[name=layout, class=org.apache.logging.log4j.core.layout.PatternLayout]. 2021-04-05 11:30:37,305 main DEBUG PatternLayout$Builder(pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n", PatternSelector=null, Configuration, Replace=null, charset="null", alwaysWriteExceptions="null", disableAnsi="null", noConsoleNoAnsi="null", header="null", footer="null") 2021-04-05 11:30:37,306 main DEBUG Building Plugin[name=appender, class=org.apache.logging.log4j.core.appender.ConsoleAppender]. 2021-04-05 11:30:37,307 main DEBUG ConsoleAppender$Builder(target="SYSTEM_ERR", follow="null", direct="null", bufferedIo="null", bufferSize="null", immediateFlush="null", ignoreExceptions="null", PatternLayout(%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n), name="ConsoleErr", Configuration, Filter=null) 2021-04-05 11:30:37,327 main DEBUG Starting OutputStreamManager SYSTEM_ERR.false.false 2021-04-05 11:30:37,327 main DEBUG Building Plugin[name=appenders, class=org.apache.logging.log4j.core.config.AppendersPlugin]. 2021-04-05 11:30:37,332 main DEBUG createAppenders(={ConsoleOut, ConsoleErr}) 2021-04-05 11:30:37,332 main DEBUG Building Plugin[name=AppenderRef, class=org.apache.logging.log4j.core.config.AppenderRef]. 2021-04-05 11:30:37,339 main DEBUG createAppenderRef(ref="ConsoleErr", level="null", Filter=null) 2021-04-05 11:30:37,341 main DEBUG Building Plugin[name=logger, class=org.apache.logging.log4j.core.config.LoggerConfig]. 2021-04-05 11:30:37,345 main DEBUG createLogger(additivity="false", level="WARN", name="br.gov.lexml.parser.pl", includeLocation="null", ={ConsoleErr}, ={}, Configuration, Filter=null) 2021-04-05 11:30:37,348 main DEBUG Building Plugin[name=logger, class=org.apache.logging.log4j.core.config.LoggerConfig]. 2021-04-05 11:30:37,351 main DEBUG createLogger(additivity="true", level="OFF", name="br.gov.lexml.schema.validator.Validador$MyLSResourceResolver", includeLocation="null", ={}, ={}, Configuration, Filter=null) 2021-04-05 11:30:37,351 main DEBUG Building Plugin[name=filter, class=org.apache.logging.log4j.core.filter.ThresholdFilter]. 2021-04-05 11:30:37,355 main DEBUG createFilter(level="WARN", onMatch="ACCEPT", onMismatch="DENY") 2021-04-05 11:30:37,356 main DEBUG Building Plugin[name=AppenderRef, class=org.apache.logging.log4j.core.config.AppenderRef]. 2021-04-05 11:30:37,358 main DEBUG createAppenderRef(ref="ConsoleErr", level="null", ThresholdFilter(WARN)) 2021-04-05 11:30:37,358 main DEBUG Building Plugin[name=root, class=org.apache.logging.log4j.core.config.LoggerConfig$RootLogger]. 2021-04-05 11:30:37,364 main DEBUG createLogger(additivity="null", level="WARN", includeLocation="null", ={ConsoleErr}, ={}, Configuration, Filter=null) 2021-04-05 11:30:37,365 main DEBUG Building Plugin[name=loggers, class=org.apache.logging.log4j.core.config.LoggersPlugin]. 2021-04-05 11:30:37,368 main DEBUG createLoggers(={br.gov.lexml.parser.pl, br.gov.lexml.schema.validator.Validador$MyLSResourceResolver, root}) 2021-04-05 11:30:37,373 main DEBUG Configuration XmlConfiguration[location=stream (870 bytes, unknown location)] initialized 2021-04-05 11:30:37,374 main DEBUG Starting configuration XmlConfiguration[location=stream (870 bytes, unknown location)] 2021-04-05 11:30:37,374 main DEBUG Started configuration XmlConfiguration[location=stream (870 bytes, unknown location)] OK. 2021-04-05 11:30:37,379 main TRACE Stopping org.apache.logging.log4j.core.config.DefaultConfiguration@7daf6ecc... 2021-04-05 11:30:37,379 main TRACE DefaultConfiguration notified 1 ReliabilityStrategies that config will be stopped. 2021-04-05 11:30:37,380 main TRACE DefaultConfiguration stopping root LoggerConfig. 2021-04-05 11:30:37,380 main TRACE DefaultConfiguration notifying ReliabilityStrategies that appenders will be stopped. 2021-04-05 11:30:37,380 main TRACE DefaultConfiguration stopping remaining Appenders. 2021-04-05 11:30:37,381 main DEBUG Shutting down OutputStreamManager SYSTEM_OUT.false.false-2 2021-04-05 11:30:37,381 main DEBUG Shut down OutputStreamManager SYSTEM_OUT.false.false-2, all resources released: true 2021-04-05 11:30:37,382 main DEBUG Appender DefaultConsole-2 stopped with status true 2021-04-05 11:30:37,382 main TRACE DefaultConfiguration stopped 1 remaining Appenders. 2021-04-05 11:30:37,382 main TRACE DefaultConfiguration cleaning Appenders from 1 LoggerConfigs. 2021-04-05 11:30:37,383 main DEBUG Stopped org.apache.logging.log4j.core.config.DefaultConfiguration@7daf6ecc OK 2021-04-05 11:30:37,508 main TRACE Reregistering MBeans after reconfigure. Selector=org.apache.logging.log4j.core.selector.ClassLoaderContextSelector@11dc3715 2021-04-05 11:30:37,509 main TRACE Reregistering context (1/1): '610455d6' org.apache.logging.log4j.core.LoggerContext@2e5d6d97 2021-04-05 11:30:37,510 main TRACE Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=610455d6' 2021-04-05 11:30:37,510 main TRACE Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=610455d6,component=StatusLogger' 2021-04-05 11:30:37,511 main TRACE Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=610455d6,component=ContextSelector' 2021-04-05 11:30:37,512 main TRACE Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=610455d6,component=Loggers,name=*' 2021-04-05 11:30:37,513 main TRACE Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=610455d6,component=Appenders,name=*' 2021-04-05 11:30:37,514 main TRACE Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=610455d6,component=AsyncAppenders,name=*' 2021-04-05 11:30:37,514 main TRACE Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=610455d6,component=AsyncLoggerRingBuffer' 2021-04-05 11:30:37,515 main TRACE Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=610455d6,component=Loggers,name=*,subtype=RingBuffer' 2021-04-05 11:30:37,517 main DEBUG Registering MBean org.apache.logging.log4j2:type=610455d6 2021-04-05 11:30:37,522 main DEBUG Registering MBean org.apache.logging.log4j2:type=610455d6,component=StatusLogger 2021-04-05 11:30:37,524 main DEBUG Registering MBean org.apache.logging.log4j2:type=610455d6,component=ContextSelector 2021-04-05 11:30:37,527 main DEBUG Registering MBean org.apache.logging.log4j2:type=610455d6,component=Loggers,name= 2021-04-05 11:30:37,528 main DEBUG Registering MBean org.apache.logging.log4j2:type=610455d6,component=Loggers,name=br.gov.lexml.parser.pl 2021-04-05 11:30:37,528 main DEBUG Registering MBean org.apache.logging.log4j2:type=610455d6,component=Loggers,name=br.gov.lexml.schema.validator.Validador$MyLSResourceResolver 2021-04-05 11:30:37,530 main DEBUG Registering MBean org.apache.logging.log4j2:type=610455d6,component=Appenders,name=ConsoleOut 2021-04-05 11:30:37,531 main DEBUG Registering MBean org.apache.logging.log4j2:type=610455d6,component=Appenders,name=ConsoleErr 2021-04-05 11:30:37,533 main TRACE Using default SystemClock for timestamps. 2021-04-05 11:30:37,534 main DEBUG org.apache.logging.log4j.core.util.SystemClock does not support precise timestamps. 2021-04-05 11:30:37,534 main TRACE Using DummyNanoClock for nanosecond timestamps. 2021-04-05 11:30:37,535 main DEBUG LoggerContext[name=610455d6, org.apache.logging.log4j.core.LoggerContext@2e5d6d97] started OK with configuration XmlConfiguration[location=stream (870 bytes, unknown location)]. Configurator.initialize finished Logging set up 2021-04-05 11:30:39,289 pool-1-thread-1 DEBUG Stopping LoggerContext[name=610455d6, org.apache.logging.log4j.core.LoggerContext@2e5d6d97] 2021-04-05 11:30:39,289 pool-1-thread-1 DEBUG Stopping LoggerContext[name=610455d6, org.apache.logging.log4j.core.LoggerContext@2e5d6d97]... 2021-04-05 11:30:39,290 pool-1-thread-1 TRACE Unregistering 1 MBeans: [org.apache.logging.log4j2:type=610455d6] 2021-04-05 11:30:39,291 pool-1-thread-1 TRACE Unregistering 1 MBeans: [org.apache.logging.log4j2:type=610455d6,component=StatusLogger] 2021-04-05 11:30:39,292 pool-1-thread-1 TRACE Unregistering 1 MBeans: [org.apache.logging.log4j2:type=610455d6,component=ContextSelector] 2021-04-05 11:30:39,292 pool-1-thread-1 TRACE Unregistering 3 MBeans: [org.apache.logging.log4j2:type=610455d6,component=Loggers,name=br.gov.lexml.parser.pl, org.apache.logging.log4j2:type=610455d6,component=Loggers,name=br.gov.lexml.schema.validator.Validador$MyLSResourceResolver, org.apache.logging.log4j2:type=610455d6,component=Loggers,name=] 2021-04-05 11:30:39,293 pool-1-thread-1 TRACE Unregistering 2 MBeans: [org.apache.logging.log4j2:type=610455d6,component=Appenders,name=ConsoleErr, org.apache.logging.log4j2:type=610455d6,component=Appenders,name=ConsoleOut] 2021-04-05 11:30:39,294 pool-1-thread-1 TRACE Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=610455d6,component=AsyncAppenders,name=*' 2021-04-05 11:30:39,295 pool-1-thread-1 TRACE Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=610455d6,component=AsyncLoggerRingBuffer' 2021-04-05 11:30:39,295 pool-1-thread-1 TRACE Unregistering but no MBeans found matching 'org.apache.logging.log4j2:type=610455d6,component=Loggers,name=*,subtype=RingBuffer' 2021-04-05 11:30:39,296 pool-1-thread-1 TRACE Stopping XmlConfiguration[location=stream (870 bytes, unknown location)]... 2021-04-05 11:30:39,296 pool-1-thread-1 TRACE XmlConfiguration notified 4 ReliabilityStrategies that config will be stopped. 2021-04-05 11:30:39,297 pool-1-thread-1 TRACE XmlConfiguration stopping 3 LoggerConfigs. 2021-04-05 11:30:39,297 pool-1-thread-1 TRACE XmlConfiguration stopping root LoggerConfig. 2021-04-05 11:30:39,297 pool-1-thread-1 TRACE XmlConfiguration notifying ReliabilityStrategies that appenders will be stopped. 2021-04-05 11:30:39,298 pool-1-thread-1 TRACE XmlConfiguration stopping remaining Appenders. 2021-04-05 11:30:39,298 pool-1-thread-1 DEBUG Shutting down OutputStreamManager SYSTEM_ERR.false.false 2021-04-05 11:30:39,298 pool-1-thread-1 DEBUG Shut down OutputStreamManager SYSTEM_ERR.false.false, all resources released: true 2021-04-05 11:30:39,299 pool-1-thread-1 DEBUG Appender ConsoleErr stopped with status true 2021-04-05 11:30:39,299 pool-1-thread-1 DEBUG Shutting down OutputStreamManager SYSTEM_OUT.false.false 2021-04-05 11:30:39,299 pool-1-thread-1 DEBUG Shut down OutputStreamManager SYSTEM_OUT.false.false, all resources released: true 2021-04-05 11:30:39,300 pool-1-thread-1 DEBUG Appender ConsoleOut stopped with status true 2021-04-05 11:30:39,300 pool-1-thread-1 TRACE XmlConfiguration stopped 2 remaining Appenders. 2021-04-05 11:30:39,300 pool-1-thread-1 TRACE XmlConfiguration cleaning Appenders from 4 LoggerConfigs. 2021-04-05 11:30:39,301 pool-1-thread-1 DEBUG Stopped XmlConfiguration[location=stream (870 bytes, unknown location)] OK 2021-04-05 11:30:39,301 pool-1-thread-1 DEBUG Stopped LoggerContext[name=610455d6, org.apache.logging.log4j.core.LoggerContext@2e5d6d97] with status true

Caso de bloco de alteração com ponto final depois das aspas

Tratar o caso seguinte, em que o ponto final vai depois das aspas em blocos de alteração:

"Art. 15 Os laudos de solicitação serão inseridos no SISCNRAC somente quando houver inexistência de serviço de saúde habilitado, pelo Ministério da Saúde, no âmbito do Estado". (NR)

uso do parser

olá,

desculpem se as issues não são o local apropriado para essa dúvida, mas estou com problemas para usar o parser. eu clonei o repositório, construí o projeto com mvn package, e estava tentando parsear um .docx usando o comando:

java -cp target/lexml-parser-projeto-lei-1.10.6-SNAPSHOT.jar br.gov.lexml.parser.pl.ParserFrontEnd meu-projeto-de-lei.docx

mas estou obtendo um erro:

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: scala/Product

eu não sei java nem scala, como já devem ter notado :) qual o comando apropriado para obter o .xml do .docx?

br.gov.lexml:lexml-xml-schemas:jar:3.1.17 was not found

Boa noite pessoal.

Estou tentando rodar o projeto (mvn compile -nsu) e falta dependências para a construção.

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  5.029 s
[INFO] Finished at: 2022-01-27T20:08:21-03:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project lexml-parser-projeto-lei: Could not resolve dependencies for project 
br.gov.lexml.parser.pl:lexml-parser-projeto-lei:jar:1.13.7-SNAPSHOT: br.gov.lexml:lexml-xml-schemas:jar:3.1.17 was not found in 
https://repo.maven.apache.org/maven2 during a previous attempt. This failure was cached in the local repository and resolution is 
not reattempted until the update interval of central has elapsed or updates are forced -> [Help 1]

Meu ambiente é Windows com WSL/Ubuntu

$ cat /etc/issue
Ubuntu 20.04.2 LTS \n \l
$ javac -version
javac 11.0.13

$ mvn -version
Apache Maven 3.8.4 (9b656c72d54e5bacbed989b64718c159fe39b537)
Maven home: /mnt/e/apache-maven-3.8.4
Java version: 11.0.13, vendor: Ubuntu, runtime: /usr/lib/jvm/java-11-openjdk-amd64
Default locale: en, platform encoding: UTF-8
OS name: "linux", version: "5.4.72-microsoft-standard-wsl2", arch: "amd64", family: "unix"

Alguém pode ajudar ?

Dúvida com os parâmetros corretos para executar

Olá, estou há um tempo tentando executar o comando parse em uma Emenda na Comissão, disponível em: https://www.camara.leg.br/proposicoesWeb/fichadetramitacao?idProposicao=2199624

Pois bem, sei por uma issue já fechada que o arquivo precisa ser .docx, fiz essa adaptação manualmente, porém, tendo em vista que o site da Câmara retorna as EMCs sempre em formato .pdf e essa adaptação manual é deveras desgastante e demorada, há indicação de uma ferramenta que faça essa tarefa com um retorno minimamente bem formatado para o parser?

Outrossim, como posso saber com clareza quais são os parâmetros estritamente necessários para o comando parse? Indo além, como posso definir a melhor opção de cada parâmetro para essa EMC?

Tomando por exemplos, o parâmetro --mime-type deve receber officedocument.wordprocessingml.document, correto? Mas qual seria a melhor opção para --tipo-norma, uma vez que a Wiki indica apenas a opção 'lei'?

Agradeço de prontidão pela ajuda.
Cordialmente;

O rótulo do elemento Item está gerando com travessão após o número arábico, quando deveria ser ponto. (Gertiq #100018)

Reportado originalmente por @joaoli13.

Por exemplo, mudar de

<Item id="art383_cpt_inc1_ali4_ite1">
<Rotulo>1–</Rotulo>
<p>
informações sobre o Estado ou organização internacional para o qual o candidato foi indicado;
</p>

para...

<Item id="art383_cpt_inc1_ali4_ite1">
<Rotulo>1.</Rotulo>
<p>
informações sobre o Estado ou organização internacional para o qual o candidato foi indicado;
</p>

sbt compile nao compila

Usando UBUNTU 18 LTS, instalação Java padrão (sudo apt install openjdk-8-jdk) e instalação Scala conforme scala-lang.org, ambas fresquinhas...

Ao compilar com sbt compile na raiz do projeto surgiram as seguintes mensagens e erros:

[info] Updated file /home/sandbox/lexml-parser-projeto-lei/project/build.properties: set sbt.version to 1.2.8
[info] Loading project definition from /home/sandbox/lexml-parser-projeto-lei/project
[info] Updating ProjectRef(uri("file:/home/sandbox/lexml-parser-projeto-lei/project/"), "lexml-parser-projeto-lei-build")...
[info] downloading https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-core/2.11.1/log4j-core-2.11.1-tests.jar ...
[info] 	[SUCCESSFUL ] org.apache.logging.log4j#log4j-core;2.11.1!log4j-core.jar(test-jar) (4327ms)
[info] Done updating.
[info] Set current project to lexml-parser-projeto-lei (in build file:/home/sandbox/lexml-parser-projeto-lei/)
[info] Executing in batch mode. For better performance use sbt's shell
[info] Updating ...
[info] Done updating.
[info] Compiling 24 Scala sources to /home/sandbox/lexml-parser-projeto-lei/target/scala-2.12/classes ...
[info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.7. Compiling...
[info]   Compilation completed in 12.001s.
[error] /home/sandbox/lexml-parser-projeto-lei/src/main/scala/br/gov/lexml/parser/pl/ProjetoLei.scala:50:5: To compile XML syntax, the scala.xml package must be on the classpath.
[error] Please see https://github.com/scala/scala-xml for details.
[error]     <projetolei>
[error]     ^
[error] /home/sandbox/lexml-parser-projeto-lei/src/main/scala/br/gov/lexml/parser/pl/block/Block.scala:68:33: To compile XML syntax, the scala.xml package must be on the classpath.
[error] Please see https://github.com/scala/scala-xml for details.
[error]   lazy val toNodeSeq: NodeSeq = <Block/>
[error]                                 ^
[error] /home/sandbox/lexml-parser-projeto-lei/src/main/scala/br/gov/lexml/parser/pl/docx/DOCXReader.scala:26:13: To compile XML syntax, the scala.xml package must be on the classpath.
[error] Please see https://github.com/scala/scala-xml for details.
[error]         Seq(<span style={styleStr}>{nodes}</span>)
[error]             ^
[error] /home/sandbox/lexml-parser-projeto-lei/src/main/scala/br/gov/lexml/parser/pl/metadado/Metadado.scala:152:3: To compile XML syntax, the scala.xml package must be on the classpath.
[error] Please see https://github.com/scala/scala-xml for details.
[error] 		<Proposicao>
[error] 		^
[error] /home/sandbox/lexml-parser-projeto-lei/src/main/scala/br/gov/lexml/parser/pl/output/LexmlRenderer.scala:186:11: To compile XML syntax, the scala.xml package must be on the classpath.
[error] Please see https://github.com/scala/scala-xml for details.
[error]           <Dispositivo id={ d.id } textoOmitido={
[error]           ^
[error] /home/sandbox/lexml-parser-projeto-lei/src/main/scala/br/gov/lexml/parser/pl/output/html/HtmlRenderer.scala:68:37: To compile XML syntax, the scala.xml package must be on the classpath.
[error] Please see https://github.com/scala/scala-xml for details.
[error] 		case RotuloArtigo(1,None,true) => <span class="rotuloDispositivo">Artigo </span> <span class="numeroDispositivo">único.</span>
[error] 		                                  ^
[error] /home/sandbox/lexml-parser-projeto-lei/src/main/scala/br/gov/lexml/parser/pl/rotulo/RotuloDispositivo.scala:8:33: To compile XML syntax, the scala.xml package must be on the classpath.
[error] Please see https://github.com/scala/scala-xml for details.
[error]   lazy val toNodeSeq: NodeSeq = <Rotulo nivel={ nivel.toString }/>
[error]                                 ^
[error] /home/sandbox/lexml-parser-projeto-lei/src/main/scala/br/gov/lexml/parser/pl/xhtml/XHTML.scala:282:7: To compile XML syntax, the scala.xml package must be on the classpath.
[error] Please see https://github.com/scala/scala-xml for details.
[error]       <html><body><div>{ pars.map(p ⇒ <p>{ p }</p>) }</div></body></html>
[error]       ^
[error] 8 errors found
[error] (Compile / compileIncremental) Compilation failed
[error] Total time: 16 s, completed 09/05/2019 14:00:10

Problema no Validation com Títulos e Capítulos

Testando o Validation, ao executar o parser da articulação abaixo, não são identificadas falhas legislativas. No entanto, falta o Art. 2:

TÍTULO I
DAS DISPOSIÇÕES GERAIS
Art. 1º Primeiro artigolo.
Art. 3º Segundo artigo.
TÍTULO II
DO CERTIFICADO DE ENTIDADE BENEFICENTE DE ASSISTÊNCIA SOCIAL NA ÁREA DE SAÚDE (CEBAS)
CAPÍTULO I
DAS ENTIDADES BENEFICENTES DE ASSISTÊNCIA SOCIAL NA ÁREA DE SAÚDE
Seção I
Dos Requisitos para Obtenção da Concessão ou Renovação do CEBAS
Art. 4º O Certificado de Entidade Beneficente de Assistência Social na Área de Saúde (CEBAS) será concedido às pessoas jurídicas de direito privado, sem fins lucrativos, reconhecidas como entidades beneficentes de assistência social com a finalidade de prestação de serviços na área de saúde e que atendam ao disposto na Lei nº 12.101, de 27 de novembro de 2009, na Lei nº 12.868, de 15 de outubro de 2013, no Decreto nº 7.300, de 14 setembro de 2010, no Decreto nº 8.242, de 23 de maio de 2014, e nesta Portaria.
Parágrafo único. As pessoas jurídicas de que trata o "caput" poderão comprovar sua condição de beneficente para fins de certificação das seguintes formas:
I - pela prestação anual de serviços ao SUS no percentual mínimo de 60% (sessenta por cento), em conformidade com o art. 4º e 6º da Lei nº 12.101, de 2009;
II - pela prestação anual de serviços prestados ao SUS em percentual menor que 60% (sessenta por cento) e por aplicação de percentual da receita efetivamente recebida da prestação de serviços de saúde em gratuidade, em conformidade com o art. 8º da Lei nº 12.101, de 2009;
III - pela aplicação do percentual de 20% (vinte por cento) da receita efetivamente recebida da prestação de serviços de saúde em gratuidade, quando não houver interesse de contratação pelo gestor do SUS, em conformidade com o art. 8º, inciso I da Lei nº 12.101, de 2009;
IV - pela realização de projetos de apoio ao desenvolvimento institucional do SUS, em conformidade com o art. 11 da Lei 12.101, de 2009;
V - algo
VI - pela prestação de serviços ao SUS de atendimento e acolhimento a pessoas com transtornos decorrentes do uso, abuso ou dependência de substância psicoativa, em conformidade com o art. 7- A da Lei nº 12.101, de 2009;
VII - pela atuação exclusiva na promoção da saúde, sem exigência de contraprestação do usuário pelas ações e serviços de saúde realizados, em conformidade com o art. 8-A da Lei nº 12.101, de 2009; e
VIII - pela execução de ações exclusivamente de promoção da saúde voltadas para pessoas com transtornos decorrentes do uso, abuso ou dependência de drogas, desde que comprovem a aplicação de, no mínimo, 20% (vinte por cento) de sua receita bruta em ações de gratuidade, em conformidade com o art. 8-B da Lei nº 12.101, de 2009.

Caso se mantenha somente o Título I, o sistema funciona como esperado:

Articulacao Validation:
msg: None; posição: título i do art. 1º título i do art. 3º; Categoria: 1 - Erro de técnica legislativa; Tipo : 3 - Dispositivos com descontinuidade.
TÍTULO I
DAS DISPOSIÇÕES GERAIS
Art. 1º Primeiro artigolo.
Art. 3º Segundo artigo.

Caso se retire o título inicial, como abaixo obtém-se isto:

Articulacao Validation:
msg: None; posição: título ii; Categoria: 1 - Erro de técnica legislativa; Tipo : 4 - Dispositivo inicial com numeração inválida
msg: None; posição: art. 1º art. 3º; Categoria: 1 - Erro de técnica legislativa; Tipo : 3 - Dispositivos com descontinuidade.
msg: None; posição: título ii do capítulo i da seção i do art. 4º do parágrafo único. do iv – título ii do capítulo i da seção i do art. 4º do parágrafo único. do vi –; Categoria: 1 - Erro de técnica legislativa; Tipo : 3 - Dispositivos com descontinuidade.
Art. 1º Primeiro artigolo.
Art. 3º Segundo artigo.
TÍTULO II
DO CERTIFICADO DE ENTIDADE BENEFICENTE DE ASSISTÊNCIA SOCIAL NA ÁREA DE SAÚDE (CEBAS)
CAPÍTULO I
DAS ENTIDADES BENEFICENTES DE ASSISTÊNCIA SOCIAL NA ÁREA DE SAÚDE
Seção I
Dos Requisitos para Obtenção da Concessão ou Renovação do CEBAS
Art. 4º O Certificado de Entidade Beneficente de Assistência Social na Área de Saúde (CEBAS) será concedido às pessoas jurídicas de direito privado, sem fins lucrativos, reconhecidas como entidades beneficentes de assistência social com a finalidade de prestação de serviços na área de saúde e que atendam ao disposto na Lei nº 12.101, de 27 de novembro de 2009, na Lei nº 12.868, de 15 de outubro de 2013, no Decreto nº 7.300, de 14 setembro de 2010, no Decreto nº 8.242, de 23 de maio de 2014, e nesta Portaria.
Parágrafo único. As pessoas jurídicas de que trata o "caput" poderão comprovar sua condição de beneficente para fins de certificação das seguintes formas:
I - pela prestação anual de serviços ao SUS no percentual mínimo de 60% (sessenta por cento), em conformidade com o art. 4º e 6º da Lei nº 12.101, de 2009;
II - pela prestação anual de serviços prestados ao SUS em percentual menor que 60% (sessenta por cento) e por aplicação de percentual da receita efetivamente recebida da prestação de serviços de saúde em gratuidade, em conformidade com o art. 8º da Lei nº 12.101, de 2009;
III - pela aplicação do percentual de 20% (vinte por cento) da receita efetivamente recebida da prestação de serviços de saúde em gratuidade, quando não houver interesse de contratação pelo gestor do SUS, em conformidade com o art. 8º, inciso I da Lei nº 12.101, de 2009;
IV - pela realização de projetos de apoio ao desenvolvimento institucional do SUS, em conformidade com o art. 11 da Lei 12.101, de 2009;

VI - pela prestação de serviços ao SUS de atendimento e acolhimento a pessoas com transtornos decorrentes do uso, abuso ou dependência de substância psicoativa, em conformidade com o art. 7- A da Lei nº 12.101, de 2009;
VII - pela atuação exclusiva na promoção da saúde, sem exigência de contraprestação do usuário pelas ações e serviços de saúde realizados, em conformidade com o art. 8-A da Lei nº 12.101, de 2009; e
VIII - pela execução de ações exclusivamente de promoção da saúde voltadas para pessoas com transtornos decorrentes do uso, abuso ou dependência de drogas, desde que comprovem a aplicação de, no mínimo, 20% (vinte por cento) de sua receita bruta em ações de gratuidade, em conformidade com o art. 8-B da Lei nº 12.101, de 2009.

Código utilizado:

package ctestscala.lexml

import java.io.InputStream

import scala.xml.Text

import br.gov.lexml.parser.pl.ProjetoLeiParser
import br.gov.lexml.parser.pl.block.Block
import br.gov.lexml.parser.pl.block.Paragraph
import br.gov.lexml.parser.pl.errors.ParseProblem
import br.gov.lexml.parser.pl.metadado.Metadado
import br.gov.lexml.parser.pl.output.LexmlRenderer
import br.gov.lexml.parser.pl.validation.Validation
import br.gov.lexml.parser.pl.profile.Lei

object App extends App {

  val inTXT = Thread.currentThread().getContextClassLoader().getResourceAsStream("PRT834-2016-Validation.txt")
  val txt = scala.io.Source.fromInputStream(inTXT).getLines().toList
  val txtParagraphList = txt.map(x=> Paragraph(Seq(Text(x))))

  val profile = Lei
  val metadado = Metadado(profile, hashFonte = None)
  
  val parser = new ProjetoLeiParser(profile)
  
  
  //executa o parser e obtem a articulação
  val articulacao : List[Block] = parser.parseArticulacao(txtParagraphList, false)
  
  //imprime xml da articulação
  println ( LexmlRenderer.renderArticulacao(articulacao).toString )
  
  
  println("Articulacao Validation:")
  Validation.validaEstrutura(articulacao).foreach { printParseProblem }

  def printParseProblem(x: ParseProblem) = {
    println ("msg: " + x.msg
        + "; posição: " + x.pos.mkString(" ")
        + "; Categoria: " + x.problemType.category.code + " - "+ x.problemType.category.description
        + "; Tipo : " + x.problemType.code + " - "+ x.problemType.description)
  }
  
}

Não existe a Constituição em LexML?

E quanto às emendas? Vocês farão um parser para os textos constituicionais? Eu estava pensando em usar o LexEdit para visualizar a evolução da Constituição... Isso ainda não é possível?

Desculpem-me perguntar através deste repositório. Achei melhor do que por e-mail.

Erro de artigos numéricos seguidos imediatamente pela letra O

O parser do artigo 12 abaixo retorna o texto sem a primeira pela "O", assim:

texto: s Termos de Ajuste serão submetidos previamente à Consultoria Jurídica junto ao Ministério da Saúde para emissão de parecer. Brasília, 26 de dezembro de 2011; 190o da Independência e 123o da República.  DILMA ROUSSEFF Miriam Belchior

Ao que parece, o parser precisa considerar que quando há um espaço, a letra "O" maiúscula seguida de número não é um indicador de ordinal.

LEI Nº 12.567, DE 26 DE DEZEMBRO DE 2011.
Abre ao Orçamento Fiscal da União, em favor dos Ministérios da Justiça e da Defesa, crédito especial no valor global de R$ 199.843.160,00, para os fins que especifica, e dá outras providências.
A PRESIDENTA DA REPÚBLICA Faço saber que o Congresso Nacional decreta e eu sanciono a seguinte Lei: 
Art. 12 Os Termos de Ajuste serão submetidos previamente à Consultoria Jurídica junto ao Ministério da Saúde para emissão de parecer.
Brasília, 26 de dezembro de 2011; 190o da Independência e 123o da República. 
DILMA ROUSSEFF

Miriam Belchior

Problema no Validation com Rótulo Alfanuméricos N-A

A validação está considerando Art. 1. e Art. 1-A. como duplicados.

Parece ser reflexo da #5. Testado com a versão mais recente do parser:

msg: None; posição: art. 1º; Categoria: 1 - Erro de técnica legislativa; Tipo : 5 - Rótulo repetido
msg: None; posição: art. 1º art. 1º-a.; Categoria: 1 - Erro de técnica legislativa; Tipo : 3 - Dispositivos com descontinuidade.

Art. 1. Texto 1

Art. 1-A. Texto 2

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

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.