From 43c1e827a36913821d7043cab81e03a6e88b1c87 Mon Sep 17 00:00:00 2001 From: Daniil Palagin Date: Wed, 18 Sep 2024 13:03:09 +0200 Subject: [PATCH] [#274] Add loadManualConfiguration and refactor all modules --- .../cvut/spipes/modules/AbstractModule.java | 1 + .../modules/AnnotatedAbstractModule.java | 3 ++ .../java/cz/cvut/spipes/modules/Module.java | 2 + .../cvut/spipes/modules/ImportE5XModule.java | 20 +--------- .../cz/cvut/spipes/modules/SUTimeModule.java | 21 +--------- .../cvut/spipes/modules/SUTimeModuleNew.java | 38 +++++-------------- .../modules/Rdf4jCreateRepositoryModule.java | 15 ++------ .../spipes/modules/Rdf4jDeployModule.java | 23 +++-------- .../spipes/modules/Rdf4jUpdateModule.java | 12 ++---- .../modules/ApplyConstructV2Module.java | 2 +- ...hunkedValuesAndScrollableCursorModule.java | 7 +--- ...ApplyConstructWithChunkedValuesModule.java | 5 +-- ...lyConstructWithScrollableCursorModule.java | 4 +- .../ImproveSPOWithMarginalsModule.java | 6 +-- .../cz/cvut/spipes/modules/TabularModule.java | 19 ++++------ .../cz/cvut/spipes/modules/TarqlModule.java | 22 ++--------- .../spipes/modules/TextAnalysisModule.java | 3 +- 17 files changed, 49 insertions(+), 154 deletions(-) diff --git a/s-pipes-core/src/main/java/cz/cvut/spipes/modules/AbstractModule.java b/s-pipes-core/src/main/java/cz/cvut/spipes/modules/AbstractModule.java index 8bf714df2..6bcd10764 100644 --- a/s-pipes-core/src/main/java/cz/cvut/spipes/modules/AbstractModule.java +++ b/s-pipes-core/src/main/java/cz/cvut/spipes/modules/AbstractModule.java @@ -71,6 +71,7 @@ public abstract class AbstractModule implements Module { public ExecutionContext execute() { loadModuleFlags(); loadConfiguration(); + loadManualConfiguration(); loadModuleConstraints(); String inputModelFilePath = null; if (AuditConfig.isEnabled() || isInDebugMode) { diff --git a/s-pipes-core/src/main/java/cz/cvut/spipes/modules/AnnotatedAbstractModule.java b/s-pipes-core/src/main/java/cz/cvut/spipes/modules/AnnotatedAbstractModule.java index ee680b8d5..a8690d265 100644 --- a/s-pipes-core/src/main/java/cz/cvut/spipes/modules/AnnotatedAbstractModule.java +++ b/s-pipes-core/src/main/java/cz/cvut/spipes/modules/AnnotatedAbstractModule.java @@ -54,4 +54,7 @@ public void loadConfiguration() { handler.setValueByProperty(ResourceFactory.createProperty(p.iri())); } } + + @Override + public void loadManualConfiguration(){} } diff --git a/s-pipes-core/src/main/java/cz/cvut/spipes/modules/Module.java b/s-pipes-core/src/main/java/cz/cvut/spipes/modules/Module.java index 09a199786..fdc73578d 100644 --- a/s-pipes-core/src/main/java/cz/cvut/spipes/modules/Module.java +++ b/s-pipes-core/src/main/java/cz/cvut/spipes/modules/Module.java @@ -41,6 +41,8 @@ public interface Module { */ void loadConfiguration(); + void loadManualConfiguration(); + Resource getResource(); void setInputModules(List inputModules); diff --git a/s-pipes-modules/module-eccairs/src/main/java/cz/cvut/spipes/modules/ImportE5XModule.java b/s-pipes-modules/module-eccairs/src/main/java/cz/cvut/spipes/modules/ImportE5XModule.java index 966cb3460..923811614 100644 --- a/s-pipes-modules/module-eccairs/src/main/java/cz/cvut/spipes/modules/ImportE5XModule.java +++ b/s-pipes-modules/module-eccairs/src/main/java/cz/cvut/spipes/modules/ImportE5XModule.java @@ -43,9 +43,8 @@ public class ImportE5XModule extends AnnotatedAbstractModule { // TODO - this parameter id defined with IRI in s-pipes-modules\module.sms.ttl // TODO - we should be able to annotate directly "StreamResource e5xResource" instead - @Parameter(iri = KBSS_MODULE.has_resource_uri, comment = "Uri of a resource referencing content of an e5x file.") - private String e5xResourceUriStr; + @Parameter(iri = KBSS_MODULE.has_resource_uri, comment = "Uri of a resource referencing content of an e5x file.") StreamResource e5xResource; private boolean computeEccairsToAviationSafetyOntologyMapping = true; @@ -151,21 +150,4 @@ public String getTypeURI() { return KBSS_MODULE.uri + "import-e5x"; } - @Override - public void loadConfiguration() { - e5xResourceUriStr = getEffectiveValue(KBSS_MODULE.JENA.has_resource_uri).asLiteral().toString(); - e5xResource = getResourceByUri(e5xResourceUriStr); - } - - @NotNull - private StreamResource getResourceByUri(@NotNull String e5xResourceUriStr) { - - StreamResource res = StreamResourceRegistry.getInstance().getResourceByUrl(e5xResourceUriStr); - - if (res == null) { - throw new ResourceNotFoundException("Stream resource " + e5xResourceUriStr + " not found. "); - } - return res; - } - } diff --git a/s-pipes-modules/module-nlp/src/main/java/cz/cvut/spipes/modules/SUTimeModule.java b/s-pipes-modules/module-nlp/src/main/java/cz/cvut/spipes/modules/SUTimeModule.java index 0c400fdf1..93399d793 100644 --- a/s-pipes-modules/module-nlp/src/main/java/cz/cvut/spipes/modules/SUTimeModule.java +++ b/s-pipes-modules/module-nlp/src/main/java/cz/cvut/spipes/modules/SUTimeModule.java @@ -30,7 +30,7 @@ @Slf4j @SPipesModule(label = "temporal v0.1", comment = "Annotate temporal expressions in literals in input model.") -public class SUTimeModule extends AbstractModule { +public class SUTimeModule extends AnnotatedAbstractModule { public static final String TYPE_URI = KBSS_MODULE.uri + "temporal-v0.1"; @@ -40,7 +40,6 @@ public class SUTimeModule extends AbstractModule { @Parameter(iri = DescriptorModel.has_document_date, comment = "Document date format.") // TODO - revise comment private String documentDate; // TODO support other formats ? - public SUTimeModule() { } @@ -49,17 +48,6 @@ public String getTypeURI() { return TYPE_URI; } - @Override - public void loadConfiguration() { - - if (this.resource.getProperty(DescriptorModel.JENA.has_document_date) != null) { // TODO set current date if not specified - documentDate = getEffectiveValue(DescriptorModel.JENA.has_document_date).asLiteral().toString(); - } - - if (this.resource.getProperty(DescriptorModel.JENA.has_rule_file) != null) { //TODO support more rule files - ruleFilePaths.add(Paths.get(getEffectiveValue(DescriptorModel.JENA.has_rule_file).asLiteral().toString())); - } - } @Override @@ -70,12 +58,8 @@ ExecutionContext executeSelf() { } private Model analyzeModel(Model m) { - - - AnnotationPipeline pipeline = loadPipeline(); - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); List temporalAnnotationStmts = new LinkedList<>(); m.listStatements() @@ -199,7 +183,4 @@ private AnnotationPipeline loadPipeline() { return pipeline; } - - - } diff --git a/s-pipes-modules/module-nlp/src/main/java/cz/cvut/spipes/modules/SUTimeModuleNew.java b/s-pipes-modules/module-nlp/src/main/java/cz/cvut/spipes/modules/SUTimeModuleNew.java index 61357ba4f..a0fde1586 100644 --- a/s-pipes-modules/module-nlp/src/main/java/cz/cvut/spipes/modules/SUTimeModuleNew.java +++ b/s-pipes-modules/module-nlp/src/main/java/cz/cvut/spipes/modules/SUTimeModuleNew.java @@ -15,6 +15,8 @@ import edu.stanford.nlp.time.TimeAnnotator; import edu.stanford.nlp.time.TimeExpression; import edu.stanford.nlp.util.CoreMap; +import lombok.Getter; +import lombok.Setter; import lombok.extern.slf4j.Slf4j; import org.apache.jena.query.Query; import org.apache.jena.query.QueryFactory; @@ -29,11 +31,15 @@ import java.nio.file.Paths; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.*; @Slf4j +@Getter +@Setter @SPipesModule(label = "temporal-v1", comment = "Module annotates input triples using NLP analysis of time using library SUTime.") -public class SUTimeModuleNew extends AbstractModule { +public class SUTimeModuleNew extends AnnotatedAbstractModule { private static final String TYPE_URI = KBSS_MODULE.uri + "temporal-v1"; private static final String TYPE_PREFIX = TYPE_URI + "/"; @@ -49,18 +55,18 @@ public class SUTimeModuleNew extends AbstractModule { private List constructQueries; @Parameter(iri = SML.replace, comment = "Replace context flag. Default value is false." ) - private boolean isReplace; + private boolean isReplace = false; @Parameter(iri = KBSS_MODULE.is_parse_text, comment = "Whether the query should be taken from sp:text property instead of from SPIN serialization," + " default is true.") - private boolean parseText; + private boolean parseText = true; @Parameter(iri = DescriptorModel.has_rule_file, comment = "Rule file, multivalued.")// TODO - review comment private List ruleFilePaths = new LinkedList<>(); @Parameter(iri = DescriptorModel.has_document_date, comment = "Document date format.")// TODO - review comment - private String documentDate; // TODO support other formats ? + private String documentDate = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); // TODO support other formats ? private AnnotationPipeline pipeline; public SUTimeModuleNew() { @@ -72,30 +78,6 @@ public String getTypeURI() { return TYPE_URI; } - public int getPageSize() { - return pageSize; - } - - public void setPageSize(int pageSize) { - this.pageSize = pageSize; - } - - @Override - public void loadConfiguration() { - if (this.resource.getProperty(DescriptorModel.JENA.has_document_date) != null) { // TODO set current date if not specified - documentDate = getEffectiveValue(DescriptorModel.JENA.has_document_date).asLiteral().toString(); - } - - if (this.resource.getProperty(DescriptorModel.JENA.has_rule_file) != null) { //TODO support more rule files - ruleFilePaths.add(Paths.get(getEffectiveValue(DescriptorModel.JENA.has_rule_file).asLiteral().toString())); - } - parseText = this.getPropertyValue(KBSS_MODULE.JENA.is_parse_text, true); - pageSize = this.getPropertyValue(P_PAGE_SIZE, DEFAULT_PAGE_SIZE); - constructQueries = getResourcesByProperty(SML.JENA.constructQuery); - - isReplace = this.getPropertyValue(SML.JENA.replace, false); - } - @Override public ExecutionContext executeSelf() { diff --git a/s-pipes-modules/module-rdf4j/src/main/java/cz/cvut/spipes/modules/Rdf4jCreateRepositoryModule.java b/s-pipes-modules/module-rdf4j/src/main/java/cz/cvut/spipes/modules/Rdf4jCreateRepositoryModule.java index ca3ace885..7cc800d13 100644 --- a/s-pipes-modules/module-rdf4j/src/main/java/cz/cvut/spipes/modules/Rdf4jCreateRepositoryModule.java +++ b/s-pipes-modules/module-rdf4j/src/main/java/cz/cvut/spipes/modules/Rdf4jCreateRepositoryModule.java @@ -17,7 +17,7 @@ @Slf4j @SPipesModule(label = "rdf4j create repository", comment = "Module creates native store rdf4j repository on the given server with the given name.") -public class Rdf4jCreateRepositoryModule extends AbstractModule { +public class Rdf4jCreateRepositoryModule extends AnnotatedAbstractModule { private static final String TYPE_URI = KBSS_MODULE.uri + "rdf4j-create-repository"; private static final String PROPERTY_PREFIX_URI = KBSS_MODULE.uri + "rdf4j"; @@ -34,8 +34,9 @@ public class Rdf4jCreateRepositoryModule extends AbstractModule { @Parameter(iri = PROPERTY_PREFIX_URI + "/" + "p-rdf4j-ignore-if-exists", comment = "Don't try to create new repository if it already exists (Default value is false)") - private boolean rdf4jIgnoreIfExists; + private boolean rdf4jIgnoreIfExists = false; + @Parameter(iri = PROPERTY_PREFIX_URI + "/" + "p-rdf4j-server-url", comment = "URL of the Rdf4j server") private RepositoryManager repositoryManager; public String getRdf4jServerURL() { @@ -101,15 +102,7 @@ public String getTypeURI() { } @Override - public void loadConfiguration() { - rdf4jServerURL = getEffectiveValue(P_RDF4J_SERVER_URL).asLiteral().getString(); - rdf4jRepositoryName = getEffectiveValue(P_RDF4J_REPOSITORY_NAME).asLiteral().getString(); - try { - rdf4jIgnoreIfExists = (Objects.equals(getEffectiveValue(P_RDF4J_IGNORE_IF_EXISTS).asLiteral().getString(), "true")); - } - catch (NullPointerException e){ - rdf4jIgnoreIfExists = false; - } + public void loadManualConfiguration() { repositoryManager = new RemoteRepositoryManager(rdf4jServerURL); } } diff --git a/s-pipes-modules/module-rdf4j/src/main/java/cz/cvut/spipes/modules/Rdf4jDeployModule.java b/s-pipes-modules/module-rdf4j/src/main/java/cz/cvut/spipes/modules/Rdf4jDeployModule.java index eaf7f988b..5a1168a0c 100644 --- a/s-pipes-modules/module-rdf4j/src/main/java/cz/cvut/spipes/modules/Rdf4jDeployModule.java +++ b/s-pipes-modules/module-rdf4j/src/main/java/cz/cvut/spipes/modules/Rdf4jDeployModule.java @@ -40,7 +40,7 @@ "Module deploys content of input execution context into default context of repository (if p-rdf4j-context-iri " + "is not specified) or concrete context (if p-rdf4j-context-iri is specified)." ) -public class Rdf4jDeployModule extends AbstractModule { +public class Rdf4jDeployModule extends AnnotatedAbstractModule { private final static String TYPE_URI = KBSS_MODULE.uri + "deploy"; private final static String PROPERTY_PREFIX_URI = KBSS_MODULE.uri + "rdf4j"; @@ -66,8 +66,8 @@ private static Property getParameter(final String name) { @Parameter(iri = PROPERTY_PREFIX_URI + "/" + "p-rdf4j-infer-context-iris", comment = "IRI of contexts is inferred from annotated input triples. Only reified triples that contain triple " + "?reifiedStatement kbss-module:is-part-of-graph ?graph are processed." + - " Actual triples related to reified statement are not processed/needed.") - private boolean inferContextIRIs; + " Actual triples related to reified statement are not processed/needed. Default is false.") + private boolean inferContextIRIs = false; static final Property P_RDF4J_REPOSITORY_USERNAME = getParameter("p-rdf4j-secured-username-variable"); @Parameter(iri = PROPERTY_PREFIX_URI + "/" + "p-rdf4j-secured-username-variable", comment = "User name if the repository requires authentication.") @@ -89,7 +89,7 @@ public void setRepositoryManager(RepositoryManager repositoryManager) { @Parameter(iri = PROPERTY_PREFIX_URI + "/" + "p-is-replace", comment = "Whether data should be replaced (true) / appended (false) into the specified context or repository.\n" + "Default is false.") - private boolean isReplaceContext; + private boolean isReplaceContext = false; public String getRdf4jServerURL() { return rdf4jServerURL; @@ -238,19 +238,7 @@ public String getTypeURI() { } @Override - public void loadConfiguration() { - rdf4jServerURL = getEffectiveValue(P_RDF4J_SERVER_URL).asLiteral().getString(); - rdf4jRepositoryName = getEffectiveValue(P_RDF4J_REPOSITORY_NAME).asLiteral().getString(); - if (this.getPropertyValue(P_RDF4J_CONTEXT_IRI) != null) { - rdf4jContextIRI = getEffectiveValue(P_RDF4J_CONTEXT_IRI).asLiteral().getString(); - } - isReplaceContext = this.getPropertyValue(P_IS_REPLACE_CONTEXT_IRI, false); - rdf4jSecuredUsernameVariable = Optional.ofNullable( - getEffectiveValue(P_RDF4J_REPOSITORY_USERNAME)).map(n -> n.asLiteral().getString() - ).orElse(null); - rdf4jSecuredPasswordVariable = Optional.ofNullable( - getEffectiveValue(P_RDF4J_REPOSITORY_PASSWORD)).map(n -> n.asLiteral().getString() - ).orElse(null); + public void loadManualConfiguration() { if (repositoryManager != null && rdf4jServerURL != null) { throw new ModuleConfigurationInconsistentException( "Repository manager is already initialized. Trying to override its configuration from RDF."); @@ -263,7 +251,6 @@ public void loadConfiguration() { remoteRepositoryManager.setUsernameAndPassword(username, password); } repository = repositoryManager.getRepository(rdf4jRepositoryName); - inferContextIRIs = getPropertyValue(P_RDF4J_INFER_CONTEXT_IRIS,false); log.debug("Inferring contexts from annotated input triples."); } private static @Nullable String getConfigurationVariable(String variableName) { diff --git a/s-pipes-modules/module-rdf4j/src/main/java/cz/cvut/spipes/modules/Rdf4jUpdateModule.java b/s-pipes-modules/module-rdf4j/src/main/java/cz/cvut/spipes/modules/Rdf4jUpdateModule.java index b72dd2cbb..39b2d4697 100644 --- a/s-pipes-modules/module-rdf4j/src/main/java/cz/cvut/spipes/modules/Rdf4jUpdateModule.java +++ b/s-pipes-modules/module-rdf4j/src/main/java/cz/cvut/spipes/modules/Rdf4jUpdateModule.java @@ -30,7 +30,7 @@ @SPipesModule(label = "rdf4j update", comment = "Updates sparql endpoint configured in rdf4jServerURL" + " using specified list updateQueries. The list of queries can be executed multiple times specified by " + " `has-max-iteration-count` property.") -public class Rdf4jUpdateModule extends AbstractModule { +public class Rdf4jUpdateModule extends AnnotatedAbstractModule { private static final String TYPE_URI = KBSS_MODULE.uri + "rdf4j-update"; private static final String PROPERTY_PREFIX_URI = KBSS_MODULE.uri + "rdf4j"; @@ -56,13 +56,13 @@ public class Rdf4jUpdateModule extends AbstractModule { @Parameter(iri = PROPERTY_PREFIX_URI + "/" + "p-stop-iteration-on-stable-triple-count", comment = "Stops iteration (i.e. execution of list of queries) if triple count " + "in the last iteration did not change. Default is false.") - private boolean onlyIfTripleCountChanges; + private boolean onlyIfTripleCountChanges = false; @Parameter(iri = PROPERTY_PREFIX_URI + "/" + "has-max-iteration-count", comment = "Limits the number of iterations (i.e. executions of list of queries)" + " to the specified value. Default value is 1, which means that all" + " update queries are executed only once.") - private int iterationCount; + private int iterationCount = 1; private Repository updateRepository; @@ -189,11 +189,7 @@ public String getTypeURI() { } @Override - public void loadConfiguration() { - rdf4jServerURL = getEffectiveValue(P_RDF4J_SERVER_URL).asLiteral().getString(); - rdf4jRepositoryName = getEffectiveValue(P_RDF4J_REPOSITORY_NAME).asLiteral().getString(); - iterationCount = getPropertyValue(KBSS_MODULE.JENA.has_max_iteration_count,1); - onlyIfTripleCountChanges = getPropertyValue(P_RDF4J_STOP_ITERATION_ON_STABLE_TRIPLE_COUNT,false); + public void loadManualConfiguration() { log.debug("Iteration count={}\nOnlyIf...Changes={}" ,iterationCount ,onlyIfTripleCountChanges); diff --git a/s-pipes-modules/module-sparql-endpoint/src/main/java/cz/cvut/spipes/modules/ApplyConstructV2Module.java b/s-pipes-modules/module-sparql-endpoint/src/main/java/cz/cvut/spipes/modules/ApplyConstructV2Module.java index efc626f96..0b7ea4512 100644 --- a/s-pipes-modules/module-sparql-endpoint/src/main/java/cz/cvut/spipes/modules/ApplyConstructV2Module.java +++ b/s-pipes-modules/module-sparql-endpoint/src/main/java/cz/cvut/spipes/modules/ApplyConstructV2Module.java @@ -20,7 +20,7 @@ public String getTypeURI() { @Override - public void loadConfiguration() { + public void loadManualConfiguration() { super.loadConfiguration(); iterationCount = this.getPropertyValue(KBSS_MODULE.JENA.has_max_iteration_count, 1); } diff --git a/s-pipes-modules/module-sparql-endpoint/src/main/java/cz/cvut/spipes/modules/ApplyConstructWithChunkedValuesAndScrollableCursorModule.java b/s-pipes-modules/module-sparql-endpoint/src/main/java/cz/cvut/spipes/modules/ApplyConstructWithChunkedValuesAndScrollableCursorModule.java index bd6af6d4a..566bff5c6 100644 --- a/s-pipes-modules/module-sparql-endpoint/src/main/java/cz/cvut/spipes/modules/ApplyConstructWithChunkedValuesAndScrollableCursorModule.java +++ b/s-pipes-modules/module-sparql-endpoint/src/main/java/cz/cvut/spipes/modules/ApplyConstructWithChunkedValuesAndScrollableCursorModule.java @@ -106,13 +106,10 @@ protected String substituteQueryMarkers(int currentIteration, String queryStr) { @Override - public void loadConfiguration() { + public void loadManualConfiguration() { super.loadConfiguration(); + super.loadManualConfiguration(); //iterationCount = this.getPropertyValue(KBSS_MODULE.JENA.s_max_iteration_count, 1); - parseText = this.getPropertyValue(KBSS_MODULE.JENA.is_parse_text, true); - chunkSize = this.getPropertyValue(P_CHUNK_SIZE, DEFAULT_CHUNK_SIZE); - selectQuery = getPropertyValue(SML.JENA.selectQuery).asResource().as(Select.class); - pageSize = this.getPropertyValue(P_PAGE_SIZE, DEFAULT_PAGE_SIZE); } @NotNull diff --git a/s-pipes-modules/module-sparql-endpoint/src/main/java/cz/cvut/spipes/modules/ApplyConstructWithChunkedValuesModule.java b/s-pipes-modules/module-sparql-endpoint/src/main/java/cz/cvut/spipes/modules/ApplyConstructWithChunkedValuesModule.java index 437681529..85dc30e55 100644 --- a/s-pipes-modules/module-sparql-endpoint/src/main/java/cz/cvut/spipes/modules/ApplyConstructWithChunkedValuesModule.java +++ b/s-pipes-modules/module-sparql-endpoint/src/main/java/cz/cvut/spipes/modules/ApplyConstructWithChunkedValuesModule.java @@ -113,12 +113,9 @@ protected String substituteQueryMarkers(int currentIteration, String queryStr) { @Override - public void loadConfiguration() { + public void loadManualConfiguration() { super.loadConfiguration(); //iterationCount = this.getPropertyValue(KBSS_MODULE.JENA.s_max_iteration_count, 1); - parseText = this.getPropertyValue(KBSS_MODULE.JENA.is_parse_text, true); - chunkSize = this.getPropertyValue(P_CHUNK_SIZE, DEFAULT_CHUNK_SIZE); - selectQuery = getPropertyValue(SML.JENA.selectQuery).asResource().as(Select.class); } @NotNull diff --git a/s-pipes-modules/module-sparql-endpoint/src/main/java/cz/cvut/spipes/modules/ApplyConstructWithScrollableCursorModule.java b/s-pipes-modules/module-sparql-endpoint/src/main/java/cz/cvut/spipes/modules/ApplyConstructWithScrollableCursorModule.java index 915d064dd..ebe757b37 100644 --- a/s-pipes-modules/module-sparql-endpoint/src/main/java/cz/cvut/spipes/modules/ApplyConstructWithScrollableCursorModule.java +++ b/s-pipes-modules/module-sparql-endpoint/src/main/java/cz/cvut/spipes/modules/ApplyConstructWithScrollableCursorModule.java @@ -76,10 +76,8 @@ protected String substituteQueryMarkers(int currentIteration, String queryStr) { @Override - public void loadConfiguration() { + public void loadManualConfiguration() { super.loadConfiguration(); //iterationCount = this.getPropertyValue(KBSS_MODULE.JENA.s_max_iteration_count, 1); - parseText = this.getPropertyValue(KBSS_MODULE.JENA.is_parse_text, true); - pageSize = this.getPropertyValue(P_PAGE_SIZE , DEFAULT_PAGE_SIZE); } } diff --git a/s-pipes-modules/module-sparql-endpoint/src/main/java/cz/cvut/spipes/modules/ImproveSPOWithMarginalsModule.java b/s-pipes-modules/module-sparql-endpoint/src/main/java/cz/cvut/spipes/modules/ImproveSPOWithMarginalsModule.java index 28941d2c1..ef04a70de 100644 --- a/s-pipes-modules/module-sparql-endpoint/src/main/java/cz/cvut/spipes/modules/ImproveSPOWithMarginalsModule.java +++ b/s-pipes-modules/module-sparql-endpoint/src/main/java/cz/cvut/spipes/modules/ImproveSPOWithMarginalsModule.java @@ -380,12 +380,8 @@ public String getTypeURI() { } @Override - public void loadConfiguration() { + public void loadManualConfiguration() { super.loadConfiguration(); - marginalConstraint = getEffectiveStringValue(TYPE_PREFIX + "marginal-constraint"); - marginalsDefsFileUrl = getEffectiveStringValue(TYPE_PREFIX + "marginals-defs-file-url"); - marginalsFileUrl = getEffectiveStringValue(TYPE_PREFIX + "marginals-file-url"); - dataServiceUrl = getEffectiveStringValue(TYPE_PREFIX + "data-service-url"); } private @NotNull diff --git a/s-pipes-modules/module-tabular/src/main/java/cz/cvut/spipes/modules/TabularModule.java b/s-pipes-modules/module-tabular/src/main/java/cz/cvut/spipes/modules/TabularModule.java index 2467a3196..e66342a0d 100644 --- a/s-pipes-modules/module-tabular/src/main/java/cz/cvut/spipes/modules/TabularModule.java +++ b/s-pipes-modules/module-tabular/src/main/java/cz/cvut/spipes/modules/TabularModule.java @@ -96,7 +96,7 @@ * Does not support the suppress output annotation. */ @SPipesModule(label = "Tabular module", comment = "Module for converting tabular data (e.g. CSV or TSV) to RDF") -public class TabularModule extends AbstractModule { +public class TabularModule extends AnnotatedAbstractModule { public static final String TYPE_URI = KBSS_MODULE.uri + "tabular"; public static final String PARAM_URL_PREFIX = TYPE_URI + "/"; @@ -114,7 +114,7 @@ public class TabularModule extends AbstractModule { @Parameter(iri = SML.replace, comment = "Specifies whether a module should overwrite triples" + " from its predecessors. When set to true (default is false), it prevents" + " passing through triples from the predecessors.") - private boolean isReplace; + private boolean isReplace = false; @Parameter(iri = PARAM_URL_PREFIX + "source-resource-uri", comment = "URI of resource" + " that represent tabular data (e.g. resource representing CSV file).") @@ -130,13 +130,14 @@ public class TabularModule extends AbstractModule { private String dataPrefix; @Parameter(iri = PARAM_URL_PREFIX + "skip-header", comment = "Skip header. Default is false.") - private boolean skipHeader; + private boolean skipHeader = false; //:process-table-at-index /** * Required parameter for HTML and EXCEL files that indicates that only specific single table should be processed */ - private int processTableAtIndex; + @Parameter(iri = PARAM_URL_PREFIX + "process-table-at-index", comment = "Required parameter for HTML and EXCEL files that indicates that only specific single table should be processed") + private int processTableAtIndex = 0; // TODO - revise comment @Parameter(iri = PARAM_URL_PREFIX + "output-mode", comment = "Output mode. Default is standard-mode('http://onto.fel.cvut.cz/ontologies/lib/module/tabular/standard-mode)") @@ -157,7 +158,7 @@ public class TabularModule extends AbstractModule { private ResourceFormat sourceResourceFormat = ResourceFormat.PLAIN; @Parameter(iri = PARAM_URL_PREFIX + "accept-invalid-quoting", comment = "Accept invalid quoting. Default is false.") - private boolean acceptInvalidQuoting; + private boolean acceptInvalidQuoting = false; /** * Represent a group of tables. @@ -469,18 +470,12 @@ private ExecutionContext getExecutionContext(Model inputModel, Model outputModel } @Override - public void loadConfiguration() { + public void loadManualConfiguration() { sourceResourceFormat = ResourceFormat.fromString( getPropertyValue(P_SOURCE_RESOURCE_FORMAT, ResourceFormat.PLAIN.getValue()) ); delimiter = getPropertyValue(P_DELIMITER, getDefaultDelimiterSupplier(sourceResourceFormat)); - isReplace = getPropertyValue(SML.JENA.replace, false); - skipHeader = getPropertyValue(P_SKIP_HEADER, false); - processTableAtIndex = getPropertyValue(P_PROCESS_TABLE_AT_INDEX, 0); - acceptInvalidQuoting = getPropertyValue(P_ACCEPT_INVALID_QUOTING, false); quoteCharacter = getPropertyValue(P_QUOTE_CHARACTER, getDefaultQuoteCharacterSupplier(sourceResourceFormat)); - dataPrefix = getEffectiveValue(P_DATE_PREFIX).asLiteral().toString(); - sourceResource = getResourceByUri(getEffectiveValue(P_SOURCE_RESOURCE_URI).asLiteral().toString()); outputMode = Mode.fromResource( getPropertyValue(P_OUTPUT_MODE, Mode.STANDARD.getResource()) ); diff --git a/s-pipes-modules/module-tarql/src/main/java/cz/cvut/spipes/modules/TarqlModule.java b/s-pipes-modules/module-tarql/src/main/java/cz/cvut/spipes/modules/TarqlModule.java index 5d9a3d695..0079dc017 100644 --- a/s-pipes-modules/module-tarql/src/main/java/cz/cvut/spipes/modules/TarqlModule.java +++ b/s-pipes-modules/module-tarql/src/main/java/cz/cvut/spipes/modules/TarqlModule.java @@ -142,22 +142,8 @@ public String getTypeURI() { return KBSS_MODULE.uri + "tarql"; } -// @Override -// public void loadConfiguration() { -// // TODO load default values from configuration -// -// // TODO does not work with string query as object is not RDF resource ??? -// constructQueries = resource -// .listProperties(SML.JENA.constructQuery) -// .toList().stream() -// .map(st -> st.getObject().asResource()) -// .collect(Collectors.toList()); -// -// log.debug("Loaded {} spin construct queries.", constructQueries.size()); -// -// //TODO default value must be taken from template definition -// isReplace = this.getPropertyValue(SML.JENA.replace, false); -// -// sourceFilePath = getEffectiveValue(SML.JENA.sourceFilePath).asLiteral().toString(); // TODO should be Path -// } + @Override + public void loadManualConfiguration() { + log.debug("Loaded {} spin construct queries.", constructQueries.size()); + } } diff --git a/s-pipes-modules/module-text-analysis/src/main/java/cz/cvut/spipes/modules/TextAnalysisModule.java b/s-pipes-modules/module-text-analysis/src/main/java/cz/cvut/spipes/modules/TextAnalysisModule.java index a8916543d..6d846d6c0 100644 --- a/s-pipes-modules/module-text-analysis/src/main/java/cz/cvut/spipes/modules/TextAnalysisModule.java +++ b/s-pipes-modules/module-text-analysis/src/main/java/cz/cvut/spipes/modules/TextAnalysisModule.java @@ -187,9 +187,8 @@ private String annotateObjectLiteral(String objectValue) { } @Override - public void loadConfiguration() { + public void loadManualConfiguration() { super.loadConfiguration(); - selectQuery = getPropertyValue(SML.JENA.selectQuery).asResource().as(Select.class); } @Override