From 017f1b77ad2d6f10b11be6737048fcedbdf27857 Mon Sep 17 00:00:00 2001
From: sebastien curt <sebastien.curt@tetras-libre.fr>
Date: Tue, 12 May 2020 15:10:20 +0200
Subject: [PATCH] move unl packages to fr.tetras_libre.unltools.unl + code
 rearrangement

---
 .../rdf/vocabulary/RdfFileBuilder.java        |  5 +-
 .../vocabulary/UnlDocumentToRdfConverter.java | 50 +++++++++--------
 .../rdf/vocabulary/UtilGraphNodeUri.java      |  6 +-
 .../unl/extensions/GraphExtensions.java       | 13 ++++-
 .../extensions/GraphRelationExtensions.java   | 11 ++--
 .../SubGraphReferenceNodeExtensions.java      |  6 +-
 .../rdf/vocabulary/CatUnlSentence.java        | 11 ++--
 .../vocabulary/R1SentenceWithExpectedRdf.java |  8 +--
 .../rdf/vocabulary/RdfSchemaOfUNLTest.java    |  2 +-
 .../unltools}/unl/EqualsBuilder.java          |  6 +-
 .../tetras_libre/unltools}/unl/Graph.java     | 28 +++++-----
 .../unltools}/unl/GraphExporter.java          |  2 +-
 .../tetras_libre/unltools}/unl/GraphNode.java | 27 +++++----
 .../unltools}/unl/GraphRelation.java          |  6 +-
 .../unltools}/unl/HashCodeBuilder.java        | 10 ++--
 .../unltools}/unl/NoEntryNodeException.java   |  2 +-
 .../unltools}/unl/Restriction.java            |  4 +-
 .../unltools}/unl/SubGraphReferenceNode.java  |  7 +--
 .../unltools}/unl/UniversalWord.java          | 56 ++++++++++---------
 .../unltools}/unl/UniversalWordNode.java      |  6 +-
 .../unltools}/unl/UnlDocument.java            | 24 ++++----
 .../unltools}/unl/UnlDocumentNode.java        | 18 +++---
 .../unltools}/unl/UnlDocumentNodeType.java    |  2 +-
 .../unltools}/unl/parser/ParseException.java  |  2 +-
 .../unl/parser/SimpleCharStream.java          |  2 +-
 .../unltools}/unl/parser/Token.java           |  2 +-
 .../unltools}/unl/parser/TokenMgrError.java   |  2 +-
 .../unltools}/unl/parser/UnlParser.java       |  4 +-
 .../unltools}/unl/parser/UnlParser.jj         |  4 +-
 .../unl/parser/UnlParserConstants.java        |  2 +-
 .../unl/parser/UnlParserTokenManager.java     | 10 +---
 .../unl/print/dotFile/DotFileBuilder.java     |  6 +-
 .../unl/AllSetenceWithExpectedDotChecker.java |  4 +-
 .../CatSentenceWithExpectedDotChecker.java    |  2 +-
 .../unltools}/unl/EqualsBuilderTest.java      |  4 +-
 .../unl/R1SentenceWithExpectedDotChecker.java |  2 +-
 .../unl/R2SentenceWithExpectedDotChecker.java |  2 +-
 ...ntenceWithExpectedDotArgumentProvider.java |  4 +-
 .../unl/SentenceWithExpectedDotChecker.java   |  2 +-
 .../unl/parser/UnlParserFactory.java          |  2 +-
 .../parser/UnlParserFactoryFromString.java    |  4 +-
 .../unltools}/unl/parser/UnlParserTest.java   | 21 +++----
 .../unl/parser/WrapperUnlParser.java          | 22 ++++----
 .../unl/print/dotFile/DotFileBuilderTest.java |  6 +-
 .../src/main/java/unl2rdf/Unl2Rdf.java        | 13 ++---
 45 files changed, 218 insertions(+), 214 deletions(-)
 rename unl-parser/src/main/java/{ => fr/tetras_libre/unltools}/unl/EqualsBuilder.java (82%)
 rename unl-parser/src/main/java/{ => fr/tetras_libre/unltools}/unl/Graph.java (88%)
 rename unl-parser/src/main/java/{ => fr/tetras_libre/unltools}/unl/GraphExporter.java (79%)
 rename unl-parser/src/main/java/{ => fr/tetras_libre/unltools}/unl/GraphNode.java (64%)
 rename unl-parser/src/main/java/{ => fr/tetras_libre/unltools}/unl/GraphRelation.java (93%)
 rename unl-parser/src/main/java/{ => fr/tetras_libre/unltools}/unl/HashCodeBuilder.java (64%)
 rename unl-parser/src/main/java/{ => fr/tetras_libre/unltools}/unl/NoEntryNodeException.java (78%)
 rename unl-parser/src/main/java/{ => fr/tetras_libre/unltools}/unl/Restriction.java (95%)
 rename unl-parser/src/main/java/{ => fr/tetras_libre/unltools}/unl/SubGraphReferenceNode.java (84%)
 rename unl-parser/src/main/java/{ => fr/tetras_libre/unltools}/unl/UniversalWord.java (84%)
 rename unl-parser/src/main/java/{ => fr/tetras_libre/unltools}/unl/UniversalWordNode.java (86%)
 rename unl-parser/src/main/java/{ => fr/tetras_libre/unltools}/unl/UnlDocument.java (81%)
 rename unl-parser/src/main/java/{ => fr/tetras_libre/unltools}/unl/UnlDocumentNode.java (90%)
 rename unl-parser/src/main/java/{ => fr/tetras_libre/unltools}/unl/UnlDocumentNodeType.java (72%)
 rename unl-parser/src/main/java/{ => fr/tetras_libre/unltools}/unl/parser/ParseException.java (99%)
 rename unl-parser/src/main/java/{ => fr/tetras_libre/unltools}/unl/parser/SimpleCharStream.java (99%)
 rename unl-parser/src/main/java/{ => fr/tetras_libre/unltools}/unl/parser/Token.java (98%)
 rename unl-parser/src/main/java/{ => fr/tetras_libre/unltools}/unl/parser/TokenMgrError.java (98%)
 rename unl-parser/src/main/java/{ => fr/tetras_libre/unltools}/unl/parser/UnlParser.java (99%)
 rename unl-parser/src/main/java/{ => fr/tetras_libre/unltools}/unl/parser/UnlParser.jj (99%)
 rename unl-parser/src/main/java/{ => fr/tetras_libre/unltools}/unl/parser/UnlParserConstants.java (98%)
 rename unl-parser/src/main/java/{ => fr/tetras_libre/unltools}/unl/parser/UnlParserTokenManager.java (99%)
 rename unl-parser/src/main/java/{ => fr/tetras_libre/unltools}/unl/print/dotFile/DotFileBuilder.java (97%)
 rename unl-parser/src/test/java/{ => fr/tetras_libre/unltools}/unl/AllSetenceWithExpectedDotChecker.java (99%)
 rename unl-parser/src/test/java/{ => fr/tetras_libre/unltools}/unl/CatSentenceWithExpectedDotChecker.java (97%)
 rename unl-parser/src/test/java/{ => fr/tetras_libre/unltools}/unl/EqualsBuilderTest.java (89%)
 rename unl-parser/src/test/java/{ => fr/tetras_libre/unltools}/unl/R1SentenceWithExpectedDotChecker.java (98%)
 rename unl-parser/src/test/java/{ => fr/tetras_libre/unltools}/unl/R2SentenceWithExpectedDotChecker.java (98%)
 rename unl-parser/src/test/java/{ => fr/tetras_libre/unltools}/unl/SentenceWithExpectedDotArgumentProvider.java (90%)
 rename unl-parser/src/test/java/{ => fr/tetras_libre/unltools}/unl/SentenceWithExpectedDotChecker.java (97%)
 rename unl-parser/src/test/java/{ => fr/tetras_libre/unltools}/unl/parser/UnlParserFactory.java (60%)
 rename unl-parser/src/test/java/{ => fr/tetras_libre/unltools}/unl/parser/UnlParserFactoryFromString.java (82%)
 rename unl-parser/src/test/java/{ => fr/tetras_libre/unltools}/unl/parser/UnlParserTest.java (76%)
 rename unl-parser/src/test/java/{ => fr/tetras_libre/unltools}/unl/parser/WrapperUnlParser.java (80%)
 rename unl-parser/src/test/java/{ => fr/tetras_libre/unltools}/unl/print/dotFile/DotFileBuilderTest.java (95%)

diff --git a/rdf/src/main/java/fr/tetras_libre/unltools/rdf/vocabulary/RdfFileBuilder.java b/rdf/src/main/java/fr/tetras_libre/unltools/rdf/vocabulary/RdfFileBuilder.java
index d14a97f..856ffc6 100644
--- a/rdf/src/main/java/fr/tetras_libre/unltools/rdf/vocabulary/RdfFileBuilder.java
+++ b/rdf/src/main/java/fr/tetras_libre/unltools/rdf/vocabulary/RdfFileBuilder.java
@@ -1,11 +1,10 @@
 package fr.tetras_libre.unltools.rdf.vocabulary;
 
+import fr.tetras_libre.unltools.unl.GraphExporter;
+import fr.tetras_libre.unltools.unl.UnlDocument;
 import org.apache.jena.ontology.OntModel;
 import org.apache.jena.rdf.model.ModelFactory;
-import unl.GraphExporter;
-import unl.UnlDocument;
 
-import java.io.IOException;
 import java.io.Writer;
 import java.util.List;
 
diff --git a/rdf/src/main/java/fr/tetras_libre/unltools/rdf/vocabulary/UnlDocumentToRdfConverter.java b/rdf/src/main/java/fr/tetras_libre/unltools/rdf/vocabulary/UnlDocumentToRdfConverter.java
index 2686506..2cdabd0 100644
--- a/rdf/src/main/java/fr/tetras_libre/unltools/rdf/vocabulary/UnlDocumentToRdfConverter.java
+++ b/rdf/src/main/java/fr/tetras_libre/unltools/rdf/vocabulary/UnlDocumentToRdfConverter.java
@@ -1,5 +1,6 @@
 package fr.tetras_libre.unltools.rdf.vocabulary;
 
