Il software per la strutturazione automatica degli atti normativi in lingua italiana


Descrizione

Il software open-source IGSG Marker, sviluppato presso l'Istituto di Informatica Giuridica e Sistemi Giudiziari (IGSG) del Consiglio Nazionale delle Ricerche (CNR), consente l'analisi strutturale automatica di testi legislativi in lingua italiana non precedentemente annotati. L'output di IGSG Marker consiste in un documento XML composto dal testo originale arricchito con le annotazioni riguardanti la struttura del testo ed alcuni metadati. Lo schema XML utilizzato non segue un vero e proprio standard (nuovo o esistente), ma è orientato all'uso applicativo, di immediata comprensione e allo stesso tempo in grado di catturare tutta l'informazione possibile legata alla struttura presente nel testo originale, compresi alcuni elementi di formattazione, e facilmente trasformabile in altri formati selezionando solo ciò che necessario in funzione dell'applicazione.

Applicazioni

Alcuni esempi di possibili applicazioni ed utilizzi dei documenti XML prodotti con IGSG Marker:

Esempi e immagini rilevanti

 

 

 

Caratteristiche

IGSG Marker: Inoltre:

Repository, Web Demo & Download

Contatti

Esempio di utilizzo della libreria

public class Test {

  public static void main(String[] args) throws IOException {
		
    System.out.println("\n" + Marker.getInfo() + "\n");
		
    String fileName = "2020-76-DL.txt";
		
    MarkerDocument markerDocument = MarkerDocumentFactory.createMarkerDocumentFromFile(fileName, 
                                                                        InputType.PLAIN_GAZZETTA_UFFICIALE);
    //Input atto comunitario fonte Eur-Lex con encoding win:
    //MarkerDocument markerDocument = MarkerDocumentFactory.createMarkerDocumentFromFile(fileName, 
    //                                                                  InputType.PLAIN_EUR_LEX, "windows-1252");
				
    Marker.run(markerDocument);

    String xml = markerDocument.getXml();
    if(xml != null) Files.write(Paths.get(fileName + ".xml"), xml.getBytes());
			
    String html = markerDocument.getHtml();
    if(html != null) Files.write(Paths.get(fileName + ".html"), html.getBytes());
			
    for(String msg : markerDocument.getMessages()) System.out.println("\t - Info: " + msg);

    for(String error : markerDocument.getWarnings()) System.out.println("\t - Warning: " + error);
	
    for(String error : markerDocument.getErrors()) System.out.println("\t - Error: " + error);
		
    if( !markerDocument.getValidationError().equals("")) System.out.println("\t - Validation error: " 
                                                                    + markerDocument.getValidationError());

    if( !markerDocument.getNotWellFormattedError().equals("")) 
        System.out.println("\t - Not well-formatted error: " + markerDocument.getNotWellFormattedError());
  }
}