From bf1a5351ab8aa2d08d6a41adf6c88fe7dcd8904a Mon Sep 17 00:00:00 2001 From: anquetil Date: Tue, 9 Sep 2025 17:49:42 +0200 Subject: [PATCH 1/7] small optimization of RdfDataLoader.loadFromInputStream --- .../utils/loader/rdf/RdfDataLoader.java | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/main/java/fr/inria/corese/command/utils/loader/rdf/RdfDataLoader.java b/src/main/java/fr/inria/corese/command/utils/loader/rdf/RdfDataLoader.java index aa6fd8c80..0ab3abd71 100644 --- a/src/main/java/fr/inria/corese/command/utils/loader/rdf/RdfDataLoader.java +++ b/src/main/java/fr/inria/corese/command/utils/loader/rdf/RdfDataLoader.java @@ -233,21 +233,21 @@ private Graph loadFromDirectory(Path path, EnumRdfInputFormat inputFormat, boole */ private Graph loadFromInputStream(InputStream inputStream, EnumRdfInputFormat inputFormat) { - Graph graph = Graph.create(); - Load load = Load.create(graph); - if (inputFormat == null) { throw new IllegalArgumentException( "The input format cannot be automatically determined if you use standard input or na URL. " + "Please specify the input format with the option -f."); - } else { - try { - load.parse(inputStream, inputFormat.getCoreseFormat()); - return graph; - } catch (Exception e) { - throw new IllegalArgumentException("Failed to parse RDF file. Check if file is well-formed and that " - + "the input format is correct. " + e.getMessage(), e); - } + } + + Graph graph = Graph.create(); + Load load = Load.create(graph); + + try { + load.parse(inputStream, inputFormat.getCoreseFormat()); + return graph; + } catch (Exception e) { + throw new IllegalArgumentException("Failed to parse RDF file. Check if file is well-formed and that " + + "the input format is correct. " + e.getMessage(), e); } } From e216ecc0a693e75ab84adaab525f11fd3989bc37 Mon Sep 17 00:00:00 2001 From: anquetil Date: Tue, 9 Sep 2025 17:57:58 +0200 Subject: [PATCH 2/7] wrapping call to Load.create(Graph) --- .../coreseCoreWrapper/RDFLoaderWrapper.java | 16 ++++++++++++++++ .../command/utils/loader/rdf/RdfDataLoader.java | 5 ++++- 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 src/main/java/fr/inria/corese/command/utils/coreseCoreWrapper/RDFLoaderWrapper.java diff --git a/src/main/java/fr/inria/corese/command/utils/coreseCoreWrapper/RDFLoaderWrapper.java b/src/main/java/fr/inria/corese/command/utils/coreseCoreWrapper/RDFLoaderWrapper.java new file mode 100644 index 000000000..833298cdb --- /dev/null +++ b/src/main/java/fr/inria/corese/command/utils/coreseCoreWrapper/RDFLoaderWrapper.java @@ -0,0 +1,16 @@ +package fr.inria.corese.command.utils.coreseCoreWrapper; + + +import fr.inria.corese.core.Graph; +import fr.inria.corese.core.load.Load; + +/** A class to gather all dependencies to Corese-core in one place + * This one is for everything related to RDFLoading + */ +public class RDFLoaderWrapper { + + public static Load graphLoader(Graph graph) { + return Load.create(graph); + } + +} \ No newline at end of file diff --git a/src/main/java/fr/inria/corese/command/utils/loader/rdf/RdfDataLoader.java b/src/main/java/fr/inria/corese/command/utils/loader/rdf/RdfDataLoader.java index 0ab3abd71..178c89414 100644 --- a/src/main/java/fr/inria/corese/command/utils/loader/rdf/RdfDataLoader.java +++ b/src/main/java/fr/inria/corese/command/utils/loader/rdf/RdfDataLoader.java @@ -12,6 +12,9 @@ import fr.inria.corese.command.utils.ConvertString; import fr.inria.corese.command.utils.InputTypeDetector; import fr.inria.corese.command.utils.InputTypeDetector.InputType; + +import fr.inria.corese.command.utils.coreseCoreWrapper.GraphWrapper; +import fr.inria.corese.command.utils.coreseCoreWrapper.RDFLoaderWrapper; import fr.inria.corese.core.Graph; import fr.inria.corese.core.load.Load; import fr.inria.corese.core.load.LoadFormat; @@ -240,7 +243,7 @@ private Graph loadFromInputStream(InputStream inputStream, EnumRdfInputFormat in } Graph graph = Graph.create(); - Load load = Load.create(graph); + Load load = RDFLoaderWrapper.graphLoader(graph); try { load.parse(inputStream, inputFormat.getCoreseFormat()); From b191891ea2ec9008d2f7a17d7c0043021ed9a6ea Mon Sep 17 00:00:00 2001 From: anquetil Date: Tue, 9 Sep 2025 18:00:42 +0200 Subject: [PATCH 3/7] wrapping call to Load.parse(InputStream,Load.format) --- .../command/utils/coreseCoreWrapper/RDFLoaderWrapper.java | 6 ++++++ .../corese/command/utils/loader/rdf/RdfDataLoader.java | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/fr/inria/corese/command/utils/coreseCoreWrapper/RDFLoaderWrapper.java b/src/main/java/fr/inria/corese/command/utils/coreseCoreWrapper/RDFLoaderWrapper.java index 833298cdb..4578b0efb 100644 --- a/src/main/java/fr/inria/corese/command/utils/coreseCoreWrapper/RDFLoaderWrapper.java +++ b/src/main/java/fr/inria/corese/command/utils/coreseCoreWrapper/RDFLoaderWrapper.java @@ -1,8 +1,10 @@ package fr.inria.corese.command.utils.coreseCoreWrapper; +import java.io.InputStream; import fr.inria.corese.core.Graph; import fr.inria.corese.core.load.Load; +import fr.inria.corese.core.load.LoadException; /** A class to gather all dependencies to Corese-core in one place * This one is for everything related to RDFLoading @@ -13,4 +15,8 @@ public static Load graphLoader(Graph graph) { return Load.create(graph); } + public static void parse(Load loader, InputStream inputStream, Load.format inputFormat) throws LoadException { + loader.parse(inputStream, inputFormat); + } + } \ No newline at end of file diff --git a/src/main/java/fr/inria/corese/command/utils/loader/rdf/RdfDataLoader.java b/src/main/java/fr/inria/corese/command/utils/loader/rdf/RdfDataLoader.java index 178c89414..391fbf8ee 100644 --- a/src/main/java/fr/inria/corese/command/utils/loader/rdf/RdfDataLoader.java +++ b/src/main/java/fr/inria/corese/command/utils/loader/rdf/RdfDataLoader.java @@ -246,7 +246,7 @@ private Graph loadFromInputStream(InputStream inputStream, EnumRdfInputFormat in Load load = RDFLoaderWrapper.graphLoader(graph); try { - load.parse(inputStream, inputFormat.getCoreseFormat()); + RDFLoaderWrapper.parse( load, inputStream, inputFormat.getCoreseFormat()); return graph; } catch (Exception e) { throw new IllegalArgumentException("Failed to parse RDF file. Check if file is well-formed and that " From 736892d3fc8a1148769237f53c92a146ea56430f Mon Sep 17 00:00:00 2001 From: anquetil Date: Tue, 9 Sep 2025 18:05:32 +0200 Subject: [PATCH 4/7] wrapping call to Load.LoadFormat.getFormat(String) --- .../command/utils/coreseCoreWrapper/RDFLoaderWrapper.java | 6 ++++++ .../corese/command/utils/loader/rdf/RdfDataLoader.java | 3 +-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/fr/inria/corese/command/utils/coreseCoreWrapper/RDFLoaderWrapper.java b/src/main/java/fr/inria/corese/command/utils/coreseCoreWrapper/RDFLoaderWrapper.java index 4578b0efb..44e0f05e4 100644 --- a/src/main/java/fr/inria/corese/command/utils/coreseCoreWrapper/RDFLoaderWrapper.java +++ b/src/main/java/fr/inria/corese/command/utils/coreseCoreWrapper/RDFLoaderWrapper.java @@ -3,8 +3,10 @@ import java.io.InputStream; import fr.inria.corese.core.Graph; +import fr.inria.corese.core.api.Loader; import fr.inria.corese.core.load.Load; import fr.inria.corese.core.load.LoadException; +import fr.inria.corese.core.load.LoadFormat; /** A class to gather all dependencies to Corese-core in one place * This one is for everything related to RDFLoading @@ -15,6 +17,10 @@ public static Load graphLoader(Graph graph) { return Load.create(graph); } + public static Loader.format getLoadFormat(String input) { + return LoadFormat.getFormat(input); + } + public static void parse(Load loader, InputStream inputStream, Load.format inputFormat) throws LoadException { loader.parse(inputStream, inputFormat); } diff --git a/src/main/java/fr/inria/corese/command/utils/loader/rdf/RdfDataLoader.java b/src/main/java/fr/inria/corese/command/utils/loader/rdf/RdfDataLoader.java index 391fbf8ee..97a2d8ec4 100644 --- a/src/main/java/fr/inria/corese/command/utils/loader/rdf/RdfDataLoader.java +++ b/src/main/java/fr/inria/corese/command/utils/loader/rdf/RdfDataLoader.java @@ -13,7 +13,6 @@ import fr.inria.corese.command.utils.InputTypeDetector; import fr.inria.corese.command.utils.InputTypeDetector.InputType; -import fr.inria.corese.command.utils.coreseCoreWrapper.GraphWrapper; import fr.inria.corese.command.utils.coreseCoreWrapper.RDFLoaderWrapper; import fr.inria.corese.core.Graph; import fr.inria.corese.core.load.Load; @@ -262,7 +261,7 @@ private Graph loadFromInputStream(InputStream inputStream, EnumRdfInputFormat in */ private Optional guessInputFormat(String input) { - EnumRdfInputFormat inputFormat = EnumRdfInputFormat.create(LoadFormat.getFormat(input)); + EnumRdfInputFormat inputFormat = EnumRdfInputFormat.create( RDFLoaderWrapper.getLoadFormat(input)); if (inputFormat == null) { if (this.verbose) { From 38f1148accce71c920b8157d6dc66060a9d4f11b Mon Sep 17 00:00:00 2001 From: anquetil Date: Tue, 9 Sep 2025 18:09:02 +0200 Subject: [PATCH 5/7] wrapping calls to Graph.create() --- .../command/utils/coreseCoreWrapper/GraphWrapper.java | 10 ++++++++++ .../command/utils/loader/rdf/RdfDataLoader.java | 11 ++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) create mode 100644 src/main/java/fr/inria/corese/command/utils/coreseCoreWrapper/GraphWrapper.java diff --git a/src/main/java/fr/inria/corese/command/utils/coreseCoreWrapper/GraphWrapper.java b/src/main/java/fr/inria/corese/command/utils/coreseCoreWrapper/GraphWrapper.java new file mode 100644 index 000000000..9fa633ac1 --- /dev/null +++ b/src/main/java/fr/inria/corese/command/utils/coreseCoreWrapper/GraphWrapper.java @@ -0,0 +1,10 @@ +package fr.inria.corese.command.utils.coreseCoreWrapper; + +import fr.inria.corese.core.Graph; + +public class GraphWrapper { + + public static Graph createGraph() { + return Graph.create(); + } +} diff --git a/src/main/java/fr/inria/corese/command/utils/loader/rdf/RdfDataLoader.java b/src/main/java/fr/inria/corese/command/utils/loader/rdf/RdfDataLoader.java index 97a2d8ec4..273b1888a 100644 --- a/src/main/java/fr/inria/corese/command/utils/loader/rdf/RdfDataLoader.java +++ b/src/main/java/fr/inria/corese/command/utils/loader/rdf/RdfDataLoader.java @@ -14,9 +14,10 @@ import fr.inria.corese.command.utils.InputTypeDetector.InputType; import fr.inria.corese.command.utils.coreseCoreWrapper.RDFLoaderWrapper; -import fr.inria.corese.core.Graph; import fr.inria.corese.core.load.Load; -import fr.inria.corese.core.load.LoadFormat; +import fr.inria.corese.command.utils.coreseCoreWrapper.GraphWrapper; +import fr.inria.corese.core.Graph; + import picocli.CommandLine.Model.CommandSpec; /** @@ -66,7 +67,7 @@ public Graph load(String[] inputs, EnumRdfInputFormat inputFormat, boolean recur return this.LoadFromStdin(inputFormat); } - Graph graph = Graph.create(); + Graph graph = GraphWrapper.createGraph(); for (String input : inputs) { InputType type = InputTypeDetector.detect(input); @@ -217,7 +218,7 @@ private void loadFromDirectoryRecursive(Path path, EnumRdfInputFormat inputForma * @return The Corese Graph containing the RDF data. */ private Graph loadFromDirectory(Path path, EnumRdfInputFormat inputFormat, boolean recursive) { - Graph graph = Graph.create(); + Graph graph = GraphWrapper.createGraph(); this.loadFromDirectoryRecursive(path, inputFormat, recursive, graph); if (this.verbose) { @@ -241,7 +242,7 @@ private Graph loadFromInputStream(InputStream inputStream, EnumRdfInputFormat in + "Please specify the input format with the option -f."); } - Graph graph = Graph.create(); + Graph graph = GraphWrapper.createGraph(); Load load = RDFLoaderWrapper.graphLoader(graph); try { From 91a1faa3c2fd0a06e8b9a43c43fe5e2673e65fa6 Mon Sep 17 00:00:00 2001 From: anquetil Date: Tue, 9 Sep 2025 18:11:53 +0200 Subject: [PATCH 6/7] wrapping calls to Graph.merge(Graph) --- .../command/utils/coreseCoreWrapper/GraphWrapper.java | 4 ++++ .../corese/command/utils/loader/rdf/RdfDataLoader.java | 6 +++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/main/java/fr/inria/corese/command/utils/coreseCoreWrapper/GraphWrapper.java b/src/main/java/fr/inria/corese/command/utils/coreseCoreWrapper/GraphWrapper.java index 9fa633ac1..e932c2b75 100644 --- a/src/main/java/fr/inria/corese/command/utils/coreseCoreWrapper/GraphWrapper.java +++ b/src/main/java/fr/inria/corese/command/utils/coreseCoreWrapper/GraphWrapper.java @@ -7,4 +7,8 @@ public class GraphWrapper { public static Graph createGraph() { return Graph.create(); } + + public static void mergeGraph(Graph graph, Graph resultGraphUrl) { + graph.merge(resultGraphUrl); + } } diff --git a/src/main/java/fr/inria/corese/command/utils/loader/rdf/RdfDataLoader.java b/src/main/java/fr/inria/corese/command/utils/loader/rdf/RdfDataLoader.java index 273b1888a..273cd8cdd 100644 --- a/src/main/java/fr/inria/corese/command/utils/loader/rdf/RdfDataLoader.java +++ b/src/main/java/fr/inria/corese/command/utils/loader/rdf/RdfDataLoader.java @@ -75,7 +75,7 @@ public Graph load(String[] inputs, EnumRdfInputFormat inputFormat, boolean recur switch (type) { case URL: Graph resultGraphUrl = this.loadFromURL(ConvertString.toUrlOrThrow(input), inputFormat); - graph.merge(resultGraphUrl); + GraphWrapper.mergeGraph(graph, resultGraphUrl); break; case FILE_PATH: @@ -88,7 +88,7 @@ public Graph load(String[] inputs, EnumRdfInputFormat inputFormat, boolean recur } else { resultGraph = this.loadFromFile(path, inputFormat); } - graph.merge(resultGraph); + GraphWrapper.mergeGraph(graph, resultGraph); break; default: @@ -203,7 +203,7 @@ private void loadFromDirectoryRecursive(Path path, EnumRdfInputFormat inputForma this.loadFromDirectoryRecursive(childFile.toPath(), inputFormat, recursive, graph); } else if (childFile.isFile()) { Graph resultGraph = this.loadFromFile(childFile.toPath(), inputFormat); - graph.merge(resultGraph); + GraphWrapper.mergeGraph(graph, resultGraph); } } } From 91f4a030b05e84cab146bbf9675ad53667998caf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20C=C3=A9r=C3=A8s?= Date: Thu, 11 Sep 2025 11:54:51 +0200 Subject: [PATCH 7/7] Add Javadoc to GraphWrapper and RDFLoaderWrapper classes --- .../utils/coreseCoreWrapper/GraphWrapper.java | 15 ++++++++++++++ .../coreseCoreWrapper/RDFLoaderWrapper.java | 20 +++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/src/main/java/fr/inria/corese/command/utils/coreseCoreWrapper/GraphWrapper.java b/src/main/java/fr/inria/corese/command/utils/coreseCoreWrapper/GraphWrapper.java index e932c2b75..8033fb86b 100644 --- a/src/main/java/fr/inria/corese/command/utils/coreseCoreWrapper/GraphWrapper.java +++ b/src/main/java/fr/inria/corese/command/utils/coreseCoreWrapper/GraphWrapper.java @@ -2,12 +2,27 @@ import fr.inria.corese.core.Graph; +/** + * A wrapper class for Corese Graph operations. + * This class provides static methods to create and manipulate Graph instances. + */ public class GraphWrapper { + /** + * Creates a new empty Graph instance. + * + * @return a new Graph object + */ public static Graph createGraph() { return Graph.create(); } + /** + * Merges the contents of the resultGraphUrl into the given graph. + * + * @param graph the graph to merge into + * @param resultGraphUrl the graph whose contents are to be merged + */ public static void mergeGraph(Graph graph, Graph resultGraphUrl) { graph.merge(resultGraphUrl); } diff --git a/src/main/java/fr/inria/corese/command/utils/coreseCoreWrapper/RDFLoaderWrapper.java b/src/main/java/fr/inria/corese/command/utils/coreseCoreWrapper/RDFLoaderWrapper.java index 44e0f05e4..67f703784 100644 --- a/src/main/java/fr/inria/corese/command/utils/coreseCoreWrapper/RDFLoaderWrapper.java +++ b/src/main/java/fr/inria/corese/command/utils/coreseCoreWrapper/RDFLoaderWrapper.java @@ -13,14 +13,34 @@ */ public class RDFLoaderWrapper { + /** + * Creates a Load instance for the given graph. + * + * @param graph the graph to load data into + * @return a Load instance + */ public static Load graphLoader(Graph graph) { return Load.create(graph); } + /** + * Determines the load format from the input string. + * + * @param input the input string representing the format + * @return the corresponding Loader.format + */ public static Loader.format getLoadFormat(String input) { return LoadFormat.getFormat(input); } + /** + * Parses RDF data from an InputStream into the given Load instance using the specified format. + * + * @param loader the Load instance to use for parsing + * @param inputStream the InputStream containing RDF data + * @param inputFormat the format of the RDF data + * @throws LoadException if an error occurs during parsing + */ public static void parse(Load loader, InputStream inputStream, Load.format inputFormat) throws LoadException { loader.parse(inputStream, inputFormat); }