Make the number of reconciliation results configurable - closes #466

This commit is contained in:
Tom Morris 2013-09-04 18:07:12 -04:00
parent 82b764d06c
commit 889245fdf4
6 changed files with 57 additions and 9 deletions

View File

@ -110,6 +110,8 @@ public class StandardReconConfig extends ReconConfig {
JSONObject t = obj.has("type") && !obj.isNull("type") ? obj.getJSONObject("type") : null;
int limit = obj.has("limit") ? obj.getInt("limit") : 0;
return new StandardReconConfig(
obj.getString("service"),
obj.has("identifierSpace") ? obj.getString("identifierSpace") : null,
@ -117,7 +119,8 @@ public class StandardReconConfig extends ReconConfig {
t == null ? null : t.getString("id"),
t == null ? null : (t.has("name") ? t.getString("name") : null),
obj.getBoolean("autoMatch"),
columnDetails
columnDetails,
limit
);
}
@ -139,16 +142,41 @@ public class StandardReconConfig extends ReconConfig {
final public String typeName;
final public boolean autoMatch;
final public List<ColumnDetail> columnDetails;
final private int limit;
public StandardReconConfig(
String service,
String identifierSpace,
String schemaSpace,
String typeID,
String typeName,
boolean autoMatch,
List<ColumnDetail> columnDetails
) {
this(service, identifierSpace, schemaSpace, typeID, typeName, autoMatch, columnDetails, 0);
}
/**
* @param service
* @param identifierSpace
* @param schemaSpace
* @param typeID
* @param typeName
* @param autoMatch
* @param columnDetails
* @param limit maximum number of results to return (0 = default)
*/
public StandardReconConfig(
String service,
String identifierSpace,
String schemaSpace,
String typeID,
String typeName,
boolean autoMatch,
List<ColumnDetail> columnDetails
List<ColumnDetail> columnDetails,
int limit
) {
this.service = service;
this.identifierSpace = identifierSpace;
@ -158,6 +186,7 @@ public class StandardReconConfig extends ReconConfig {
this.typeName = typeName;
this.autoMatch = autoMatch;
this.columnDetails = columnDetails;
this.limit = limit;
}
@Override
@ -189,6 +218,7 @@ public class StandardReconConfig extends ReconConfig {
writer.endObject();
}
writer.endArray();
writer.key("limit"); writer.value(limit);
writer.endObject();
}
@ -265,6 +295,13 @@ public class StandardReconConfig extends ReconConfig {
jsonWriter.endArray();
}
// Only send limit if it's non-default to preserve backward compatibility with
// services which might choke on this
if (limit != 0) {
jsonWriter.key("limit"); jsonWriter.value(limit);
}
jsonWriter.endObject();
job.text = cell.value.toString();
@ -382,7 +419,7 @@ public class StandardReconConfig extends ReconConfig {
try {
int length = results.length();
int count = 0;
for (int i = 0; i < length && count < 3; i++) {
for (int i = 0; i < length; i++) {
JSONObject result = results.getJSONObject(i);
if (!result.has("name")) {
continue;

View File

@ -362,7 +362,8 @@
"fb-guid": "a Freebase GUID, e.g., #9202a8c04000641f80000000000354ae",
"fb-key": "a Freebase key in",
"fb-en-ns": "the Wikipedia English namespace",
"this-ns": "this namespace:"
"this-ns": "this namespace:",
"max-candidates" : "Maximum number of candidates to return"
},
"core-util-enc": {
"select-enc": "Select Encoding",

View File

@ -362,7 +362,9 @@
"fb-guid": "a Freebase GUID, e.g., #9202a8c04000641f80000000000354ae",
"fb-key": "a Freebase key in",
"fb-en-ns": "the Wikipedia English namespace",
"this-ns": "this namespace:"
"this-ns": "this namespace:",
"max-candidates" : "Maximum number of candidates to return"
},
"core-util-enc": {
"select-enc": "Select Encoding",

View File

@ -362,7 +362,9 @@
"fb-guid": "un Freebase GUID, es: #9202a8c04000641f80000000000354ae",
"fb-key": "Una chiave Freebase nel",
"fb-en-ns": "namespace di Wikipedia inglese",
"this-ns": "questo namespace:"
"this-ns": "questo namespace:",
// TODO: Translation required
// "max-candidates" : "Maximum number of candidates to return"
},
"core-util-enc": {
"select-enc": "Seleziona la codifica",

View File

@ -29,5 +29,9 @@
<td><input type="checkbox" checked bind="automatchCheck" /> <span bind="or_proc_autoMatch"></span></td>
<td></td>
</tr>
<tr>
<td><span bind="or_proc_max_candidates"></span> <input type="number" bind="maxCandidates" min=0 max=9 width=20/> </td>
<td></td>
</tr>
</table></div>
</div>

View File

@ -90,6 +90,7 @@ ReconStandardServicePanel.prototype._constructUI = function() {
this._elmts.or_proc_againsType.html($.i18n._('core-recon')["against-type"]+":");
this._elmts.or_proc_noType.html($.i18n._('core-recon')["no-type"]);
this._elmts.or_proc_autoMatch.html($.i18n._('core-recon')["auto-match"]);
this._elmts.or_proc_max_candidates.html($.i18n._('core-recon')["max-candidates"]);
this._elmts.rawServiceLink.attr("href", this._service.url);
@ -328,8 +329,9 @@ ReconStandardServicePanel.prototype.start = function() {
identifierSpace: this._service.identifierSpace,
schemaSpace: this._service.schemaSpace,
type: (type) ? { id: type.id, name: type.name } : null,
autoMatch: this._elmts.automatchCheck[0].checked,
columnDetails: columnDetails
autoMatch: this._elmts.automatchCheck[0].checked,
columnDetails: columnDetails,
limit: this._elmts.maxCandidates[0].value
})
},
{ cellsChanged: true, columnStatsChanged: true }