diff --git a/src/main/java/org/edmcouncil/rdf_toolkit/runner/RdfToolkitRunner.java b/src/main/java/org/edmcouncil/rdf_toolkit/runner/RdfToolkitRunner.java index 4463d10..ada6967 100644 --- a/src/main/java/org/edmcouncil/rdf_toolkit/runner/RdfToolkitRunner.java +++ b/src/main/java/org/edmcouncil/rdf_toolkit/runner/RdfToolkitRunner.java @@ -126,15 +126,7 @@ private void runOnFile(RdfToolkitOptions rdfToolkitOptions) throws Exception { IRI replacedPredicate = st.getPredicate(); //Replaced language serialization if (modelObject instanceof Literal) { - Optional lang = ((Literal) modelObject).getLanguage(); - if (lang.isPresent() && lang.get().contains("-")) { - String langString = lang.get(); - String[] langTab = langString.split("-"); - langTab[1] = langTab[1].toUpperCase(); - langString = String.join("-", langTab); - String label = ((Literal) modelObject).getLabel(); - modelObject = valueFactory.createLiteral(label, langString); - } + modelObject = secondPartOfLangToUpperCaseIfNotX(modelObject); } // Do any URI replacements if (isIriPatternAndIriReplacementNotNull) { @@ -220,6 +212,20 @@ private void runOnFile(RdfToolkitOptions rdfToolkitOptions) throws Exception { targetWriter.close(); } + private Value secondPartOfLangToUpperCaseIfNotX(Value modelObject) { + Optional lang = ((Literal) modelObject).getLanguage(); + if (lang.isPresent() && lang.get().contains("-")) { + String langString = lang.get(); + String[] langTab = langString.split("-"); + // Convert the second part of the language string to uppercase, except if the entire second part is 'x' + if (!langTab[1].equals("x")) { langTab[1] = langTab[1].toUpperCase(); } + langString = String.join("-", langTab); + String label = ((Literal) modelObject).getLabel(); + modelObject = valueFactory.createLiteral(label, langString); + } + return modelObject; + } + private Model readModel(RdfToolkitOptions rdfToolkitOptions) { Model sourceModel = null; try {