+import fr.tetras_libre.unltools.unl.*;
 import fr.tetras_libre.unltools.unl.extensions.GraphExtensions;
 import fr.tetras_libre.unltools.unl.extensions.SubGraphReferenceNodeExtensions;
 import org.apache.jena.ontology.Individual;
@@ -7,7 +8,6 @@ import org.apache.jena.ontology.OntModel;
 import org.apache.jena.ontology.Ontology;
 import org.apache.jena.rdf.model.ModelFactory;
 import org.apache.jena.vocabulary.SKOS;
-import unl.*;
 
 import java.util.Collection;
 import java.util.LinkedList;
@@ -28,10 +28,8 @@ public class UnlDocumentToRdfConverter {
 
     public Collection<OntModel> convertToOntModel(Collection<UnlDocument> documents) {
         List<OntModel> result = new LinkedList<>();
-        var index = 0;
         for (var document : documents) {
             result.addAll(convertUnlDocumentToOntModel(document));
-            index++;
         }
 
         return result;
@@ -64,15 +62,13 @@ public class UnlDocumentToRdfConverter {
                     var sentenceOntology = sentenceOntModel.createOntology(sentenceNameSpace + "ontology");
                     sentenceOntology.addImport(sentenceOntModel.createResource("https://unl.tetras-libre.fr/rdf/schema"));
                     docOntology.addImport(sentenceOntology);
-                    var sentenceIndividual = sentenceOntModel.createIndividual(String.format("%ssentence_%d",sentenceNameSpace, sentenceIndex), UNL.UNL_Sentence);
+                    var sentenceIndividual = sentenceOntModel.createIndividual(String.format("%ssentence_%d", sentenceNameSpace, sentenceIndex), UNL.UNL_Sentence);
 
                     sentenceOntModel.add(sentenceIndividual, UNL.has_index, docIndividual);
                     sentenceIndividual.addLabel("TBD : phrase en langue naturelle", "inv");
 
                     //documentNode.toString() : Le graphe UNL version chaîne de caractère
                     sentenceOntModel.add(sentenceIndividual, SKOS.altLabel, documentNode.toString());
-//                    sentenceOntModel.add(sentenceIndividual, UNL.is_substructure_of, docIndividual);
-//                    docModel.add(docIndividual, UNL.is_superstructure_of, sentenceIndividual);
                     this.setSuperstructureWithSubstructure(docModel, docIndividual, sentenceOntModel, sentenceIndividual);
                     for (var sentenceNode :
                             sentencegraph.getNodes()) {
@@ -81,15 +77,13 @@ public class UnlDocumentToRdfConverter {
 
                             // Création de l'universalWord dans le dictionnaire
                             var universalWordIndividual = sentenceOntModel.createIndividual(sentenceNameSpace + slugify(uw.getUniversalWord().toString()), UNL.UW_Lexeme);
-                            universalWordIndividual.addLabel(uw.getUniversalWord().toString(), "unl");
+                            universalWordIndividual.addLabel(uw.getUniversalWord().toString(), "fr/tetras_libre/unltools/unl");
 
                             // Création de l'occurence du l'universalWord
                             var universalWordOccurrence = sentenceOntModel.createIndividual(UtilGraphNodeUri.constructGraphNodeUri(sentenceNameSpace, uw),
                                     UNL.UW_Occurrence);
-                            universalWordOccurrence.addLabel(uw.getUniversalWord().toString(), "unl");
+                            universalWordOccurrence.addLabel(uw.getUniversalWord().toString(), "fr/tetras_libre/unltools/unl");
                             this.setSuperstructureWithSubstructure(sentenceOntModel, sentenceIndividual, sentenceOntModel, universalWordOccurrence);
-//                            sentenceOntModel.add(universalWordOccurrence, UNL.is_substructure_of, sentenceIndividual);
-//                            sentenceOntModel.add(sentenceIndividual, UNL.is_superstructure_of, universalWordOccurrence);
                             sentenceOntModel.add(universalWordOccurrence, UNL.is_occurrence_of, universalWordIndividual);
                             sentenceOntModel.add(universalWordIndividual, UNL.has_occurrence, universalWordOccurrence);
 
@@ -104,15 +98,25 @@ public class UnlDocumentToRdfConverter {
                                             UtilGraphNodeUri.constructGraphNodeUri(sentenceNameSpace, graphRefNode),
                                             UNL.UNL_Scope);
 
-                                    scopeIndividual.addLabel(scopeName, "unl");
-//                                    sentenceOntModel.add(scopeIndividual, UNL.is_substructure_of, sentenceIndividual);
-//                                    sentenceOntModel.add(sentenceIndividual, UNL.is_superstructure_of, scopeIndividual);
+                                    scopeIndividual.addLabel(scopeName, "fr/tetras_libre/unltools/unl");
                                     this.setSuperstructureWithSubstructure(sentenceOntModel, sentenceIndividual, sentenceOntModel, scopeIndividual);
 
+                                    /*
+                                    GraphExtensions.getRelationWithinScopeStream(scopeName, sentencegraph)
+                                            .forEach(relationWithinScope -> {
+                                                try {
+                                                    var relationWithinScopeUri = RelationsUri.constructRelationUri(scopeName, relationWithinScope);
+                                                    var relationWithinScopeObjectProperty = this.relationLabelToUnlPropertyConverter.getObjectProperty(relationWithinScope.getRelationLabel(), docModel);
+                                                    sentenceOntModel.createIndividual(relationWithinScopeUri, relationWithinScopeObjectProperty);
+                                                } catch (IllegalAccessException e) {
+                                                    e.printStackTrace();
+                                                }
+                                            });
+                                            */
                                     var relationsWithinScope = GraphExtensions.getRelationsWithinScope(scopeName, sentencegraph);
                                     for (var relationWithinScope : relationsWithinScope) {
                                         try {
-                                            var relationWithinScopeUri = RelationsUri.constructRelationUri(scopeName, relationWithinScope, sentencegraph);
+                                            var relationWithinScopeUri = RelationsUri.constructRelationUri(scopeName, relationWithinScope);
                                             var relationWithinScopeObjectProperty = this.relationLabelToUnlPropertyConverter.getObjectProperty(relationWithinScope.getRelationLabel(), docModel);
                                             sentenceOntModel.createIndividual(relationWithinScopeUri, relationWithinScopeObjectProperty);
                                         } catch (IllegalAccessException e) {
@@ -124,7 +128,7 @@ public class UnlDocumentToRdfConverter {
                             }
 
                             for (var relation : sentencegraph.getRelations()) {
-                                var relationUri = RelationsUri.constructRelationUri(sentenceNameSpace, relation, sentencegraph);
+                                var relationUri = RelationsUri.constructRelationUri(sentenceNameSpace, relation);
 
                                 try {
                                     var relationLabel = relation.getRelationLabel();
@@ -163,31 +167,31 @@ public class UnlDocumentToRdfConverter {
     }
 
     private static class RelationsUri {
-        public static String constructRelationUri(String scopeName, GraphRelation graphRelation, Graph g) {
+        public static String constructRelationUri(String scopeName, GraphRelation graphRelation) {
             return String.format("%s%s_%s_%s",
                     scopeName,
-                    slugify(constructRelationUri(graphRelation.getNode1(), g)),
+                    slugify(constructRelationUri(graphRelation.getNode1())),
                     graphRelation.getRelationLabel(),
-                    slugify(constructRelationUri(graphRelation.getNode2(), g)));
+                    slugify(constructRelationUri(graphRelation.getNode2())));
         }
 
-        private static String constructRelationUri(GraphNode node, Graph g) {
+        private static String constructRelationUri(GraphNode node) {
             if (node instanceof UniversalWordNode) {
-                return constructRelationUri((UniversalWordNode) node, g);
+                return constructRelationUri((UniversalWordNode) node);
             }
 
             if (node instanceof SubGraphReferenceNode) {
-                return constructRelationUri((SubGraphReferenceNode) node, g);
+                return constructRelationUri((SubGraphReferenceNode) node);
             }
 
             throw new IllegalArgumentException(String.format("Not implemented for type '%s'", node.getClass()));
         }
 
-        private static String constructRelationUri(UniversalWordNode node, Graph g) {
+        private static String constructRelationUri(UniversalWordNode node) {
             return node.getNodeId();
         }
 
-        private static String constructRelationUri(SubGraphReferenceNode node, Graph g) {
+        private static String constructRelationUri(SubGraphReferenceNode node) {
             return "scope_" + SubGraphReferenceNodeExtensions.getScopeNameFromSubGraphReferenceNode(node);
         }
     }
diff --git a/rdf/src/main/java/fr/tetras_libre/unltools/rdf/vocabulary/UtilGraphNodeUri.java b/rdf/src/main/java/fr/tetras_libre/unltools/rdf/vocabulary/UtilGraphNodeUri.java
index 2054a43..9737041 100644
--- a/rdf/src/main/java/fr/tetras_libre/unltools/rdf/vocabulary/UtilGraphNodeUri.java
+++ b/rdf/src/main/java/fr/tetras_libre/unltools/rdf/vocabulary/UtilGraphNodeUri.java
@@ -1,9 +1,9 @@
 package fr.tetras_libre.unltools.rdf.vocabulary;
 
+import fr.tetras_libre.unltools.unl.GraphNode;
+import fr.tetras_libre.unltools.unl.SubGraphReferenceNode;
+import fr.tetras_libre.unltools.unl.UniversalWordNode;
 import fr.tetras_libre.unltools.unl.extensions.SubGraphReferenceNodeExtensions;
-import unl.GraphNode;
-import unl.SubGraphReferenceNode;
-import unl.UniversalWordNode;
 
 import static fr.tetras_libre.unltools.rdf.vocabulary.Slugify.slugify;
 
diff --git a/rdf/src/main/java/fr/tetras_libre/unltools/unl/extensions/GraphExtensions.java b/rdf/src/main/java/fr/tetras_libre/unltools/unl/extensions/GraphExtensions.java
index edbf4b7..817f709 100644
--- a/rdf/src/main/java/fr/tetras_libre/unltools/unl/extensions/GraphExtensions.java
+++ b/rdf/src/main/java/fr/tetras_libre/unltools/unl/extensions/GraphExtensions.java
@@ -1,10 +1,11 @@
 package fr.tetras_libre.unltools.unl.extensions;
 
-import unl.Graph;
-import unl.GraphRelation;
+import fr.tetras_libre.unltools.unl.Graph;
+import fr.tetras_libre.unltools.unl.GraphRelation;
 
 import java.util.Collection;
 import java.util.LinkedList;
+import java.util.stream.Stream;
 
 public class GraphExtensions {
     public static Collection<GraphRelation> getRelationsWithinScope(String scopeName, Graph g) {
@@ -16,4 +17,12 @@ public class GraphExtensions {
         }
         return relations;
     }
+
+    public static Stream<GraphRelation> getRelationWithinScopeStream(String scopeName, Graph g) {
+        return g.getRelations()
+                .stream()
+                .filter(relation -> null != relation.getSubGraphReferenceLabel()
+                        //&& !relation.getSubGraphReferenceLabel().isBlank()
+                        && relation.getSubGraphReferenceLabel().equals(scopeName));
+    }
 }
diff --git a/rdf/src/main/java/fr/tetras_libre/unltools/unl/extensions/GraphRelationExtensions.java b/rdf/src/main/java/fr/tetras_libre/unltools/unl/extensions/GraphRelationExtensions.java
index 7ce9146..429f4c4 100644
--- a/rdf/src/main/java/fr/tetras_libre/unltools/unl/extensions/GraphRelationExtensions.java
+++ b/rdf/src/main/java/fr/tetras_libre/unltools/unl/extensions/GraphRelationExtensions.java
@@ -1,6 +1,6 @@
 package fr.tetras_libre.unltools.unl.extensions;
 
-import unl.*;
+import fr.tetras_libre.unltools.unl.*;
 
 public class GraphRelationExtensions {
     public static String getRealNode1Id(GraphRelation graphRelation, Graph g) throws NoEntryNodeException {
@@ -13,22 +13,21 @@ public class GraphRelationExtensions {
 
     private static String getRealNodeId(GraphNode graphNode, Graph g) throws NoEntryNodeException {
         if (graphNode instanceof UniversalWordNode) {
-            return getRealNodeId((UniversalWordNode)graphNode, g);
+            return getRealNodeId((UniversalWordNode) graphNode, g);
         }
 
-        if(graphNode instanceof  SubGraphReferenceNode) {
-            return getRealNodeId((SubGraphReferenceNode)graphNode, g);
+        if (graphNode instanceof SubGraphReferenceNode) {
+            return getRealNodeId((SubGraphReferenceNode) graphNode, g);
         }
 
         throw new IllegalArgumentException(String.format("Not implemented for '%s'", graphNode.getClass()));
     }
 
-    private static String getRealNodeId(UniversalWordNode universalWordNode, Graph g){
+    private static String getRealNodeId(UniversalWordNode universalWordNode, Graph g) {
         return universalWordNode.getNodeId();
     }
 
     private static String getRealNodeId(SubGraphReferenceNode graphNodeReference, Graph g) throws NoEntryNodeException {
         return SubGraphReferenceNodeExtensions.getRealNodeId(graphNodeReference, g);
     }
-
 }
diff --git a/rdf/src/main/java/fr/tetras_libre/unltools/unl/extensions/SubGraphReferenceNodeExtensions.java b/rdf/src/main/java/fr/tetras_libre/unltools/unl/extensions/SubGraphReferenceNodeExtensions.java
index 023d9e8..6a9f80d 100644
--- a/rdf/src/main/java/fr/tetras_libre/unltools/unl/extensions/SubGraphReferenceNodeExtensions.java
+++ b/rdf/src/main/java/fr/tetras_libre/unltools/unl/extensions/SubGraphReferenceNodeExtensions.java
@@ -1,8 +1,8 @@
 package fr.tetras_libre.unltools.unl.extensions;
 
-import unl.Graph;
-import unl.NoEntryNodeException;
-import unl.SubGraphReferenceNode;
+import fr.tetras_libre.unltools.unl.Graph;
+import fr.tetras_libre.unltools.unl.NoEntryNodeException;
+import fr.tetras_libre.unltools.unl.SubGraphReferenceNode;
 
 public class SubGraphReferenceNodeExtensions {
     public static String getScopeNameFromSubGraphReferenceNode(SubGraphReferenceNode g) {
diff --git a/rdf/src/test/java/fr/tetras_libre/unltools/rdf/vocabulary/CatUnlSentence.java b/rdf/src/test/java/fr/tetras_libre/unltools/rdf/vocabulary/CatUnlSentence.java
index 19b0964..3e6d86d 100644
--- a/rdf/src/test/java/fr/tetras_libre/unltools/rdf/vocabulary/CatUnlSentence.java
+++ b/rdf/src/test/java/fr/tetras_libre/unltools/rdf/vocabulary/CatUnlSentence.java
@@ -1,13 +1,16 @@
 package fr.tetras_libre.unltools.rdf.vocabulary;
 
-import unl.*;
+import fr.tetras_libre.unltools.unl.*;
 
-import java.util.*;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.TreeSet;
 
 public class CatUnlSentence {
     private static List<UnlDocument> unlDocuments;
 
-    private static void buildUnlDocuments(){
+    private static void buildUnlDocuments() {
         var unlDocument = new UnlDocument("[D]");
 
         var graph = new Graph();
@@ -142,7 +145,7 @@ public class CatUnlSentence {
     }
 
     public static List<UnlDocument> getUnlDocuments() {
-        if(null == unlDocuments) {
+        if (null == unlDocuments) {
             buildUnlDocuments();
         }
 
diff --git a/rdf/src/test/java/fr/tetras_libre/unltools/rdf/vocabulary/R1SentenceWithExpectedRdf.java b/rdf/src/test/java/fr/tetras_libre/unltools/rdf/vocabulary/R1SentenceWithExpectedRdf.java
index 1a35458..98534b9 100644
--- a/rdf/src/test/java/fr/tetras_libre/unltools/rdf/vocabulary/R1SentenceWithExpectedRdf.java
+++ b/rdf/src/test/java/fr/tetras_libre/unltools/rdf/vocabulary/R1SentenceWithExpectedRdf.java
@@ -1,9 +1,9 @@
 package fr.tetras_libre.unltools.rdf.vocabulary;
 
+import fr.tetras_libre.unltools.unl.*;
 import org.junit.jupiter.api.extension.ExtensionContext;
 import org.junit.jupiter.params.provider.Arguments;
 import org.junit.jupiter.params.provider.ArgumentsProvider;
-import unl.*;
 
 import java.util.*;
 import java.util.stream.Stream;
@@ -15,7 +15,7 @@ public class R1SentenceWithExpectedRdf implements ArgumentsProvider {
         unlDocuments = new LinkedList<>();
     }
 
-    private static void  buildUnlDocument() {
+    private static void buildUnlDocument() {
 
         var unlDocument = new UnlDocument("[D]");
 
@@ -150,8 +150,8 @@ public class R1SentenceWithExpectedRdf implements ArgumentsProvider {
         unlDocuments.add(unlDocument);
     }
 
-    private static List<UnlDocument> getUnlDocuments(){
-        if(null == unlDocuments) {
+    private static List<UnlDocument> getUnlDocuments() {
+        if (null == unlDocuments) {
             buildUnlDocument();
         }
 
diff --git a/rdf/src/test/java/fr/tetras_libre/unltools/rdf/vocabulary/RdfSchemaOfUNLTest.java b/rdf/src/test/java/fr/tetras_libre/unltools/rdf/vocabulary/RdfSchemaOfUNLTest.java
index 8759692..3b80109 100644
--- a/rdf/src/test/java/fr/tetras_libre/unltools/rdf/vocabulary/RdfSchemaOfUNLTest.java
+++ b/rdf/src/test/java/fr/tetras_libre/unltools/rdf/vocabulary/RdfSchemaOfUNLTest.java
@@ -1,11 +1,11 @@
 package fr.tetras_libre.unltools.rdf.vocabulary;
 
+import fr.tetras_libre.unltools.unl.UnlDocument;
 import org.apache.jena.rdf.model.ModelFactory;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.ArgumentsSource;
-import unl.UnlDocument;
 
 import java.io.IOException;
 import java.io.StringWriter;
diff --git a/unl-parser/src/main/java/unl/EqualsBuilder.java b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/EqualsBuilder.java
similarity index 82%
rename from unl-parser/src/main/java/unl/EqualsBuilder.java
rename to unl-parser/src/main/java/fr/tetras_libre/unltools/unl/EqualsBuilder.java
index 3e90166..59ef9d5 100644
--- a/unl-parser/src/main/java/unl/EqualsBuilder.java
+++ b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/EqualsBuilder.java
@@ -1,4 +1,4 @@
-package unl;
+package fr.tetras_libre.unltools.unl;
 
 import java.util.Vector;
 
@@ -11,9 +11,9 @@ class EqualsBuilder {
 
     @Override
     public boolean equals(Object obj) {
-        if(null == obj) return false;
+        if (null == obj) return false;
 
-        if(!(obj instanceof EqualsBuilder)) return false;
+        if (!(obj instanceof EqualsBuilder)) return false;
 
         return this.isEqual((EqualsBuilder) obj);
     }
diff --git a/unl-parser/src/main/java/unl/Graph.java b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/Graph.java
similarity index 88%
rename from unl-parser/src/main/java/unl/Graph.java
rename to unl-parser/src/main/java/fr/tetras_libre/unltools/unl/Graph.java
index 76e0c6a..28288be 100644
--- a/unl-parser/src/main/java/unl/Graph.java
+++ b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/Graph.java
@@ -1,4 +1,4 @@
-package unl;
+package fr.tetras_libre.unltools.unl;
 
 import java.util.Collection;
 import java.util.Vector;
@@ -8,7 +8,7 @@ public class Graph {
     private final Vector<GraphRelation> relations;
     private int nodeCounter;
 
-    public Graph(){
+    public Graph() {
         this(new Vector<>(), new Vector<>());
     }
 
@@ -26,7 +26,7 @@ public class Graph {
         String str = relation.getSubGraphReferenceLabel();
         GraphNode graphNode = null;
 
-        if(str.equals(graphNumber)) {
+        if (str.equals(graphNumber)) {
             if (relation.getNode1().isEntryNode()) graphNode = relation.getNode1();
             if (relation.getNode2().isEntryNode()) graphNode = relation.getNode2();
         }
@@ -34,7 +34,7 @@ public class Graph {
         return graphNode;
     }
 
-    public static GraphNode getEntryNode(GraphRelation relation){
+    public static GraphNode getEntryNode(GraphRelation relation) {
         return getEntryNode(relation, "");
     }
 
@@ -46,11 +46,11 @@ public class Graph {
         return relations;
     }
 
-    public void add(GraphRelation relation){
+    public void add(GraphRelation relation) {
 
         // Update node 1
         int i1 = nodes.indexOf(relation.getNode1());
-        if (-1 == i1){
+        if (-1 == i1) {
             this.add(relation.getNode1());
             relation.getNode1().setNodeNumber(++nodeCounter);
         } else {
@@ -59,7 +59,7 @@ public class Graph {
 
         // update node 2
         int i2 = nodes.indexOf(relation.getNode2());
-        if (-1 == i2){
+        if (-1 == i2) {
             this.add(relation.getNode2());
             relation.getNode2().setNodeNumber(++nodeCounter);
         } else {
@@ -69,11 +69,11 @@ public class Graph {
         relations.add(relation);
     }
 
-    public void add(GraphNode node){
+    public void add(GraphNode node) {
         this.nodes.add(node);
     }
 
-    public GraphNode getEntryNode() throws NoEntryNodeException  {
+    public GraphNode getEntryNode() throws NoEntryNodeException {
         return getEntryNode("");
     }
 
@@ -81,13 +81,13 @@ public class Graph {
         int i = 0;
         GraphNode graphNode = null;
 
-        while((i < relations.size()) && (null == graphNode)){
+        while ((i < relations.size()) && (null == graphNode)) {
             graphNode = getEntryNode(this.relations.get(i), graphNumber);
             i++;
         }
 
         // we may not have found it, because the entry node is isolated (no relation...)
-        if ((null == graphNode) && (1 == this.nodes.size()) && (this.nodes.get(0).isEntryNode())){
+        if ((null == graphNode) && (1 == this.nodes.size()) && (this.nodes.get(0).isEntryNode())) {
             graphNode = this.nodes.get(0);
         }
 
@@ -103,10 +103,10 @@ public class Graph {
         return InternalToString();
     }
 
-    protected String InternalToString(){
+    protected String InternalToString() {
         StringBuilder sb = new StringBuilder();
 
-        if(this.relations.isEmpty() && !this.nodes.isEmpty()){
+        if (this.relations.isEmpty() && !this.nodes.isEmpty()) {
             sb.append("[W]")
                     .append(this.convertNodesToString())
                     .append("[/W]");
@@ -134,7 +134,7 @@ public class Graph {
         for (GraphNode graphNode :
                 this.nodes) {
             strBuilder.append(graphNode.toString())
-            .append("\n");
+                    .append("\n");
         }
 
         return strBuilder.toString();
diff --git a/unl-parser/src/main/java/unl/GraphExporter.java b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/GraphExporter.java
similarity index 79%
rename from unl-parser/src/main/java/unl/GraphExporter.java
rename to unl-parser/src/main/java/fr/tetras_libre/unltools/unl/GraphExporter.java
index 2f1b927..a61a61b 100644
--- a/unl-parser/src/main/java/unl/GraphExporter.java
+++ b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/GraphExporter.java
@@ -1,4 +1,4 @@
-package unl;
+package fr.tetras_libre.unltools.unl;
 
 import java.io.IOException;
 import java.util.List;
diff --git a/unl-parser/src/main/java/unl/GraphNode.java b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/GraphNode.java
similarity index 64%
rename from unl-parser/src/main/java/unl/GraphNode.java
rename to unl-parser/src/main/java/fr/tetras_libre/unltools/unl/GraphNode.java
index 11e1262..45c744a 100644
--- a/unl-parser/src/main/java/unl/GraphNode.java
+++ b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/GraphNode.java
@@ -1,15 +1,15 @@
-package unl;
+package fr.tetras_libre.unltools.unl;
 
 import java.util.Set;
 import java.util.TreeSet;
 
 public abstract class GraphNode {
     private static final String entryAttribute = ".@entry";
-    private final Set attributes;
+    private final Set<String> attributes;
     private int nodeNumber;
 
-    public GraphNode(Set attributes) {
-        this.attributes = null == attributes ? new TreeSet() : attributes;
+    public GraphNode(Set<String> attributes) {
+        this.attributes = null == attributes ? new TreeSet<>() : attributes;
     }
 
     public int setNodeNumber(int nodeNumber) {
@@ -20,7 +20,7 @@ public abstract class GraphNode {
         return nodeNumber;
     }
 
-    public Set getAttributes() {
+    public Set<String> getAttributes() {
         return attributes;
     }
 
@@ -31,12 +31,12 @@ public abstract class GraphNode {
     public abstract String getNodeId();
 
     @Override
-    public boolean equals(Object other){
-       if(null == other) return false;
-       if(other == this) return true;
-       if(!(other instanceof GraphNode)) return false;
+    public boolean equals(Object other) {
+        if (null == other) return false;
+        if (other == this) return true;
+        if (!(other instanceof GraphNode)) return false;
 
-       return this.CreateEqualityBuilder().isEqual(((GraphNode)other).CreateEqualityBuilder());
+        return this.CreateEqualityBuilder().isEqual(((GraphNode) other).CreateEqualityBuilder());
     }
 
     @Override
@@ -45,13 +45,12 @@ public abstract class GraphNode {
                 .toHashCode();
     }
 
-    private HashCodeBuilder CreateHashCodeBuilder(){
+    private HashCodeBuilder CreateHashCodeBuilder() {
         return this.InternalCreateHashCodeBuilder();
     }
 
-    private EqualsBuilder CreateEqualityBuilder()
-    {
-            return this.InternalCreateEqualityBuilder();
+    private EqualsBuilder CreateEqualityBuilder() {
+        return this.InternalCreateEqualityBuilder();
     }
 
     protected EqualsBuilder InternalCreateEqualityBuilder() {
diff --git a/unl-parser/src/main/java/unl/GraphRelation.java b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/GraphRelation.java
similarity index 93%
rename from unl-parser/src/main/java/unl/GraphRelation.java
rename to unl-parser/src/main/java/fr/tetras_libre/unltools/unl/GraphRelation.java
index 2d90309..bbd1248 100644
--- a/unl-parser/src/main/java/unl/GraphRelation.java
+++ b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/GraphRelation.java
@@ -1,13 +1,13 @@
-package unl;
+package fr.tetras_libre.unltools.unl;
 
 public class GraphRelation {
-    private GraphNode node2;
     private final String relationLabel;
     private final String SubGraphReferenceLabel;
+    private GraphNode node2;
     private GraphNode node1;
 
     public GraphRelation(GraphNode node1, GraphNode node2, String relationLabel) {
-        this(node1, node2, relationLabel,  "");
+        this(node1, node2, relationLabel, "");
     }
 
     public GraphRelation(GraphNode node1, GraphNode node2, String relationLabel, String subGraphReferenceLabel) {
diff --git a/unl-parser/src/main/java/unl/HashCodeBuilder.java b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/HashCodeBuilder.java
similarity index 64%
rename from unl-parser/src/main/java/unl/HashCodeBuilder.java
rename to unl-parser/src/main/java/fr/tetras_libre/unltools/unl/HashCodeBuilder.java
index 3e5798d..5822991 100644
--- a/unl-parser/src/main/java/unl/HashCodeBuilder.java
+++ b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/HashCodeBuilder.java
@@ -1,22 +1,22 @@
-package unl;
+package fr.tetras_libre.unltools.unl;
 
 import java.util.Vector;
 
 public class HashCodeBuilder {
     private Vector<Object> elements;
 
-    HashCodeBuilder(){
+    HashCodeBuilder() {
         elements = new Vector<>();
     }
 
-    public HashCodeBuilder append(Object o){
+    public HashCodeBuilder append(Object o) {
         elements.add(o);
         return this;
     }
 
-    public int toHashCode(){
+    public int toHashCode() {
         int hash = 391;
-        for (Object element: this.elements) {
+        for (Object element : this.elements) {
             hash = 391 * hash + (element == null ? 0 : element.hashCode());
         }
         return hash;
diff --git a/unl-parser/src/main/java/unl/NoEntryNodeException.java b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/NoEntryNodeException.java
similarity index 78%
rename from unl-parser/src/main/java/unl/NoEntryNodeException.java
rename to unl-parser/src/main/java/fr/tetras_libre/unltools/unl/NoEntryNodeException.java
index 5f8996c..45dbcf4 100644
--- a/unl-parser/src/main/java/unl/NoEntryNodeException.java
+++ b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/NoEntryNodeException.java
@@ -1,4 +1,4 @@
-package unl;
+package fr.tetras_libre.unltools.unl;
 
 public class NoEntryNodeException extends Exception {
     public NoEntryNodeException(String message) {
diff --git a/unl-parser/src/main/java/unl/Restriction.java b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/Restriction.java
similarity index 95%
rename from unl-parser/src/main/java/unl/Restriction.java
rename to unl-parser/src/main/java/fr/tetras_libre/unltools/unl/Restriction.java
index 3118868..35fdfe7 100644
--- a/unl-parser/src/main/java/unl/Restriction.java
+++ b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/Restriction.java
@@ -1,4 +1,4 @@
-package unl;
+package fr.tetras_libre.unltools.unl;
 
 public class Restriction implements Comparable<Restriction> {
     private String label;
@@ -8,7 +8,7 @@ public class Restriction implements Comparable<Restriction> {
 
     private UniversalWord universalWord;
 
-    public Restriction(){
+    public Restriction() {
         this("", ' ', null);
     }
 
diff --git a/unl-parser/src/main/java/unl/SubGraphReferenceNode.java b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/SubGraphReferenceNode.java
similarity index 84%
rename from unl-parser/src/main/java/unl/SubGraphReferenceNode.java
rename to unl-parser/src/main/java/fr/tetras_libre/unltools/unl/SubGraphReferenceNode.java
index d81d89f..c98206d 100644
--- a/unl-parser/src/main/java/unl/SubGraphReferenceNode.java
+++ b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/SubGraphReferenceNode.java
@@ -1,4 +1,4 @@
-package unl;
+package fr.tetras_libre.unltools.unl;
 
 import java.util.Set;
 import java.util.TreeSet;
@@ -7,10 +7,10 @@ public class SubGraphReferenceNode extends GraphNode {
     private final String referenceNumber;
 
     public SubGraphReferenceNode(String referenceNumber) {
-        this(referenceNumber, new TreeSet());
+        this(referenceNumber, new TreeSet<>());
     }
 
-    public SubGraphReferenceNode(String referenceNumber, Set attributes) {
+    public SubGraphReferenceNode(String referenceNumber, Set<String> attributes) {
         super(attributes);
         this.referenceNumber = referenceNumber;
     }
@@ -36,7 +36,6 @@ public class SubGraphReferenceNode extends GraphNode {
     }
 
 
-
     @Override
     public String toString() {
         return String.format("%s%s", this.referenceNumber, super.toString());
diff --git a/unl-parser/src/main/java/unl/UniversalWord.java b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/UniversalWord.java
similarity index 84%
rename from unl-parser/src/main/java/unl/UniversalWord.java
rename to unl-parser/src/main/java/fr/tetras_libre/unltools/unl/UniversalWord.java
index b391b95..b26d122 100644
--- a/unl-parser/src/main/java/unl/UniversalWord.java
+++ b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/UniversalWord.java
@@ -1,4 +1,4 @@
-package unl;
+package fr.tetras_libre.unltools.unl;
 
 import java.util.Set;
 import java.util.SortedSet;
@@ -21,6 +21,25 @@ public class UniversalWord {
         this.restrictions = restrictions;
     }
 
+    /**
+     * Get the headword of string that represent universalWord
+     *
+     * @param universalWord the universalWord string to parse
+     * @return the headword of universalWord string
+     * @throws IllegalArgumentException the parameter is null or is whitespaces
+     */
+    public static String getHeadword(String universalWord) {
+        if (null == universalWord || universalWord.trim().equals(""))
+            throw new IllegalArgumentException("universalWord should not be whitespaces or null");
+
+        int parenthesisPosition = universalWord.indexOf("(");
+        if (parenthesisPosition > 0) {
+            return universalWord.substring(0, parenthesisPosition);
+        }
+
+        return universalWord;
+    }
+
     public String getHeadword() {
         return headword;
     }
@@ -29,7 +48,7 @@ public class UniversalWord {
         return restrictions;
     }
 
-    public boolean addRestriction(Restriction restriction){
+    public boolean addRestriction(Restriction restriction) {
         return restrictions.add(restriction);
     }
 
@@ -48,31 +67,13 @@ public class UniversalWord {
         return String.format("%s%s", headword, suffix);
     }
 
-    /**
-     * Get the headword of string that represent universalWord
-     * @param universalWord the universalWord string to parse
-     * @return the headword of universalWord string
-     * @throws IllegalArgumentException the parameter is null or is whitespaces
-     */
-    public static String getHeadword(String universalWord) {
-        if (null == universalWord || universalWord.trim().equals(""))
-            throw new IllegalArgumentException("universalWord should not be whitespaces or null");
-
-        int parenthesisPosition = universalWord.indexOf("(");
-        if (parenthesisPosition > 0) {
-            return universalWord.substring(0, parenthesisPosition);
-        }
-
-        return universalWord;
-    }
-
     @Override
     public boolean equals(Object obj) {
-        if(null == obj) {
+        if (null == obj) {
             return false;
         }
 
-        if(!(obj instanceof UniversalWord)) return false;
+        if (!(obj instanceof UniversalWord)) return false;
 
         return equals((UniversalWord) obj);
     }
@@ -80,10 +81,10 @@ public class UniversalWord {
     private boolean equals(UniversalWord other) {
         boolean result = this.headword.equals(other.headword);
 
-        result  = result && (
+        result = result && (
                 ((this.restrictions == null || this.restrictions.isEmpty()) && (other.restrictions == null || other.restrictions.isEmpty()))
-                || (this.restrictions != null && this.restrictions.equals(other.restrictions))
-                || (other.restrictions != null && other.restrictions.equals(this.restrictions))
+                        || (this.restrictions != null && this.restrictions.equals(other.restrictions))
+                        || (other.restrictions != null && other.restrictions.equals(this.restrictions))
         );
 
         return result;
@@ -91,12 +92,13 @@ public class UniversalWord {
 
     /**
      * Test if th current universal word represent a number.
+     *
      * @return true if the current universal word is a number otherwise false.
      */
-    public boolean isNumber(){
+    public boolean isNumber() {
         try {
             return Integer.parseInt(headword, 10) != Integer.MIN_VALUE;
-        } catch (NumberFormatException e){
+        } catch (NumberFormatException e) {
             return false;
         }
     }
diff --git a/unl-parser/src/main/java/unl/UniversalWordNode.java b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/UniversalWordNode.java
similarity index 86%
rename from unl-parser/src/main/java/unl/UniversalWordNode.java
rename to unl-parser/src/main/java/fr/tetras_libre/unltools/unl/UniversalWordNode.java
index f0eb0f5..f839140 100644
--- a/unl-parser/src/main/java/unl/UniversalWordNode.java
+++ b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/UniversalWordNode.java
@@ -1,4 +1,4 @@
-package unl;
+package fr.tetras_libre.unltools.unl;
 
 import java.util.Set;
 
@@ -6,13 +6,13 @@ public class UniversalWordNode extends GraphNode {
     private final UniversalWord universalWord;
     private final String instanceNumber;
 
-    public UniversalWordNode(UniversalWord universalWord, Set attributes, String instanceNumber) {
+    public UniversalWordNode(UniversalWord universalWord, Set<String> attributes, String instanceNumber) {
         super(attributes);
         this.universalWord = universalWord;
         this.instanceNumber = instanceNumber;
     }
 
-    public UniversalWordNode(UniversalWord universalWord, Set attributes) {
+    public UniversalWordNode(UniversalWord universalWord, Set<String> attributes) {
         this(universalWord, attributes, "");
     }
 
diff --git a/unl-parser/src/main/java/unl/UnlDocument.java b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/UnlDocument.java
similarity index 81%
rename from unl-parser/src/main/java/unl/UnlDocument.java
rename to unl-parser/src/main/java/fr/tetras_libre/unltools/unl/UnlDocument.java
index 97b5bb8..816ab21 100644
--- a/unl-parser/src/main/java/unl/UnlDocument.java
+++ b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/UnlDocument.java
@@ -1,4 +1,4 @@
-package unl;
+package fr.tetras_libre.unltools.unl;
 
 import java.util.Collection;
 import java.util.Vector;
@@ -8,11 +8,11 @@ public class UnlDocument {
     private final Vector<UnlDocumentNode> docElements;
     private String error;
 
-    public UnlDocument(){
+    public UnlDocument() {
         this("[D]", new Vector<>());
     }
 
-    public UnlDocument(String docLabel){
+    public UnlDocument(String docLabel) {
         this(docLabel, new Vector<>());
     }
 
@@ -20,7 +20,7 @@ public class UnlDocument {
         this(docLabel, new Vector<>(docElements));
     }
 
-    public UnlDocument(String docLabel, Vector<UnlDocumentNode> docElements){
+    public UnlDocument(String docLabel, Vector<UnlDocumentNode> docElements) {
         this.docLabel = docLabel;
         this.docElements = docElements;
     }
@@ -37,15 +37,15 @@ public class UnlDocument {
         return error;
     }
 
-    public boolean HasError(){
-        return null != error; // && !error.trim().isEmpty();
-    }
-
     public void setError(String error) {
         this.error = error;
     }
 
-    public void add(UnlDocumentNode unlDocumentNode){
+    public boolean HasError() {
+        return null != error; // && !error.trim().isEmpty();
+    }
+
+    public void add(UnlDocumentNode unlDocumentNode) {
         this.docElements.add(unlDocumentNode);
     }
 
@@ -58,15 +58,15 @@ public class UnlDocument {
         StringBuilder sb = new StringBuilder();
 
         sb.append(docLabel);
-        if (hasError()){
+        if (hasError()) {
             sb.append(String.format("[ERROR]%s[/ERROR]\n", this.error));
         }
-        for (UnlDocumentNode unlDocElement: this.docElements) {
+        for (UnlDocumentNode unlDocElement : this.docElements) {
             sb.append(unlDocElement.toString())
                     .append("\n");
         }
         sb.append("[/D]")
-          .append("\n");
+                .append("\n");
 
         return sb.toString();
     }
diff --git a/unl-parser/src/main/java/unl/UnlDocumentNode.java b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/UnlDocumentNode.java
similarity index 90%
rename from unl-parser/src/main/java/unl/UnlDocumentNode.java
rename to unl-parser/src/main/java/fr/tetras_libre/unltools/unl/UnlDocumentNode.java
index ba81e04..2b70841 100644
--- a/unl-parser/src/main/java/unl/UnlDocumentNode.java
+++ b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/UnlDocumentNode.java
@@ -1,4 +1,4 @@
-package unl;
+package fr.tetras_libre.unltools.unl;
 
 public class UnlDocumentNode {
 
@@ -21,7 +21,7 @@ public class UnlDocumentNode {
         this.graph = graph;
     }
 
-    public UnlDocumentNode(String error){
+    public UnlDocumentNode(String error) {
         this.error = error;
     }
 
@@ -37,25 +37,25 @@ public class UnlDocumentNode {
         return graph;
     }
 
-    public String getError() {
-        return error;
-    }
-
     public void setGraph(Graph graph) {
         this.graph = graph;
     }
 
+    public String getError() {
+        return error;
+    }
+
     public void setError(String error) {
         this.error = error;
     }
 
-    public boolean hasError(){
+    public boolean hasError() {
         return null != this.error && !this.error.trim().equals("");
     }
 
     @Override
     public String toString() {
-        switch (this.kindOfNode){
+        switch (this.kindOfNode) {
             case ParagraphStart:
                 return String.format("%s\n", this.docNodeLabel);
             case ParagraphEnd:
@@ -66,7 +66,7 @@ public class UnlDocumentNode {
                 return String.format("%s\n%s\n[/S]", this.docNodeLabel, this.graph.toString());
         }
 
-        if (this.hasError()){
+        if (this.hasError()) {
             return String.format("[S][ERROR]%s[/ERROR][/S]", this.error);
         }
 
diff --git a/unl-parser/src/main/java/unl/UnlDocumentNodeType.java b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/UnlDocumentNodeType.java
similarity index 72%
rename from unl-parser/src/main/java/unl/UnlDocumentNodeType.java
rename to unl-parser/src/main/java/fr/tetras_libre/unltools/unl/UnlDocumentNodeType.java
index 2fcf371..c1cdc73 100644
--- a/unl-parser/src/main/java/unl/UnlDocumentNodeType.java
+++ b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/UnlDocumentNodeType.java
@@ -1,4 +1,4 @@
-package unl;
+package fr.tetras_libre.unltools.unl;
 
 public enum UnlDocumentNodeType {
     ParagraphStart,
diff --git a/unl-parser/src/main/java/unl/parser/ParseException.java b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/parser/ParseException.java
similarity index 99%
rename from unl-parser/src/main/java/unl/parser/ParseException.java
rename to unl-parser/src/main/java/fr/tetras_libre/unltools/unl/parser/ParseException.java
index 95c01a1..c7e00a4 100644
--- a/unl-parser/src/main/java/unl/parser/ParseException.java
+++ b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/parser/ParseException.java
@@ -1,6 +1,6 @@
 /* Generated By:JavaCC: Do not edit this line. ParseException.java Version 7.0 */
 /* JavaCCOptions:KEEP_LINE_COLUMN=true */
-package unl.parser;
+package fr.tetras_libre.unltools.unl.parser;
 
 /**
  * This exception is thrown when parse errors are encountered.
diff --git a/unl-parser/src/main/java/unl/parser/SimpleCharStream.java b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/parser/SimpleCharStream.java
similarity index 99%
rename from unl-parser/src/main/java/unl/parser/SimpleCharStream.java
rename to unl-parser/src/main/java/fr/tetras_libre/unltools/unl/parser/SimpleCharStream.java
index e5b4d34..af0bccf 100644
--- a/unl-parser/src/main/java/unl/parser/SimpleCharStream.java
+++ b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/parser/SimpleCharStream.java
@@ -1,6 +1,6 @@
 /* Generated By:JavaCC: Do not edit this line. SimpleCharStream.java Version 7.0 */
 /* JavaCCOptions:STATIC=false,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */
-package unl.parser;
+package fr.tetras_libre.unltools.unl.parser;
 
 /**
  * An implementation of interface CharStream, where the stream is assumed to
diff --git a/unl-parser/src/main/java/unl/parser/Token.java b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/parser/Token.java
similarity index 98%
rename from unl-parser/src/main/java/unl/parser/Token.java
rename to unl-parser/src/main/java/fr/tetras_libre/unltools/unl/parser/Token.java
index 2df57a6..2aa80bb 100644
--- a/unl-parser/src/main/java/unl/parser/Token.java
+++ b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/parser/Token.java
@@ -1,6 +1,6 @@
 /* Generated By:JavaCC: Do not edit this line. Token.java Version 7.0 */
 /* JavaCCOptions:TOKEN_EXTENDS=,KEEP_LINE_COLUMN=true,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */
-package unl.parser;
+package fr.tetras_libre.unltools.unl.parser;
 
 /**
  * Describes the input token stream.
diff --git a/unl-parser/src/main/java/unl/parser/TokenMgrError.java b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/parser/TokenMgrError.java
similarity index 98%
rename from unl-parser/src/main/java/unl/parser/TokenMgrError.java
rename to unl-parser/src/main/java/fr/tetras_libre/unltools/unl/parser/TokenMgrError.java
index c4986ca..4a8e59a 100644
--- a/unl-parser/src/main/java/unl/parser/TokenMgrError.java
+++ b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/parser/TokenMgrError.java
@@ -1,6 +1,6 @@
 /* Generated By:JavaCC: Do not edit this line. TokenMgrError.java Version 7.0 */
 /* JavaCCOptions: */
-package unl.parser;
+package fr.tetras_libre.unltools.unl.parser;
 
 /** Token Manager Error. */
 public class TokenMgrError extends Error
diff --git a/unl-parser/src/main/java/unl/parser/UnlParser.java b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/parser/UnlParser.java
similarity index 99%
rename from unl-parser/src/main/java/unl/parser/UnlParser.java
rename to unl-parser/src/main/java/fr/tetras_libre/unltools/unl/parser/UnlParser.java
index 137a925..4889a85 100644
--- a/unl-parser/src/main/java/unl/parser/UnlParser.java
+++ b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/parser/UnlParser.java
@@ -1,8 +1,8 @@
 /* UnlParser.java */
 /* Generated By:JavaCC: Do not edit this line. UnlParser.java */
-package unl.parser;
+package fr.tetras_libre.unltools.unl.parser;
 
-import unl.*;
+import fr.tetras_libre.unltools.unl.*;
 
 import java.util.Set;
 import java.util.SortedSet;
diff --git a/unl-parser/src/main/java/unl/parser/UnlParser.jj b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/parser/UnlParser.jj
similarity index 99%
rename from unl-parser/src/main/java/unl/parser/UnlParser.jj
rename to unl-parser/src/main/java/fr/tetras_libre/unltools/unl/parser/UnlParser.jj
index cbfb288..a05304d 100644
--- a/unl-parser/src/main/java/unl/parser/UnlParser.jj
+++ b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/parser/UnlParser.jj
@@ -35,7 +35,7 @@ options {
 
 PARSER_BEGIN(UnlParser)
 
-package unl.parser;
+package fr.tetras_libre.unltools.unl.parser;
 
 import java.io.FileInputStream;
 import java.io.BufferedReader;
@@ -44,7 +44,7 @@ import java.util.SortedSet;
 import java.util.TreeSet;
 import java.util.Set;
 import java.util.Vector;
-import unl.*;
+import fr.tetras_libre.unltools.unl.*;
 
 public class UnlParser {
 
diff --git a/unl-parser/src/main/java/unl/parser/UnlParserConstants.java b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/parser/UnlParserConstants.java
similarity index 98%
rename from unl-parser/src/main/java/unl/parser/UnlParserConstants.java
rename to unl-parser/src/main/java/fr/tetras_libre/unltools/unl/parser/UnlParserConstants.java
index 80dd8d6..b71a15c 100644
--- a/unl-parser/src/main/java/unl/parser/UnlParserConstants.java
+++ b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/parser/UnlParserConstants.java
@@ -1,5 +1,5 @@
 /* Generated By:JavaCC: Do not edit this line. UnlParserConstants.java */
-package unl.parser;
+package fr.tetras_libre.unltools.unl.parser;
 
 
 /**
diff --git a/unl-parser/src/main/java/unl/parser/UnlParserTokenManager.java b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/parser/UnlParserTokenManager.java
similarity index 99%
rename from unl-parser/src/main/java/unl/parser/UnlParserTokenManager.java
rename to unl-parser/src/main/java/fr/tetras_libre/unltools/unl/parser/UnlParserTokenManager.java
index e682c2f..b84e9b6 100644
--- a/unl-parser/src/main/java/unl/parser/UnlParserTokenManager.java
+++ b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/parser/UnlParserTokenManager.java
@@ -1,14 +1,6 @@
 /* UnlParserTokenManager.java */
 /* Generated By:JavaCC: Do not edit this line. UnlParserTokenManager.java */
-package unl.parser;
-import java.io.FileInputStream;
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-import java.util.SortedSet;
-import java.util.TreeSet;
-import java.util.Set;
-import java.util.Vector;
-import unl.*;
+package fr.tetras_libre.unltools.unl.parser;
 
 /** Token Manager. */
 @SuppressWarnings ("unused")
diff --git a/unl-parser/src/main/java/unl/print/dotFile/DotFileBuilder.java b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/print/dotFile/DotFileBuilder.java
similarity index 97%
rename from unl-parser/src/main/java/unl/print/dotFile/DotFileBuilder.java
rename to unl-parser/src/main/java/fr/tetras_libre/unltools/unl/print/dotFile/DotFileBuilder.java
index b4e12e9..133bbd2 100644
--- a/unl-parser/src/main/java/unl/print/dotFile/DotFileBuilder.java
+++ b/unl-parser/src/main/java/fr/tetras_libre/unltools/unl/print/dotFile/DotFileBuilder.java
@@ -1,6 +1,6 @@
-package unl.print.dotFile;
+package fr.tetras_libre.unltools.unl.print.dotFile;
 
-import unl.*;
+import fr.tetras_libre.unltools.unl.*;
 
 import java.io.IOException;
 import java.io.Writer;
@@ -192,7 +192,7 @@ public class DotFileBuilder implements GraphExporter {
     @Override
     public void write(List<UnlDocument> documents) throws IOException {
         for (var document : documents) {
-            for(var documentNode: document.getDocElements()){
+            for (var documentNode : document.getDocElements()) {
                 this.write(documentNode.getGraph());
             }
         }
diff --git a/unl-parser/src/test/java/unl/AllSetenceWithExpectedDotChecker.java b/unl-parser/src/test/java/fr/tetras_libre/unltools/unl/AllSetenceWithExpectedDotChecker.java
similarity index 99%
rename from unl-parser/src/test/java/unl/AllSetenceWithExpectedDotChecker.java
rename to unl-parser/src/test/java/fr/tetras_libre/unltools/unl/AllSetenceWithExpectedDotChecker.java
index c8d7645..60bd471 100644
--- a/unl-parser/src/test/java/unl/AllSetenceWithExpectedDotChecker.java
+++ b/unl-parser/src/test/java/fr/tetras_libre/unltools/unl/AllSetenceWithExpectedDotChecker.java
@@ -1,4 +1,4 @@
-package unl;
+package fr.tetras_libre.unltools.unl;
 
 public class AllSetenceWithExpectedDotChecker extends SentenceWithExpectedDotChecker {
     private static final String ALL = "[D]" +
@@ -172,6 +172,6 @@ public class AllSetenceWithExpectedDotChecker extends SentenceWithExpectedDotChe
             "}\n";
 
     public AllSetenceWithExpectedDotChecker() {
-        super(ALL,ALL_DOT);
+        super(ALL, ALL_DOT);
     }
 }
diff --git a/unl-parser/src/test/java/unl/CatSentenceWithExpectedDotChecker.java b/unl-parser/src/test/java/fr/tetras_libre/unltools/unl/CatSentenceWithExpectedDotChecker.java
similarity index 97%
rename from unl-parser/src/test/java/unl/CatSentenceWithExpectedDotChecker.java
rename to unl-parser/src/test/java/fr/tetras_libre/unltools/unl/CatSentenceWithExpectedDotChecker.java
index dd33d94..4d398d2 100644
--- a/unl-parser/src/test/java/unl/CatSentenceWithExpectedDotChecker.java
+++ b/unl-parser/src/test/java/fr/tetras_libre/unltools/unl/CatSentenceWithExpectedDotChecker.java
@@ -1,4 +1,4 @@
-package unl;
+package fr.tetras_libre.unltools.unl;
 
 public class CatSentenceWithExpectedDotChecker extends SentenceWithExpectedDotChecker {
 
diff --git a/unl-parser/src/test/java/unl/EqualsBuilderTest.java b/unl-parser/src/test/java/fr/tetras_libre/unltools/unl/EqualsBuilderTest.java
similarity index 89%
rename from unl-parser/src/test/java/unl/EqualsBuilderTest.java
rename to unl-parser/src/test/java/fr/tetras_libre/unltools/unl/EqualsBuilderTest.java
index 4dd6240..c6e0a2b 100644
--- a/unl-parser/src/test/java/unl/EqualsBuilderTest.java
+++ b/unl-parser/src/test/java/fr/tetras_libre/unltools/unl/EqualsBuilderTest.java
@@ -1,10 +1,8 @@
-package unl;
+package fr.tetras_libre.unltools.unl;
 
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 
-import static org.junit.jupiter.api.Assertions.*;
-
 class EqualsBuilderTest {
 
     @Test
diff --git a/unl-parser/src/test/java/unl/R1SentenceWithExpectedDotChecker.java b/unl-parser/src/test/java/fr/tetras_libre/unltools/unl/R1SentenceWithExpectedDotChecker.java
similarity index 98%
rename from unl-parser/src/test/java/unl/R1SentenceWithExpectedDotChecker.java
rename to unl-parser/src/test/java/fr/tetras_libre/unltools/unl/R1SentenceWithExpectedDotChecker.java
index b353e9f..3960166 100644
--- a/unl-parser/src/test/java/unl/R1SentenceWithExpectedDotChecker.java
+++ b/unl-parser/src/test/java/fr/tetras_libre/unltools/unl/R1SentenceWithExpectedDotChecker.java
@@ -1,4 +1,4 @@
-package unl;
+package fr.tetras_libre.unltools.unl;
 
 public class R1SentenceWithExpectedDotChecker extends SentenceWithExpectedDotChecker {
     private static final String R1_UNL = "[D]\n" +
diff --git a/unl-parser/src/test/java/unl/R2SentenceWithExpectedDotChecker.java b/unl-parser/src/test/java/fr/tetras_libre/unltools/unl/R2SentenceWithExpectedDotChecker.java
similarity index 98%
rename from unl-parser/src/test/java/unl/R2SentenceWithExpectedDotChecker.java
rename to unl-parser/src/test/java/fr/tetras_libre/unltools/unl/R2SentenceWithExpectedDotChecker.java
index 6a53a50..141d786 100644
--- a/unl-parser/src/test/java/unl/R2SentenceWithExpectedDotChecker.java
+++ b/unl-parser/src/test/java/fr/tetras_libre/unltools/unl/R2SentenceWithExpectedDotChecker.java
@@ -1,4 +1,4 @@
-package unl;
+package fr.tetras_libre.unltools.unl;
 
 public class R2SentenceWithExpectedDotChecker extends SentenceWithExpectedDotChecker {
     private static final String R2_UNL = "[D]\n" +
diff --git a/unl-parser/src/test/java/unl/SentenceWithExpectedDotArgumentProvider.java b/unl-parser/src/test/java/fr/tetras_libre/unltools/unl/SentenceWithExpectedDotArgumentProvider.java
similarity index 90%
rename from unl-parser/src/test/java/unl/SentenceWithExpectedDotArgumentProvider.java
rename to unl-parser/src/test/java/fr/tetras_libre/unltools/unl/SentenceWithExpectedDotArgumentProvider.java
index 7eb6b29..f8a239d 100644
--- a/unl-parser/src/test/java/unl/SentenceWithExpectedDotArgumentProvider.java
+++ b/unl-parser/src/test/java/fr/tetras_libre/unltools/unl/SentenceWithExpectedDotArgumentProvider.java
@@ -1,4 +1,4 @@
-package unl;
+package fr.tetras_libre.unltools.unl;
 
 import org.junit.jupiter.api.extension.ExtensionContext;
 import org.junit.jupiter.params.provider.Arguments;
@@ -8,7 +8,7 @@ import java.util.stream.Stream;
 
 public class SentenceWithExpectedDotArgumentProvider implements ArgumentsProvider {
     @Override
-    public Stream<? extends Arguments> provideArguments(ExtensionContext extensionContext) throws Exception {
+    public Stream<? extends Arguments> provideArguments(ExtensionContext extensionContext) {
         return Stream.of(Arguments.of(new R1SentenceWithExpectedDotChecker()),
                 Arguments.of(new R2SentenceWithExpectedDotChecker()),
                 Arguments.of(new CatSentenceWithExpectedDotChecker()),
diff --git a/unl-parser/src/test/java/unl/SentenceWithExpectedDotChecker.java b/unl-parser/src/test/java/fr/tetras_libre/unltools/unl/SentenceWithExpectedDotChecker.java
similarity index 97%
rename from unl-parser/src/test/java/unl/SentenceWithExpectedDotChecker.java
rename to unl-parser/src/test/java/fr/tetras_libre/unltools/unl/SentenceWithExpectedDotChecker.java
index 613d75e..93b691d 100644
--- a/unl-parser/src/test/java/unl/SentenceWithExpectedDotChecker.java
+++ b/unl-parser/src/test/java/fr/tetras_libre/unltools/unl/SentenceWithExpectedDotChecker.java
@@ -1,4 +1,4 @@
-package unl;
+package fr.tetras_libre.unltools.unl;
 
 import org.junit.jupiter.api.Assertions;
 
diff --git a/unl-parser/src/test/java/unl/parser/UnlParserFactory.java b/unl-parser/src/test/java/fr/tetras_libre/unltools/unl/parser/UnlParserFactory.java
similarity index 60%
rename from unl-parser/src/test/java/unl/parser/UnlParserFactory.java
rename to unl-parser/src/test/java/fr/tetras_libre/unltools/unl/parser/UnlParserFactory.java
index 7683368..5698198 100644
--- a/unl-parser/src/test/java/unl/parser/UnlParserFactory.java
+++ b/unl-parser/src/test/java/fr/tetras_libre/unltools/unl/parser/UnlParserFactory.java
@@ -1,4 +1,4 @@
-package unl.parser;
+package fr.tetras_libre.unltools.unl.parser;
 
 public interface UnlParserFactory {
     WrapperUnlParser create();
diff --git a/unl-parser/src/test/java/unl/parser/UnlParserFactoryFromString.java b/unl-parser/src/test/java/fr/tetras_libre/unltools/unl/parser/UnlParserFactoryFromString.java
similarity index 82%
rename from unl-parser/src/test/java/unl/parser/UnlParserFactoryFromString.java
rename to unl-parser/src/test/java/fr/tetras_libre/unltools/unl/parser/UnlParserFactoryFromString.java
index 56d41a9..a4a6540 100644
--- a/unl-parser/src/test/java/unl/parser/UnlParserFactoryFromString.java
+++ b/unl-parser/src/test/java/fr/tetras_libre/unltools/unl/parser/UnlParserFactoryFromString.java
@@ -1,4 +1,4 @@
-package unl.parser;
+package fr.tetras_libre.unltools.unl.parser;
 
 import java.io.BufferedReader;
 import java.io.StringReader;
@@ -11,7 +11,7 @@ public class UnlParserFactoryFromString implements UnlParserFactory {
         this.stringToParse = stringToParse;
     }
 
-    public WrapperUnlParser create(){
+    public WrapperUnlParser create() {
         return new WrapperUnlParser(new BufferedReader(new StringReader(stringToParse)));
     }
 }
diff --git a/unl-parser/src/test/java/unl/parser/UnlParserTest.java b/unl-parser/src/test/java/fr/tetras_libre/unltools/unl/parser/UnlParserTest.java
similarity index 76%
rename from unl-parser/src/test/java/unl/parser/UnlParserTest.java
rename to unl-parser/src/test/java/fr/tetras_libre/unltools/unl/parser/UnlParserTest.java
index 9fc8a78..ff62eaa 100644
--- a/unl-parser/src/test/java/unl/parser/UnlParserTest.java
+++ b/unl-parser/src/test/java/fr/tetras_libre/unltools/unl/parser/UnlParserTest.java
@@ -1,11 +1,11 @@
-package unl.parser;
+package fr.tetras_libre.unltools.unl.parser;
 
+import fr.tetras_libre.unltools.unl.SentenceWithExpectedDotArgumentProvider;
+import fr.tetras_libre.unltools.unl.SentenceWithExpectedDotChecker;
+import fr.tetras_libre.unltools.unl.UnlDocument;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.ArgumentsSource;
-import unl.SentenceWithExpectedDotArgumentProvider;
-import unl.SentenceWithExpectedDotChecker;
-import unl.UnlDocument;
 
 import java.util.concurrent.atomic.AtomicReference;
 
@@ -13,18 +13,18 @@ class UnlParserTest {
 
     @ParameterizedTest
     @ArgumentsSource(SentenceWithExpectedDotArgumentProvider.class)
-    void UnlParserShouldParseSimpleSentenceWithoutException(SentenceWithExpectedDotChecker input){
+    void UnlParserShouldParseSimpleSentenceWithoutException(SentenceWithExpectedDotChecker input) {
         UnlParserFactory unlFactory = new UnlParserFactoryFromString(input.getUnlSentence());
         createAndCheckUnlParserValidity(unlFactory);
     }
 
     @ParameterizedTest
     @ArgumentsSource(SentenceWithExpectedDotArgumentProvider.class)
-    void UnlDocumentsShouldBeSerializedToStringWithoutException(SentenceWithExpectedDotChecker input){
+    void UnlDocumentsShouldBeSerializedToStringWithoutException(SentenceWithExpectedDotChecker input) {
         UnlParserFactory unlFactory = new UnlParserFactoryFromString(input.getUnlSentence());
         WrapperUnlParser wrapper = createAndCheckUnlParserValidity(unlFactory);
 
-        for(UnlDocument unlDocument : wrapper.getUnlDocumentList()){
+        for (UnlDocument unlDocument : wrapper.getUnlDocumentList()) {
             AtomicReference<String> stringOfUnlDocument = new AtomicReference<>();
             Assertions.assertDoesNotThrow(() -> stringOfUnlDocument.set(unlDocument.toString()));
         }
@@ -32,12 +32,13 @@ class UnlParserTest {
 
     /**
      * Check validity of parser:
-     *     - It checks the creation of parser
-     *     - It checks the content of document doesn't contain an error
+     * - It checks the creation of parser
+     * - It checks the content of document doesn't contain an error
+     *
      * @param factory A factory of UnlParser
      * @return An unlParserWrapper
      */
-    WrapperUnlParser createAndCheckUnlParserValidity(UnlParserFactory factory){
+    WrapperUnlParser createAndCheckUnlParserValidity(UnlParserFactory factory) {
         AtomicReference<WrapperUnlParser> unlParser = new AtomicReference<>();
 
         Assertions.assertDoesNotThrow(() -> unlParser.set(factory.create()), "");
diff --git a/unl-parser/src/test/java/unl/parser/WrapperUnlParser.java b/unl-parser/src/test/java/fr/tetras_libre/unltools/unl/parser/WrapperUnlParser.java
similarity index 80%
rename from unl-parser/src/test/java/unl/parser/WrapperUnlParser.java
rename to unl-parser/src/test/java/fr/tetras_libre/unltools/unl/parser/WrapperUnlParser.java
index a3b6cd3..054fa22 100644
--- a/unl-parser/src/test/java/unl/parser/WrapperUnlParser.java
+++ b/unl-parser/src/test/java/fr/tetras_libre/unltools/unl/parser/WrapperUnlParser.java
@@ -1,12 +1,13 @@
-package unl.parser;
+package fr.tetras_libre.unltools.unl.parser;
+
+import fr.tetras_libre.unltools.unl.UnlDocument;
 
-import unl.UnlDocument;
 import java.util.Vector;
 
 public class WrapperUnlParser {
+    private final UnlParser parser;
     private Vector<UnlDocument> documents;
     private ErrorCollection errors;
-    private final UnlParser parser;
 
     public WrapperUnlParser(java.io.Reader stream) {
         this.parser = new UnlParser(stream);
@@ -19,7 +20,7 @@ public class WrapperUnlParser {
         return this.documents;
     }
 
-    private void initializeIfNecessary(){
+    private void initializeIfNecessary() {
         if (null == this.documents) {
             initialize();
         }
@@ -29,8 +30,8 @@ public class WrapperUnlParser {
         this.errors = new ErrorCollection(false);
         try {
             this.documents = this.parser.createUnlDocumentList();
-            for (UnlDocument document: this.documents) {
-                if(document.HasError()) {
+            for (UnlDocument document : this.documents) {
+                if (document.HasError()) {
                     this.errors.addError(document.getError());
                 }
             }
@@ -50,12 +51,12 @@ public class WrapperUnlParser {
         }
     }
 
-    public boolean hasError(){
+    public boolean hasError() {
         initializeIfNecessary();
         return errors.hasError;
     }
 
-    public Vector<String> getErrors(){
+    public Vector<String> getErrors() {
         initializeIfNecessary();
         return errors.errors;
     }
@@ -69,10 +70,9 @@ public class WrapperUnlParser {
             errors = new Vector<>();
         }
 
-        public void addError(String error){
+        public void addError(String error) {
             hasError = true;
-            if (!this.errors.contains(error))
-            {
+            if (!this.errors.contains(error)) {
                 this.errors.add(error);
             }
         }
diff --git a/unl-parser/src/test/java/unl/print/dotFile/DotFileBuilderTest.java b/unl-parser/src/test/java/fr/tetras_libre/unltools/unl/print/dotFile/DotFileBuilderTest.java
similarity index 95%
rename from unl-parser/src/test/java/unl/print/dotFile/DotFileBuilderTest.java
rename to unl-parser/src/test/java/fr/tetras_libre/unltools/unl/print/dotFile/DotFileBuilderTest.java
index b192cf9..3ec313b 100644
--- a/unl-parser/src/test/java/unl/print/dotFile/DotFileBuilderTest.java
+++ b/unl-parser/src/test/java/fr/tetras_libre/unltools/unl/print/dotFile/DotFileBuilderTest.java
@@ -1,11 +1,11 @@
-package unl.print.dotFile;
+package fr.tetras_libre.unltools.unl.print.dotFile;
 
+import fr.tetras_libre.unltools.unl.*;
+import fr.tetras_libre.unltools.unl.parser.UnlParser;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.TestReporter;
 import org.junit.jupiter.api.io.TempDir;
-import unl.*;
-import unl.parser.UnlParser;
 
 import java.io.*;
 import java.nio.charset.StandardCharsets;
diff --git a/unl2rdf-app/src/main/java/unl2rdf/Unl2Rdf.java b/unl2rdf-app/src/main/java/unl2rdf/Unl2Rdf.java
index b2febff..fb796a3 100644
--- a/unl2rdf-app/src/main/java/unl2rdf/Unl2Rdf.java
+++ b/unl2rdf-app/src/main/java/unl2rdf/Unl2Rdf.java
@@ -1,13 +1,12 @@
 package unl2rdf;
 
 import fr.tetras_libre.unltools.rdf.vocabulary.RdfFileBuilder;
+import fr.tetras_libre.unltools.unl.GraphExporter;
+import fr.tetras_libre.unltools.unl.UnlDocument;
+import fr.tetras_libre.unltools.unl.parser.ParseException;
+import fr.tetras_libre.unltools.unl.parser.UnlParser;
+import fr.tetras_libre.unltools.unl.print.dotFile.DotFileBuilder;
 import picocli.CommandLine;
-import unl.GraphExporter;
-import unl.UnlDocument;
-import unl.UnlDocumentNode;
-import unl.parser.ParseException;
-import unl.parser.UnlParser;
-import unl.print.dotFile.DotFileBuilder;
 
 import java.io.BufferedReader;
 import java.io.FileWriter;
@@ -22,7 +21,7 @@ public class Unl2Rdf {
         try {
             CommandLine.ParseResult parseResult = new CommandLine(options).parseArgs(args);
 
-            if(!CommandLine.printHelpIfRequested(parseResult)){
+            if (!CommandLine.printHelpIfRequested(parseResult)) {
                 runProgram(options);
             }
         } catch (CommandLine.ParameterException e) {
-- 
GitLab