Data object and logic definition for GERP Framework, which standardizes the four key processing steps: generation, evidencing, ranking, and pruning, to accomplish each individual information processing task. The standardized GERP-compatible pipeline allows to easily reuse components and formal performance analysis.
- Generators will be executed in parallel given the dependencies that the generator requires as input arguments.
- All raw types will be collected and processed by each Evidencer. Evidences are required to be created for all raw input types in each evidencer.
- All Evidences will then again be collected and passed to each Ranker in a Map grouped by raw types generated in the generation phase. A Rank should be produced by each ranker.
- Finally, all Rank types are grouped and delivered to each Pruner, and each pruner should produce a PruningDecision for each raw type.
Generator<T> g1, g2 = ...;
CollectiveEvidencer<T> e1, e2 = ...;
CollectiveRanker<T> r1, r2 = ...;
CollectivePruner<T> p1, p2 = ...;
GerpExecutor<T> exec = new JdkGerpExecutor<T>(Arrays.asList(g1, g2),
Arrays.asList(e1, e2),
Arrays.asList(r1, r2),
Arrays.asList(p1, p2));
List<T> results = exec.run(DEPENDENCIES);
A full example can be found here.
Object[] configurationData = {
"type", TYPE_NAME_TO_BE_GERPED,
"generators", new String[] { G1_DESC_PATH, G2_DESC_PATH },
"evidencers", new String[] { E1_DESC_PATH, E2_DESC_PATH },
"rankers", new String[] { R1_DESC_PATH, R2_DESC_PATH },
"pruners", new String[] { P1_DESC_PATH, P2_DESC_PATH }}
AnalysisEngineDescription aed = AnalysisEngineFactory.createEngineDescription(
SequentialGerpExecutor.class, configurationData);
JCasIterable iter = SimplePipeline.iteratePipeline(CR_DESC, aed);
A full example can be found here.
Questions or comments Please create an issue or contact me.