You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by pk...@apache.org on 2013/06/18 11:19:40 UTC
svn commit: r1494077 - in
/uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler:
core/ learner/kep/ learner/lp2/ learner/trabal/ preferences/ ui/
Author: pkluegl
Date: Tue Jun 18 09:19:40 2013
New Revision: 1494077
URL: http://svn.apache.org/r1494077
Log:
UIMA-3004
- released cas object too early...
- added some preferences
Added:
uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/preferences/TextRulerPreferences.java
Modified:
uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/core/GlobalCASSource.java
uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/core/TextRulerBasicLearner.java
uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/core/TextRulerExampleDocument.java
uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/core/TextRulerToolkit.java
uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/learner/kep/KEPLearner.java
uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/learner/lp2/BasicLP2.java
uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/learner/trabal/TrabalLearner.java
uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/preferences/ConfigPreferencePage.java
uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/preferences/TextRulerPreferenceInitializer.java
uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/ui/TextRulerView.java
Modified: uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/core/GlobalCASSource.java
URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/core/GlobalCASSource.java?rev=1494077&r1=1494076&r2=1494077&view=diff
==============================================================================
--- uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/core/GlobalCASSource.java (original)
+++ uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/core/GlobalCASSource.java Tue Jun 18 09:19:40 2013
@@ -47,7 +47,7 @@ public class GlobalCASSource {
private static List<CAS> inUsage = new ArrayList<CAS>();
- public static synchronized CAS allocCAS(AnalysisEngine ae, boolean configChanged) {
+ public static synchronized CAS allocCAS(AnalysisEngine ae) {
if (free.size() > 0) {
CAS result = free.get(free.size() - 1);
free.remove(free.size() - 1);
@@ -84,4 +84,18 @@ public class GlobalCASSource {
}
}
+ public static void clear() {
+ for (CAS each : free) {
+ each.release();
+ each = null;
+ }
+ free.clear();
+ for (CAS each : inUsage) {
+ each.release();
+ each = null;
+ }
+ inUsage.clear();
+ CAS = 0;
+ }
+
}
Modified: uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/core/TextRulerBasicLearner.java
URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/core/TextRulerBasicLearner.java?rev=1494077&r1=1494076&r2=1494077&view=diff
==============================================================================
--- uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/core/TextRulerBasicLearner.java (original)
+++ uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/core/TextRulerBasicLearner.java Tue Jun 18 09:19:40 2013
@@ -41,6 +41,7 @@ import org.apache.uima.ruta.textruler.Te
import org.apache.uima.ruta.textruler.core.TextRulerTarget.MLTargetType;
import org.apache.uima.ruta.textruler.extension.TextRulerLearner;
import org.apache.uima.ruta.textruler.extension.TextRulerLearnerDelegate;
+import org.apache.uima.ruta.textruler.preferences.TextRulerPreferences;
import org.apache.uima.ruta.textruler.tools.MemoryWatch;
import org.apache.uima.util.FileUtils;
import org.eclipse.core.resources.IContainer;
@@ -48,6 +49,7 @@ import org.eclipse.core.resources.IProje
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
+import org.eclipse.jface.preference.IPreferenceStore;
/**
*
@@ -85,8 +87,6 @@ public abstract class TextRulerBasicLear
private boolean useDefaultFiltering;
- private boolean configChanged = false;
-
protected boolean supportBoundaries = false;
public TextRulerBasicLearner(String inputDir, String prePropTMFile, String tmpDir,
@@ -116,8 +116,6 @@ public abstract class TextRulerBasicLear
useDefaultFiltering &= filterSet.contains("org.apache.uima.ruta.type.NBSP");
useDefaultFiltering &= filterSet.contains("org.apache.uima.ruta.type.MARKUP");
- configChanged = true;
-
this.casCache = new CasCache(100, this); // TODO make size configurable
// !? share e.g. 100 places for
// all running algoritghms ?
@@ -145,8 +143,9 @@ public abstract class TextRulerBasicLear
String descriptorFile = TextRulerToolkit.getEngineDescriptorFromTMSourceFile(new Path(
preprocessorTMFile));
sendStatusUpdateToDelegate("loading AE...", TextRulerLearnerState.ML_INITIALIZING, false);
-
- AnalysisEngineDescription description = TextRulerToolkit.getAnalysisEngineDescription(descriptorFile);
+
+ AnalysisEngineDescription description = TextRulerToolkit
+ .getAnalysisEngineDescription(descriptorFile);
TextRulerToolkit.addBoundaryTypes(description, slotNames);
ae = TextRulerToolkit.loadAnalysisEngine(description);
@@ -159,25 +158,27 @@ public abstract class TextRulerBasicLear
ae.setConfigParameterValue(RutaEngine.SCRIPT_PATHS, new String[] { portableString });
ae.setConfigParameterValue(RutaEngine.ADDITIONAL_SCRIPTS, new String[0]);
ae.setConfigParameterValue(RutaEngine.RELOAD_SCRIPT, true);
- ae.setConfigParameterValue(RutaEngine.REMOVE_BASICS, true);
if (useDynamicAnchoring) {
ae.setConfigParameterValue(RutaEngine.DYNAMIC_ANCHORING, true);
}
+ IPreferenceStore store = TextRulerPlugin.getDefault().getPreferenceStore();
+ boolean lowMemoryProfile = store.getBoolean(TextRulerPreferences.LOW_MEMORY_PROFILE);
+ boolean removeBasics = store.getBoolean(TextRulerPreferences.REMOVE_BASICS);
+ ae.setConfigParameterValue(RutaEngine.LOW_MEMORY_PROFILE, lowMemoryProfile);
+ ae.setConfigParameterValue(RutaEngine.REMOVE_BASICS, removeBasics);
+
try {
ae.reconfigure();
} catch (ResourceConfigurationException e) {
TextRulerPlugin.error(e);
}
- configChanged = true;
}
-
-
protected boolean checkForMandatoryTypes() {
// check if all passed slot types are present:
CAS someCas = getTestCAS();
TypeSystem ts = someCas.getTypeSystem();
- GlobalCASSource.releaseCAS(someCas);
+// GlobalCASSource.releaseCAS(someCas);
boolean result = true;
List<String> missingTypes = new ArrayList<String>();
for (String s : slotNames) {
@@ -322,7 +323,7 @@ public abstract class TextRulerBasicLear
doc.resetAndFillTestCAS(testCAS, rule.getTarget());
testRuleOnDocument(rule, doc, c, testCAS);
testCAS.reset();
- GlobalCASSource.releaseCAS(testCAS);
+// GlobalCASSource.releaseCAS(testCAS);
}
public void testRuleOnDocument(final TextRulerRule rule, final TextRulerExampleDocument doc,
@@ -411,7 +412,7 @@ public abstract class TextRulerBasicLear
}
}
theTestCAS.reset();
- GlobalCASSource.releaseCAS(theTestCAS);
+// GlobalCASSource.releaseCAS(theTestCAS);
// do not release the shared test-cas ! only reset it ! it gets released
// at the end of the
// whole algorithm !
@@ -445,7 +446,7 @@ public abstract class TextRulerBasicLear
return;
}
theTestCAS.reset();
- GlobalCASSource.releaseCAS(theTestCAS);
+// GlobalCASSource.releaseCAS(theTestCAS);
// do not release the shared test-cas ! only reset it ! it gets released
// at the end of the
// whole algorithm !
@@ -550,14 +551,9 @@ public abstract class TextRulerBasicLear
// brought a performance
// boost!
- if (configChanged && algTestCAS != null) { // type system maybe changed
- GlobalCASSource.releaseCAS(algTestCAS);
- algTestCAS = null;
- }
if (algTestCAS == null) {
try {
- algTestCAS = GlobalCASSource.allocCAS(ae, configChanged);
- configChanged = false;
+ algTestCAS = GlobalCASSource.allocCAS(ae);
} catch (Exception e) {
TextRulerPlugin.error(e);
return null;
Modified: uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/core/TextRulerExampleDocument.java
URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/core/TextRulerExampleDocument.java?rev=1494077&r1=1494076&r2=1494077&view=diff
==============================================================================
--- uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/core/TextRulerExampleDocument.java (original)
+++ uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/core/TextRulerExampleDocument.java Tue Jun 18 09:19:40 2013
@@ -218,7 +218,7 @@ public class TextRulerExampleDocument {
result.add(shiftExample);
}
}
- GlobalCASSource.releaseCAS(testCAS);
+// GlobalCASSource.releaseCAS(testCAS);
} else {
List<AnnotationFS> slots = TextRulerToolkit.extractAnnotationsForSlotName(
aCas,
Modified: uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/core/TextRulerToolkit.java
URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/core/TextRulerToolkit.java?rev=1494077&r1=1494076&r2=1494077&view=diff
==============================================================================
--- uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/core/TextRulerToolkit.java (original)
+++ uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/core/TextRulerToolkit.java Tue Jun 18 09:19:40 2013
@@ -173,7 +173,7 @@ public class TextRulerToolkit {
reuseCAS.reset();
resultCas = reuseCAS;
} else {
- resultCas = GlobalCASSource.allocCAS(ae, false); // ae.newCAS();
+ resultCas = GlobalCASSource.allocCAS(ae); // ae.newCAS();
}
XmiCasDeserializer.deserialize(inputStream, resultCas, true);
return resultCas;
Modified: uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/learner/kep/KEPLearner.java
URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/learner/kep/KEPLearner.java?rev=1494077&r1=1494076&r2=1494077&view=diff
==============================================================================
--- uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/learner/kep/KEPLearner.java (original)
+++ uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/learner/kep/KEPLearner.java Tue Jun 18 09:19:40 2013
@@ -1063,7 +1063,6 @@ public class KEPLearner extends TextRule
}
cRule.getCoveringStatistics().reflectCountsFromCoveredExamples();
}
- GlobalCASSource.releaseCAS(processedCAS);
}
}
Modified: uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/learner/lp2/BasicLP2.java
URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/learner/lp2/BasicLP2.java?rev=1494077&r1=1494076&r2=1494077&view=diff
==============================================================================
--- uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/learner/lp2/BasicLP2.java (original)
+++ uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/learner/lp2/BasicLP2.java Tue Jun 18 09:19:40 2013
@@ -578,7 +578,7 @@ public abstract class BasicLP2 extends T
CAS someCas = getTestCAS();
TypeSystem ts = someCas.getTypeSystem();
- GlobalCASSource.releaseCAS(someCas);
+// GlobalCASSource.releaseCAS(someCas);
// check if all helper types are present:
List<String> list = new ArrayList<String>();
Modified: uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/learner/trabal/TrabalLearner.java
URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/learner/trabal/TrabalLearner.java?rev=1494077&r1=1494076&r2=1494077&view=diff
==============================================================================
--- uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/learner/trabal/TrabalLearner.java (original)
+++ uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/learner/trabal/TrabalLearner.java Tue Jun 18 09:19:40 2013
@@ -1615,7 +1615,7 @@ public class TrabalLearner extends TextR
for (int ruleIndex = 0; ruleIndex < rules.size(); ruleIndex++) {
rules.get(ruleIndex).setCoveringStatistics(sums.get(ruleIndex));
}
- GlobalCASSource.releaseCAS(theTestCAS);
+// GlobalCASSource.releaseCAS(theTestCAS);
sums.clear();
return rules;
}
Modified: uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/preferences/ConfigPreferencePage.java
URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/preferences/ConfigPreferencePage.java?rev=1494077&r1=1494076&r2=1494077&view=diff
==============================================================================
--- uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/preferences/ConfigPreferencePage.java (original)
+++ uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/preferences/ConfigPreferencePage.java Tue Jun 18 09:19:40 2013
@@ -19,39 +19,37 @@
package org.apache.uima.ruta.textruler.preferences;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
+import org.apache.uima.ruta.textruler.TextRulerPlugin;
+import org.eclipse.jface.preference.BooleanFieldEditor;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
-public class ConfigPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
+public class ConfigPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
public static String ID = "org.apache.uima.ruta.textruler.config";
+ private BooleanFieldEditor removeBasics;
+ private BooleanFieldEditor lowMemoryProfile;
- private Label evalHeadline;
public ConfigPreferencePage() {
-
+ setPreferenceStore(TextRulerPlugin.getDefault().getPreferenceStore());
+ setDescription("General settings for the different TextRuler methods.");
}
- @Override
- protected Control createContents(Composite parent) {
- Composite top = new Composite(parent, SWT.LEFT);
- top.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- top.setLayout(new GridLayout());
-
- evalHeadline = new Label(top, SWT.NULL);
- evalHeadline.setText("General settings for the different TextRuler methods.");
+ public void init(IWorkbench workbench) {
- return top;
}
- public void init(IWorkbench workbench) {
-
+ @Override
+ protected void createFieldEditors() {
+ removeBasics = new BooleanFieldEditor(TextRulerPreferences.REMOVE_BASICS,
+ "Remove basic annotations after testing rules.", getFieldEditorParent());
+ addField(removeBasics);
+
+ lowMemoryProfile = new BooleanFieldEditor(TextRulerPreferences.LOW_MEMORY_PROFILE,
+ "Use low memory profile.", getFieldEditorParent());
+ addField(lowMemoryProfile);
+
}
}
Modified: uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/preferences/TextRulerPreferenceInitializer.java
URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/preferences/TextRulerPreferenceInitializer.java?rev=1494077&r1=1494076&r2=1494077&view=diff
==============================================================================
--- uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/preferences/TextRulerPreferenceInitializer.java (original)
+++ uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/preferences/TextRulerPreferenceInitializer.java Tue Jun 18 09:19:40 2013
@@ -37,6 +37,8 @@ public class TextRulerPreferenceInitiali
public void initializeDefaultPreferences() {
IPreferenceStore store = TextRulerPlugin.getDefault().getPreferenceStore();
+ store.setDefault(TextRulerPreferences.REMOVE_BASICS, true);
+ store.setDefault(TextRulerPreferences.LOW_MEMORY_PROFILE, false);
List<TextRulerLearnerController> availableControllers = TextRulerController.getAvailableControllers();
for (TextRulerLearnerController each : availableControllers) {
Added: uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/preferences/TextRulerPreferences.java
URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/preferences/TextRulerPreferences.java?rev=1494077&view=auto
==============================================================================
--- uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/preferences/TextRulerPreferences.java (added)
+++ uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/preferences/TextRulerPreferences.java Tue Jun 18 09:19:40 2013
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.uima.ruta.textruler.preferences;
+
+public class TextRulerPreferences {
+
+ public static final String LOW_MEMORY_PROFILE = ConfigPreferencePage.ID + ".lowMemoryProfile";
+ public static final String REMOVE_BASICS = ConfigPreferencePage.ID + ".removeBasics";
+
+}
Modified: uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/ui/TextRulerView.java
URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/ui/TextRulerView.java?rev=1494077&r1=1494076&r2=1494077&view=diff
==============================================================================
--- uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/ui/TextRulerView.java (original)
+++ uima/sandbox/ruta/trunk/ruta-ep-textruler/src/main/java/org/apache/uima/ruta/textruler/ui/TextRulerView.java Tue Jun 18 09:19:40 2013
@@ -24,6 +24,7 @@ import java.util.HashSet;
import java.util.Set;
import org.apache.uima.ruta.textruler.TextRulerPlugin;
+import org.apache.uima.ruta.textruler.core.GlobalCASSource;
import org.apache.uima.ruta.textruler.extension.TextRulerController;
import org.apache.uima.ruta.textruler.extension.TextRulerControllerDelegate;
import org.apache.uima.ruta.textruler.extension.TextRulerLearner.TextRulerLearnerState;
@@ -154,16 +155,9 @@ public class TextRulerView extends ViewP
}
if (TextRulerController.enabledAlgorithmsCount() > 0) {
+// GlobalCASSource.releaseAll();
TextRulerController.start(inputDir, additionalDir, preProcTMFile, slotNames, filters, this,
viewContent.getCurrentAlgorithmParameters(), viewContent.getSkipPreprocessing());
-
- // BATCH_STUFF
- // preprocessorTMFile = preProcTMFile;
- // TextRulerView.slotNames = slotNames;
- // TextRulerView.filters = filters;
- // algParams = viewContent.getCurrentAlgorithmParameters();
- // skipPreprocessing = viewContent.getSkipPreprocessing();
- // batchNext();
} else
errorAlert("No algorithm has been activated for learning!");
}