Pipeline PR - GateNLP/gateplugin-ModularPipelines GitHub Wiki

Pipeline PR

Overview

GATE controllers can by default be nested: a controller can be added as a PR to an existing controller in default GATE. However, if the containing controller is saved, the contained controller is saved with it. Therefore, when the containing controller is loaded again, the contained pipeline is loaded from this file, not the file from which the contained pipeline was original loaded from. This makes it impossible to maintain the containing and the containing pipelines separately and thus prevents true modular development.

In order to develop nested pipelines in a modular way, it is necessary to keep the nested pipelines separated from the containing pipeline. Each time the containing pipeline is loaded or re-initialized, the nested pipeline should get re-loaded from its original URL. That way the nested pipeline can be maintained separately and used by several containing pipelines which will always get the newest version.

The Pipeline PR allows you to do exactly this: each Pipeline PR is associated with the URL of a nested pipeline. If the Pipeline PR is added to a containing pipeline, the nested pipeline will be loaded from the URL specified for the PR.

When the containing pipeline is saved, only the PR with the specified URL is saved. When the containing pipeline is loaded again, the PR takes care of loading the nested pipeline from its URL again.

Init Time Parameters

  • pipelineFileURL (URL, no default): the file URL of the pipeline file (.gapp, .xgapp) to load. Every time the PR is re-initialized, the currently loaded pipeline is removed and a fresh copy is loaded from that URL and initialized.