diff --git a/gepi/gepi-indexing/gepi-indexing-base/pom.xml b/gepi/gepi-indexing/gepi-indexing-base/pom.xml index 208841bc..d6e742c4 100644 --- a/gepi/gepi-indexing/gepi-indexing-base/pom.xml +++ b/gepi/gepi-indexing/gepi-indexing-base/pom.xml @@ -25,7 +25,7 @@ de.julielab jcore-descriptor-creator - 2.6.0-SNAPSHOT + 2.6.1 provided diff --git a/gepi/gepi-indexing/gepi-indexing-base/src/main/java/de/julielab/gepi/indexing/RelationFieldValueGenerator.java b/gepi/gepi-indexing/gepi-indexing-base/src/main/java/de/julielab/gepi/indexing/RelationFieldValueGenerator.java index 857e7a84..fd9e5a67 100644 --- a/gepi/gepi-indexing/gepi-indexing-base/src/main/java/de/julielab/gepi/indexing/RelationFieldValueGenerator.java +++ b/gepi/gepi-indexing/gepi-indexing-base/src/main/java/de/julielab/gepi/indexing/RelationFieldValueGenerator.java @@ -184,7 +184,7 @@ else if (j > i) String arg2EntryIdPath = "/ref/resourceEntryList[" + l + "]/entryId"; document.addField("argument1", createRawFieldValueForParallelAnnotations(new FeatureStructure[]{argPair[0], argPair[0], argPair[0], argPair[0], argPair[0]}, new String[]{arg1EntryIdPath, arg1EntryIdPath, arg1EntryIdPath, arg1EntryIdPath, arg1EntryIdPath}, new Filter[]{geneFb.orgid2tid2atidAddonFilter, geneFb.eg2famplexFilter, geneFb.eg2hgncFilter, geneFb.eg2gohypertidFilter, geneFb.orgid2equalnameatidReplaceFilter}, new UniqueFilter())); // document.addField("argument1geneid", createRawFieldValueForAnnotation(argPair[0], arg1EntryIdPath, null)); -// document.addField("argument1taxid", createRawFieldValueForAnnotation(argPair[0], arg1EntryIdPath, geneFb.egid2taxidReplaceFilter)); + document.addField("argument1taxid", createRawFieldValueForAnnotation(argPair[0], arg1EntryIdPath, geneFb.egid2taxidReplaceFilter)); // document.addField("argument1conceptid", createRawFieldValueForAnnotation(argPair[0], arg1EntryIdPath, geneFb.eg2tidReplaceFilter)); // document.addField("argument1tophomoid", createRawFieldValueForAnnotation(argPair[0], arg1EntryIdPath, geneFb.eg2tophomoFilter)); // document.addField("argument1famplexid", createRawFieldValueForAnnotation(argPair[0], arg1EntryIdPath, geneFb.eg2famplexFilter)); @@ -202,7 +202,7 @@ else if (j > i) // document.addField("argument1genemappingsource", createRawFieldValueForAnnotation(argPair[0], "/ref/resourceEntryList[" + k + "]/componentId", geneComponentIdProcessingfilter)); document.addField("argument2", createRawFieldValueForParallelAnnotations(new FeatureStructure[]{argPair[1], argPair[1], argPair[1], argPair[1], argPair[1]}, new String[]{arg2EntryIdPath, arg2EntryIdPath, arg2EntryIdPath, arg2EntryIdPath, arg2EntryIdPath}, new Filter[]{geneFb.orgid2tid2atidAddonFilter, geneFb.eg2famplexFilter, geneFb.eg2hgncFilter, geneFb.eg2gohypertidFilter, geneFb.orgid2equalnameatidReplaceFilter}, new UniqueFilter())); // document.addField("argument2geneid", createRawFieldValueForAnnotation(argPair[1], arg2EntryIdPath, null)); -// document.addField("argument2taxid", createRawFieldValueForAnnotation(argPair[1], arg2EntryIdPath, geneFb.egid2taxidReplaceFilter)); + document.addField("argument2taxid", createRawFieldValueForAnnotation(argPair[1], arg2EntryIdPath, geneFb.egid2taxidReplaceFilter)); // document.addField("argument2conceptid", createRawFieldValueForAnnotation(argPair[1], arg2EntryIdPath, geneFb.eg2tidReplaceFilter)); // document.addField("argument2tophomoid", createRawFieldValueForAnnotation(argPair[1], arg2EntryIdPath, geneFb.eg2tophomoFilter)); // document.addField("argument2famplexid", createRawFieldValueForAnnotation(argPair[1], arg2EntryIdPath, geneFb.eg2famplexFilter)); diff --git a/gepi/gepi-indexing/gepi-indexing-base/src/main/resources/elasticSearchMapping.json b/gepi/gepi-indexing/gepi-indexing-base/src/main/resources/elasticSearchMapping.json index 5f421ea6..3eb3d463 100644 --- a/gepi/gepi-indexing/gepi-indexing-base/src/main/resources/elasticSearchMapping.json +++ b/gepi/gepi-indexing/gepi-indexing-base/src/main/resources/elasticSearchMapping.json @@ -27,6 +27,10 @@ "enabled": false }, "properties": { + "source": { + "type": "text", + "store": true + }, "pmid": { "type": "keyword", "store": true @@ -103,6 +107,9 @@ "type": "keyword", "store": true }, + "argument1taxid": { + "type": "keyword" + }, "argument1coveredtext": { "type": "text", "store": true, @@ -160,6 +167,9 @@ "type": "keyword", "store": true }, + "argument2taxid": { + "type": "keyword" + }, "argument2coveredtext": { "type": "text", "store": true, @@ -314,16 +324,8 @@ "headings": { "type": "text", "norms": false, - "store": true, - "copy_to": ["paragraph.headingscompletion", "paragraph.headingskw"] - }, - "headingskw": { - "type": "keyword", "store": true }, - "headingscompletion": { - "type": "completion" - }, "textscope": { "type": "keyword", "store": true diff --git a/gepi/gepi-indexing/gepi-indexing-pmc/descAll/JCore ElasticSearch Consumer.xml b/gepi/gepi-indexing/gepi-indexing-pmc/descAll/JCore ElasticSearch Consumer.xml index d554fbf0..49b3e804 100644 --- a/gepi/gepi-indexing/gepi-indexing-pmc/descAll/JCore ElasticSearch Consumer.xml +++ b/gepi/gepi-indexing/gepi-indexing-pmc/descAll/JCore ElasticSearch Consumer.xml @@ -29,6 +29,34 @@ + + + docIdTransformBeforeDeletionRegex + + Optional regular expression to match and then replace (parts) of document IDs before deletion using the docIdTransformBeforeDeletionReplacement parameter value. Can be used when deleteDocumentsBeforeIndexing is set to true. Then, a Matcher with the given regular expression is created and document IDs are transformed using Matcher.replaceAll(<replacement>) for the deletion step. + + String + + false + + false + + + + + + docIdTransformBeforeDeletionReplacement + + Optional replacement String to be used to transform document IDs before deletion. Requires docIdTransformBeforeDeletionRegex to be specified. Then, document IDs used for deletion are matched with that regular expression and matches are replaced with this replacement String using Matcher.replace(<replacement>) where the Matcher was created with the regular expression. + + String + + false + + false + + + documentIdField @@ -195,7 +223,7 @@ - gepi_1.0_3 + gepi_1.0_2 @@ -253,7 +281,31 @@ - false + true + + + + + + + + docIdTransformBeforeDeletionRegex + + + + ^([^_]+)_.*$ + + + + + + + + docIdTransformBeforeDeletionReplacement + + + + $1 diff --git a/gepi/gepi-indexing/gepi-indexing-pubmed/descAll/JCore ElasticSearch Consumer.xml b/gepi/gepi-indexing/gepi-indexing-pubmed/descAll/JCore ElasticSearch Consumer.xml index 0d8ccd19..efb88291 100644 --- a/gepi/gepi-indexing/gepi-indexing-pubmed/descAll/JCore ElasticSearch Consumer.xml +++ b/gepi/gepi-indexing/gepi-indexing-pubmed/descAll/JCore ElasticSearch Consumer.xml @@ -195,7 +195,7 @@ - gepi_1.0_3 + gepi_1.0_2 diff --git a/gepi/gepi-preprocessing/pmc/preprocessing/aeDescriptions.json b/gepi/gepi-preprocessing/pmc/preprocessing/aeDescriptions.json index 066b5ab0..48ae2318 100644 --- a/gepi/gepi-preprocessing/pmc/preprocessing/aeDescriptions.json +++ b/gepi/gepi-preprocessing/pmc/preprocessing/aeDescriptions.json @@ -1 +1 @@ -[{"uri":null,"location":"de.julielab.jcore.ae.jsbd.desc.jcore-jsbd-ae-biomedical-english","category":"ae","uimaDescPath":null,"metaDescription":{"description":"UIMA Wrapper for the JCoRe Sentence Boundary Detector (jcore-jsbd-ae) with a model trained on data from both the GENIA and PennBioIE corpus as well as additional material from MedLine abstracts.","group":"general","module":{"type":"GitHubRepository","name":"jcore-projects","version":"v2.4","updateable":true,"type":"GitHubRepository","gitHubName":"JULIELab"},"base":null,"exposable":true,"categories":["ae"],"pear":false,"name":"JCoRe Sentence Annotator, Biomedical English","base-project":null,"maven-artifact":{"groupId":"de.julielab","artifactId":"jcore-jsbd-ae-biomedical-english","version":"2.6.1","classifier":null,"file":"/Users/faessler/.m2/repository/de/julielab/jcore-jsbd-ae-biomedical-english/2.6.1/jcore-jsbd-ae-biomedical-english-2.6.1.jar","packaging":"jar"}},"name":"JCoRe Sentence Annotator","active":true},{"uri":null,"location":"de.julielab.jcore.ae.jtbd.desc.jcore-jtbd-ae-biomedical-english","category":"ae","uimaDescPath":null,"metaDescription":{"description":"UIMA Wrapper for the JCoRe Token Boundary Detector with a model trained on a special biomedical corpus which consists of data from (manually annotated) material which we took from MedLine abstracts and a modified version of PennBioIE's underlying tokenization.\n","group":"general","module":{"type":"GitHubRepository","name":"jcore-projects","version":"v2.5","updateable":true,"type":"GitHubRepository","gitHubName":"JULIELab"},"base":null,"exposable":true,"categories":["ae"],"pear":false,"name":"JCoRe Token Annotator, Biomedical English","base-project":null,"maven-artifact":{"groupId":"de.julielab","artifactId":"jcore-jtbd-ae-biomedical-english","version":"2.6.0","classifier":null,"file":"/Users/faessler/.m2/repository/de/julielab/jcore-jtbd-ae-biomedical-english/2.6.0/jcore-jtbd-ae-biomedical-english-2.6.0.jar","packaging":"jar"}},"name":"JCoRe Token Annotator","active":true},{"uri":null,"location":"de.julielab.jcore.ae.opennlp.postag.desc.jcore-opennlp-postag-ae-biomedical-english","category":"ae","uimaDescPath":null,"metaDescription":{"description":"This project employs the OpenNLP wrapper (jcore-opennlp-postag-ae) with a model trained on the PennBioIE corpus.","group":"general","module":{"type":"GitHubRepository","name":"jcore-projects","version":"v2.5","updateable":true,"type":"GitHubRepository","gitHubName":"JULIELab"},"base":null,"exposable":true,"categories":["ae"],"pear":false,"name":"JCoRe OpenNLP POS Tagger, Biomedical English","base-project":null,"maven-artifact":{"groupId":"de.julielab","artifactId":"jcore-opennlp-postag-ae-biomedical-english","version":"2.6.0","classifier":null,"file":"/Users/faessler/.m2/repository/de/julielab/jcore-opennlp-postag-ae-biomedical-english/2.6.0/jcore-opennlp-postag-ae-biomedical-english-2.6.0.jar","packaging":"jar"}},"name":"JCoRe OpenNLP POS Tagger","active":true},{"uri":null,"location":"de.julielab.jcore.ae.acronymtagger.desc.jcore-acronym-ae","category":"ae","uimaDescPath":null,"metaDescription":{"description":"Arconym Tagger based on the SCHWARTZ & HEARST Algorithm: Ariel S. Schwartz and Marti A. Hearst: A Simple Algorithm For Identifying Abbreviation Definitions in Biomedical Text. In: Pacific Symposium on Biocomputing, 2003.","group":"morpho syntactic","module":{"type":"GitHubRepository","name":"jcore-base","version":"v2.5","updateable":true,"type":"GitHubRepository","gitHubName":"JULIELab"},"base":null,"exposable":true,"categories":["ae"],"pear":false,"name":"JCoRe Acronym Tagger","base-project":null,"maven-artifact":{"groupId":"de.julielab","artifactId":"jcore-acronym-ae","version":"2.6.1","classifier":null,"file":"/Users/faessler/.m2/repository/de/julielab/jcore-acronym-ae/2.6.1/jcore-acronym-ae-2.6.1.jar","packaging":"jar"}},"name":"JCoRe AcronymAnnotator","active":true},{"uri":null,"location":"de.julielab.jcore.ae.biolemmatizer.desc.jcore-biolemmatizer-ae","category":"ae","uimaDescPath":null,"metaDescription":{"description":"Lemmatization tool for morphological analysis of biomedical literature downloaded from SourceForge","group":"semantic","module":{"type":"GitHubRepository","name":"jcore-projects","version":"v2.4","updateable":true,"type":"GitHubRepository","gitHubName":"JULIELab"},"base":null,"exposable":true,"categories":["ae"],"pear":false,"name":"JCoRe BioLemmatizer","base-project":null,"maven-artifact":{"groupId":"de.julielab","artifactId":"jcore-biolemmatizer-ae","version":"2.6.1","classifier":null,"file":"/Users/faessler/.m2/repository/de/julielab/jcore-biolemmatizer-ae/2.6.1/jcore-biolemmatizer-ae-2.6.1.jar","packaging":"jar"}},"name":"BioLemmatizer","active":true},{"uri":null,"location":"de.julielab.jcore.ae.biosem.desc.jcore-biosem-ae-bionlp-st11","category":"ae","uimaDescPath":null,"metaDescription":{"description":"This project employs the JCoRe BioSem wrapper (jcore-biosem-ae) with a BioSem database trained on the\n BioNLP SharedTask 2011 train and development (that is, \"mixed\") data for biological event extraction.\n ","group":"semantic","module":{"type":"GitHubRepository","name":"jcore-projects","version":"v2.6","updateable":true,"type":"GitHubRepository","gitHubName":"JULIELab"},"base":null,"exposable":true,"categories":["ae"],"pear":false,"name":"JCoRe BioSem AE, BioNLP SharedTask 2011","base-project":null,"maven-artifact":{"groupId":"de.julielab","artifactId":"jcore-biosem-ae-bionlp-st11","version":"2.6.0","classifier":null,"file":"/Users/faessler/.m2/repository/de/julielab/jcore-biosem-ae-bionlp-st11/2.6.0/jcore-biosem-ae-bionlp-st11-2.6.0.jar","packaging":"jar"}},"name":"JCoRe BioSEM Event Annotator","active":true}] \ No newline at end of file +[{"uri":null,"location":"de.julielab.jcore.ae.jsbd.desc.jcore-jsbd-ae-biomedical-english","category":"ae","uimaDescPath":null,"metaDescription":{"description":"UIMA Wrapper for the JCoRe Sentence Boundary Detector (jcore-jsbd-ae) with a model trained on data from both the GENIA and PennBioIE corpus as well as additional material from MedLine abstracts.","group":"general","module":{"type":"GitHubRepository","name":"jcore-projects","version":"v2.4","updateable":true,"type":"GitHubRepository","gitHubName":"JULIELab"},"base":null,"exposable":true,"categories":["ae"],"name":"JCoRe Sentence Annotator, Biomedical English","pear":false,"base-project":null,"maven-artifact":{"groupId":"de.julielab","artifactId":"jcore-jsbd-ae-biomedical-english","version":"2.6.1","classifier":null,"file":"/home/faessler/.m2/repository/de/julielab/jcore-jsbd-ae-biomedical-english/2.6.1/jcore-jsbd-ae-biomedical-english-2.6.1.jar","packaging":"jar"}},"name":"JCoRe Sentence Annotator","active":true},{"uri":null,"location":"de.julielab.jcore.ae.jtbd.desc.jcore-jtbd-ae-biomedical-english","category":"ae","uimaDescPath":null,"metaDescription":{"description":"UIMA Wrapper for the JCoRe Token Boundary Detector with a model trained on a special biomedical corpus which consists of data from (manually annotated) material which we took from MedLine abstracts and a modified version of PennBioIE's underlying tokenization.\n","group":"general","module":{"type":"GitHubRepository","name":"jcore-projects","version":"v2.5","updateable":true,"type":"GitHubRepository","gitHubName":"JULIELab"},"base":null,"exposable":true,"categories":["ae"],"name":"JCoRe Token Annotator, Biomedical English","pear":false,"base-project":null,"maven-artifact":{"groupId":"de.julielab","artifactId":"jcore-jtbd-ae-biomedical-english","version":"2.6.0","classifier":null,"file":"/home/faessler/.m2/repository/de/julielab/jcore-jtbd-ae-biomedical-english/2.6.0/jcore-jtbd-ae-biomedical-english-2.6.0.jar","packaging":"jar"}},"name":"JCoRe Token Annotator","active":true},{"uri":null,"location":"de.julielab.jcore.ae.opennlp.postag.desc.jcore-opennlp-postag-ae-biomedical-english","category":"ae","uimaDescPath":null,"metaDescription":{"description":"This project employs the OpenNLP wrapper (jcore-opennlp-postag-ae) with a model trained on the PennBioIE corpus.","group":"general","module":{"type":"GitHubRepository","name":"jcore-projects","version":"v2.5","updateable":true,"type":"GitHubRepository","gitHubName":"JULIELab"},"base":null,"exposable":true,"categories":["ae"],"name":"JCoRe OpenNLP POS Tagger, Biomedical English","pear":false,"base-project":null,"maven-artifact":{"groupId":"de.julielab","artifactId":"jcore-opennlp-postag-ae-biomedical-english","version":"2.6.0","classifier":null,"file":"/home/faessler/.m2/repository/de/julielab/jcore-opennlp-postag-ae-biomedical-english/2.6.0/jcore-opennlp-postag-ae-biomedical-english-2.6.0.jar","packaging":"jar"}},"name":"JCoRe OpenNLP POS Tagger","active":true},{"uri":null,"location":"de.julielab.jcore.ae.acronymtagger.desc.jcore-acronym-ae","category":"ae","uimaDescPath":null,"metaDescription":{"description":"Arconym Tagger based on the SCHWARTZ & HEARST Algorithm: Ariel S. Schwartz and Marti A. Hearst: A Simple Algorithm For Identifying Abbreviation Definitions in Biomedical Text. In: Pacific Symposium on Biocomputing, 2003.","group":"morpho syntactic","module":{"type":"GitHubRepository","name":"jcore-base","version":"v2.5","updateable":true,"type":"GitHubRepository","gitHubName":"JULIELab"},"base":null,"exposable":true,"categories":["ae"],"name":"JCoRe Acronym Tagger","pear":false,"base-project":null,"maven-artifact":{"groupId":"de.julielab","artifactId":"jcore-acronym-ae","version":"2.6.1","classifier":null,"file":"/home/faessler/.m2/repository/de/julielab/jcore-acronym-ae/2.6.1/jcore-acronym-ae-2.6.1.jar","packaging":"jar"}},"name":"JCoRe AcronymAnnotator","active":true},{"uri":null,"location":"de.julielab.jcore.ae.biolemmatizer.desc.jcore-biolemmatizer-ae","category":"ae","uimaDescPath":null,"metaDescription":{"description":"Lemmatization tool for morphological analysis of biomedical literature downloaded from SourceForge","group":"semantic","module":{"type":"GitHubRepository","name":"jcore-projects","version":"v2.4","updateable":true,"type":"GitHubRepository","gitHubName":"JULIELab"},"base":null,"exposable":true,"categories":["ae"],"name":"JCoRe BioLemmatizer","pear":false,"base-project":null,"maven-artifact":{"groupId":"de.julielab","artifactId":"jcore-biolemmatizer-ae","version":"2.6.1","classifier":null,"file":"/home/faessler/.m2/repository/de/julielab/jcore-biolemmatizer-ae/2.6.1/jcore-biolemmatizer-ae-2.6.1.jar","packaging":"jar"}},"name":"BioLemmatizer","active":true},{"uri":null,"location":"de.julielab.jcore.ae.biosem.desc.jcore-biosem-ae-bionlp-st11","category":"ae","uimaDescPath":null,"metaDescription":{"description":"This project employs the JCoRe BioSem wrapper (jcore-biosem-ae) with a BioSem database trained on the\n BioNLP SharedTask 2011 train and development (that is, \"mixed\") data for biological event extraction.\n ","group":"semantic","module":{"type":"GitHubRepository","name":"jcore-projects","version":"v2.6","updateable":true,"type":"GitHubRepository","gitHubName":"JULIELab"},"base":null,"exposable":true,"categories":["ae"],"name":"JCoRe BioSem AE, BioNLP SharedTask 2011","pear":false,"base-project":null,"maven-artifact":{"groupId":"de.julielab","artifactId":"jcore-biosem-ae-bionlp-st11","version":"2.6.0","classifier":null,"file":"/home/faessler/.m2/repository/de/julielab/jcore-biosem-ae-bionlp-st11/2.6.0/jcore-biosem-ae-bionlp-st11-2.6.0.jar","packaging":"jar"}},"name":"JCoRe BioSEM Event Annotator","active":true}] \ No newline at end of file diff --git a/gepi/gepi-preprocessing/pmc/preprocessing/aeFlowControllerDescriptions.json b/gepi/gepi-preprocessing/pmc/preprocessing/aeFlowControllerDescriptions.json index 0158d36e..241a23d3 100644 --- a/gepi/gepi-preprocessing/pmc/preprocessing/aeFlowControllerDescriptions.json +++ b/gepi/gepi-preprocessing/pmc/preprocessing/aeFlowControllerDescriptions.json @@ -1 +1 @@ -{"uri":null,"location":"de.julielab.jcore.flow.annotationdefined.desc.jcore-annotation-defined-flowcontroller","category":"flowcontroller","uimaDescPath":null,"metaDescription":{"description":"Flow controllers can be used to control the route a (J)CAS takes through an aggregate analysis engine. This project contains Flow Controllers developed at the JULIE Lab.","group":"general","module":{"type":"GitHubRepository","name":"jcore-base","version":"v2.6","updateable":true,"type":"GitHubRepository","gitHubName":"JULIELab"},"base":null,"exposable":true,"categories":["flowcontroller"],"pear":false,"name":"JCoRe Flow Controllers","base-project":null,"maven-artifact":{"groupId":"de.julielab","artifactId":"jcore-flow-controllers","version":"2.6.1","classifier":null,"file":"/Users/faessler/.m2/repository/de/julielab/jcore-flow-controllers/2.6.1/jcore-flow-controllers-2.6.1.jar","packaging":"jar"}},"name":"JCoRe Annotation Defined Flow Controller","active":true} \ No newline at end of file +{"uri":null,"location":"de.julielab.jcore.flow.annotationdefined.desc.jcore-annotation-defined-flowcontroller","category":"flowcontroller","uimaDescPath":null,"metaDescription":{"description":"Flow controllers can be used to control the route a (J)CAS takes through an aggregate analysis engine. This project contains Flow Controllers developed at the JULIE Lab.","group":"general","module":{"type":"GitHubRepository","name":"jcore-base","version":"v2.6","updateable":true,"type":"GitHubRepository","gitHubName":"JULIELab"},"base":null,"exposable":true,"categories":["flowcontroller"],"name":"JCoRe Flow Controllers","pear":false,"base-project":null,"maven-artifact":{"groupId":"de.julielab","artifactId":"jcore-flow-controllers","version":"2.6.1","classifier":null,"file":"/home/faessler/.m2/repository/de/julielab/jcore-flow-controllers/2.6.1/jcore-flow-controllers-2.6.1.jar","packaging":"jar"}},"name":"JCoRe Annotation Defined Flow Controller","active":true} \ No newline at end of file diff --git a/gepi/gepi-preprocessing/pmc/preprocessing/ccDescriptions.json b/gepi/gepi-preprocessing/pmc/preprocessing/ccDescriptions.json index 9c58c06c..0c183724 100644 --- a/gepi/gepi-preprocessing/pmc/preprocessing/ccDescriptions.json +++ b/gepi/gepi-preprocessing/pmc/preprocessing/ccDescriptions.json @@ -1 +1 @@ -[{"uri":"file:/Users/faessler/Coding/git/gepi/gepi/gepi-preprocessing/pmc/preprocessing/./desc/JCoRe%20XMI%20Database%20Writer.xml","location":"de.julielab.jcore.consumer.xmi.desc.jcore-xmi-db-writer","category":"consumer","uimaDescPath":"JCoRe XMI Database Writer.xml","metaDescription":{"description":"Writes CAS data in XMI format into a relational (PostgreSQL) database. It is possible to write the whole XMI for each document into the database. However, it is also possible to define a list of annotations that should be written into separate tables. The JCoRe XMI Database Reader can then be used to assemble XMI data from a given set of annotations.","group":"general","module":{"type":"GitHubRepository","name":"jcore-projects","version":"v2.4","updateable":true,"type":"GitHubRepository","gitHubName":"JULIELab"},"base":null,"exposable":true,"categories":["consumer"],"pear":false,"name":"JCoRe XMI Database Writer","base-project":null,"maven-artifact":{"groupId":"de.julielab","artifactId":"jcore-xmi-db-writer","version":"2.6.3","classifier":null,"file":"/Users/faessler/.m2/repository/de/julielab/jcore-xmi-db-writer/2.6.3/jcore-xmi-db-writer-2.6.3.jar","packaging":"jar"}},"name":"JCoRe XMI Database Writer","active":true},{"uri":"file:/Users/faessler/Coding/git/gepi/gepi/gepi-preprocessing/pmc/preprocessing/./desc/JCoRe%20Database%20Checkpoint%20Writer.xml","location":"de.julielab.jcore.ae.checkpoint.desc.jcore-db-checkpoint-consumer","category":"consumer","uimaDescPath":"JCoRe Database Checkpoint Writer.xml","metaDescription":{"description":"This is a JeDIS component. It can be used to set the 'last component' column in a subset table. This help to keep track of the pipeline status.","group":"general","module":{"type":"GitHubRepository","name":"jcore-base","version":"v2.5","updateable":true,"type":"GitHubRepository","gitHubName":"JULIELab"},"base":null,"exposable":true,"categories":["consumer","ae"],"pear":false,"name":"JCoRe Database Checkpoint AE","base-project":null,"maven-artifact":{"groupId":"de.julielab","artifactId":"jcore-db-checkpoint-ae","version":"2.6.3","classifier":null,"file":"/Users/faessler/.m2/repository/de/julielab/jcore-db-checkpoint-ae/2.6.3/jcore-db-checkpoint-ae-2.6.3.jar","packaging":"jar"}},"name":"JCoRe Database Checkpoint Writer","active":true},{"uri":"file:/Users/faessler/Coding/git/gepi/gepi/gepi-preprocessing/pmc/preprocessing/./descAll/XMIWriter.xml","location":"de.julielab.jcore.consumer.xmi.desc.jcore-xmi-writer","category":"consumer","uimaDescPath":"XMIWriter.xml","metaDescription":{"description":"JCoRe XMI Writer. A CAS consumer that writes/converts CAS objects to XMI files.","group":"general","module":{"type":"GitHubRepository","name":"jcore-base","version":"v2.6","updateable":true,"type":"GitHubRepository","gitHubName":"JULIELab"},"base":null,"exposable":true,"categories":["consumer"],"pear":false,"name":"JCoRe XMI Writer","base-project":null,"maven-artifact":{"groupId":"de.julielab","artifactId":"jcore-xmi-writer","version":"2.6.1","classifier":null,"file":"/Users/faessler/.m2/repository/de/julielab/jcore-xmi-writer/2.6.1/jcore-xmi-writer-2.6.1.jar","packaging":"jar"}},"name":"XMIWriter","active":false}] \ No newline at end of file +[{"uri":"file:/home/faessler/Coding/git/gepi/gepi/gepi-preprocessing/pmc/preprocessing/./desc/JCoRe%20XMI%20Database%20Writer.xml","location":"de.julielab.jcore.consumer.xmi.desc.jcore-xmi-db-writer","category":"consumer","uimaDescPath":"JCoRe XMI Database Writer.xml","metaDescription":{"description":"Writes CAS data in XMI format into a relational (PostgreSQL) database. It is possible to write the whole XMI for each document into the database. However, it is also possible to define a list of annotations that should be written into separate tables. The JCoRe XMI Database Reader can then be used to assemble XMI data from a given set of annotations.","group":"general","module":{"type":"GitHubRepository","name":"jcore-projects","version":"v2.4","updateable":true,"type":"GitHubRepository","gitHubName":"JULIELab"},"base":null,"exposable":true,"categories":["consumer"],"name":"JCoRe XMI Database Writer","pear":false,"base-project":null,"maven-artifact":{"groupId":"de.julielab","artifactId":"jcore-xmi-db-writer","version":"2.6.3","classifier":null,"file":"/home/faessler/.m2/repository/de/julielab/jcore-xmi-db-writer/2.6.3/jcore-xmi-db-writer-2.6.3.jar","packaging":"jar"}},"name":"JCoRe XMI Database Writer","active":true},{"uri":"file:/home/faessler/Coding/git/gepi/gepi/gepi-preprocessing/pmc/preprocessing/./desc/JCoRe%20Database%20Checkpoint%20Writer.xml","location":"de.julielab.jcore.ae.checkpoint.desc.jcore-db-checkpoint-consumer","category":"consumer","uimaDescPath":"JCoRe Database Checkpoint Writer.xml","metaDescription":{"description":"This is a JeDIS component. It can be used to set the 'last component' column in a subset table. This help to keep track of the pipeline status.","group":"general","module":{"type":"GitHubRepository","name":"jcore-base","version":"v2.5","updateable":true,"type":"GitHubRepository","gitHubName":"JULIELab"},"base":null,"exposable":true,"categories":["consumer","ae"],"name":"JCoRe Database Checkpoint AE","pear":false,"base-project":null,"maven-artifact":{"groupId":"de.julielab","artifactId":"jcore-db-checkpoint-ae","version":"2.6.3","classifier":null,"file":"/home/faessler/.m2/repository/de/julielab/jcore-db-checkpoint-ae/2.6.3/jcore-db-checkpoint-ae-2.6.3.jar","packaging":"jar"}},"name":"JCoRe Database Checkpoint Writer","active":true},{"uri":"file:/home/faessler/Coding/git/gepi/gepi/gepi-preprocessing/pmc/preprocessing/./descAll/XMIWriter.xml","location":"de.julielab.jcore.consumer.xmi.desc.jcore-xmi-writer","category":"consumer","uimaDescPath":"XMIWriter.xml","metaDescription":{"description":"JCoRe XMI Writer. A CAS consumer that writes/converts CAS objects to XMI files.","group":"general","module":{"type":"GitHubRepository","name":"jcore-base","version":"v2.6","updateable":true,"type":"GitHubRepository","gitHubName":"JULIELab"},"base":null,"exposable":true,"categories":["consumer"],"name":"JCoRe XMI Writer","pear":false,"base-project":null,"maven-artifact":{"groupId":"de.julielab","artifactId":"jcore-xmi-writer","version":"2.6.1","classifier":null,"file":"/home/faessler/.m2/repository/de/julielab/jcore-xmi-writer/2.6.1/jcore-xmi-writer-2.6.1.jar","packaging":"jar"}},"name":"XMIWriter","active":false}] \ No newline at end of file diff --git a/gepi/gepi-preprocessing/pmc/preprocessing/ccFlowControllerDescriptions.json b/gepi/gepi-preprocessing/pmc/preprocessing/ccFlowControllerDescriptions.json index 25f0c1c3..e276d985 100644 --- a/gepi/gepi-preprocessing/pmc/preprocessing/ccFlowControllerDescriptions.json +++ b/gepi/gepi-preprocessing/pmc/preprocessing/ccFlowControllerDescriptions.json @@ -1 +1 @@ -{"uri":null,"location":"de.julielab.jcore.flow.annotationdefined.desc.jcore-annotation-defined-flowcontroller","category":"flowcontroller","uimaDescPath":null,"metaDescription":{"description":"Flow controllers can be used to control the route a (J)CAS takes through an aggregate analysis engine. This project contains Flow Controllers developed at the JULIE Lab.","group":"general","module":{"type":"GitHubRepository","name":"jcore-base","version":"v2.6","updateable":true,"type":"GitHubRepository","gitHubName":"JULIELab"},"base":null,"exposable":true,"categories":["flowcontroller"],"pear":false,"name":"JCoRe Flow Controllers","base-project":null,"maven-artifact":{"groupId":"de.julielab","artifactId":"jcore-flow-controllers","version":"2.6.1","classifier":null,"file":"/Users/faessler/.m2/repository/de/julielab/jcore-flow-controllers/2.6.1/jcore-flow-controllers-2.6.1.jar","packaging":"jar"}},"name":"JCoRe Annotation Defined Flow Controller 1","active":true} \ No newline at end of file +{"uri":null,"location":"de.julielab.jcore.flow.annotationdefined.desc.jcore-annotation-defined-flowcontroller","category":"flowcontroller","uimaDescPath":null,"metaDescription":{"description":"Flow controllers can be used to control the route a (J)CAS takes through an aggregate analysis engine. This project contains Flow Controllers developed at the JULIE Lab.","group":"general","module":{"type":"GitHubRepository","name":"jcore-base","version":"v2.6","updateable":true,"type":"GitHubRepository","gitHubName":"JULIELab"},"base":null,"exposable":true,"categories":["flowcontroller"],"name":"JCoRe Flow Controllers","pear":false,"base-project":null,"maven-artifact":{"groupId":"de.julielab","artifactId":"jcore-flow-controllers","version":"2.6.1","classifier":null,"file":"/home/faessler/.m2/repository/de/julielab/jcore-flow-controllers/2.6.1/jcore-flow-controllers-2.6.1.jar","packaging":"jar"}},"name":"JCoRe Annotation Defined Flow Controller 1","active":true} \ No newline at end of file diff --git a/gepi/gepi-preprocessing/pmc/preprocessing/cmDescriptions.json b/gepi/gepi-preprocessing/pmc/preprocessing/cmDescriptions.json index d750725e..fa230088 100644 --- a/gepi/gepi-preprocessing/pmc/preprocessing/cmDescriptions.json +++ b/gepi/gepi-preprocessing/pmc/preprocessing/cmDescriptions.json @@ -1 +1 @@ -[{"uri":null,"location":"de.julielab.jcore.multiplier.gnp.desc.jcore-gnormplus-pmc-db-multiplier","category":"multiplier","uimaDescPath":"JCoRe GNormPlus PMC Database Multiplier.xml","metaDescription":{"description":"Wrapper for the JULIE Lab variant of the GNormPlus gene ID mapper.","group":"general","module":{"type":"GitHubRepository","name":"jcore-base","version":"v2.6","updateable":true,"type":"GitHubRepository","gitHubName":"JULIELab"},"base":null,"exposable":true,"categories":["ae","multiplier"],"pear":false,"name":"JCoRe GNormPlus Annotator","base-project":null,"maven-artifact":{"groupId":"de.julielab","artifactId":"jcore-gnormplus-ae","version":"2.6.10","classifier":null,"file":"/Users/faessler/.m2/repository/de/julielab/jcore-gnormplus-ae/2.6.10/jcore-gnormplus-ae-2.6.10.jar","packaging":"jar"}},"name":"JCoRe GNormPlus PMC Database Multiplier","active":true}] \ No newline at end of file +[{"uri":null,"location":"de.julielab.jcore.multiplier.gnp.desc.jcore-gnormplus-pmc-db-multiplier","category":"multiplier","uimaDescPath":"JCoRe GNormPlus PMC Database Multiplier.xml","metaDescription":{"description":"Wrapper for the JULIE Lab variant of the GNormPlus gene ID mapper.","group":"general","module":{"type":"GitHubRepository","name":"jcore-base","version":"v2.6","updateable":true,"type":"GitHubRepository","gitHubName":"JULIELab"},"base":null,"exposable":true,"categories":["ae","multiplier"],"name":"JCoRe GNormPlus Annotator","pear":false,"base-project":null,"maven-artifact":{"groupId":"de.julielab","artifactId":"jcore-gnormplus-ae","version":"2.6.10","classifier":null,"file":"/home/faessler/.m2/repository/de/julielab/jcore-gnormplus-ae/2.6.10/jcore-gnormplus-ae-2.6.10.jar","packaging":"jar"}},"name":"JCoRe GNormPlus PMC Database Multiplier","active":true}] \ No newline at end of file diff --git a/gepi/gepi-preprocessing/pmc/preprocessing/crDescriptions.json b/gepi/gepi-preprocessing/pmc/preprocessing/crDescriptions.json index 88b5db42..76238f52 100644 --- a/gepi/gepi-preprocessing/pmc/preprocessing/crDescriptions.json +++ b/gepi/gepi-preprocessing/pmc/preprocessing/crDescriptions.json @@ -1 +1 @@ -{"uri":null,"location":"de.julielab.jcore.multiplier.pmc.desc.jcore-pmc-db-multiplier-reader","category":"reader","uimaDescPath":"JCoRe Database PMC Multiplier Reader.xml","metaDescription":{"description":"JeDIS database reader for PMC base documents.","group":"general","module":{"type":"GitHubRepository","name":"jcore-base","version":"v2.6","updateable":true,"type":"GitHubRepository","gitHubName":"JULIELab"},"base":null,"exposable":true,"categories":["reader","multiplier"],"pear":false,"name":"JCoRe PubMed Central DB Reader","base-project":null,"maven-artifact":{"groupId":"de.julielab","artifactId":"jcore-pmc-db-reader","version":"2.6.3","classifier":null,"file":"/Users/faessler/.m2/repository/de/julielab/jcore-pmc-db-reader/2.6.3/jcore-pmc-db-reader-2.6.3.jar","packaging":"jar"}},"name":"JCoRe Database PMC Multiplier Reader","active":true} \ No newline at end of file +{"uri":null,"location":"de.julielab.jcore.multiplier.pmc.desc.jcore-pmc-db-multiplier-reader","category":"reader","uimaDescPath":"JCoRe Database PMC Multiplier Reader.xml","metaDescription":{"description":"JeDIS database reader for PMC base documents.","group":"general","module":{"type":"GitHubRepository","name":"jcore-base","version":"v2.6","updateable":true,"type":"GitHubRepository","gitHubName":"JULIELab"},"base":null,"exposable":true,"categories":["reader","multiplier"],"name":"JCoRe PubMed Central DB Reader","pear":false,"base-project":null,"maven-artifact":{"groupId":"de.julielab","artifactId":"jcore-pmc-db-reader","version":"2.6.3","classifier":null,"file":"/home/faessler/.m2/repository/de/julielab/jcore-pmc-db-reader/2.6.3/jcore-pmc-db-reader-2.6.3.jar","packaging":"jar"}},"name":"JCoRe Database PMC Multiplier Reader","active":true} \ No newline at end of file diff --git a/gepi/gepi-preprocessing/pmc/preprocessing/missing_configuration.txt b/gepi/gepi-preprocessing/pmc/preprocessing/missing_configuration.txt index c4058b2a..0452918f 100644 --- a/gepi/gepi-preprocessing/pmc/preprocessing/missing_configuration.txt +++ b/gepi/gepi-preprocessing/pmc/preprocessing/missing_configuration.txt @@ -1,2 +1,2 @@ -Could not reader ""due to a parsing error: Could not parse an AAE delegate specifier: An import could not be resolved. No file with name "de/julielab/jcore/types/jcore-morpho-syntax-types.xml" was found in the class path or data path. (Descriptor: file:/Users/faessler/Coding/git/gepi/gepi/gepi-preprocessing/pmc/preprocessing/desc/JCoRe Sentence Annotator.xml) +Could not reader ""due to a parsing error: Could not parse an AAE delegate specifier: An import could not be resolved. No file with name "de/julielab/jcore/types/jcore-morpho-syntax-types.xml" was found in the class path or data path. (Descriptor: file:/home/faessler/Coding/git/gepi/gepi/gepi-preprocessing/pmc/preprocessing/desc/JCoRe Sentence Annotator.xml) diff --git a/gepi/gepi-webapp/src/main/java/de/julielab/gepi/webapp/components/Layout.java b/gepi/gepi-webapp/src/main/java/de/julielab/gepi/webapp/components/Layout.java index b0286d15..e905e48b 100644 --- a/gepi/gepi-webapp/src/main/java/de/julielab/gepi/webapp/components/Layout.java +++ b/gepi/gepi-webapp/src/main/java/de/julielab/gepi/webapp/components/Layout.java @@ -16,6 +16,10 @@ */ @Import(stylesheet = {"context:css-components/layout.css", "bootstrap-custom.css"}) public class Layout { + @Property + @Parameter(value = "false") + boolean showResetButton; + @Inject private ComponentResources resources; diff --git a/gepi/gepi-webapp/src/main/java/de/julielab/gepi/webapp/pages/Index.java b/gepi/gepi-webapp/src/main/java/de/julielab/gepi/webapp/pages/Index.java index e47e495b..78d9f332 100644 --- a/gepi/gepi-webapp/src/main/java/de/julielab/gepi/webapp/pages/Index.java +++ b/gepi/gepi-webapp/src/main/java/de/julielab/gepi/webapp/pages/Index.java @@ -175,6 +175,7 @@ void afterRender() { javaScriptSupport.require("gepi/base").invoke("setuptooltips"); javaScriptSupport.require("gepi/charts/data").invoke("setDataUrl").with(resources.createEventLink("loadDataToClient").toAbsoluteURI(productionMode)); javaScriptSupport.require("gepi/pages/index").invoke("setupDownloadUrlCopyButton"); + javaScriptSupport.require("gepi/pages/index").invoke("displayRoadworksWarningToast"); if (isResultPresent()) { // If there already is data at loading the page, the input panel is already hidden (see #getShowInputClass) // and we can display the widgets. diff --git a/gepi/gepi-webapp/src/main/java/de/julielab/gepi/webapp/services/AppModule.java b/gepi/gepi-webapp/src/main/java/de/julielab/gepi/webapp/services/AppModule.java index cd3fdebe..5fba3975 100644 --- a/gepi/gepi-webapp/src/main/java/de/julielab/gepi/webapp/services/AppModule.java +++ b/gepi/gepi-webapp/src/main/java/de/julielab/gepi/webapp/services/AppModule.java @@ -76,6 +76,11 @@ public static void contributeFactoryDefaults( // This is something that should be removed when going to production, but is useful // in the early stages of development. configuration.override(SymbolConstants.PRODUCTION_MODE, false); + + // This symbol is meant to be controlled through a configuration properties file (loaded with the contributed + // symbol source at the top). This is here to give a default value when the property is not included in the + // configuration file. + configuration.add("gepi.maintenance", false); } public static void contributeApplicationDefaults( diff --git a/gepi/gepi-webapp/src/main/resources/META-INF/modules/gepi/pages/index.js b/gepi/gepi-webapp/src/main/resources/META-INF/modules/gepi/pages/index.js index e902501c..b635758b 100644 --- a/gepi/gepi-webapp/src/main/resources/META-INF/modules/gepi/pages/index.js +++ b/gepi/gepi-webapp/src/main/resources/META-INF/modules/gepi/pages/index.js @@ -17,35 +17,42 @@ define(["jquery", "bootstrap5/modal", "bootstrap5/tooltip", "bootstrap5/offcanva let displayCookieConsentOffcanvas = function () { // $('#cookie-consent-offcanvas-close-btn').on('click', displayRoadworksWarningToast); - const offcanvas = new Offcanvas(document.getElementById('cookie-consent-offcanvas'), {keyboard:false, scroll: true, backdrop: false}) - offcanvas.show(); + let cookieConsentPanel = document.getElementById('cookie-consent-offcanvas') + // The panel is not there if we show the maintenance-sign + if (cookieConsentPanel) { + const offcanvas = new Offcanvas(cookieConsentPanel, {keyboard:false, scroll: true, backdrop: false}) + offcanvas.show(); + } } let displayRoadworksWarningToast = function () { - const modal = new Toast(document.getElementById('roadworks-warning-toast'), {delay:10000, autohide:true}) + const modal = new Toast(document.getElementById('roadworks-warning-toast'), {delay:10000, autohide:false}) modal.show(); } let setupDownloadUrlCopyButton = function () { const button = document.getElementById("downloadUrlCopyButton"); - let tooltipTitle = window.isSecureContext ? "Copied!" : "Copy failed: Connect via HTTPS to enable automatic copying." - let tooltipHideDelay = window.isSecureContext ? 2000 : 7000; - const copyMessageTooltip = new Tooltip(button, {"trigger":"click", "title": tooltipTitle}) - $(button).on("click", () => { - // Get the text field - const copyText = document.getElementById("downloadUrlCopyTextField"); - - // Select the text field - copyText.select(); - if (window.isSecureContext) { - copyText.setSelectionRange(0, 99999); // For mobile devices - console.log("COPYING; is secure context: "+ window.isSecureContext) - // Copy the text inside the text field - navigator.clipboard.writeText(copyText.value); - - } - setTimeout(() => copyMessageTooltip.hide(), tooltipHideDelay); - }); + // The button is not there if we show the maintenance sign + if (button) { + let tooltipTitle = window.isSecureContext ? "Copied!" : "Copy failed: Connect via HTTPS to enable automatic copying." + let tooltipHideDelay = window.isSecureContext ? 2000 : 7000; + const copyMessageTooltip = new Tooltip(button, {"trigger":"click", "title": tooltipTitle}) + $(button).on("click", () => { + // Get the text field + const copyText = document.getElementById("downloadUrlCopyTextField"); + + // Select the text field + copyText.select(); + if (window.isSecureContext) { + copyText.setSelectionRange(0, 99999); // For mobile devices + console.log("COPYING; is secure context: "+ window.isSecureContext) + // Copy the text inside the text field + navigator.clipboard.writeText(copyText.value); + + } + setTimeout(() => copyMessageTooltip.hide(), tooltipHideDelay); + }); + } } return {readyForWidgets, getReadySemaphor, displayCookieConsentOffcanvas, displayRoadworksWarningToast, setupDownloadUrlCopyButton}; diff --git a/gepi/gepi-webapp/src/main/resources/configuration.properties.faessler b/gepi/gepi-webapp/src/main/resources/configuration.properties.faessler index 22758f2d..3984e9e1 100644 --- a/gepi/gepi-webapp/src/main/resources/configuration.properties.faessler +++ b/gepi/gepi-webapp/src/main/resources/configuration.properties.faessler @@ -4,4 +4,6 @@ elasticquery.port=9201 elasticquery.sockettimeout=-1 gepi.documents.index.name=gepi_1.0 -gepi.neo4j.bolt.url=bolt://localhost:7687 \ No newline at end of file +gepi.neo4j.bolt.url=bolt://localhost:7687 + +gepi.maintenance=false \ No newline at end of file diff --git a/gepi/gepi-webapp/src/main/resources/configuration.properties.jetty b/gepi/gepi-webapp/src/main/resources/configuration.properties.jetty index dcda5e0e..ba5b5a8a 100644 --- a/gepi/gepi-webapp/src/main/resources/configuration.properties.jetty +++ b/gepi/gepi-webapp/src/main/resources/configuration.properties.jetty @@ -6,4 +6,6 @@ elasticquery.port=9200 elasticquery.sockettimeout=-1 gepi.documents.index.name=gepi_1.0 -gepi.neo4j.bolt.url=bolt://host.docker.internal:7687 \ No newline at end of file +gepi.neo4j.bolt.url=bolt://host.docker.internal:7687 + +gepi.maintenance=true \ No newline at end of file diff --git a/gepi/gepi-webapp/src/main/resources/de/julielab/gepi/webapp/components/Layout.tml b/gepi/gepi-webapp/src/main/resources/de/julielab/gepi/webapp/components/Layout.tml index f5d29419..565e0a82 100644 --- a/gepi/gepi-webapp/src/main/resources/de/julielab/gepi/webapp/components/Layout.tml +++ b/gepi/gepi-webapp/src/main/resources/de/julielab/gepi/webapp/components/Layout.tml @@ -35,9 +35,11 @@ GePI Version ${symbol:tapestry.application-version} diff --git a/gepi/gepi-webapp/src/main/resources/de/julielab/gepi/webapp/pages/Index.tml b/gepi/gepi-webapp/src/main/resources/de/julielab/gepi/webapp/pages/Index.tml index 093ebaeb..27110b21 100644 --- a/gepi/gepi-webapp/src/main/resources/de/julielab/gepi/webapp/pages/Index.tml +++ b/gepi/gepi-webapp/src/main/resources/de/julielab/gepi/webapp/pages/Index.tml @@ -1,84 +1,98 @@ + xmlns:t="http://tapestry.apache.org/schema/tapestry_5_4.xsd" showResetButton="true" xmlns:p="tapestry:parameter"> - -
-
-
- -
- -
-
-
-
-
-
-
-
- - -
- - - - - -
-
- -
-
-
+ +
+
+

Downtime due to Maintenance

+

GePI is currently down for maintenance. This could last from a few hours to several days. We apologize for the inconvenience.

+
-
-