From 94f6eb70e41ca9afe8cce6d0358136a778bbdff0 Mon Sep 17 00:00:00 2001 From: Florian Kleedorfer Date: Wed, 18 Dec 2024 18:02:41 +0100 Subject: [PATCH 1/4] Adds Quantitykind constants for qks that live in the currency file --- .../qudtlib/constgen/ConstantsGenerator.java | 8 ++++++-- .../io/github/qudtlib/data/DataGenerator.java | 3 +++ .../src/main/resources/delete-units.rq | 17 +++++++++++++++++ .../src/main/resources/template/units.ts.ftl | 4 ++++ 4 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 qudtlib-data-gen/src/main/resources/delete-units.rq diff --git a/qudtlib-constants-gen/src/main/java/io/github/qudtlib/constgen/ConstantsGenerator.java b/qudtlib-constants-gen/src/main/java/io/github/qudtlib/constgen/ConstantsGenerator.java index a8db622f..4021be9e 100644 --- a/qudtlib-constants-gen/src/main/java/io/github/qudtlib/constgen/ConstantsGenerator.java +++ b/qudtlib-constants-gen/src/main/java/io/github/qudtlib/constgen/ConstantsGenerator.java @@ -30,6 +30,7 @@ public class ConstantsGenerator { // input data private static final String DATA_UNITS = "qudtlib/qudt-units.ttl"; private static final String DATA_QUANTITYKINDS = "qudtlib/qudt-quantitykinds.ttl"; + private static final String DATA_CURRENCY = "qudtlib/qudt-currency.ttl"; private static final String DATA_PREFIXES = "qudtlib/qudt-prefixes.ttl"; private static final String DATA_SYSTEMS_OF_UNITS = "qudtlib/qudt-systems-of-units.ttl"; private static final String DATA_PHYSICAL_CONSTANTS = "qudtlib/qudt-constants.ttl"; @@ -109,12 +110,15 @@ private void generatePhysicalConstantConstants(Configuration config) generateJavaFile(config, templateVars, "PhysicalConstant", "PhysicalConstants"); } - private Map getConstantNamesByQuery(String queryFile, String dataFile) { + private Map getConstantNamesByQuery(String queryFile, String... dataFiles) { String queryStr = RdfOps.loadQuery(queryFile); Repository repo = new SailRepository(new MemoryStore()); Map templateVars = new HashMap<>(); try (RepositoryConnection con = repo.getConnection()) { - RdfOps.addStatementsFromFile(con, dataFile); + for (int i = 0; i < dataFiles.length; i++) { + String dataFile = dataFiles[i]; + RdfOps.addStatementsFromFile(con, dataFile); + } TupleQuery query; try { query = con.prepareTupleQuery(queryStr); diff --git a/qudtlib-data-gen/src/main/java/io/github/qudtlib/data/DataGenerator.java b/qudtlib-data-gen/src/main/java/io/github/qudtlib/data/DataGenerator.java index 512e95b5..a46ef2ba 100644 --- a/qudtlib-data-gen/src/main/java/io/github/qudtlib/data/DataGenerator.java +++ b/qudtlib-data-gen/src/main/java/io/github/qudtlib/data/DataGenerator.java @@ -48,6 +48,7 @@ public class DataGenerator { private static final String IS_SCALING_OF_QUERY = "isScalingOf.rq"; private static final String MISSING_UNITS_QUERY = "missing-units.rq"; private static final String DELETE_KILOGM_SCALINGS_QUERY = "delete-kiloGM-scalings.rq"; + private static final String DELETE_UNITS_QUERY = "delete-units.rq"; private static final String DELETE_FROM_UNITS_BY_QUERY_PATTERN = "delete-from-units-by-query[N].rq"; @@ -136,6 +137,8 @@ private void processQuantityKinds() { Repository outputRepo = new SailRepository(new MemoryStore()); try (RepositoryConnection outputCon = outputRepo.getConnection()) { RdfOps.addStatementsFromFile(outputCon, QUANTITYKINDS_FILE); + RdfOps.addStatementsFromFile(outputCon, CURRENCIES_FILE); + RdfOps.updateDataUsingQuery(outputCon, DELETE_UNITS_QUERY); // remove unwanted individual triples RdfOps.updateDataUsingNQueries( outputCon, DELETE_FROM_QUANTITYKINDS_BY_QUERY_PATTERN, 5); diff --git a/qudtlib-data-gen/src/main/resources/delete-units.rq b/qudtlib-data-gen/src/main/resources/delete-units.rq new file mode 100644 index 00000000..a93a4cfa --- /dev/null +++ b/qudtlib-data-gen/src/main/resources/delete-units.rq @@ -0,0 +1,17 @@ +PREFIX qudt: +PREFIX unit: +PREFIX prefix: +PREFIX kind: +PREFIX rdfs: + +DELETE { + ?unit ?p ?o. +} +where +{ + ?unit a qudt:Unit; + ?p ?o . +} + + + diff --git a/qudtlib-js-gen/src/main/resources/template/units.ts.ftl b/qudtlib-js-gen/src/main/resources/template/units.ts.ftl index ebbb29f2..6c119d17 100644 --- a/qudtlib-js-gen/src/main/resources/template/units.ts.ftl +++ b/qudtlib-js-gen/src/main/resources/template/units.ts.ftl @@ -231,6 +231,10 @@ for (const unit of config.units.values()){ for (const x of config.systemsOfUnits.values()) { Object.freeze(x); } + config.indexUnitsByDimensionVector(); + for (const x of config.unitsByDimensionVector.values()) { + Object.freeze(x); + } Object.freeze(Units); Object.freeze(QuantityKinds); Object.freeze(Prefixes); From 30afd52932c30ab3beae39e50718e2b582bbf378 Mon Sep 17 00:00:00 2001 From: Florian Kleedorfer Date: Wed, 18 Dec 2024 18:09:04 +0100 Subject: [PATCH 2/4] Update CHANGELOG.md --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 002f5cbf..58e2dfb4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Fixed + +- Add quantitykind constants for those quantitykinds that are defined in the currency file in QUDT. + ## [6.8.0] - 2024-12-11 ### Added From 30dd642f46a9ab53c189d9176b8c13b4b69ff9dd Mon Sep 17 00:00:00 2001 From: Florian Kleedorfer Date: Wed, 18 Dec 2024 18:10:24 +0100 Subject: [PATCH 3/4] Update qudtlib.js reference --- qudtlib-js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qudtlib-js b/qudtlib-js index 94d0c8ad..b4095483 160000 --- a/qudtlib-js +++ b/qudtlib-js @@ -1 +1 @@ -Subproject commit 94d0c8ad483b8956c6b0d5cd2367de0476eb3b7f +Subproject commit b409548367584a48618f9c3d2e5eb4e6a4ec795d From 5294f11e6c6b47714644ec82d2d1f5832eca5415 Mon Sep 17 00:00:00 2001 From: Florian Kleedorfer Date: Wed, 18 Dec 2024 20:38:06 +0100 Subject: [PATCH 4/4] Update qudtlib-js reference --- qudtlib-js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qudtlib-js b/qudtlib-js index b4095483..b51b76b2 160000 --- a/qudtlib-js +++ b/qudtlib-js @@ -1 +1 @@ -Subproject commit b409548367584a48618f9c3d2e5eb4e6a4ec795d +Subproject commit b51b76b2a52e6ac2c1e90baa5d68fa5b7526468e