Added check for minimum repetition and formatted codes.
Change-Id: Id19e4d844ddb1cf46d69d68bacb5d07a656de5f3
diff --git a/src/main/java/de/ids_mannheim/korap/Krill.java b/src/main/java/de/ids_mannheim/korap/Krill.java
index 437e1e9..5b40873 100644
--- a/src/main/java/de/ids_mannheim/korap/Krill.java
+++ b/src/main/java/de/ids_mannheim/korap/Krill.java
@@ -222,8 +222,8 @@
// TODO: Temporary
if (collNode.fieldNames().hasNext()) {
- this.setCollection(new KrillCollection()
- .fromKoral(collNode));
+ this.setCollection(
+ new KrillCollection().fromKoral(collNode));
};
}
diff --git a/src/main/java/de/ids_mannheim/korap/KrillCollection.java b/src/main/java/de/ids_mannheim/korap/KrillCollection.java
index d49c4d6..38b0a48 100644
--- a/src/main/java/de/ids_mannheim/korap/KrillCollection.java
+++ b/src/main/java/de/ids_mannheim/korap/KrillCollection.java
@@ -200,7 +200,8 @@
return this.cb.till(key, dateStr);
};
- throw new QueryException(841, "Match relation unknown for type");
+ throw new QueryException(841,
+ "Match relation unknown for type");
}
// Filter based on string
@@ -216,23 +217,24 @@
return this.cb.term(key, json.get("value").asText())
.not();
- // This may change - but for now it means the elements are lowercased
+ // This may change - but for now it means the elements are lowercased
case "match:contains":
- return this.cb.term(key, json.get("value").asText()
- .toLowerCase());
+ return this.cb.term(key,
+ json.get("value").asText().toLowerCase());
case "match:containsnot":
return this.cb.term(key,
json.get("value").asText().toLowerCase()).not();
- // <LEGACY>
+ // <LEGACY>
case "match:excludes":
return this.cb.term(key,
json.get("value").asText().toLowerCase()).not();
- // </LEGACY>
+ // </LEGACY>
};
- throw new QueryException(841, "Match relation unknown for type");
+ throw new QueryException(841,
+ "Match relation unknown for type");
}
// Filter based on regex
@@ -254,7 +256,8 @@
return this.cb.re(key, json.get("value").asText()).not();
};
- throw new QueryException(841, "Match relation unknown for type");
+ throw new QueryException(841,
+ "Match relation unknown for type");
};
throw new QueryException(843, "Document type is not supported");
@@ -320,8 +323,8 @@
public KrillCollection extend (CollectionBuilder.Interface extension) {
- return this.fromBuilder(this.cb.orGroup().with(this.cbi)
- .with(extension));
+ return this
+ .fromBuilder(this.cb.orGroup().with(this.cbi).with(extension));
};
@@ -460,8 +463,8 @@
// Init vector
DocIdSet docids = filter.getDocIdSet(atomic, null);
- DocIdSetIterator filterIter = (docids == null) ? null : docids
- .iterator();
+ DocIdSetIterator filterIter = (docids == null) ? null
+ : docids.iterator();
if (filterIter == null) {
if (!this.cbi.isNegative())
@@ -485,8 +488,8 @@
};
// Remove deleted docs
- return (DocIdSet) BitsFilteredDocIdSet.wrap((DocIdSet) new BitDocIdSet(
- bitset), acceptDocs);
+ return (DocIdSet) BitsFilteredDocIdSet
+ .wrap((DocIdSet) new BitDocIdSet(bitset), acceptDocs);
};
@@ -681,72 +684,72 @@
throws Exception {
HashMap<String, Long> map = new HashMap<>(100);
long docNumber = 0, checkNumber = 0;
-
+
try {
if (kc.getCount() <= 0) {
checkNumber = (long) this.reader().numDocs();
};
-
+
for (LeafReaderContext atomic : this.reader().leaves()) {
HashMap<String, FixedBitSet> termVector = new HashMap<>(20);
-
+
FixedBitSet docvec = kc.bits(atomic);
if (docvec != null) {
docNumber += docvec.cardinality();
};
-
+
Terms terms = atomic.reader().fields().terms(field);
-
+
if (terms == null) {
continue;
};
-
+
int docLength = atomic.reader().maxDoc();
FixedBitSet bitset = new FixedBitSet(docLength);
-
+
// Iterate over all tokens in this field
TermsEnum termsEnum = terms.iterator(null);
-
+
while (termsEnum.next() != null) {
-
+
String termString = termsEnum.term().utf8ToString();
-
+
bitset.clear(0, docLength);
-
+
// Get frequency
bitset.or((DocIdSetIterator) termsEnum.docs((Bits) docvec,
null));
-
+
long value = 0;
if (map.containsKey(termString))
value = map.get(termString);
-
+
map.put(termString, value + bitset.cardinality());
-
+
termVector.put(termString, bitset.clone());
};
-
+
int keySize = termVector.size();
String[] keys = termVector.keySet()
.toArray(new String[keySize]);
java.util.Arrays.sort(keys);
-
+
if (keySize > maxTermRelations) {
throw new Exception("termRelations are limited to "
+ maxTermRelations + " sets"
+ " (requested were at least " + keySize + " sets)");
};
-
+
for (int i = 0; i < keySize; i++) {
for (int j = i + 1; j < keySize; j++) {
FixedBitSet comby = termVector.get(keys[i]).clone();
comby.and(termVector.get(keys[j]));
-
+
StringBuilder sb = new StringBuilder();
sb.append("#__").append(keys[i]).append(":###:")
.append(keys[j]);
String combString = sb.toString();
-
+
long cap = (long) comby.cardinality();
if (map.containsKey(combString)) {
cap += map.get(combString);
diff --git a/src/main/java/de/ids_mannheim/korap/KrillIndex.java b/src/main/java/de/ids_mannheim/korap/KrillIndex.java
index d978efc..06713b2 100644
--- a/src/main/java/de/ids_mannheim/korap/KrillIndex.java
+++ b/src/main/java/de/ids_mannheim/korap/KrillIndex.java
@@ -139,8 +139,7 @@
private byte[] pl = new byte[4];
private static ByteBuffer bb = ByteBuffer.allocate(4),
- bbOffset = ByteBuffer.allocate(8),
- bbTerm = ByteBuffer.allocate(16);
+ bbOffset = ByteBuffer.allocate(8), bbTerm = ByteBuffer.allocate(16);
// Some initializations ...
{
@@ -161,7 +160,8 @@
this.autoCommit = Integer.parseInt(autoCommitStr);
}
catch (NumberFormatException e) {
- log.error("krill.index.commit.auto expected to be a numerical value");
+ log.error(
+ "krill.index.commit.auto expected to be a numerical value");
};
};
};
@@ -547,8 +547,8 @@
if (gzip) {
// Create json field document
- FieldDocument fd = this.mapper.readValue(new GZIPInputStream(
- json), FieldDocument.class);
+ FieldDocument fd = this.mapper.readValue(
+ new GZIPInputStream(json), FieldDocument.class);
return fd;
};
return this.mapper.readValue(json, FieldDocument.class);
@@ -579,7 +579,8 @@
* @return The number of the occurrences.
* @see KrillCollection#numberOf
*/
- public long numberOf (KrillCollection collection, String field, String type) {
+ public long numberOf (KrillCollection collection, String field,
+ String type) {
collection.setIndex(this);
try {
@@ -616,11 +617,11 @@
};
return docCount;
};
-
+
// Create search term
// This may be prefixed by foundries
Term term = new Term(field, "-:" + type);
-
+
long occurrences = 0;
try {
// Iterate over all atomic readers and collect occurrences
@@ -629,12 +630,12 @@
atomic, term);
};
}
-
+
// Something went wrong
catch (Exception e) {
log.warn(e.getLocalizedMessage());
};
-
+
return occurrences;
*/
};
@@ -702,9 +703,9 @@
FixedBitSet os = (FixedBitSet) docvec;
return os.cardinality();
};
-
+
Term term = new Term(field, "-:" + type);
-
+
int occurrences = 0;
try {
for (LeafReaderContext atomic : this.reader().leaves()) {
@@ -714,7 +715,7 @@
catch (IOException e) {
log.warn(e.getLocalizedMessage());
};
-
+
return occurrences;
};
*/
@@ -783,8 +784,8 @@
// Rewrite parse ID
uid = new Integer(Integer.parseInt(uid)).toString();
- Filter filter = (Filter) new QueryWrapperFilter(new TermQuery(new Term(
- "UID", uid)));
+ Filter filter = (Filter) new QueryWrapperFilter(
+ new TermQuery(new Term("UID", uid)));
try {
@@ -792,8 +793,8 @@
for (LeafReaderContext atomic : this.reader().leaves()) {
// Retrieve the single document of interest
- DocIdSet filterSet = filter.getDocIdSet(atomic, atomic.reader()
- .getLiveDocs());
+ DocIdSet filterSet = filter.getDocIdSet(atomic,
+ atomic.reader().getLiveDocs());
// Create a bitset for the correct document
Bits bitset = filterSet.bits();
@@ -858,7 +859,7 @@
false, // includeSpans
true, // includeHighlights
false // extendToSentence
- );
+ );
};
@@ -923,8 +924,7 @@
// Create a filter based on the corpusID and the docID
BooleanQuery bool = new BooleanQuery();
if (match.getTextSigle() != null) {
- bool.add(
- new TermQuery(new Term("textSigle", match.getTextSigle())),
+ bool.add(new TermQuery(new Term("textSigle", match.getTextSigle())),
BooleanClause.Occur.MUST);
}
@@ -993,7 +993,8 @@
// Filter out bad layers
for (i = layer.size() - 1; i >= 0; i--) {
- if (!harmlessLayer.matcher(layer.get(i)).matches()) {
+ if (!harmlessLayer.matcher(layer.get(i))
+ .matches()) {
throw new QueryException(
"Invalid layer requested: "
+ layer.get(i));
@@ -1040,8 +1041,8 @@
for (LeafReaderContext atomic : this.reader().leaves()) {
// Retrieve the single document of interest
- DocIdSet filterSet = filter.getDocIdSet(atomic, atomic.reader()
- .getLiveDocs());
+ DocIdSet filterSet = filter.getDocIdSet(atomic,
+ atomic.reader().getLiveDocs());
// Create a bitset for the correct document
@@ -1074,8 +1075,8 @@
Terms docTerms = atomic.reader().getTermVector(localDocID,
field);
- HashSet<String> fields = (HashSet<String>) new Krill()
- .getMeta().getFields().clone();
+ HashSet<String> fields = (HashSet<String>) new Krill().getMeta()
+ .getFields().clone();
fields.add(field);
@@ -1108,7 +1109,8 @@
if (DEBUG)
log.trace("Extend to sentence element '{}'", element);
- if (spanContext[0] >= 0 && spanContext[0] < spanContext[1]) {
+ if (spanContext[0] >= 0
+ && spanContext[0] < spanContext[1]) {
match.setStartPos(spanContext[0]);
match.setEndPos(spanContext[1]);
match.startMore = false;
@@ -1210,7 +1212,8 @@
};
}
catch (IOException e) {
- match.addError(600, "Unable to read index", e.getLocalizedMessage());
+ match.addError(600, "Unable to read index",
+ e.getLocalizedMessage());
log.warn(e.getLocalizedMessage());
};
@@ -1327,9 +1330,10 @@
// Revise!
// Based on core/src/java/org/apache/lucene/search/IndexSearcher.java
// and highlighter/src/java/org/apache/lucene/search/postingshighlight/PostingsHighlighter.java
- for (Query rewrittenQuery = query.rewrite(this.reader()); !rewrittenQuery
- .equals(query); rewrittenQuery = query.rewrite(this
- .reader())) {
+ for (Query rewrittenQuery = query
+ .rewrite(this.reader()); !rewrittenQuery
+ .equals(query); rewrittenQuery = query
+ .rewrite(this.reader())) {
query = (SpanQuery) rewrittenQuery;
};
@@ -1376,7 +1380,8 @@
if (itemsPerResource > 0) {
// IDS are identical
- if (localDocID == oldLocalDocID || oldLocalDocID == -1) {
+ if (localDocID == oldLocalDocID
+ || oldLocalDocID == -1) {
if (itemsPerResourceCounter++ >= itemsPerResource) {
if (spans.skipTo(localDocID + 1) != true) {
break;
@@ -1402,8 +1407,9 @@
docID = atomic.docBase + localDocID;
// Do not load all of this, in case the doc is the same!
- final Document doc = (fields != null) ? lreader.document(
- localDocID, fields) : lreader.document(localDocID);
+ final Document doc = (fields != null)
+ ? lreader.document(localDocID, fields)
+ : lreader.document(localDocID);
// Create new Match
final Match match = new Match(pto, localDocID,
@@ -1461,7 +1467,8 @@
break;
// IDS are identical
- if (localDocID == oldLocalDocID || oldLocalDocID == -1) {
+ if (localDocID == oldLocalDocID
+ || oldLocalDocID == -1) {
if (localDocID == -1)
break;
@@ -1549,8 +1556,9 @@
try {
// Rewrite query (for regex and wildcard queries)
- for (Query rewrittenQuery = query.rewrite(this.reader()); rewrittenQuery != (Query) query; rewrittenQuery = query
- .rewrite(this.reader())) {
+ for (Query rewrittenQuery = query.rewrite(
+ this.reader()); rewrittenQuery != (Query) query; rewrittenQuery = query
+ .rewrite(this.reader())) {
query = (SpanQuery) rewrittenQuery;
};
@@ -1596,8 +1604,8 @@
};
// Read document id from index
- uniqueDocIDString = lreader
- .document(localDocID, fields).get("UID");
+ uniqueDocIDString = lreader.document(localDocID, fields)
+ .get("UID");
if (uniqueDocIDString != null)
uniqueDocID = Integer.parseInt(uniqueDocIDString);
diff --git a/src/main/java/de/ids_mannheim/korap/KrillMeta.java b/src/main/java/de/ids_mannheim/korap/KrillMeta.java
index c6bb0a4..a6aaade 100644
--- a/src/main/java/de/ids_mannheim/korap/KrillMeta.java
+++ b/src/main/java/de/ids_mannheim/korap/KrillMeta.java
@@ -43,9 +43,9 @@
// Lift following fields per default
// These fields are chosen for <legacy /> reasons
- for (String field : new String[] { "ID", "UID", "textSigle",
- "corpusID", "author", "title", "subTitle", "textClass",
- "pubPlace", "pubDate",
+ for (String field : new String[] { "ID", "UID", "textSigle", "corpusID",
+ "author", "title", "subTitle", "textClass", "pubPlace",
+ "pubDate",
// "foundries",
// "tokenization",
// New:
diff --git a/src/main/java/de/ids_mannheim/korap/KrillQuery.java b/src/main/java/de/ids_mannheim/korap/KrillQuery.java
index 19fd398..45f1dda 100644
--- a/src/main/java/de/ids_mannheim/korap/KrillQuery.java
+++ b/src/main/java/de/ids_mannheim/korap/KrillQuery.java
@@ -156,11 +156,11 @@
* SpanQueryWrapper sqw = kq.fromKoral(
* "{\"@type\" : \"koral:token\","+
* "\"wrap\" : {" +
- * "\"@type\" : \"koral:term\"," +
+ * "\"@type\" : \"koral:term\"," +
* "\"foundry\" : \"opennlp\"," +
- * "\"key\" : \"tree\"," +
- * "\"layer\" : \"orth\"," +
- * "\"match\" : \"match:eq\""+
+ * "\"key\" : \"tree\"," +
+ * "\"layer\" : \"orth\"," +
+ * "\"match\" : \"match:eq\""+
* "}}"
* );
* </pre></blockquote>
@@ -231,10 +231,10 @@
return this._groupFromJson(json);
case "koral:reference":
- if (json.has("operation")
- && !json.get("operation").asText()
- .equals("operation:focus"))
- throw new QueryException(712, "Unknown reference operation");
+ if (json.has("operation") && !json.get("operation").asText()
+ .equals("operation:focus"))
+ throw new QueryException(712,
+ "Unknown reference operation");
if (!json.has("operands")) {
throw new QueryException(766,
@@ -293,14 +293,13 @@
SpanSubspanQueryWrapper ssqw = new SpanSubspanQueryWrapper(
sqw, startOffset, length);
return ssqw;
- }
- ;
+ };
if (DEBUG)
log.trace("Wrap class reference {}", number);
- return new SpanFocusQueryWrapper(this._fromKoral(operands
- .get(0)), number);
+ return new SpanFocusQueryWrapper(
+ this._fromKoral(operands.get(0)), number);
case "koral:token":
@@ -446,10 +445,10 @@
// Deprecated in favor of operation:junction
case "operation:or":
return this._operationJunctionFromJson(operands);
- /*
- case "operation:submatch": // Deprecated in favor of koral:reference
- return this._operationSubmatchFromJson(json, operands);
- */
+ /*
+ case "operation:submatch": // Deprecated in favor of koral:reference
+ return this._operationSubmatchFromJson(json, operands);
+ */
case "operation:disjunction":
return this._operationJunctionFromJson(operands);
};
@@ -469,11 +468,9 @@
for (int i = 0; i < operands.size(); i++) {
childNode = operands.get(i);
if (childNode.has("@type")
- && childNode.get("@type").asText()
- .equals("koral:reference")
- && childNode.has("operation")
- && childNode.get("operation").asText()
- .equals("operation:focus")
+ && childNode.get("@type").asText().equals("koral:reference")
+ && childNode.has("operation") && childNode.get("operation")
+ .asText().equals("operation:focus")
&& !childNode.has("operands")) {
if (childNode.has("classRef")) {
@@ -963,7 +960,8 @@
// inOrder was set to false without a distance constraint
if (!sseqqw.isInOrder() && !sseqqw.hasConstraints()) {
if (DEBUG)
- log.trace("Add distance constraint - for the normal inorder case");
+ log.trace(
+ "Add distance constraint - for the normal inorder case");
sseqqw.withConstraint(1, 1, "w");
};
@@ -973,7 +971,8 @@
// Deserialize koral:token
- private SpanQueryWrapper _segFromJson (JsonNode json) throws QueryException {
+ private SpanQueryWrapper _segFromJson (JsonNode json)
+ throws QueryException {
if (!json.has("@type"))
throw new QueryException(701,
@@ -1006,9 +1005,9 @@
//
// case "match:eq":
return this._termFromJson(json);
- // };
- //
- // throw new QueryException(741, "Match relation unknown");
+ // };
+ //
+ // throw new QueryException(741, "Match relation unknown");
case "koral:termGroup":
@@ -1043,8 +1042,7 @@
throw new QueryException(744,
"Operand not supported in term group");
};
- }
- ;
+ };
return ssegqw;
case "relation:or":
@@ -1053,11 +1051,9 @@
this.field);
for (JsonNode operand : operands) {
ssaq.or(this._segFromJson(operand));
- }
- ;
+ };
return ssaq;
- }
- ;
+ };
};
throw new QueryException(745, "Token type is not supported");
};
@@ -1193,23 +1189,23 @@
// Branch on type
switch (json.get("type").asText()) {
- case "type:regex": {
+ case "type:regex": {
- // The regex can be rewritten to an any token
- if (value.toString().matches("^[si]:\\.[\\+\\*]\\??$")) {
- return new SpanRepetitionQueryWrapper();
- };
- return qb.seg(qb.re(value.toString(), isCaseInsensitive));
- }
- case "type:wildcard":
- return qb.seq(qb.wc(value.toString(), isCaseInsensitive));
+ // The regex can be rewritten to an any token
+ if (value.toString().matches("^[si]:\\.[\\+\\*]\\??$")) {
+ return new SpanRepetitionQueryWrapper();
+ };
+ return qb.seg(qb.re(value.toString(), isCaseInsensitive));
+ }
+ case "type:wildcard":
+ return qb.seq(qb.wc(value.toString(), isCaseInsensitive));
- case "type:string":
- break;
+ case "type:string":
+ break;
- default:
- this.addWarning(746,
- "Term type is not supported - treated as a string");
+ default:
+ this.addWarning(746,
+ "Term type is not supported - treated as a string");
};
};
@@ -1248,8 +1244,8 @@
// "Arbitraty elements with attributes are currently not supported.");
}
else {
- SpanQueryWrapper elementWithIdWrapper = this.builder().tag(
- value.toString());
+ SpanQueryWrapper elementWithIdWrapper = this.builder()
+ .tag(value.toString());
if (elementWithIdWrapper == null) {
return null;
}
@@ -1366,9 +1362,8 @@
// TODO: Here do not refer to 'tokens'!!!
// EM: what should it be? property?
- return new SpanAttributeQueryWrapper(
- new SpanSimpleQueryWrapper("tokens", "@root",
- Boolean.valueOf(rootValue)));
+ return new SpanAttributeQueryWrapper(new SpanSimpleQueryWrapper(
+ "tokens", "@root", Boolean.valueOf(rootValue)));
}
}
return null;
diff --git a/src/main/java/de/ids_mannheim/korap/collection/BooleanGroupFilter.java b/src/main/java/de/ids_mannheim/korap/collection/BooleanGroupFilter.java
index 2143664..475b5be 100644
--- a/src/main/java/de/ids_mannheim/korap/collection/BooleanGroupFilter.java
+++ b/src/main/java/de/ids_mannheim/korap/collection/BooleanGroupFilter.java
@@ -104,8 +104,8 @@
@Override
public String toString () {
- StringBuilder buffer = new StringBuilder(this.isOptional ? "OrGroup("
- : "AndGroup(");
+ StringBuilder buffer = new StringBuilder(
+ this.isOptional ? "OrGroup(" : "AndGroup(");
boolean first = true;
for (final GroupFilterOperand operand : this.operands) {
if (first)
@@ -168,8 +168,8 @@
log.debug("- Filter to allow all documents");
bitset.set(0, maxDoc);
- return BitsFilteredDocIdSet.wrap(
- new BitDocIdSet(bitset), acceptDocs);
+ return BitsFilteredDocIdSet
+ .wrap(new BitDocIdSet(bitset), acceptDocs);
};
// There is no possible match
diff --git a/src/main/java/de/ids_mannheim/korap/collection/CollectionBuilder.java b/src/main/java/de/ids_mannheim/korap/collection/CollectionBuilder.java
index 350d852..d3ade8b 100644
--- a/src/main/java/de/ids_mannheim/korap/collection/CollectionBuilder.java
+++ b/src/main/java/de/ids_mannheim/korap/collection/CollectionBuilder.java
@@ -58,7 +58,8 @@
if (till == 0 || till == KrillDate.END)
return null;
- return new CollectionBuilder.Range(field, KrillDate.BEGINNING, till);
+ return new CollectionBuilder.Range(field, KrillDate.BEGINNING,
+ till);
}
catch (NumberFormatException e) {
log.warn("Parameter of till(date) is invalid");
@@ -99,7 +100,8 @@
return new CollectionBuilder.Range(field, begin, end);
};
- return new CollectionBuilder.Range(field, dateDF.floor(), dateDF.ceil());
+ return new CollectionBuilder.Range(field, dateDF.floor(),
+ dateDF.ceil());
};
@@ -153,8 +155,8 @@
this.field, this.term)));
// Simple term
- return new TermsFilter(new org.apache.lucene.index.Term(this.field,
- this.term));
+ return new TermsFilter(
+ new org.apache.lucene.index.Term(this.field, this.term));
};
diff --git a/src/main/java/de/ids_mannheim/korap/index/AbstractDocument.java b/src/main/java/de/ids_mannheim/korap/index/AbstractDocument.java
index b293a47..d367382 100644
--- a/src/main/java/de/ids_mannheim/korap/index/AbstractDocument.java
+++ b/src/main/java/de/ids_mannheim/korap/index/AbstractDocument.java
@@ -44,7 +44,7 @@
public int internalDocID, localDocID, UID;
private KrillDate pubDate,
- // newly added
+ // newly added
creationDate;
private HashMap<String, String> fieldMap;
@@ -52,28 +52,17 @@
private String
// No longer supported
- ID,
- corpusID,
- field,
- layerInfo,
- tokenization,
+ ID, corpusID, field, layerInfo, tokenization,
// Still supported
- foundries,
- textClass,
- pubPlace,
+ foundries, textClass, pubPlace,
// Newly added for the corpus/doc/text distinction of DeReKo
- textSigle, docSigle, corpusSigle, title, subTitle, author,
- editor,
- docTitle, docSubTitle, docAuthor, docEditor,
- corpusTitle,
- corpusSubTitle, corpusAuthor, corpusEditor, textType,
- textTypeArt,
- textTypeRef, textColumn, textDomain,
- fileEditionStatement,
- biblEditionStatement, publisher, reference, language,
- license,
+ textSigle, docSigle, corpusSigle, title, subTitle, author, editor,
+ docTitle, docSubTitle, docAuthor, docEditor, corpusTitle,
+ corpusSubTitle, corpusAuthor, corpusEditor, textType, textTypeArt,
+ textTypeRef, textColumn, textDomain, fileEditionStatement,
+ biblEditionStatement, publisher, reference, language, license,
pages, keywords,
// Meta information regarding annotations
diff --git a/src/main/java/de/ids_mannheim/korap/index/Indexer.java b/src/main/java/de/ids_mannheim/korap/index/Indexer.java
index c5da39b..b5dfd20 100644
--- a/src/main/java/de/ids_mannheim/korap/index/Indexer.java
+++ b/src/main/java/de/ids_mannheim/korap/index/Indexer.java
@@ -71,7 +71,8 @@
// Add file to the index
try {
- if (this.index.addDoc(new FileInputStream(found), true) == null) {
+ if (this.index.addDoc(new FileInputStream(found),
+ true) == null) {
System.out.println("fail.");
continue;
};
@@ -121,8 +122,8 @@
String jar = new File(Indexer.class.getProtectionDomain()
.getCodeSource().getLocation().getPath()).getName();
- System.out
- .println("Add documents from a directory to the Krill index.");
+ System.out.println(
+ "Add documents from a directory to the Krill index.");
System.out.println("Usage: java -jar " + jar
+ " [--config propfile] [directories]*");
System.out.println();
diff --git a/src/main/java/de/ids_mannheim/korap/index/MultiTerm.java b/src/main/java/de/ids_mannheim/korap/index/MultiTerm.java
index b009e7b..e4eb624 100644
--- a/src/main/java/de/ids_mannheim/korap/index/MultiTerm.java
+++ b/src/main/java/de/ids_mannheim/korap/index/MultiTerm.java
@@ -158,7 +158,8 @@
* @return The {@link MultiTerm} object for chaining.
*/
public MultiTerm setPayload (short pl) {
- this.payload = new BytesRef(ByteBuffer.allocate(2).putShort(pl).array());
+ this.payload = new BytesRef(
+ ByteBuffer.allocate(2).putShort(pl).array());
return this;
};
@@ -321,8 +322,8 @@
sb.append(this.payload.utf8ToString());
}
catch (AssertionError e) {
- sb.append("<?>").append(
- this.payload.toString().replace(' ', ','));
+ sb.append("<?>")
+ .append(this.payload.toString().replace(' ', ','));
};
};
@@ -364,8 +365,8 @@
sb.append(this.payload.utf8ToString());
}
catch (AssertionError e) {
- sb.append("<?>").append(
- this.payload.toString().replace(' ', ','));
+ sb.append("<?>")
+ .append(this.payload.toString().replace(' ', ','));
};
};
return sb.toString();
@@ -398,8 +399,8 @@
// Resize the bytebuffer
if ((bb.capacity() - l) < 8) {
- bb = ByteBuffer.allocate(bb.capacity() + 8).put(
- bb.array());
+ bb = ByteBuffer.allocate(bb.capacity() + 8)
+ .put(bb.array());
bb.position(l);
};
@@ -479,7 +480,7 @@
// Unescape the term
private String _unescape (String term) {
- return term.replace("\\\\", "\\").replace("\\#", "#")
- .replace("\\$", "$");
+ return term.replace("\\\\", "\\").replace("\\#", "#").replace("\\$",
+ "$");
};
};
diff --git a/src/main/java/de/ids_mannheim/korap/index/MultiTermTokenStream.java b/src/main/java/de/ids_mannheim/korap/index/MultiTermTokenStream.java
index f02b074..50e39aa 100644
--- a/src/main/java/de/ids_mannheim/korap/index/MultiTermTokenStream.java
+++ b/src/main/java/de/ids_mannheim/korap/index/MultiTermTokenStream.java
@@ -153,7 +153,8 @@
* A surface string of a {@link MultiTerm}.
* @return The {@link MultiTermTokenStream} object for chaining.
*/
- public MultiTermTokenStream addMultiTermToken (char prefix, String surface) {
+ public MultiTermTokenStream addMultiTermToken (char prefix,
+ String surface) {
return this.addMultiTermToken(new MultiTermToken(prefix, surface));
};
diff --git a/src/main/java/de/ids_mannheim/korap/index/PositionsToOffset.java b/src/main/java/de/ids_mannheim/korap/index/PositionsToOffset.java
index bd84972..c471c51 100644
--- a/src/main/java/de/ids_mannheim/korap/index/PositionsToOffset.java
+++ b/src/main/java/de/ids_mannheim/korap/index/PositionsToOffset.java
@@ -161,8 +161,8 @@
public void addOffset (int docID, int pos, int startOffset, int endOffset) {
- offsets.put(new PositionsToOffsetArray(docID, pos), new Integer[] {
- startOffset, endOffset });
+ offsets.put(new PositionsToOffsetArray(docID, pos),
+ new Integer[] { startOffset, endOffset });
};
@@ -233,8 +233,7 @@
}
else {
- log.error(
- "Doc {} has no offsets stored for {}",
+ log.error("Doc {} has no offsets stored for {}",
docID, term.toString());
};
};
diff --git a/src/main/java/de/ids_mannheim/korap/index/TermInfo.java b/src/main/java/de/ids_mannheim/korap/index/TermInfo.java
index dc7403a..3f05ea8 100644
--- a/src/main/java/de/ids_mannheim/korap/index/TermInfo.java
+++ b/src/main/java/de/ids_mannheim/korap/index/TermInfo.java
@@ -68,8 +68,7 @@
this.type = "relTarget";
tterm = tterm.substring(2);
ttype = 3;
- }
- ;
+ };
break;
case '>':
diff --git a/src/main/java/de/ids_mannheim/korap/query/DistanceConstraint.java b/src/main/java/de/ids_mannheim/korap/query/DistanceConstraint.java
index 7a87bdd..279131f 100644
--- a/src/main/java/de/ids_mannheim/korap/query/DistanceConstraint.java
+++ b/src/main/java/de/ids_mannheim/korap/query/DistanceConstraint.java
@@ -53,7 +53,7 @@
* </ol>
*
* @author margaretha
- * */
+ */
public class DistanceConstraint {
private int minDistance, maxDistance;
diff --git a/src/main/java/de/ids_mannheim/korap/query/FrameConstraint.java b/src/main/java/de/ids_mannheim/korap/query/FrameConstraint.java
index e0c3dd6..ba90a77 100644
--- a/src/main/java/de/ids_mannheim/korap/query/FrameConstraint.java
+++ b/src/main/java/de/ids_mannheim/korap/query/FrameConstraint.java
@@ -60,9 +60,8 @@
public static final int PRECEDES = 1, PRECEDES_DIRECTLY = 1 << 1,
OVERLAPS_LEFT = 1 << 2, ALIGNS_LEFT = 1 << 3, STARTS_WITH = 1 << 4,
MATCHES = 1 << 5, IS_WITHIN = 1 << 6, IS_AROUND = 1 << 7,
- ENDS_WITH = 1 << 8, ALIGNS_RIGHT = 1 << 9,
- OVERLAPS_RIGHT = 1 << 10, SUCCEEDS_DIRECTLY = 1 << 11,
- SUCCEEDS = 1 << 12, ALL = 1024 * 8 - 1;
+ ENDS_WITH = 1 << 8, ALIGNS_RIGHT = 1 << 9, OVERLAPS_RIGHT = 1 << 10,
+ SUCCEEDS_DIRECTLY = 1 << 11, SUCCEEDS = 1 << 12, ALL = 1024 * 8 - 1;
private static final Map<String, Integer> FRAME;
@@ -113,7 +112,8 @@
* a.end < b.end && a.start == b.start
*/
FRAME_t.put("alignsLeft", ALIGNS_LEFT);
- NEXT_B_t.add(PRECEDES | PRECEDES_DIRECTLY | OVERLAPS_LEFT | ALIGNS_LEFT);
+ NEXT_B_t.add(
+ PRECEDES | PRECEDES_DIRECTLY | OVERLAPS_LEFT | ALIGNS_LEFT);
/*
* A starts with B
@@ -338,6 +338,7 @@
// Todo: create nextB arraymatrix by adding all combinations of constellation precomputed
// NEXTB[SUCCEEDS_DIRECTLY | SUCCEEDS] = NEXTB[SUCEEDS_DIRECTLY] | NEXTB[SUCCEEDS];
+
// NextB
// Integer.numberOfTrailingZeros();
private static int _next_b (int constellation) {
diff --git a/src/main/java/de/ids_mannheim/korap/query/QueryBuilder.java b/src/main/java/de/ids_mannheim/korap/query/QueryBuilder.java
index 96e4eb5..f065737 100644
--- a/src/main/java/de/ids_mannheim/korap/query/QueryBuilder.java
+++ b/src/main/java/de/ids_mannheim/korap/query/QueryBuilder.java
@@ -132,7 +132,8 @@
*/
public SpanRegexQueryWrapper re (String re, int flags,
boolean caseinsensitive) {
- return new SpanRegexQueryWrapper(this.field, re, flags, caseinsensitive);
+ return new SpanRegexQueryWrapper(this.field, re, flags,
+ caseinsensitive);
};
@@ -257,7 +258,7 @@
return ssq;
};
-
+
/**
* Create an empty query segment.
*
@@ -312,7 +313,8 @@
* [] An array of segment defining terms.
*/
public SpanSequenceQueryWrapper seq (SpanQueryWrapper ... terms) {
- SpanSequenceQueryWrapper sssq = new SpanSequenceQueryWrapper(this.field);
+ SpanSequenceQueryWrapper sssq = new SpanSequenceQueryWrapper(
+ this.field);
for (SpanQueryWrapper t : terms)
sssq.append(t);
return sssq;
@@ -431,7 +433,8 @@
};
- public SpanFocusQueryWrapper focus (short number, SpanQueryWrapper element) {
+ public SpanFocusQueryWrapper focus (short number,
+ SpanQueryWrapper element) {
return new SpanFocusQueryWrapper(element, number);
};
@@ -448,8 +451,8 @@
};
- public SpanRepetitionQueryWrapper repeat (SpanQueryWrapper element,
- int min, int max) {
+ public SpanRepetitionQueryWrapper repeat (SpanQueryWrapper element, int min,
+ int max) {
return new SpanRepetitionQueryWrapper(element, min, max);
};
};
diff --git a/src/main/java/de/ids_mannheim/korap/query/SimpleSpanQuery.java b/src/main/java/de/ids_mannheim/korap/query/SimpleSpanQuery.java
index 7e428a4..919022e 100644
--- a/src/main/java/de/ids_mannheim/korap/query/SimpleSpanQuery.java
+++ b/src/main/java/de/ids_mannheim/korap/query/SimpleSpanQuery.java
@@ -67,7 +67,7 @@
* @see SpanQuery
*
* @author margaretha
- * */
+ */
public abstract class SimpleSpanQuery extends SpanQuery implements Cloneable {
protected SpanQuery firstClause = null, secondClause = null;
@@ -91,7 +91,7 @@
* <code>true</code> if payloads are to be collected,
* otherwise
* <code>false</code>.
- * */
+ */
public SimpleSpanQuery (SpanQuery firstClause, boolean collectPayloads) {
if (firstClause == null) {
throw new IllegalArgumentException(
@@ -117,7 +117,7 @@
* <code>true</code> if payloads are to be collected,
* otherwise
* <code>false</code>.
- * */
+ */
public SimpleSpanQuery (SpanQuery firstClause, SpanQuery secondClause,
boolean collectPayloads) {
this(firstClause, collectPayloads);
@@ -144,7 +144,7 @@
* <code>true</code> if payloads are to be collected,
* otherwise
* <code>false</code>.
- * */
+ */
public SimpleSpanQuery (SpanQuery firstClause,
List<SpanQuery> secondClauses,
boolean collectPayloads) {
@@ -209,7 +209,7 @@
/**
* {@inheritDoc}
- * */
+ */
@Override
public String getField () {
return field;
@@ -339,8 +339,8 @@
throws IOException {
for (int i = 0; i < spanQueries.size(); i++) {
- final SpanQuery query = (SpanQuery) spanQueries.get(i).rewrite(
- reader);
+ final SpanQuery query = (SpanQuery) spanQueries.get(i)
+ .rewrite(reader);
if (!query.equals(spanQueries.get(i))) {
if (clone == null)
clone = clone();
@@ -381,7 +381,7 @@
/**
* {@inheritDoc}
- * */
+ */
// Used in rewriting query
@Override
public boolean equals (Object o) {
diff --git a/src/main/java/de/ids_mannheim/korap/query/SpanAttributeQuery.java b/src/main/java/de/ids_mannheim/korap/query/SpanAttributeQuery.java
index 265d2de..0ae6922 100644
--- a/src/main/java/de/ids_mannheim/korap/query/SpanAttributeQuery.java
+++ b/src/main/java/de/ids_mannheim/korap/query/SpanAttributeQuery.java
@@ -42,7 +42,7 @@
* </pre>
*
* @author margaretha
- * */
+ */
public class SpanAttributeQuery extends SimpleSpanQuery {
boolean negation;
diff --git a/src/main/java/de/ids_mannheim/korap/query/SpanDistanceQuery.java b/src/main/java/de/ids_mannheim/korap/query/SpanDistanceQuery.java
index da53af7..88c4de1 100644
--- a/src/main/java/de/ids_mannheim/korap/query/SpanDistanceQuery.java
+++ b/src/main/java/de/ids_mannheim/korap/query/SpanDistanceQuery.java
@@ -106,14 +106,14 @@
*
*
* @author margaretha
- * */
+ */
public class SpanDistanceQuery extends SimpleSpanQuery {
private boolean exclusion;
private boolean isOrdered;
private int minDistance, maxDistance;
private SpanElementQuery elementQuery; // element distance unit (sentence or
- // paragraph)
+ // paragraph)
private String distanceUnit;
private String spanName;
private DistanceConstraint constraint;
diff --git a/src/main/java/de/ids_mannheim/korap/query/SpanExpansionQuery.java b/src/main/java/de/ids_mannheim/korap/query/SpanExpansionQuery.java
index d7130e1..2d6c29f 100644
--- a/src/main/java/de/ids_mannheim/korap/query/SpanExpansionQuery.java
+++ b/src/main/java/de/ids_mannheim/korap/query/SpanExpansionQuery.java
@@ -97,7 +97,7 @@
* together with a class number.
*
* @author margaretha
- * */
+ */
public class SpanExpansionQuery extends SimpleSpanQuery {
private int min, max; // min, max expansion position
diff --git a/src/main/java/de/ids_mannheim/korap/query/SpanMultipleDistanceQuery.java b/src/main/java/de/ids_mannheim/korap/query/SpanMultipleDistanceQuery.java
index 51ba29b..ce65df6 100644
--- a/src/main/java/de/ids_mannheim/korap/query/SpanMultipleDistanceQuery.java
+++ b/src/main/java/de/ids_mannheim/korap/query/SpanMultipleDistanceQuery.java
@@ -73,7 +73,7 @@
* </ul>
*
* @author margaretha
- * */
+ */
public class SpanMultipleDistanceQuery extends SimpleSpanQuery {
private List<DistanceConstraint> constraints;
@@ -106,7 +106,8 @@
public SpanMultipleDistanceQuery (SpanQuery firstClause,
SpanQuery secondClause,
List<DistanceConstraint> constraints,
- boolean isOrdered, boolean collectPayloads) {
+ boolean isOrdered,
+ boolean collectPayloads) {
super(firstClause, secondClause, collectPayloads);
this.constraints = constraints;
this.isOrdered = isOrdered;
@@ -165,7 +166,7 @@
* meeting all the constraints.
*
* @return only the span matches meeting all the constraints.
- * */
+ */
@Override
public Spans getSpans (LeafReaderContext context, Bits acceptDocs,
Map<Term, TermContext> termContexts) throws IOException {
diff --git a/src/main/java/de/ids_mannheim/korap/query/SpanRelationMatchQuery.java b/src/main/java/de/ids_mannheim/korap/query/SpanRelationMatchQuery.java
index 151abf4..311a5fc 100644
--- a/src/main/java/de/ids_mannheim/korap/query/SpanRelationMatchQuery.java
+++ b/src/main/java/de/ids_mannheim/korap/query/SpanRelationMatchQuery.java
@@ -23,44 +23,47 @@
SpanQuery operand, boolean collectPayloads) {
checkVariables(relation, operand);
- SpanFocusQuery sq = new SpanFocusQuery(new SpanSegmentQuery(
- relationQuery, operandQuery, true),
+ SpanFocusQuery sq = new SpanFocusQuery(
+ new SpanSegmentQuery(relationQuery, operandQuery, true),
relation.getTempClassNumbers());
sq.setMatchTemporaryClass(true);
sq.setRemoveTemporaryClasses(true);
sq.setSorted(false); // which operand to focus might be
- // different from that to match
+ // different from that to match
this.setFirstClause(sq);
this.collectPayloads = collectPayloads;
}
- public SpanRelationMatchQuery (SpanRelationQuery relation,
- SpanQuery source, SpanQuery target,
- boolean collectPayloads) {
+ public SpanRelationMatchQuery (SpanRelationQuery relation, SpanQuery source,
+ SpanQuery target, boolean collectPayloads) {
checkVariables(relation, source, target);
SpanFocusQuery sq = null;
SpanFocusQuery sq2 = null;
// match source and then target
if (relationQuery.getDirection() == 0) {
- sq = new SpanFocusQuery(new SpanSegmentQuery(relationQuery,
- operandQuery, true), relation.getTempTargetNum());
+ sq = new SpanFocusQuery(
+ new SpanSegmentQuery(relationQuery, operandQuery, true),
+ relation.getTempTargetNum());
sq.setSorted(false);
sq.setMatchTemporaryClass(true);
- sq2 = new SpanFocusQuery(new SpanSegmentQuery(operand2Query, sq,
- true), relation.getTempClassNumbers());
+ sq2 = new SpanFocusQuery(
+ new SpanSegmentQuery(operand2Query, sq, true),
+ relation.getTempClassNumbers());
}
// match target and then source
else {
- sq = new SpanFocusQuery(new SpanSegmentQuery(relationQuery,
- operandQuery, true), relation.getTempSourceNum());
+ sq = new SpanFocusQuery(
+ new SpanSegmentQuery(relationQuery, operandQuery, true),
+ relation.getTempSourceNum());
sq.setMatchTemporaryClass(true);
- sq2 = new SpanFocusQuery(new SpanSegmentQuery(sq, operand2Query,
- true), relation.getTempClassNumbers());
+ sq2 = new SpanFocusQuery(
+ new SpanSegmentQuery(sq, operand2Query, true),
+ relation.getTempClassNumbers());
}
sq2.setMatchTemporaryClass(true);
@@ -128,8 +131,8 @@
public Spans getSpans (LeafReaderContext context, Bits acceptDocs,
Map<Term, TermContext> termContexts) throws IOException {
- return new FocusSpans((SpanFocusQuery) firstClause, context,
- acceptDocs, termContexts);
+ return new FocusSpans((SpanFocusQuery) firstClause, context, acceptDocs,
+ termContexts);
}
diff --git a/src/main/java/de/ids_mannheim/korap/query/SpanRelationQuery.java b/src/main/java/de/ids_mannheim/korap/query/SpanRelationQuery.java
index a2f565c..094e457 100644
--- a/src/main/java/de/ids_mannheim/korap/query/SpanRelationQuery.java
+++ b/src/main/java/de/ids_mannheim/korap/query/SpanRelationQuery.java
@@ -54,7 +54,7 @@
* </ol>
*
* @author margaretha
- * */
+ */
public class SpanRelationQuery extends SimpleSpanQuery {
private int direction = 0; // >
diff --git a/src/main/java/de/ids_mannheim/korap/query/SpanRepetitionQuery.java b/src/main/java/de/ids_mannheim/korap/query/SpanRepetitionQuery.java
index 92c6c94..c169e4b 100644
--- a/src/main/java/de/ids_mannheim/korap/query/SpanRepetitionQuery.java
+++ b/src/main/java/de/ids_mannheim/korap/query/SpanRepetitionQuery.java
@@ -47,7 +47,7 @@
* </pre>
*
* @author margaretha
- * */
+ */
public class SpanRepetitionQuery extends SimpleSpanQuery {
private int min, max;
@@ -72,6 +72,10 @@
public SpanRepetitionQuery (SpanQuery sq, int min, int max,
boolean collectPayloads) {
super(sq, collectPayloads);
+ if (min < 1) {
+ throw new IllegalArgumentException(
+ "Minimum repetition must not lower than 1.");
+ }
this.min = min;
this.max = max;
}
diff --git a/src/main/java/de/ids_mannheim/korap/query/SpanSegmentQuery.java b/src/main/java/de/ids_mannheim/korap/query/SpanSegmentQuery.java
index 508c7ca..9e36c40 100644
--- a/src/main/java/de/ids_mannheim/korap/query/SpanSegmentQuery.java
+++ b/src/main/java/de/ids_mannheim/korap/query/SpanSegmentQuery.java
@@ -26,7 +26,7 @@
* </pre>
*
* @author margaretha
- * */
+ */
public class SpanSegmentQuery extends SimpleSpanQuery {
private boolean isRelation;
@@ -72,7 +72,8 @@
@Override
public Spans getSpans (LeafReaderContext context, Bits acceptDocs,
Map<Term, TermContext> termContexts) throws IOException {
- return (Spans) new SegmentSpans(this, context, acceptDocs, termContexts);
+ return (Spans) new SegmentSpans(this, context, acceptDocs,
+ termContexts);
}
diff --git a/src/main/java/de/ids_mannheim/korap/query/SpanSubspanQuery.java b/src/main/java/de/ids_mannheim/korap/query/SpanSubspanQuery.java
index 9ec9632..5d31352 100644
--- a/src/main/java/de/ids_mannheim/korap/query/SpanSubspanQuery.java
+++ b/src/main/java/de/ids_mannheim/korap/query/SpanSubspanQuery.java
@@ -36,7 +36,7 @@
* two tokens of all sentences.
*
* @author margaretha
- * */
+ */
public class SpanSubspanQuery extends SimpleSpanQuery {
private int startOffset, length;
@@ -60,8 +60,8 @@
* otherwise
* <code>false</code>.
*/
- public SpanSubspanQuery (SpanQuery firstClause, int startOffset,
- int length, boolean collectPayloads) {
+ public SpanSubspanQuery (SpanQuery firstClause, int startOffset, int length,
+ boolean collectPayloads) {
super(firstClause, collectPayloads);
this.startOffset = startOffset;
this.length = length;
diff --git a/src/main/java/de/ids_mannheim/korap/query/SpanTermWithIdQuery.java b/src/main/java/de/ids_mannheim/korap/query/SpanTermWithIdQuery.java
index 324d560..51ae8d1 100644
--- a/src/main/java/de/ids_mannheim/korap/query/SpanTermWithIdQuery.java
+++ b/src/main/java/de/ids_mannheim/korap/query/SpanTermWithIdQuery.java
@@ -30,7 +30,7 @@
* the Term "tt:p/NN".
*
* @author margaretha
- * */
+ */
public class SpanTermWithIdQuery extends SimpleSpanQuery {
/**
diff --git a/src/main/java/de/ids_mannheim/korap/query/SpanWithAttributeQuery.java b/src/main/java/de/ids_mannheim/korap/query/SpanWithAttributeQuery.java
index fae7aa0..915ac3a 100644
--- a/src/main/java/de/ids_mannheim/korap/query/SpanWithAttributeQuery.java
+++ b/src/main/java/de/ids_mannheim/korap/query/SpanWithAttributeQuery.java
@@ -199,8 +199,8 @@
termContexts);
}
- SimpleSpans spans = (SimpleSpans) this.getFirstClause().getSpans(
- context, acceptDocs, termContexts);
+ SimpleSpans spans = (SimpleSpans) this.getFirstClause()
+ .getSpans(context, acceptDocs, termContexts);
return new SpansWithAttribute(this, spans, context, acceptDocs,
termContexts);
}
diff --git a/src/main/java/de/ids_mannheim/korap/query/spans/AttributeSpans.java b/src/main/java/de/ids_mannheim/korap/query/spans/AttributeSpans.java
index 4958bea..ab0576f 100644
--- a/src/main/java/de/ids_mannheim/korap/query/spans/AttributeSpans.java
+++ b/src/main/java/de/ids_mannheim/korap/query/spans/AttributeSpans.java
@@ -43,7 +43,7 @@
* "any element having a specific attribute".
*
* @author margaretha
- * */
+ */
public class AttributeSpans extends SimpleSpans {
private List<CandidateAttributeSpan> candidateList;
@@ -243,9 +243,9 @@
* The
* attributes with smaller spanIds come first on the list.
*
- * */
- class CandidateAttributeSpan extends CandidateSpan implements
- Comparable<CandidateSpan> {
+ */
+ class CandidateAttributeSpan extends CandidateSpan
+ implements Comparable<CandidateSpan> {
/**
* Construct a CandidateAttributeSpan based on the given span,
diff --git a/src/main/java/de/ids_mannheim/korap/query/spans/CandidateSpan.java b/src/main/java/de/ids_mannheim/korap/query/spans/CandidateSpan.java
index b132dc7..83e8ba4 100644
--- a/src/main/java/de/ids_mannheim/korap/query/spans/CandidateSpan.java
+++ b/src/main/java/de/ids_mannheim/korap/query/spans/CandidateSpan.java
@@ -15,14 +15,14 @@
* matching.
*
* @author margaretha
- * */
+ */
public class CandidateSpan implements Comparable<CandidateSpan>, Cloneable {
protected int doc, start, end;
private long cost;
private Collection<byte[]> payloads;
private int position;
private CandidateSpan childSpan; // used for example for multiple distance
- // with unordered constraint
+ // with unordered constraint
protected short spanId;
protected boolean hasSpanId;
diff --git a/src/main/java/de/ids_mannheim/korap/query/spans/ClassFilteredSpans.java b/src/main/java/de/ids_mannheim/korap/query/spans/ClassFilteredSpans.java
index 71e8e42..406247f 100644
--- a/src/main/java/de/ids_mannheim/korap/query/spans/ClassFilteredSpans.java
+++ b/src/main/java/de/ids_mannheim/korap/query/spans/ClassFilteredSpans.java
@@ -56,8 +56,8 @@
private boolean isClassOperationValid () throws IOException {
setBitsets();
- int cardinality = Math
- .max(bitset1.cardinality(), bitset2.cardinality());
+ int cardinality = Math.max(bitset1.cardinality(),
+ bitset2.cardinality());
bitset1.and(bitset2);
// System.out.println("cardinality:" + cardinality);
diff --git a/src/main/java/de/ids_mannheim/korap/query/spans/ClassSpans.java b/src/main/java/de/ids_mannheim/korap/query/spans/ClassSpans.java
index 47a6998..42e59a1 100644
--- a/src/main/java/de/ids_mannheim/korap/query/spans/ClassSpans.java
+++ b/src/main/java/de/ids_mannheim/korap/query/spans/ClassSpans.java
@@ -56,7 +56,8 @@
*/
public ClassSpans (SpanQuery operand, LeafReaderContext context,
Bits acceptDocs, Map<Term, TermContext> termContexts,
- byte number) throws IOException {
+ byte number)
+ throws IOException {
spans = operand.getSpans(context, acceptDocs, termContexts);
// The number of the class
diff --git a/src/main/java/de/ids_mannheim/korap/query/spans/DistanceExclusionSpans.java b/src/main/java/de/ids_mannheim/korap/query/spans/DistanceExclusionSpans.java
index f6cd732..b456035 100644
--- a/src/main/java/de/ids_mannheim/korap/query/spans/DistanceExclusionSpans.java
+++ b/src/main/java/de/ids_mannheim/korap/query/spans/DistanceExclusionSpans.java
@@ -17,7 +17,7 @@
* distance.
*
* @author margaretha
- * */
+ */
public class DistanceExclusionSpans extends DistanceSpans {
private int minDistance, maxDistance;
@@ -105,7 +105,7 @@
* @return distance the difference between the positions of a
* firstspan and
* a secondspan.
- * */
+ */
private int calculateActualDistance () {
// right secondSpan
if (firstSpans.end() <= secondSpans.start())
diff --git a/src/main/java/de/ids_mannheim/korap/query/spans/DistanceSpans.java b/src/main/java/de/ids_mannheim/korap/query/spans/DistanceSpans.java
index 7bc9136..286f91c 100644
--- a/src/main/java/de/ids_mannheim/korap/query/spans/DistanceSpans.java
+++ b/src/main/java/de/ids_mannheim/korap/query/spans/DistanceSpans.java
@@ -29,7 +29,7 @@
* @see MultipleDistanceSpans
*
* @author margaretha
- * */
+ */
public abstract class DistanceSpans extends SimpleSpans {
protected CandidateSpan matchFirstSpan, matchSecondSpan;
@@ -88,7 +88,7 @@
*
* @return <code>true</code> if a span match is available,
* <code>false</code> otherwise.
- * */
+ */
protected abstract boolean advance () throws IOException;
diff --git a/src/main/java/de/ids_mannheim/korap/query/spans/ElementDistanceExclusionSpans.java b/src/main/java/de/ids_mannheim/korap/query/spans/ElementDistanceExclusionSpans.java
index 78c0e76..1c5ebdc 100644
--- a/src/main/java/de/ids_mannheim/korap/query/spans/ElementDistanceExclusionSpans.java
+++ b/src/main/java/de/ids_mannheim/korap/query/spans/ElementDistanceExclusionSpans.java
@@ -30,7 +30,7 @@
* Note: The element distance unit does not overlap to each other.
*
* @author margaretha
- * */
+ */
public class ElementDistanceExclusionSpans extends DistanceSpans {
private Spans elements;
@@ -154,8 +154,8 @@
if (candidateList.isEmpty()) {
if (isFirstSpanInElement()) {
- setMatchProperties(new CandidateSpan(firstSpans,
- elementPosition));
+ setMatchProperties(
+ new CandidateSpan(firstSpans, elementPosition));
hasMoreSpans = firstSpans.next();
return true;
}
@@ -273,16 +273,16 @@
if (hasMoreSpans && firstSpans.start() < secondSpans.start()
&& firstSpans.doc() == currentDocNum) {
if (advanceElementTo(firstSpans)) {
- targetList.add(new CandidateSpan(firstSpans,
- elementPosition));
+ targetList.add(
+ new CandidateSpan(firstSpans, elementPosition));
}
hasMoreSpans = firstSpans.next();
continue;
}
// collects only second spans occurring inside an element
if (advanceElementTo(secondSpans)) {
- candidateList.add(new CandidateSpan(secondSpans,
- elementPosition));
+ candidateList
+ .add(new CandidateSpan(secondSpans, elementPosition));
}
hasMoreSecondSpans = secondSpans.next();
}
@@ -300,8 +300,8 @@
while (hasMoreSecondSpans && secondSpans.doc() == firstSpans.doc()
&& secondSpans.start() < firstSpans.end()) {
if (advanceElementTo(secondSpans)) {
- candidateList.add(new CandidateSpan(secondSpans,
- elementPosition));
+ candidateList
+ .add(new CandidateSpan(secondSpans, elementPosition));
filterCandidateList(elementPosition);
}
hasMoreSecondSpans = secondSpans.next();
diff --git a/src/main/java/de/ids_mannheim/korap/query/spans/ElementDistanceSpans.java b/src/main/java/de/ids_mannheim/korap/query/spans/ElementDistanceSpans.java
index 5f3ded5..dd53ac5 100644
--- a/src/main/java/de/ids_mannheim/korap/query/spans/ElementDistanceSpans.java
+++ b/src/main/java/de/ids_mannheim/korap/query/spans/ElementDistanceSpans.java
@@ -24,7 +24,7 @@
* Note: elements cannot overlap with each other.
*
* @author margaretha
- * */
+ */
public class ElementDistanceSpans extends OrderedDistanceSpans {
private Spans elements;
diff --git a/src/main/java/de/ids_mannheim/korap/query/spans/ExpandedExclusionSpans.java b/src/main/java/de/ids_mannheim/korap/query/spans/ExpandedExclusionSpans.java
index 4d64921..d747149 100644
--- a/src/main/java/de/ids_mannheim/korap/query/spans/ExpandedExclusionSpans.java
+++ b/src/main/java/de/ids_mannheim/korap/query/spans/ExpandedExclusionSpans.java
@@ -37,7 +37,7 @@
* grouping them altogether.
*
* @author margaretha
- * */
+ */
public class ExpandedExclusionSpans extends SimpleSpans {
private int min, max;
@@ -68,10 +68,9 @@
super(spanExpansionQuery, context, acceptDocs, termContexts);
if (spanExpansionQuery.getSecondClause() == null) {
- throw new IllegalArgumentException(
- "The SpanExpansionQuery "
- + "is not valid. The spanquery to exclude (notClause) cannot "
- + "be null.");
+ throw new IllegalArgumentException("The SpanExpansionQuery "
+ + "is not valid. The spanquery to exclude (notClause) cannot "
+ + "be null.");
}
/*
@@ -265,8 +264,8 @@
end = firstSpans.end();
//System.out.println(start+","+end);
cs = new CandidateSpan(start, end, firstSpans.doc(),
- firstSpans.cost(), createPayloads(start,
- firstSpans.start()));
+ firstSpans.cost(),
+ createPayloads(start, firstSpans.start()));
candidateSpans.add(cs);
}
counter--;
diff --git a/src/main/java/de/ids_mannheim/korap/query/spans/ExpandedSpans.java b/src/main/java/de/ids_mannheim/korap/query/spans/ExpandedSpans.java
index b31abb6..129ef82 100644
--- a/src/main/java/de/ids_mannheim/korap/query/spans/ExpandedSpans.java
+++ b/src/main/java/de/ids_mannheim/korap/query/spans/ExpandedSpans.java
@@ -27,7 +27,7 @@
* grouping them altogether.
*
* @author margaretha
- * */
+ */
public class ExpandedSpans extends SimpleSpans {
private int min, max;
@@ -117,8 +117,8 @@
while (counter >= min) {
start = Math.max(0, firstSpans.start() - counter);
cs = new CandidateSpan(start, firstSpans.end(),
- firstSpans.doc(), firstSpans.cost(), createPayloads(
- start, firstSpans.start()));
+ firstSpans.doc(), firstSpans.cost(),
+ createPayloads(start, firstSpans.start()));
candidateSpans.add(cs);
counter--;
@@ -130,8 +130,8 @@
// TODO: How do I know if the end is already too far (over the end of the doc)?
end = firstSpans.end() + counter;
cs = new CandidateSpan(firstSpans.start(), end,
- firstSpans.doc(), firstSpans.cost(), createPayloads(
- firstSpans.end(), end));
+ firstSpans.doc(), firstSpans.cost(),
+ createPayloads(firstSpans.end(), end));
candidateSpans.add(cs);
counter++;
}
diff --git a/src/main/java/de/ids_mannheim/korap/query/spans/FocusSpans.java b/src/main/java/de/ids_mannheim/korap/query/spans/FocusSpans.java
index e566637..84e5da9 100644
--- a/src/main/java/de/ids_mannheim/korap/query/spans/FocusSpans.java
+++ b/src/main/java/de/ids_mannheim/korap/query/spans/FocusSpans.java
@@ -108,9 +108,8 @@
while (hasMoreSpans || candidates.size() > 0) {
if (isSorted) {
- if (firstSpans.isPayloadAvailable()
- && updateSpanPositions(cs = new CandidateSpan(
- firstSpans))) {
+ if (firstSpans.isPayloadAvailable() && updateSpanPositions(
+ cs = new CandidateSpan(firstSpans))) {
setMatch(cs);
hasMoreSpans = firstSpans.next();
return true;
@@ -137,8 +136,8 @@
while (hasMoreSpans && candidates.size() < windowSize
&& firstSpans.doc() == currentDoc) {
- if (firstSpans.isPayloadAvailable()
- && updateSpanPositions(cs = new CandidateSpan(firstSpans))) {
+ if (firstSpans.isPayloadAvailable() && updateSpanPositions(
+ cs = new CandidateSpan(firstSpans))) {
if (cs.getDoc() == prevDoc && cs.getStart() < prevStart) {
log.warn("Span (" + cs.getStart() + ", " + cs.getEnd()
+ ") is out of order and skipped.");
diff --git a/src/main/java/de/ids_mannheim/korap/query/spans/MultipleDistanceSpans.java b/src/main/java/de/ids_mannheim/korap/query/spans/MultipleDistanceSpans.java
index f1b7973..ce117ea 100644
--- a/src/main/java/de/ids_mannheim/korap/query/spans/MultipleDistanceSpans.java
+++ b/src/main/java/de/ids_mannheim/korap/query/spans/MultipleDistanceSpans.java
@@ -31,7 +31,7 @@
* </ol>
*
* @author margaretha
- * */
+ */
public class MultipleDistanceSpans extends DistanceSpans {
private DistanceSpans x, y;
@@ -85,7 +85,7 @@
/**
* Finds the next match.
- * */
+ */
protected boolean advance () throws IOException {
while (hasMoreSpans && ensureSameDoc(x, y)) {
if (findMatch()) {
@@ -159,7 +159,8 @@
}
}
else if (xf.getStart() == yf.getStart() && xf.getEnd() == yf.getEnd()
- && xs.getStart() == ys.getStart() && xs.getEnd() == ys.getEnd()) {
+ && xs.getStart() == ys.getStart()
+ && xs.getEnd() == ys.getEnd()) {
setMatchProperties(x, false);
return true;
}
diff --git a/src/main/java/de/ids_mannheim/korap/query/spans/NextSpans.java b/src/main/java/de/ids_mannheim/korap/query/spans/NextSpans.java
index 3db12a7..75dd930 100644
--- a/src/main/java/de/ids_mannheim/korap/query/spans/NextSpans.java
+++ b/src/main/java/de/ids_mannheim/korap/query/spans/NextSpans.java
@@ -77,7 +77,8 @@
*/
private boolean advance () throws IOException {
- while (hasMoreSpans || !matchList.isEmpty() || !candidateList.isEmpty()) {
+ while (hasMoreSpans || !matchList.isEmpty()
+ || !candidateList.isEmpty()) {
if (!matchList.isEmpty()) {
matchDocNumber = firstSpans.doc();
matchStartPosition = firstSpans.start();
@@ -197,8 +198,8 @@
payloads.addAll(cs.getPayloads());
}
- matchList.add(new CandidateSpan(start, cs.getEnd(),
- candidateListDocNum, cost, payloads));
+ matchList.add(new CandidateSpan(start, cs.getEnd(), candidateListDocNum,
+ cost, payloads));
}
diff --git a/src/main/java/de/ids_mannheim/korap/query/spans/NonPartialOverlappingSpans.java b/src/main/java/de/ids_mannheim/korap/query/spans/NonPartialOverlappingSpans.java
index 07d1526..4464d90 100644
--- a/src/main/java/de/ids_mannheim/korap/query/spans/NonPartialOverlappingSpans.java
+++ b/src/main/java/de/ids_mannheim/korap/query/spans/NonPartialOverlappingSpans.java
@@ -19,7 +19,7 @@
* their positions and do not have a partial overlap.
*
* @author margaretha
- * */
+ */
public abstract class NonPartialOverlappingSpans extends SimpleSpans {
private Logger log = LoggerFactory
@@ -97,7 +97,7 @@
* @return 0 iff match is found, -1 to advance the firstspan, 1 to
* advance
* the secondspan
- * */
+ */
protected abstract int findMatch ();
diff --git a/src/main/java/de/ids_mannheim/korap/query/spans/OrderedDistanceSpans.java b/src/main/java/de/ids_mannheim/korap/query/spans/OrderedDistanceSpans.java
index 64507ab..52dc507 100644
--- a/src/main/java/de/ids_mannheim/korap/query/spans/OrderedDistanceSpans.java
+++ b/src/main/java/de/ids_mannheim/korap/query/spans/OrderedDistanceSpans.java
@@ -16,7 +16,7 @@
* Base class for calculating a distance between two ordered spans.
*
* @author margaretha
- * */
+ */
public abstract class OrderedDistanceSpans extends DistanceSpans {
protected boolean hasMoreFirstSpans;
@@ -57,7 +57,7 @@
/**
* Finds a span match in the candidate list.
- * */
+ */
@Override
protected boolean advance () throws IOException {
while (hasMoreSpans && candidateListIndex < candidateList.size()) {
diff --git a/src/main/java/de/ids_mannheim/korap/query/spans/RelationSpans.java b/src/main/java/de/ids_mannheim/korap/query/spans/RelationSpans.java
index 59d678e..ca467fc 100644
--- a/src/main/java/de/ids_mannheim/korap/query/spans/RelationSpans.java
+++ b/src/main/java/de/ids_mannheim/korap/query/spans/RelationSpans.java
@@ -48,7 +48,7 @@
* relation target is always 2 regardless of the relation direction.
*
* @author margaretha
- * */
+ */
public class RelationSpans extends RelationBaseSpans {
private int currentDoc, currentPosition;
@@ -61,8 +61,8 @@
private byte sourceClass, targetClass;
public static enum PayloadTypeIdentifier {
- TERM_TO_TERM(32), TERM_TO_ELEMENT(33), ELEMENT_TO_TERM(34), ELEMENT_TO_ELEMENT(
- 35);
+ TERM_TO_TERM(32), TERM_TO_ELEMENT(33), ELEMENT_TO_TERM(
+ 34), ELEMENT_TO_ELEMENT(35);
private byte value;
@@ -260,8 +260,8 @@
if (direction == 0) {
payload.add(createClassPayload(cs.getLeftStart(), cs.getLeftEnd(),
tempSourceNum, false));
- payload.add(createClassPayload(cs.getRightStart(),
- cs.getRightEnd(), tempTargetNum, false));
+ payload.add(createClassPayload(cs.getRightStart(), cs.getRightEnd(),
+ tempTargetNum, false));
if (sourceClass > 0) {
payload.add(createClassPayload(cs.getLeftStart(),
@@ -274,8 +274,8 @@
}
else {
- payload.add(createClassPayload(cs.getRightStart(),
- cs.getRightEnd(), tempSourceNum, false));
+ payload.add(createClassPayload(cs.getRightStart(), cs.getRightEnd(),
+ tempSourceNum, false));
payload.add(createClassPayload(cs.getLeftStart(), cs.getLeftEnd(),
tempTargetNum, false));
diff --git a/src/main/java/de/ids_mannheim/korap/query/spans/RepetitionSpans.java b/src/main/java/de/ids_mannheim/korap/query/spans/RepetitionSpans.java
index 843ccd8..cedd25a 100644
--- a/src/main/java/de/ids_mannheim/korap/query/spans/RepetitionSpans.java
+++ b/src/main/java/de/ids_mannheim/korap/query/spans/RepetitionSpans.java
@@ -24,7 +24,7 @@
* repetition depends on the min and max parameters.
*
* @author margaretha
- * */
+ */
public class RepetitionSpans extends SimpleSpans {
// Logger
@@ -179,8 +179,8 @@
if (i == 1) {
try {
matchSpan = startSpan.clone();
- matchSpan.setPayloads(computeMatchPayload(
- adjacentSpans, 0, endIndex - 1));
+ matchSpan.setPayloads(computeMatchPayload(adjacentSpans,
+ 0, endIndex - 1));
matchList.add(matchSpan);
}
catch (CloneNotSupportedException e) {
@@ -250,8 +250,8 @@
* the end index
* @return
*/
- private long computeMatchCost (List<CandidateSpan> adjacentSpans,
- int start, int end) {
+ private long computeMatchCost (List<CandidateSpan> adjacentSpans, int start,
+ int end) {
long matchCost = 0;
for (int i = start; i <= end; i++) {
matchCost += adjacentSpans.get(i).getCost();
diff --git a/src/main/java/de/ids_mannheim/korap/query/spans/SegmentSpans.java b/src/main/java/de/ids_mannheim/korap/query/spans/SegmentSpans.java
index d6b5d12..96b699f 100644
--- a/src/main/java/de/ids_mannheim/korap/query/spans/SegmentSpans.java
+++ b/src/main/java/de/ids_mannheim/korap/query/spans/SegmentSpans.java
@@ -17,7 +17,7 @@
* have exactly the same start and end positions.
*
* @author margaretha
- * */
+ */
public class SegmentSpans extends SimpleSpans {
private boolean isRelation;
@@ -90,7 +90,7 @@
* firstspan and
* secondspan are identical.
*
- * */
+ */
protected int findMatch () {
if (firstSpans.start() == secondSpans.start()
&& firstSpans.end() == secondSpans.end()) {
diff --git a/src/main/java/de/ids_mannheim/korap/query/spans/SimpleSpans.java b/src/main/java/de/ids_mannheim/korap/query/spans/SimpleSpans.java
index 6918e38..7917eb5 100644
--- a/src/main/java/de/ids_mannheim/korap/query/spans/SimpleSpans.java
+++ b/src/main/java/de/ids_mannheim/korap/query/spans/SimpleSpans.java
@@ -20,7 +20,7 @@
* and basic methods.
*
* @author margaretha
- * */
+ */
public abstract class SimpleSpans extends Spans {
private SimpleSpanQuery query;
protected boolean isStartEnumeration;
@@ -51,7 +51,8 @@
public SimpleSpans (SimpleSpanQuery simpleSpanQuery,
LeafReaderContext context, Bits acceptDocs,
- Map<Term, TermContext> termContexts) throws IOException {
+ Map<Term, TermContext> termContexts)
+ throws IOException {
this();
query = simpleSpanQuery;
collectPayloads = query.isCollectPayloads();
@@ -76,7 +77,7 @@
* document.
*
* @return true iff such a document exists.
- * */
+ */
protected boolean ensureSameDoc (Spans x, Spans y) throws IOException {
while (x.doc() != y.doc()) {
if (x.doc() < y.doc()) {
@@ -100,7 +101,7 @@
* Find the same doc shared by element, firstspan and secondspan.
*
* @return true iff such a doc is found.
- * */
+ */
protected boolean findSameDoc (Spans x, Spans y, Spans e)
throws IOException {
@@ -148,12 +149,10 @@
@Override
public String toString () {
- return getClass().getName()
- + "("
- + query.toString()
- + ")@"
- + (isStartEnumeration ? "START" : (hasMoreSpans ? (doc() + ":"
- + start() + "-" + end()) : "END"));
+ return getClass().getName() + "(" + query.toString() + ")@"
+ + (isStartEnumeration ? "START"
+ : (hasMoreSpans ? (doc() + ":" + start() + "-" + end())
+ : "END"));
}
diff --git a/src/main/java/de/ids_mannheim/korap/query/spans/SpansWithAttribute.java b/src/main/java/de/ids_mannheim/korap/query/spans/SpansWithAttribute.java
index 30e57ef..bc80e69 100644
--- a/src/main/java/de/ids_mannheim/korap/query/spans/SpansWithAttribute.java
+++ b/src/main/java/de/ids_mannheim/korap/query/spans/SpansWithAttribute.java
@@ -31,7 +31,7 @@
* constraints have to be formulated in Conjunctive Normal Form (CNF).
*
* @author margaretha
- * */
+ */
public class SpansWithAttribute extends SimpleSpans {
private SimpleSpans referentSpans;
@@ -298,7 +298,7 @@
* Advances the element or attribute spans to be in the same
* document and
* start position.
- * */
+ */
private boolean ensureSamePosition (SimpleSpans spans,
AttributeSpans attributes) throws IOException {
diff --git a/src/main/java/de/ids_mannheim/korap/query/spans/SubSpans.java b/src/main/java/de/ids_mannheim/korap/query/spans/SubSpans.java
index 57f8362..4989957 100644
--- a/src/main/java/de/ids_mannheim/korap/query/spans/SubSpans.java
+++ b/src/main/java/de/ids_mannheim/korap/query/spans/SubSpans.java
@@ -178,9 +178,10 @@
cs.setDoc(firstSpans.doc());
if (DEBUG) {
- log.trace("Start at absolute position {} "
- + "and end at absolute position {}", cs.getStart(),
- cs.getEnd());
+ log.trace(
+ "Start at absolute position {} "
+ + "and end at absolute position {}",
+ cs.getStart(), cs.getEnd());
};
return true;
diff --git a/src/main/java/de/ids_mannheim/korap/query/spans/TermSpansWithId.java b/src/main/java/de/ids_mannheim/korap/query/spans/TermSpansWithId.java
index 0135fca..a8a4b14 100644
--- a/src/main/java/de/ids_mannheim/korap/query/spans/TermSpansWithId.java
+++ b/src/main/java/de/ids_mannheim/korap/query/spans/TermSpansWithId.java
@@ -23,7 +23,7 @@
* payload.
*
* @author margaretha
- * */
+ */
public class TermSpansWithId extends SimpleSpans {
private TermSpans termSpans;
diff --git a/src/main/java/de/ids_mannheim/korap/query/spans/TokenDistanceSpans.java b/src/main/java/de/ids_mannheim/korap/query/spans/TokenDistanceSpans.java
index a33e219..dbdf130 100644
--- a/src/main/java/de/ids_mannheim/korap/query/spans/TokenDistanceSpans.java
+++ b/src/main/java/de/ids_mannheim/korap/query/spans/TokenDistanceSpans.java
@@ -24,7 +24,7 @@
* maximum end positions of the child spans.
*
* @author margaretha
- * */
+ */
public class TokenDistanceSpans extends OrderedDistanceSpans {
/**
@@ -71,7 +71,7 @@
* list
* prepared for the previous second spans.
*
- * */
+ */
private void copyPossibleCandidates () {
List<CandidateSpan> temp = new ArrayList<>();
for (CandidateSpan cs : candidateList) {
@@ -85,7 +85,7 @@
/**
* Add new possible firstspan candidates for the current
* secondspan.
- * */
+ */
private void addNewCandidates () throws IOException {
while (hasMoreFirstSpans && firstSpans.doc() == candidateListDocNum
&& firstSpans.start() < secondSpans.end()) {
@@ -101,9 +101,8 @@
@Override
protected boolean findMatch () throws IOException {
CandidateSpan candidateSpan = candidateList.get(candidateListIndex);
- if (minDistance == 0
- &&
- // intersection
+ if (minDistance == 0 &&
+ // intersection
candidateSpan.getStart() < secondSpans.end()
&& secondSpans.start() < candidateSpan.getEnd()) {
diff --git a/src/main/java/de/ids_mannheim/korap/query/spans/UnorderedDistanceSpans.java b/src/main/java/de/ids_mannheim/korap/query/spans/UnorderedDistanceSpans.java
index 3088b9f..72876ab 100644
--- a/src/main/java/de/ids_mannheim/korap/query/spans/UnorderedDistanceSpans.java
+++ b/src/main/java/de/ids_mannheim/korap/query/spans/UnorderedDistanceSpans.java
@@ -23,7 +23,7 @@
* order.
*
* @author margaretha
- * */
+ */
public abstract class UnorderedDistanceSpans extends DistanceSpans {
protected int minDistance, maxDistance;
@@ -260,7 +260,7 @@
* to the match list.
*
* @return a candidate span match
- * */
+ */
protected CandidateSpan createMatchCandidate (CandidateSpan target,
CandidateSpan cs, boolean isDistanceZero) {
@@ -278,7 +278,8 @@
payloads.addAll(cs.getPayloads());
}
}
- CandidateSpan match = new CandidateSpan(start, end, doc, cost, payloads);
+ CandidateSpan match = new CandidateSpan(start, end, doc, cost,
+ payloads);
match.setChildSpan(cs);
return match;
}
@@ -288,7 +289,7 @@
* Assigns the first candidate span in the match list as the
* current span
* match, and removes it from the matchList.
- * */
+ */
private void setMatchProperties () {
CandidateSpan cs = matchList.get(0);
matchDocNumber = cs.getDoc();
diff --git a/src/main/java/de/ids_mannheim/korap/query/spans/UnorderedElementDistanceSpans.java b/src/main/java/de/ids_mannheim/korap/query/spans/UnorderedElementDistanceSpans.java
index 0fec0af..6850ab4 100644
--- a/src/main/java/de/ids_mannheim/korap/query/spans/UnorderedElementDistanceSpans.java
+++ b/src/main/java/de/ids_mannheim/korap/query/spans/UnorderedElementDistanceSpans.java
@@ -26,7 +26,7 @@
* the spans.
*
* @author margaretha
- * */
+ */
public class UnorderedElementDistanceSpans extends UnorderedDistanceSpans {
private Spans elements;
@@ -147,9 +147,8 @@
*/
private int findElementPosition (Spans span) throws IOException {
// Check in the element list
- if (!elementList.isEmpty()
- && span.end() <= elementList.get(elementList.size() - 1)
- .getEnd()) {
+ if (!elementList.isEmpty() && span.end() <= elementList
+ .get(elementList.size() - 1).getEnd()) {
for (CandidateSpan e : elementList)
if (e.getEnd() >= span.end() && e.getStart() <= span.start()) {
@@ -223,18 +222,20 @@
* @return <code>true</code> if the target and candidate spans are
* within
* the maximum distance, <code>false</code> otherwise.
- * */
+ */
protected boolean isWithinMaxDistance (CandidateSpan target,
CandidateSpan candidate) {
int candidatePos = candidate.getPosition();
int targetPos = target.getPosition();
// left candidate
- if (candidatePos < targetPos && candidatePos + maxDistance < targetPos) {
+ if (candidatePos < targetPos
+ && candidatePos + maxDistance < targetPos) {
return false;
}
// right candidate
- if (candidatePos > targetPos && targetPos + maxDistance < candidatePos) {
+ if (candidatePos > targetPos
+ && targetPos + maxDistance < candidatePos) {
return false;
}
return true;
diff --git a/src/main/java/de/ids_mannheim/korap/query/spans/UnorderedTokenDistanceSpans.java b/src/main/java/de/ids_mannheim/korap/query/spans/UnorderedTokenDistanceSpans.java
index a8013bb..5c1350c 100644
--- a/src/main/java/de/ids_mannheim/korap/query/spans/UnorderedTokenDistanceSpans.java
+++ b/src/main/java/de/ids_mannheim/korap/query/spans/UnorderedTokenDistanceSpans.java
@@ -21,7 +21,7 @@
* distance is a token position.
*
* @author margaretha
- * */
+ */
public class UnorderedTokenDistanceSpans extends UnorderedDistanceSpans {
/**
@@ -105,7 +105,8 @@
* within
* the maximum distance, <code>false</code> otherwise.
*/
- protected boolean isWithinMaxDistance (CandidateSpan target, Spans candidate) {
+ protected boolean isWithinMaxDistance (CandidateSpan target,
+ Spans candidate) {
// left candidate
if (candidate.end() < target.getStart()
&& candidate.end() + maxDistance <= target.getStart()) {
@@ -127,9 +128,8 @@
List<CandidateSpan> matches = new ArrayList<>();
int actualDistance;
for (CandidateSpan cs : candidateList) {
- if (minDistance == 0
- &&
- // intersection
+ if (minDistance == 0 &&
+ // intersection
target.getStart() < cs.getEnd()
&& cs.getStart() < target.getEnd()) {
matches.add(createMatchCandidate(target, cs, true));
@@ -144,7 +144,8 @@
// right candidate
actualDistance = cs.getStart() - target.getEnd() + 1;
}
- if (minDistance <= actualDistance && actualDistance <= maxDistance) {
+ if (minDistance <= actualDistance
+ && actualDistance <= maxDistance) {
matches.add(createMatchCandidate(target, cs, false));
}
}
diff --git a/src/main/java/de/ids_mannheim/korap/query/spans/WithinSpans.java b/src/main/java/de/ids_mannheim/korap/query/spans/WithinSpans.java
index 9234716..fe507d9 100644
--- a/src/main/java/de/ids_mannheim/korap/query/spans/WithinSpans.java
+++ b/src/main/java/de/ids_mannheim/korap/query/spans/WithinSpans.java
@@ -303,7 +303,9 @@
// Fetch from second store?
else {
- /** TODO: Change this to a single embedded object! */
+ /**
+ * TODO: Change this to a single embedded object!
+ */
this.embeddedStart = current.start;
this.embeddedEnd = current.end;
this.embeddedDoc = current.doc;
@@ -338,7 +340,8 @@
// shift the stored spans
if (!this.spanStore1.isEmpty()) {
if (DEBUG) {
- log.trace("Move everything from SpanStore 1 to SpanStore 2:");
+ log.trace(
+ "Move everything from SpanStore 1 to SpanStore 2:");
for (WithinSpan i : this.spanStore1) {
log.trace(" | {}", i.toString());
};
@@ -372,8 +375,8 @@
this.wrapDoc = this.wrapSpans.doc();
if (DEBUG)
- log.trace(" Forward wrap span to {}", _currentWrap()
- .toString());
+ log.trace(" Forward wrap span to {}",
+ _currentWrap().toString());
if (this.embeddedDoc != this.wrapDoc) {
if (DEBUG)
@@ -842,8 +845,8 @@
private WithinSpan _currentWrap () {
WithinSpan _wrap = new WithinSpan();
- _wrap.start = this.wrapStart != -1 ? this.wrapStart : this.wrapSpans
- .start();
+ _wrap.start = this.wrapStart != -1 ? this.wrapStart
+ : this.wrapSpans.start();
_wrap.end = this.wrapEnd != -1 ? this.wrapEnd : this.wrapSpans.end();
_wrap.doc = this.wrapDoc != -1 ? this.wrapDoc : this.wrapSpans.doc();
return _wrap;
@@ -874,7 +877,7 @@
- storeEmbedded -> store span B for later checks
- nextSpanA -> forward a
- nextSpanB -> forward b
-
+
These rules were automatically generated
*/
@@ -1174,12 +1177,10 @@
@Override
public String toString () {
- return getClass().getName()
- + "("
- + query.toString()
- + ")@"
- + (embeddedDoc <= 0 ? "START" : (more ? (doc() + ":" + start()
- + "-" + end()) : "END"));
+ return getClass().getName() + "(" + query.toString() + ")@"
+ + (embeddedDoc <= 0 ? "START"
+ : (more ? (doc() + ":" + start() + "-" + end())
+ : "END"));
};
diff --git a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanAlterQueryWrapper.java b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanAlterQueryWrapper.java
index 8fd18cd..9b71cbf 100644
--- a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanAlterQueryWrapper.java
+++ b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanAlterQueryWrapper.java
@@ -48,8 +48,8 @@
this.alternatives = new ArrayList<>();
for (String term : terms) {
this.isNull = false;
- this.alternatives.add(new SpanSimpleQueryWrapper(new SpanTermQuery(
- new Term(this.field, term))));
+ this.alternatives.add(new SpanSimpleQueryWrapper(
+ new SpanTermQuery(new Term(this.field, term))));
};
};
diff --git a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanAttributeQueryWrapper.java b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanAttributeQueryWrapper.java
index 0d0fe23..d2941f9 100644
--- a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanAttributeQueryWrapper.java
+++ b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanAttributeQueryWrapper.java
@@ -8,7 +8,7 @@
/**
* @author margaretha
- * */
+ */
public class SpanAttributeQueryWrapper extends SpanQueryWrapper {
private SpanQueryWrapper subquery;
diff --git a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanClassQueryWrapper.java b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanClassQueryWrapper.java
index 51d4ab7..c06194f 100644
--- a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanClassQueryWrapper.java
+++ b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanClassQueryWrapper.java
@@ -70,8 +70,8 @@
if (this.subquery.isNull())
return (SpanQuery) null;
- SpanQuery sq = (SpanQuery) this.subquery
- .retrieveNode(this.retrieveNode).toFragmentQuery();
+ SpanQuery sq = (SpanQuery) this.subquery.retrieveNode(this.retrieveNode)
+ .toFragmentQuery();
if (sq == null)
return (SpanQuery) null;
diff --git a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanExpansionQueryWrapper.java b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanExpansionQueryWrapper.java
index 7c4cf61..f4011c2 100644
--- a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanExpansionQueryWrapper.java
+++ b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanExpansionQueryWrapper.java
@@ -8,7 +8,6 @@
import de.ids_mannheim.korap.query.SpanExpansionQuery;
import de.ids_mannheim.korap.util.QueryException;
-
import java.util.*;
/*
@@ -21,48 +20,41 @@
public class SpanExpansionQueryWrapper extends SpanQueryWrapper {
private SpanQueryWrapper anchor;
- // < 0 to the left of anchor span
+ // < 0 to the left of anchor span
// >= 0 to the right of anchor span
- private int direction;
+ private int direction;
- // if > 0, collect expansion offsets
- // using this label
+ // if > 0, collect expansion offsets
+ // using this label
private byte classNumber;
- public SpanExpansionQueryWrapper (SpanQueryWrapper anchor,
- int min,
- int max,
- int direction,
- byte classNumber
- ) {
- this.anchor = anchor;
- this.isNull = false;
- this.min = min;
- this.max = max;
- this.direction = direction;
- this.classNumber = classNumber;
- this.isExtended = true;
- if (direction >= 0)
- this.isExtendedToTheRight = true;
+ public SpanExpansionQueryWrapper (SpanQueryWrapper anchor, int min, int max,
+ int direction, byte classNumber) {
+ this.anchor = anchor;
+ this.isNull = false;
+ this.min = min;
+ this.max = max;
+ this.direction = direction;
+ this.classNumber = classNumber;
+ this.isExtended = true;
+ if (direction >= 0)
+ this.isExtendedToTheRight = true;
};
- @Override
+
+ @Override
public boolean isNull () {
- // Needs to be overwritten, as min and max do not indicate null value
+ // Needs to be overwritten, as min and max do not indicate null value
return this.isNull;
};
-
- @Override
+
+ @Override
public SpanQuery toFragmentQuery () throws QueryException {
- return new SpanExpansionQuery(
- this.anchor.retrieveNode(this.retrieveNode).toFragmentQuery(),
- this.getMin(),
- this.getMax(),
- this.direction,
- this.classNumber,
- true
- );
+ return new SpanExpansionQuery(
+ this.anchor.retrieveNode(this.retrieveNode).toFragmentQuery(),
+ this.getMin(), this.getMax(), this.direction, this.classNumber,
+ true);
};
};
diff --git a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanFocusQueryWrapper.java b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanFocusQueryWrapper.java
index 8fadb3e..89d8f65 100644
--- a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanFocusQueryWrapper.java
+++ b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanFocusQueryWrapper.java
@@ -52,8 +52,9 @@
public SpanQuery toFragmentQuery () throws QueryException {
if (this.subquery.isNull())
return (SpanQuery) null;
- return new SpanFocusQuery(this.subquery.retrieveNode(this.retrieveNode)
- .toFragmentQuery(), this.number);
+ return new SpanFocusQuery(
+ this.subquery.retrieveNode(this.retrieveNode).toFragmentQuery(),
+ this.number);
};
diff --git a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanQueryWrapper.java b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanQueryWrapper.java
index f0221d5..c6e1355 100644
--- a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanQueryWrapper.java
+++ b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanQueryWrapper.java
@@ -95,8 +95,8 @@
return this.isOptional;
};
-
- public SpanQueryWrapper isOptional (boolean opt) {
+
+ public SpanQueryWrapper isOptional (boolean opt) {
this.isOptional = opt;
return this;
};
@@ -219,6 +219,7 @@
return this;
};
+
/**
* Check, if the wrapped query can be used as an
* anchor query in a sequence, i.e. a query that
@@ -419,10 +420,10 @@
*/
public String toString () {
String string = "" + (this.isNull() ? "isNull" : "notNull") + "-"
- + (this.isEmpty() ? "isEmpty" : "notEmpty") + "-"
- + (this.isOptional() ? "isOptional" : "notOptional") + "-"
- + (this.isExtendedToTheRight() ? "isExtendedToTheRight" : "notExtendedToTheRight");
- ;
+ + (this.isEmpty() ? "isEmpty" : "notEmpty") + "-"
+ + (this.isOptional() ? "isOptional" : "notOptional") + "-"
+ + (this.isExtendedToTheRight() ? "isExtendedToTheRight"
+ : "notExtendedToTheRight");;
return string;
};
};
diff --git a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanRepetitionQueryWrapper.java b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanRepetitionQueryWrapper.java
index 65c4da6..808b064 100644
--- a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanRepetitionQueryWrapper.java
+++ b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanRepetitionQueryWrapper.java
@@ -101,8 +101,9 @@
.toFragmentQuery();
// That's a fine repetition query
- return new SpanRepetitionQuery(this.subquery.retrieveNode(
- this.retrieveNode).toFragmentQuery(), this.min, this.max, true);
+ return new SpanRepetitionQuery(
+ this.subquery.retrieveNode(this.retrieveNode).toFragmentQuery(),
+ this.min, this.max, true);
};
diff --git a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanSegmentQueryWrapper.java b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanSegmentQueryWrapper.java
index 1b1929b..8623671 100644
--- a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanSegmentQueryWrapper.java
+++ b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanSegmentQueryWrapper.java
@@ -196,7 +196,8 @@
public SpanQuery toFragmentQuery () throws QueryException {
- if (this.isNull || (this.inclusive.size() + this.exclusive.size() == 0)) {
+ if (this.isNull
+ || (this.inclusive.size() + this.exclusive.size() == 0)) {
return (SpanQuery) null;
}
else if (this.inclusive.size() >= 1 && this.exclusive.size() >= 1) {
diff --git a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanSequenceQueryWrapper.java b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanSequenceQueryWrapper.java
index c5aac76..2a263a6 100644
--- a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanSequenceQueryWrapper.java
+++ b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanSequenceQueryWrapper.java
@@ -89,8 +89,8 @@
public SpanSequenceQueryWrapper (String field, String ... terms) {
this(field);
for (int i = 0; i < terms.length; i++) {
- this.segments.add(new SpanSimpleQueryWrapper(new SpanTermQuery(
- new Term(field, terms[i]))));
+ this.segments.add(new SpanSimpleQueryWrapper(
+ new SpanTermQuery(new Term(field, terms[i]))));
};
// Query can't be null anymore
this.isNull = false;
@@ -133,8 +133,8 @@
if (DEBUG) {
if (!sswq.isEmpty()) {
try {
- log.trace("New span sequence {}", sswq.toFragmentQuery()
- .toString());
+ log.trace("New span sequence {}",
+ sswq.toFragmentQuery().toString());
}
catch (QueryException qe) {
log.trace("Unable to serialize query {}", qe.getMessage());
@@ -392,8 +392,8 @@
this.constraints = new ArrayList<DistanceConstraint>(1);
if (DEBUG)
log.trace("With contraint {}-{} (excl {})", min, max, exclusion);
- this.constraints.add(new DistanceConstraint(min, max, this.isInOrder,
- exclusion));
+ this.constraints.add(
+ new DistanceConstraint(min, max, this.isInOrder, exclusion));
return this;
};
@@ -476,8 +476,8 @@
String unit, boolean exclusion) {
if (DEBUG)
- log.trace("With contraint {}-{} (unit {}, excl {})", min, max,
- unit, exclusion);
+ log.trace("With contraint {}-{} (unit {}, excl {})", min, max, unit,
+ exclusion);
// Word unit
if (unit.equals("w")) {
@@ -486,15 +486,15 @@
if (this.constraints == null)
this.constraints = new ArrayList<DistanceConstraint>(1);
- this.constraints.add(new DistanceConstraint(min, max, isInOrder,
- exclusion));
+ this.constraints.add(
+ new DistanceConstraint(min, max, isInOrder, exclusion));
return this;
};
// Element unit (sentence or paragraph)
- return this.withConstraint(min, max, new SpanElementQueryWrapper(
- this.field, unit), exclusion);
+ return this.withConstraint(min, max,
+ new SpanElementQueryWrapper(this.field, unit), exclusion);
};
@@ -545,9 +545,10 @@
// Element unit (sentence or paragraph)
// Todo: This should possibly be evaluated to a query later on!
try {
- this.constraints.add(new DistanceConstraint((SpanElementQuery) unit
- .retrieveNode(this.retrieveNode).toFragmentQuery(), min,
- max, isInOrder, exclusion));
+ this.constraints.add(new DistanceConstraint(
+ (SpanElementQuery) unit.retrieveNode(this.retrieveNode)
+ .toFragmentQuery(),
+ min, max, isInOrder, exclusion));
}
catch (QueryException qe) {
this.constraintException = qe;
@@ -741,7 +742,7 @@
return (SpanQuery) query;
};
- // DistanceQueries with problems
+ // DistanceQueries with problems
if (this.hasConstraints() && this.isProblematic) {
throw new QueryException(613,
"Distance constraints not supported with empty, optional or negative operands");
@@ -769,8 +770,8 @@
if (sq == null)
continue;
- SpanDistanceQuery sdquery = new SpanDistanceQuery(query,
- sq, constraint, true);
+ SpanDistanceQuery sdquery = new SpanDistanceQuery(query, sq,
+ constraint, true);
query = (SpanQuery) sdquery;
};
}
@@ -793,8 +794,8 @@
if (sq == null)
continue;
- SpanDistanceQuery sdquery = new SpanDistanceQuery(query,
- sq, constraint, true);
+ SpanDistanceQuery sdquery = new SpanDistanceQuery(query, sq,
+ constraint, true);
query = (SpanQuery) sdquery;
};
};
@@ -828,12 +829,12 @@
segments to extensions).
This has to be done as long as there are problematic segments
In the queries.
-
+
While there is a segment isNegative() or isOptional() or isEmpty() do
- look for an anchor next to it
- merge the problematic segment with the anchor
- go on
-
+
- This does not work for distance constraints!
*/
private boolean _solveProblematicSequence () {
@@ -875,8 +876,7 @@
// Insert the solution
try {
- this.segments.set(
- i + 1,
+ this.segments.set(i + 1,
_merge(this.segments.get(i + 1), underScrutiny,
false));
}
@@ -906,10 +906,8 @@
// Insert the solution
try {
- this.segments.set(
- i - 1,
- _merge(this.segments.get(i - 1), underScrutiny,
- true));
+ this.segments.set(i - 1, _merge(
+ this.segments.get(i - 1), underScrutiny, true));
}
catch (QueryException e) {
this.isSolved = true;
@@ -969,8 +967,8 @@
int direction = mergeLeft ? 1 : -1;
if (DEBUG)
- log.trace("Will merge two spans to {}", mergeLeft ? "left"
- : "right");
+ log.trace("Will merge two spans to {}",
+ mergeLeft ? "left" : "right");
// Make empty extension to anchor
if (problem.isEmpty()) {
@@ -980,46 +978,44 @@
log.trace("Problem is empty with class {}",
problem.getClassNumber());
- // Merge extensions!
- if (!problem.hasClass() &&
- !anchor.hasClass() &&
- anchor.isExtended()) {
+ // Merge extensions!
+ if (!problem.hasClass() && !anchor.hasClass()
+ && anchor.isExtended()) {
- if (DEBUG)
- log.trace("It may be possible to extend anchor with problem");
-
- if (
- // Further extend to the right ...
- (direction >= 0 && anchor.isExtendedToTheRight) ||
+ if (DEBUG)
+ log.trace(
+ "It may be possible to extend anchor with problem");
- // or the left
- (direction < 0 && !anchor.isExtendedToTheRight)) {
+ if (
+ // Further extend to the right ...
+ (direction >= 0 && anchor.isExtendedToTheRight) ||
- if (DEBUG)
- log.trace("Readjust min and max");
+ // or the left
+ (direction < 0 && !anchor.isExtendedToTheRight)) {
- // Readjust the anchor
- anchor.setMin(anchor.getMin() + problem.getMin());
- anchor.setMax(anchor.getMax() + problem.getMax());
+ if (DEBUG)
+ log.trace("Readjust min and max");
- /*
- * This is wrong - min is only relevant for extensions
- if (anchor.getMin() > 0)
- anchor.isOptional = false;
- */
- return anchor;
- };
- };
+ // Readjust the anchor
+ anchor.setMin(anchor.getMin() + problem.getMin());
+ anchor.setMax(anchor.getMax() + problem.getMax());
- // Can't merge extensions
- SpanQueryWrapper sqw = new SpanExpansionQueryWrapper(
- anchor,
- problem.isOptional() ? 0 : problem.getMin(),
- problem.getMax(),
- direction,
- problem.hasClass() ? problem.getClassNumber() : (byte) 0
- ).isExtended(true);
-
+ /*
+ * This is wrong - min is only relevant for extensions
+ if (anchor.getMin() > 0)
+ anchor.isOptional = false;
+ */
+ return anchor;
+ };
+ };
+
+ // Can't merge extensions
+ SpanQueryWrapper sqw = new SpanExpansionQueryWrapper(anchor,
+ problem.isOptional() ? 0 : problem.getMin(),
+ problem.getMax(), direction,
+ problem.hasClass() ? problem.getClassNumber() : (byte) 0)
+ .isExtended(true);
+
// Set right extension
if (direction >= 0)
sqw.isExtendedToTheRight(true);
@@ -1036,17 +1032,17 @@
log.trace("Problem is negative with class {}",
problem.getClassNumber());
- // TODO: Should probably wrapped as well!
- // A sequence of negative tokens may expand jointly!
- query = new SpanExpansionQuery(anchor.retrieveNode(
- this.retrieveNode).toFragmentQuery(), problem.retrieveNode(
- this.retrieveNode).toFragmentQuery(), problem.getMin(),
- problem.getMax(), direction,
- problem.hasClass() ? problem.getClassNumber() : (byte) 0,
- true);
+ // TODO: Should probably wrapped as well!
+ // A sequence of negative tokens may expand jointly!
+ query = new SpanExpansionQuery(
+ anchor.retrieveNode(this.retrieveNode).toFragmentQuery(),
+ problem.retrieveNode(this.retrieveNode).toFragmentQuery(),
+ problem.getMin(), problem.getMax(), direction,
+ problem.hasClass() ? problem.getClassNumber() : (byte) 0,
+ true);
SpanQueryWrapper sqw = new SpanSimpleQueryWrapper(query)
- .isExtended(true);
+ .isExtended(true);
// Set right extension
if (direction >= 0)
@@ -1058,29 +1054,25 @@
if (DEBUG)
log.trace("Problem is optional");
- // [base=der][][base=Baum]?
+ // [base=der][][base=Baum]?
// [base=der][base=baum]?
// [base=der]
- SpanAlterQueryWrapper saqw = new SpanAlterQueryWrapper(
- this.field,
- anchor
- );
+ SpanAlterQueryWrapper saqw = new SpanAlterQueryWrapper(this.field,
+ anchor);
// [base=der]
- SpanSequenceQueryWrapper ssqw = new SpanSequenceQueryWrapper(
- this.field,
- anchor
- );
+ SpanSequenceQueryWrapper ssqw = new SpanSequenceQueryWrapper(this.field,
+ anchor);
// [base=der][base=baum]
- if (mergeLeft) {
+ if (mergeLeft) {
ssqw.append(problem.isOptional(false));
- }
+ }
// [base=baum][base=der]
else {
ssqw.prepend(problem.isOptional(false));
- }
+ }
saqw.or(ssqw);
diff --git a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanSimpleQueryWrapper.java b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanSimpleQueryWrapper.java
index 3d9c76a..cdf4619 100644
--- a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanSimpleQueryWrapper.java
+++ b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanSimpleQueryWrapper.java
@@ -26,18 +26,20 @@
this.query = query;
};
- // This is similar to a clone
- public SpanSimpleQueryWrapper (SpanQueryWrapper query) throws QueryException {
- this.hasClass = query.hasClass();
- this.isOptional = query.isOptional();
- this.isNegative = query.isNegative();
- this.isEmpty = query.isEmpty();
- this.isExtended = query.isExtended();
- this.isExtendedToTheRight = query.isExtendedToTheRight();
- this.maybeUnsorted = query.maybeUnsorted();
- this.retrieveNode = query.retrieveNode;
- this.query = query.toFragmentQuery();
- this.isNull = query.isNull();
+
+ // This is similar to a clone
+ public SpanSimpleQueryWrapper (SpanQueryWrapper query)
+ throws QueryException {
+ this.hasClass = query.hasClass();
+ this.isOptional = query.isOptional();
+ this.isNegative = query.isNegative();
+ this.isEmpty = query.isEmpty();
+ this.isExtended = query.isExtended();
+ this.isExtendedToTheRight = query.isExtendedToTheRight();
+ this.maybeUnsorted = query.maybeUnsorted();
+ this.retrieveNode = query.retrieveNode;
+ this.query = query.toFragmentQuery();
+ this.isNull = query.isNull();
};
diff --git a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanSubspanQueryWrapper.java b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanSubspanQueryWrapper.java
index d311a27..7e91844 100644
--- a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanSubspanQueryWrapper.java
+++ b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanSubspanQueryWrapper.java
@@ -25,7 +25,8 @@
public SpanSubspanQueryWrapper (SpanQueryWrapper sqw, int startOffset,
- int length) throws QueryException {
+ int length)
+ throws QueryException {
if (length < 0) {
throw new QueryException(
"SpanSubspanQuery cannot have length less than 0.");
diff --git a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanWithAttributeQueryWrapper.java b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanWithAttributeQueryWrapper.java
index 435b3ee..266e051 100644
--- a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanWithAttributeQueryWrapper.java
+++ b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanWithAttributeQueryWrapper.java
@@ -15,7 +15,7 @@
* No optimization using expansion
*
* @author margaretha
- * */
+ */
public class SpanWithAttributeQueryWrapper extends SpanQueryWrapper {
private SpanQueryWrapper withIdQueryWrapper = null;
@@ -33,7 +33,8 @@
return;
}
if (attrQuery.isNegative) {
- throw new QueryException("The query requires a positive attribute.");
+ throw new QueryException(
+ "The query requires a positive attribute.");
}
this.attrQueryWrapper = attrQuery;
this.isSingleAttribute = true;
@@ -153,7 +154,8 @@
private SpanWithAttributeQuery createSpanWithSingleAttributeQuery (
SimpleSpanQuery withIdQuery) throws QueryException {
- SpanAttributeQuery attrQuery = createSpanAttributeQuery(this.attrQueryWrapper);
+ SpanAttributeQuery attrQuery = createSpanAttributeQuery(
+ this.attrQueryWrapper);
if (attrQuery != null) {
if (withIdQuery != null) {
return new SpanWithAttributeQuery(withIdQuery, attrQuery, true);
diff --git a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanWithinQueryWrapper.java b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanWithinQueryWrapper.java
index dc1f449..576b1e0 100644
--- a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanWithinQueryWrapper.java
+++ b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanWithinQueryWrapper.java
@@ -96,9 +96,10 @@
// TODO: if (wrap.isNegative())
- return new SpanWithinQuery(this.element.retrieveNode(this.retrieveNode)
- .toFragmentQuery(), this.wrap.retrieveNode(this.retrieveNode)
- .toFragmentQuery(), this.flag);
+ return new SpanWithinQuery(
+ this.element.retrieveNode(this.retrieveNode).toFragmentQuery(),
+ this.wrap.retrieveNode(this.retrieveNode).toFragmentQuery(),
+ this.flag);
};
diff --git a/src/main/java/de/ids_mannheim/korap/response/Match.java b/src/main/java/de/ids_mannheim/korap/response/Match.java
index 965c736..4bf7109 100644
--- a/src/main/java/de/ids_mannheim/korap/response/Match.java
+++ b/src/main/java/de/ids_mannheim/korap/response/Match.java
@@ -602,7 +602,8 @@
/**
* Get identifier for a specific position.
*
- * @param int Position to get identifier on.
+ * @param int
+ * Position to get identifier on.
*/
@JsonIgnore
public String getPosID (int pos) {
@@ -693,8 +694,8 @@
&& contextSpans.end() >= this.getStartPos()) {
// Set as newStart
- newStart = contextSpans.start() > newStart ? contextSpans
- .start() : newStart;
+ newStart = contextSpans.start() > newStart
+ ? contextSpans.start() : newStart;
if (DEBUG)
log.trace("NewStart is at {}", newStart);
@@ -920,7 +921,8 @@
* This takes a clean string and the tag stack
* to decorate the string with annotations.
*/
- private void _processHighlightSnippet (String clean, ArrayList<int[]> stack) {
+ private void _processHighlightSnippet (String clean,
+ ArrayList<int[]> stack) {
if (DEBUG)
log.trace("--- Process Highlight snippet");
@@ -1294,15 +1296,16 @@
if (this.context.right.isToken()) {
endOffset = this.endPos + this.context.right.getLength() - 1;
if (DEBUG)
- log.trace("PTO will retrieve {} (Right context)", endOffset);
+ log.trace("PTO will retrieve {} (Right context)",
+ endOffset);
pto.add(ldid, endOffset);
}
// The right context is defined by characters
else {
- endOffsetChar = (endPosChar == -1) ? -1 : endPosChar
- + this.context.right.getLength();
+ endOffsetChar = (endPosChar == -1) ? -1
+ : endPosChar + this.context.right.getLength();
};
if (startOffset != -1)
@@ -1336,7 +1339,8 @@
endOffsetChar);
// Get snippet information from the primary data
- if (endOffsetChar > -1 && (endOffsetChar < this.getPrimaryDataLength())) {
+ if (endOffsetChar > -1
+ && (endOffsetChar < this.getPrimaryDataLength())) {
this.tempSnippet = this.getPrimaryData(startOffsetChar,
endOffsetChar);
}
@@ -1351,8 +1355,8 @@
if (DEBUG)
log.trace(
"The match entry is {}-{} ({}-{}) with absolute offsetChars {}-{}",
- startPosChar - startOffsetChar, endPosChar
- - startOffsetChar, startPosChar, endPosChar,
+ startPosChar - startOffsetChar,
+ endPosChar - startOffsetChar, startPosChar, endPosChar,
startOffsetChar, endOffsetChar);
// TODO: Simplify
diff --git a/src/main/java/de/ids_mannheim/korap/response/Response.java b/src/main/java/de/ids_mannheim/korap/response/Response.java
index 5108199..3d27919 100644
--- a/src/main/java/de/ids_mannheim/korap/response/Response.java
+++ b/src/main/java/de/ids_mannheim/korap/response/Response.java
@@ -206,8 +206,7 @@
public Response setBenchmark (long ts1, long ts2) {
this.benchmark = (ts2 - ts1) < 100_000_000 ?
// Store as miliseconds
- (((double) (ts2 - ts1) * 1e-6) + " ms")
- :
+ (((double) (ts2 - ts1) * 1e-6) + " ms") :
// Store as seconds
(((double) (ts2 - ts1) / 1000000000.0) + " s");
return this;
diff --git a/src/main/java/de/ids_mannheim/korap/response/Result.java b/src/main/java/de/ids_mannheim/korap/response/Result.java
index 83d08f4..0dabb24 100644
--- a/src/main/java/de/ids_mannheim/korap/response/Result.java
+++ b/src/main/java/de/ids_mannheim/korap/response/Result.java
@@ -89,8 +89,8 @@
this.matches = new ArrayList<>(itemsPerPage);
this.serialQuery = query;
this.startIndex = startIndex;
- this.itemsPerPage = (itemsPerPage > ITEMS_PER_PAGE_MAX || itemsPerPage < 1) ? ITEMS_PER_PAGE
- : itemsPerPage;
+ this.itemsPerPage = (itemsPerPage > ITEMS_PER_PAGE_MAX
+ || itemsPerPage < 1) ? ITEMS_PER_PAGE : itemsPerPage;
this.context = context;
};
diff --git a/src/main/java/de/ids_mannheim/korap/response/collector/MatchCollectorDB.java b/src/main/java/de/ids_mannheim/korap/response/collector/MatchCollectorDB.java
index 0c5a604..26c5c97 100644
--- a/src/main/java/de/ids_mannheim/korap/response/collector/MatchCollectorDB.java
+++ b/src/main/java/de/ids_mannheim/korap/response/collector/MatchCollectorDB.java
@@ -140,8 +140,8 @@
};
// Prepare statement based on the string
- PreparedStatement prep = this.connection.prepareStatement(sb
- .toString());
+ PreparedStatement prep = this.connection
+ .prepareStatement(sb.toString());
int i = 1;
ListIterator li = this.matchCollector.listIterator();
diff --git a/src/main/java/de/ids_mannheim/korap/response/match/HighlightCombinator.java b/src/main/java/de/ids_mannheim/korap/response/match/HighlightCombinator.java
index 8292e4a..386afff 100644
--- a/src/main/java/de/ids_mannheim/korap/response/match/HighlightCombinator.java
+++ b/src/main/java/de/ids_mannheim/korap/response/match/HighlightCombinator.java
@@ -109,9 +109,11 @@
lastComb = this.combine.peekLast();
if (DEBUG)
- log.trace("Closing element is unbalanced - {} "
- + "!= {} with lastComb {}|{}|{}", eold, number,
- lastComb.type, lastComb.number, lastComb.characters);
+ log.trace(
+ "Closing element is unbalanced - {} "
+ + "!= {} with lastComb {}|{}|{}",
+ eold, number, lastComb.type, lastComb.number,
+ lastComb.characters);
// combinator is opening and the number is not equal to the last
// element on the balanceStack
@@ -128,8 +130,8 @@
log.trace("close element a) {}", eold);
// Add a closer for the old element (this has following elements)
- this.combine.add(new HighlightCombinatorElement((byte) 2, eold,
- false));
+ this.combine.add(
+ new HighlightCombinatorElement((byte) 2, eold, false));
};
// add this element number temporarily on the stack
@@ -143,8 +145,8 @@
lastComb = this.combine.peekLast();
if (DEBUG) {
- log.trace("LastComb: " + lastComb.type + '|' + lastComb.number
- + '|' + lastComb.characters + " for " + number);
+ log.trace("LastComb: " + lastComb.type + '|' + lastComb.number + '|'
+ + lastComb.characters + " for " + number);
log.trace("Stack for checking 2: {}|{}|{}|{}", lastComb.type,
lastComb.number, lastComb.characters, number);
};
diff --git a/src/main/java/de/ids_mannheim/korap/response/match/HighlightCombinatorElement.java b/src/main/java/de/ids_mannheim/korap/response/match/HighlightCombinatorElement.java
index 9762aef..ffc9638 100644
--- a/src/main/java/de/ids_mannheim/korap/response/match/HighlightCombinatorElement.java
+++ b/src/main/java/de/ids_mannheim/korap/response/match/HighlightCombinatorElement.java
@@ -33,7 +33,8 @@
// Constructor for highlighting elements,
// that may not be terminal, i.e. they were closed and will
// be reopened for overlapping issues.
- public HighlightCombinatorElement (byte type, int number, boolean terminal) {
+ public HighlightCombinatorElement (byte type, int number,
+ boolean terminal) {
this.type = type;
this.number = number;
this.terminal = terminal;
@@ -60,16 +61,18 @@
else if (this.number < -1) {
sb.append("<span xml:id=\"")
- .append(escapeHTML(match.getPosID(match
- .getClassID(this.number)))).append("\">");
+ .append(escapeHTML(
+ match.getPosID(match.getClassID(this.number))))
+ .append("\">");
}
else if (this.number >= 256) {
sb.append("<span ");
if (this.number < 2048) {
sb.append("title=\"")
- .append(escapeHTML(match
- .getAnnotationID(this.number))).append('"');
+ .append(escapeHTML(
+ match.getAnnotationID(this.number)))
+ .append('"');
}
else {
Relation rel = match.getRelationID(this.number);
diff --git a/src/main/java/de/ids_mannheim/korap/server/Resource.java b/src/main/java/de/ids_mannheim/korap/server/Resource.java
index e4b94ff..26d9c2c 100644
--- a/src/main/java/de/ids_mannheim/korap/server/Resource.java
+++ b/src/main/java/de/ids_mannheim/korap/server/Resource.java
@@ -292,8 +292,8 @@
// Get the database
try {
- final MatchCollectorDB mc = new MatchCollectorDB(1000, "Res_"
- + resultID);
+ final MatchCollectorDB mc = new MatchCollectorDB(1000,
+ "Res_" + resultID);
final ComboPooledDataSource pool = Node.getDBPool();
mc.setDBPool("mysql", pool, pool.getConnection());
@@ -348,7 +348,8 @@
@GET
@Path("/match/{matchID}")
@Produces(MediaType.APPLICATION_JSON)
- public String match (@PathParam("matchID") String id, @Context UriInfo uri) {
+ public String match (@PathParam("matchID") String id,
+ @Context UriInfo uri) {
Response kresp = _initResponse();
if (kresp.hasErrors())
@@ -361,7 +362,8 @@
// Get query parameters
MultivaluedMap<String, String> qp = uri.getQueryParameters();
- boolean includeSpans = false, includeHighlights = true, extendToSentence = false, info = false;
+ boolean includeSpans = false, includeHighlights = true,
+ extendToSentence = false, info = false;
// Optional query parameter "info" for more information on the match
if (!_isNull(qp.getFirst("info")))
@@ -387,8 +389,9 @@
try {
// Get match info
- return index.getMatchInfo(id, "tokens", info, foundries, layers,
- includeSpans, includeHighlights, extendToSentence)
+ return index
+ .getMatchInfo(id, "tokens", info, foundries, layers,
+ includeSpans, includeHighlights, extendToSentence)
.toJsonString();
}
@@ -407,9 +410,9 @@
POST /peek
POST /?text_id=...
POST /:text_id/
-
+
PUT /:text_id
-
+
DELETE /:text_id
DELETE /:corpus_sigle
DELETE /:corpus_sigle/:doc_sigle
diff --git a/src/main/java/de/ids_mannheim/korap/util/KrillString.java b/src/main/java/de/ids_mannheim/korap/util/KrillString.java
index d3da39d..3e0095e 100644
--- a/src/main/java/de/ids_mannheim/korap/util/KrillString.java
+++ b/src/main/java/de/ids_mannheim/korap/util/KrillString.java
@@ -28,7 +28,7 @@
*/
public static String StringfromFile (String path, Charset encoding)
throws IOException {
- path = URLDecoder.decode(path,"UTF-8");
+ path = URLDecoder.decode(path, "UTF-8");
path = path.replaceFirst("^/(.:/)", "$1");
Path p = Paths.get(path);
byte[] encoded = Files.readAllBytes(p);