Author: pkluegl Date: Thu May 23 16:09:47 2013 New Revision: 1485764 URL: http://svn.apache.org/r1485764 Log: UIMA-2939 - use long instead of int
Modified: uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaStream.java uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/ComposedRuleElement.java uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RuleElement.java uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RuleElementCaretaker.java uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RutaDisjunctiveMatcher.java uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RutaLiteralMatcher.java uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RutaMatcher.java uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RutaRuleElement.java uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RutaTypeMatcher.java uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/WildCardRuleElement.java Modified: uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaStream.java URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaStream.java?rev=1485764&r1=1485763&r2=1485764&view=diff ============================================================================== --- uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaStream.java (original) +++ uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaStream.java Thu May 23 16:09:47 2013 @@ -690,7 +690,7 @@ public class RutaStream extends FSIterat simpleGreedyForComposed, crowd); } - public int getHistogram(Type type) { + public long getHistogram(Type type) { return cas.getAnnotationIndex(type).size(); } Modified: uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/ComposedRuleElement.java URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/ComposedRuleElement.java?rev=1485764&r1=1485763&r2=1485764&view=diff ============================================================================== --- uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/ComposedRuleElement.java (original) +++ uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/ComposedRuleElement.java Thu May 23 16:09:47 2013 @@ -247,11 +247,15 @@ public class ComposedRuleElement extends return anchors; } - public int estimateAnchors(RutaStream stream) { - int result = 1; + public long estimateAnchors(RutaStream stream) { + long result = 1; for (RuleElement each : elements) { result += each.estimateAnchors(stream); } + if (quantifier.isOptional(getParent(), stream)) { + // three times since sibling elements maybe need to be checked + result *= 3 * (int) stream.getIndexPenalty(); + } return result; } Modified: uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RuleElement.java URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RuleElement.java?rev=1485764&r1=1485763&r2=1485764&view=diff ============================================================================== --- uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RuleElement.java (original) +++ uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RuleElement.java Thu May 23 16:09:47 2013 @@ -61,7 +61,7 @@ public interface RuleElement { RuleElementQuantifier getQuantifier(); - int estimateAnchors(RutaStream stream); + long estimateAnchors(RutaStream stream); List<Integer> getSelfIndexList(); Modified: uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RuleElementCaretaker.java URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RuleElementCaretaker.java?rev=1485764&r1=1485763&r2=1485764&view=diff ============================================================================== --- uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RuleElementCaretaker.java (original) +++ uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RuleElementCaretaker.java Thu May 23 16:09:47 2013 @@ -62,15 +62,13 @@ public class RuleElementCaretaker implem } if (stream.isDynamicAnchoring()) { - // TODO activate dynamic anchoring - int min = Integer.MAX_VALUE; + long min = Long.MAX_VALUE; RuleElement minElement = null; int i = 1; for (RuleElement each : ruleElements) { - int estimate = each.estimateAnchors(stream); - // TODO what about this formula? + long estimate = each.estimateAnchors(stream); double factor = stream.getIndexPenalty(); - estimate = (int) (Math.log(estimate) * (i * factor)); + estimate = (long) (Math.log(estimate) * (i * factor)); if (estimate < min) { min = estimate; minElement = each; Modified: uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RutaDisjunctiveMatcher.java URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RutaDisjunctiveMatcher.java?rev=1485764&r1=1485763&r2=1485764&view=diff ============================================================================== --- uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RutaDisjunctiveMatcher.java (original) +++ uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RutaDisjunctiveMatcher.java Thu May 23 16:09:47 2013 @@ -80,8 +80,8 @@ public class RutaDisjunctiveMatcher impl return null; } - public int estimateAnchors(RutaBlock parent, RutaStream stream) { - int result = 0; + public long estimateAnchors(RutaBlock parent, RutaStream stream) { + long result = 0; for (RutaMatcher each : matchers) { result += each.estimateAnchors(parent, stream); } Modified: uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RutaLiteralMatcher.java URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RutaLiteralMatcher.java?rev=1485764&r1=1485763&r2=1485764&view=diff ============================================================================== --- uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RutaLiteralMatcher.java (original) +++ uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RutaLiteralMatcher.java Thu May 23 16:09:47 2013 @@ -67,7 +67,7 @@ public class RutaLiteralMatcher implemen return expression; } - public int estimateAnchors(RutaBlock parent, RutaStream stream) { + public long estimateAnchors(RutaBlock parent, RutaStream stream) { return Integer.MAX_VALUE; } Modified: uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RutaMatcher.java URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RutaMatcher.java?rev=1485764&r1=1485763&r2=1485764&view=diff ============================================================================== --- uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RutaMatcher.java (original) +++ uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RutaMatcher.java Thu May 23 16:09:47 2013 @@ -38,7 +38,7 @@ public interface RutaMatcher { RutaExpression getExpression(); - int estimateAnchors(RutaBlock parent, RutaStream stream); + long estimateAnchors(RutaBlock parent, RutaStream stream); Collection<AnnotationFS> getAnnotationsAfter(RutaRuleElement ruleElement, AnnotationFS annotation, RutaStream stream, RutaBlock parent); Modified: uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RutaRuleElement.java URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RutaRuleElement.java?rev=1485764&r1=1485763&r2=1485764&view=diff ============================================================================== --- uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RutaRuleElement.java (original) +++ uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RutaRuleElement.java Thu May 23 16:09:47 2013 @@ -365,9 +365,9 @@ public class RutaRuleElement extends Abs return parent; } - public int estimateAnchors(RutaStream stream) { + public long estimateAnchors(RutaStream stream) { if (quantifier.isOptional(getParent(), stream)) { - return Integer.MAX_VALUE; + return matcher.estimateAnchors(parent, stream) + Integer.MAX_VALUE; } return matcher.estimateAnchors(parent, stream); } Modified: uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RutaTypeMatcher.java URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RutaTypeMatcher.java?rev=1485764&r1=1485763&r2=1485764&view=diff ============================================================================== --- uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RutaTypeMatcher.java (original) +++ uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/RutaTypeMatcher.java Thu May 23 16:09:47 2013 @@ -280,7 +280,7 @@ public class RutaTypeMatcher implements return type; } - public int estimateAnchors(RutaBlock parent, RutaStream stream) { + public long estimateAnchors(RutaBlock parent, RutaStream stream) { TypeExpression typeExpression = mr.getTypeExpression(parent, stream); return stream.getHistogram(getType(typeExpression, parent, stream)); } Modified: uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/WildCardRuleElement.java URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/WildCardRuleElement.java?rev=1485764&r1=1485763&r2=1485764&view=diff ============================================================================== --- uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/WildCardRuleElement.java (original) +++ uima/sandbox/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/WildCardRuleElement.java Thu May 23 16:09:47 2013 @@ -473,7 +473,7 @@ public class WildCardRuleElement extends return Collections.emptyList(); } - public int estimateAnchors(RutaStream stream) { + public long estimateAnchors(RutaStream stream) { return Integer.MAX_VALUE; }