Allowed API to set different corpora for different simultaneous jobs #5
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The current version of ICE stores the selected corpus in edu.nyu.jet.uicomps.Ice.selectedCorpus (and Ice.selectedCorpusName) and refers to that whenever it needs to.
This is a problem if we want the user to be able to run multiple operations at the same time. For example, the user may want to start a long preprocessing or indexing job on one corpus, and while that job is running view the extracted entities or patterns, or compile entity sets or relations, on another corpus. In order to do that, they need to change the selectedCorpus.
In the current Swing system, changing the selectedCorpus in the middle of a job can wreak all kinds of havoc. If the user starts preprocessing Corpus A and then selects Corpus B to view entities, the preprocessor will switch in the middle to preprocessing Corpus B, abandoning the preprocessing of Corpus A, wasting CPU cycles, corrupting the cache and ultimately crashing.
These updates make it so that each job has a foreground corpus assigned to it that doesn't change over the course of the job.