Merge branch 'master' of https://github.com/OpenRefine/OpenRefine
This commit is contained in:
commit
fa030f7194
64
CONTRIBUTING.md
Normal file
64
CONTRIBUTING.md
Normal file
@ -0,0 +1,64 @@
|
||||
This document present how you can contribute to the OpenRefine project.
|
||||
|
||||
## Documentation, Questions or Problem
|
||||
|
||||
Our issue list is only for reporting specific bugs and requesting specific features. If you just don't know how to do something using OpenRefine, or want to discuss some ideas, please
|
||||
- try the [documentation wiki](https://github.com/OpenRefine/OpenRefine/wiki/Documentation-For-Users)
|
||||
- ask on the [OpenRefine mailing list](https://groups.google.com/forum/?fromgroups#!forum/openrefine).
|
||||
|
||||
If you really want to file a bug or request a feature, go to this [issue list](https://github.com/OpenRefine/OpenRefine/issues). Please use the search function first to make sure a similar issue doesn't already exist.
|
||||
|
||||
### Guidelines for Reporting a Bug
|
||||
|
||||
When reporting a bug please provide the following information to help reproduce the bug:
|
||||
- Version of OpenRefine used (Google Refine 2.6, OpenRefine2.6, an other distribution?)
|
||||
- Operating Systems and version
|
||||
- Browser + version used - Please note that OpenRefine doesn't support Internet Explorer
|
||||
- Steps followed to create the issues
|
||||
- If you are allowed, it is awesome if you can join the data generating the issue
|
||||
- Current Results
|
||||
- Expected Results
|
||||
|
||||
|
||||
## Promote OpenRefine
|
||||
|
||||
You don't need to be coder to contribute to OpenRefine. Did you wrote a tutorial or article about OpenRefine on your blog or site? Are you organizing a workshop or presentation OpenRefine in your city? Let us know via our [user discussion list](https://groups.google.com/forum/?fromgroups#!forum/openrefine) or twitter account ([@OpenRefine](http://twitter.com/OpenRefine)). We will share the news via our monthly update and via our twitter handle.
|
||||
|
||||
|
||||
## Contributing code
|
||||
|
||||
You can contribute code in three different way:
|
||||
- fix minor bug
|
||||
- develop an OpenRefine extension
|
||||
- start your own distribution.
|
||||
|
||||
All developers including new distributions and plugin developers are invited to leverage existing OpenRefine project managements tools to avoid the dispersion of the community in different communication channels.
|
||||
- the [wiki](https://github.com/OpenRefine/OpenRefine/wiki) for shared documentation between distribution both user and [documentation for developer](https://github.com/OpenRefine/OpenRefine/wiki/Documentation-For-Developers)
|
||||
- the [developer mailing list](https://groups.google.com/forum/?fromgroups#!forum/openrefine-dev) for technical questions, new feature development and anything code related. We invite you to share you idea first via the developer mailing list. Someone may be able to point out to existing development saving your hours of research and development.
|
||||
- [OpenRefine github issue tracker](https://github.com/OpenRefine/OpenRefine/issues) for new feature and bug reports common with OpenRefine.
|
||||
|
||||
### How to submit minor changes and bug fix
|
||||
|
||||
If you make trivial changes, you can send them directly via a pull request. **Please make your changes in a new git branch and send your patch**, including appropriate test cases.
|
||||
|
||||
We want to keep the quality of the trunk at a very high level, since this is ultimately where the Stable Releases are built from after bugs are fixed. Please take the time to test your changes (including travis-ci) before sending a pull request.
|
||||
|
||||
OpenRefine is volunteer supported. Pull Request are reviewed and merged by [Tom Morris (@tfmorris)](https://github.com/tfmorris). All Pull Request will be answered, however it may take some time to get back to you. Thank you in advance for your patience.
|
||||
|
||||
If you don't where to start and are looking for a bug to fix, please see our [issue list](https://github.com/OpenRefine/OpenRefine/issues).
|
||||
|
||||
### New functionalities via plugin
|
||||
|
||||
OpenRefine support a plugin architecture to extend its functionality. You can find more information on how to write extension on [our wiki](https://github.com/OpenRefine/OpenRefine/wiki/Write-An-Extension). Giuliano Tortoreto wrote a separate documentation detailling how to build extension for OpenRefine. A [LaTeX](https://github.com/OpenRefine/OpenRefineExtensionDoc) and [PDF version](https://github.com/OpenRefine/OpenRefineExtensionDoc/blob/master/main.pdf) are available.
|
||||
|
||||
If you want to list your extension on the download page, please edit [this file](https://github.com/OpenRefine/openrefine.github.com/blob/master/download.md).
|
||||
|
||||
### New distribution
|
||||
|
||||
OpenRefine is already available in many different distribution (see the [download page](http://openrefine.org/download.html)). New distribution often package OpenRefine for a specific usage or port it. We are fine with new fork ([see discussion](https://groups.google.com/forum/#!msg/openrefine/pasNnMDJ3p8/LrZz_GiFCwAJ)) but we invite you to engage with the community to share your roadmap and progress.
|
||||
|
||||
Github offer a powerful system to work between different repository and we encourage you to leverage it:
|
||||
- You can cross reference issues and pull request between Github repository using `user/repository#number` ([see more here](https://github.com/blog/967-github-secrets#cross-repository-issue-references))
|
||||
- If you want to merge a Pull Request that is pending for review to you own repository check the pull request locally ([see more here](https://help.github.com/articles/checking-out-pull-requests-locally/)).
|
||||
|
||||
Don't forget to contribute to the upstream (main OpenRefine) repository so your changes can be reviewed and merge and to keep other developers aware of your progress. If you want to list your distribution on the download page, please edit [this file](https://github.com/OpenRefine/openrefine.github.com/blob/master/download.md).
|
@ -104,7 +104,7 @@ public class TextSearchFacet implements Facet {
|
||||
_query,
|
||||
_caseSensitive ? 0 : Pattern.CASE_INSENSITIVE);
|
||||
} catch (java.util.regex.PatternSyntaxException e) {
|
||||
e.printStackTrace();
|
||||
throw new JSONException(e);
|
||||
}
|
||||
} else if (!_caseSensitive) {
|
||||
_query = _query.toLowerCase();
|
||||
|
@ -53,6 +53,7 @@ public class GetImportingConfigurationCommand extends Command {
|
||||
throws ServletException, IOException {
|
||||
|
||||
Writer w = response.getWriter();
|
||||
response.setContentType("application/json");
|
||||
JSONWriter writer = new JSONWriter(w);
|
||||
try {
|
||||
writer.object();
|
||||
|
@ -313,7 +313,7 @@ public class ImportingUtilities {
|
||||
}
|
||||
JSONUtilities.safePut(fileRecord, "declaredEncoding", encoding);
|
||||
String contentType = null;
|
||||
if (entity.getContentType().getValue() != null) {
|
||||
if (entity.getContentType() != null) {
|
||||
contentType = entity.getContentType().getValue();
|
||||
}
|
||||
JSONUtilities.safePut(fileRecord, "declaredMimeType", contentType);
|
||||
|
@ -81,14 +81,6 @@ public class ColumnModel implements Jsonizable {
|
||||
return ++_maxCellIndex;
|
||||
}
|
||||
|
||||
synchronized public void removeCellIndex(int index) {
|
||||
if (index > _maxCellIndex - 1)
|
||||
return;
|
||||
|
||||
columns.remove(index);
|
||||
_maxCellIndex--;
|
||||
}
|
||||
|
||||
synchronized public void setKeyColumnIndex(int keyColumnIndex) {
|
||||
// TODO: check validity of new cell index, e.g., it's not in any group
|
||||
this._keyColumnIndex = keyColumnIndex;
|
||||
|
@ -251,16 +251,10 @@ public class KeyValueColumnizeOperation extends AbstractOperation {
|
||||
allColumns.addAll(newColumns);
|
||||
allColumns.addAll(newNoteColumns);
|
||||
|
||||
// clean up the reused column model and row model
|
||||
int smallIndex = Math.min(keyColumnIndex, valueColumnIndex);
|
||||
int bigIndex = Math.max(keyColumnIndex, valueColumnIndex);
|
||||
|
||||
project.columnModel.removeCellIndex(bigIndex);
|
||||
project.columnModel.removeCellIndex(smallIndex);
|
||||
|
||||
for (Row row : newRows) {
|
||||
row.cells.remove(bigIndex);
|
||||
row.cells.remove(smallIndex);
|
||||
// clean up the empty rows
|
||||
for (int i = newRows.size() - 1;i>=0;i--) {
|
||||
if (newRows.get(i).isEmpty())
|
||||
newRows.remove(i);
|
||||
}
|
||||
|
||||
return new HistoryEntry(
|
||||
|
@ -126,13 +126,11 @@ public class TransposeTests extends RefineTest {
|
||||
|
||||
HistoryEntry historyEntry = process.performImmediate();
|
||||
|
||||
// Expected output
|
||||
|
||||
// ID;a;b;c;d
|
||||
// 1;1;3;;
|
||||
// 2;;4;5;
|
||||
// 3;2;5;;3
|
||||
|
||||
// Expected output from the GUI.
|
||||
// ID;a;b;c;d
|
||||
// 1;1;3;;
|
||||
// 2;;4;5;
|
||||
// 3;2;5;;3
|
||||
Assert.assertEquals(project.columnModel.columns.size(), 5);
|
||||
Assert.assertEquals(project.columnModel.columns.get(0).getName(), "ID");
|
||||
Assert.assertEquals(project.columnModel.columns.get(1).getName(), "a");
|
||||
@ -141,14 +139,23 @@ public class TransposeTests extends RefineTest {
|
||||
Assert.assertEquals(project.columnModel.columns.get(4).getName(), "d");
|
||||
Assert.assertEquals(project.rows.size(), 3);
|
||||
|
||||
// the last 2 cells are not added as expected, the size is 5-2
|
||||
Assert.assertEquals(project.rows.get(0).cells.size(), 5 - 2);
|
||||
Assert.assertEquals(project.rows.get(1).cells.size(), 5 - 1);
|
||||
Assert.assertEquals(project.rows.get(2).cells.size(), 5);
|
||||
|
||||
// The actual row data structure has to leave the columns model untouched for redo/undo purpose.
|
||||
// So we have 2 empty columns(column 1,2) on the row level.
|
||||
// 1;1;3;;
|
||||
Assert.assertEquals(project.rows.get(0).cells.get(0).value, "1");
|
||||
Assert.assertEquals(project.rows.get(0).cells.get(1).value, "1");
|
||||
Assert.assertEquals(project.rows.get(0).cells.get(2).value, "3");
|
||||
Assert.assertEquals(project.rows.get(0).cells.get(3).value, "1");
|
||||
Assert.assertEquals(project.rows.get(0).cells.get(4).value, "3");
|
||||
|
||||
// 2;;4;5;
|
||||
Assert.assertEquals(project.rows.get(1).cells.get(0).value, "2");
|
||||
Assert.assertEquals(project.rows.get(1).cells.get(4).value, "4");
|
||||
Assert.assertEquals(project.rows.get(1).cells.get(5).value, "5");
|
||||
|
||||
// 3;2;5;;3
|
||||
Assert.assertEquals(project.rows.get(2).cells.get(0).value, "3");
|
||||
Assert.assertEquals(project.rows.get(2).cells.get(3).value, "2");
|
||||
Assert.assertEquals(project.rows.get(2).cells.get(4).value, "5");
|
||||
Assert.assertEquals(project.rows.get(2).cells.get(6).value, "3");
|
||||
}
|
||||
|
||||
|
||||
|
@ -69,7 +69,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
<p>
|
||||
OpenRefine is a power tool for working with messy data. Use it to improve data consistency,
|
||||
link it to data registries like Freebase, augment it with data from other sources, transform it
|
||||
link it to data registries like Wikidata, augment it with data from other sources, transform it
|
||||
into different formats for other tools to consume, and contribute it to back to the original
|
||||
sources. OpenRefine is not a web service but a desktop app that runs on your own computer,
|
||||
so you can process sensitive data with privacy.
|
||||
|
@ -350,21 +350,11 @@
|
||||
"as-property": "As Property",
|
||||
"contact-service": "Contacting reconciliation service",
|
||||
"error-contact": "Error contacting recon service",
|
||||
"fb-recon": "Freebase Query-based Reconciliation",
|
||||
"wd-recon-lang": "en",
|
||||
"recon-col": "Reconcile column",
|
||||
"pick-service": "Pick a Service or Extension on Left",
|
||||
"add-recon-srv": "Add Namespaced Reconciliation Service",
|
||||
"namespace": "Namespace",
|
||||
"ent-type": "Type of Entities (optional)",
|
||||
"add-std-srv": "Add Standard Reconciliation Service",
|
||||
"enter-url": "Enter the service's URL",
|
||||
"specify-ns": "Please specify a namespace.",
|
||||
"cell-contains": "Each cell contains:",
|
||||
"fb-id": "a Freebase ID, e.g., /en/solar_system",
|
||||
"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:",
|
||||
"max-candidates" : "Maximum number of candidates to return",
|
||||
"service-title": "Services"
|
||||
},
|
||||
@ -659,7 +649,6 @@
|
||||
"remove-all": "Remove All",
|
||||
"perform-op": "Perform Operations",
|
||||
"add-std-svc": "Add Standard Service",
|
||||
"add-named-svc": "Add Namespaced Service",
|
||||
"start-recon": "Start Reconciling",
|
||||
"add-service": "Add Service",
|
||||
"dont-reconcile": "Don't Reconcile Cell",
|
||||
|
@ -350,21 +350,11 @@
|
||||
"as-property": "As Property",
|
||||
"contact-service": "Contacting reconciliation service",
|
||||
"error-contact": "Error contacting recon service",
|
||||
"fb-recon": "Freebase Query-based Reconciliation",
|
||||
"wd-recon-lang": "en",
|
||||
"recon-col": "Reconcile column",
|
||||
"pick-service": "Pick a Service or Extension on Left",
|
||||
"add-recon-srv": "Add Namespaced Reconciliation Service",
|
||||
"namespace": "Namespace",
|
||||
"ent-type": "Type of Entities (optional)",
|
||||
"add-std-srv": "Add Standard Reconciliation Service",
|
||||
"enter-url": "Enter the service's URL",
|
||||
"specify-ns": "Please specify a namespace.",
|
||||
"cell-contains": "Each cell contains:",
|
||||
"fb-id": "a Freebase ID, e.g., /en/solar_system",
|
||||
"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:",
|
||||
"max-candidates" : "Maximum number of candidates to return",
|
||||
"service-title": "Services"
|
||||
},
|
||||
@ -659,7 +649,6 @@
|
||||
"remove-all": "Remove All",
|
||||
"perform-op": "Perform Operations",
|
||||
"add-std-svc": "Add Standard Service",
|
||||
"add-named-svc": "Add Namespaced Service",
|
||||
"start-recon": "Start Reconciling",
|
||||
"add-service": "Add Service",
|
||||
"dont-reconcile": "Don't Reconcile Cell",
|
||||
|
@ -350,21 +350,11 @@
|
||||
"as-property": "Como propiedad",
|
||||
"contact-service": "Contactando al servicio",
|
||||
"error-contact": "Error contactando al servicio",
|
||||
"fb-recon": "Freebase basado en consulta",
|
||||
"wd-recon-lang": "es",
|
||||
"recon-col": "Cotejar columna",
|
||||
"pick-service": "Seleccione un servicio o extensión a la izquierda",
|
||||
"add-recon-srv": "Agregar servicio namespace",
|
||||
"namespace": "Espacio de nombres",
|
||||
"ent-type": "Clase de la entidad (opcional)",
|
||||
"add-std-srv": "Agregar servicio estándar",
|
||||
"enter-url": "Ingrese la uRL del servicio",
|
||||
"specify-ns": "Por favor especifique un namespace.",
|
||||
"cell-contains": "Cada celda contiene:",
|
||||
"fb-id": "un ID de Freebase, p. ej., /en/solar_system",
|
||||
"fb-guid": "un GUID de Freebase GUID, p. ej., #9202a8c04000641f80000000000354ae",
|
||||
"fb-key": "una llave de Freebase en",
|
||||
"fb-en-ns": "El namespace de Wikipedia en Inglés",
|
||||
"this-ns": "este namespace:",
|
||||
"max-candidates" : "Máximo número de candidatos a devolver",
|
||||
"service-title": "Servicios"
|
||||
},
|
||||
@ -658,7 +648,6 @@
|
||||
"remove-all": "Remover todos",
|
||||
"perform-op": "Ejecutar Operaciones",
|
||||
"add-std-svc": "Agregar servicio estándar",
|
||||
"add-named-svc": "Agregar servicio con espacio de nombres",
|
||||
"start-recon": "Cotejar",
|
||||
"add-service": "Agragar servicio",
|
||||
"dont-reconcile": "No reconciliar celdas",
|
||||
|
@ -350,21 +350,11 @@
|
||||
"as-property": "Comme propriété",
|
||||
"contact-service": "Connexion au service de réconciliation",
|
||||
"error-contact": "Erreur lors de la connexion au service de réconciliation",
|
||||
"fb-recon": "Réconciliation basée sur des requêtes Freebase",
|
||||
"wd-recon-lang": "fr",
|
||||
"recon-col": "Réconcilier la colonne",
|
||||
"pick-service": "Choisir un service ou une extension à gauche",
|
||||
"add-recon-srv": "Ajouter un service de réconciliation avec un espace de noms",
|
||||
"namespace": "Espace de noms",
|
||||
"ent-type": "Type des entités (facultatif)",
|
||||
"add-std-srv": "Ajouter un service de réconciliation standard",
|
||||
"enter-url": "Indiquer l’URL du service",
|
||||
"specify-ns": "Merci d’indiquer un espace de nom.",
|
||||
"cell-contains": "Chaque cellule contient :",
|
||||
"fb-id": "un ID Freebase, par exemple /en/solar_system",
|
||||
"fb-guid": "un GUID Freebase, par exemple #9202a8c04000641f80000000000354ae",
|
||||
"fb-key": "une clé Freebase",
|
||||
"fb-en-ns": "l’espace de noms Wikipedia English",
|
||||
"this-ns": "cet espace de noms :",
|
||||
"max-candidates" : "Nombre maximal de candidats renvoyés",
|
||||
"service-title": "Services"
|
||||
},
|
||||
@ -658,7 +648,6 @@
|
||||
"remove-all": "Tout supprimer",
|
||||
"perform-op": "Lancer les opérations",
|
||||
"add-std-svc": "Ajouter un service standard",
|
||||
"add-named-svc": "Ajouter un service avec un espace de noms",
|
||||
"start-recon": "Démarrer la réconciliation",
|
||||
"add-service": "Ajouter un service",
|
||||
"dont-reconcile": "Ne pas réconcilier la cellule",
|
||||
|
@ -350,21 +350,11 @@
|
||||
"as-property": "Come Proprietà",
|
||||
"contact-service": "Contattando il servizio di riconciliazione",
|
||||
"error-contact": "Errore durante il contatto del servizio di riconciliazione",
|
||||
"fb-recon": "Riconciliazione Freebase basata su query",
|
||||
"wd-recon-lang": "it",
|
||||
"recon-col": "Riconcilia la colonna",
|
||||
"pick-service": "Seleziona un Servizio o Estensione sulla Sinistra",
|
||||
"add-recon-srv": "Aggiungi un servizio di riconciliazione con Namespace",
|
||||
"namespace": "Namespace",
|
||||
"ent-type": "Tipo di entità (opzionale)",
|
||||
"add-std-srv": "Aggiungi un Servizio di Riconciliazione Standard",
|
||||
"enter-url": "Inserisci l'URL del servizio",
|
||||
"specify-ns": "Specifica uno Namespace.",
|
||||
"cell-contains": "Ogni cella contiene:",
|
||||
"fb-id": "un Freebase ID, es: /en/solar_system",
|
||||
"fb-guid": "un Freebase GUID, es: #9202a8c04000641f80000000000354ae",
|
||||
"fb-key": "Una chiave Freebase nel",
|
||||
"fb-en-ns": "namespace di Wikipedia inglese",
|
||||
"this-ns": "questo namespace:",
|
||||
"max-candidates" : "Maximum number of candidates to return [TODO - translate]",
|
||||
"service-title": "Servizi"
|
||||
},
|
||||
@ -658,7 +648,6 @@
|
||||
"remove-all": "Rimuovi tutti",
|
||||
"perform-op": "Esegui le operazioni",
|
||||
"add-std-svc": "Aggiungi un servizio standard",
|
||||
"add-named-svc": "Aggiungi un servizio con namespace",
|
||||
"start-recon": "Inizia la riconciliazione",
|
||||
"add-service": "Aggiungi servizio",
|
||||
"dont-reconcile": "Non riconciliare la cella",
|
||||
|
660
main/webapp/modules/core/langs/translation-jp.json
Normal file
660
main/webapp/modules/core/langs/translation-jp.json
Normal file
@ -0,0 +1,660 @@
|
||||
{
|
||||
"name" : "日本語",
|
||||
"core-index": {
|
||||
"slogan": "汚いデータを処理するためのパワーツール",
|
||||
"help": "ヘルプ",
|
||||
"about": "About",
|
||||
"version": "バージョン",
|
||||
"new-version": "新しいバージョン!",
|
||||
"download": "ダウンロード",
|
||||
"now": "現在",
|
||||
"change-value": "プリファレンスキーの値を変える",
|
||||
"delete-key": "プリファレンスキーを削除する",
|
||||
"preferences": "プリファレンス",
|
||||
"key": "キー",
|
||||
"value": "値",
|
||||
"add-pref": "プリファレンスを追加",
|
||||
"pref-key": "プリファレンスキー値:",
|
||||
"edit": "編集",
|
||||
"delete": "削除",
|
||||
"new-proj-name": "新しいプロジェクト名:",
|
||||
"error-rename": "プロジェクト名の変更に失敗しました:",
|
||||
"no-proj": "プロジェクトは存在しません。新しいプロジェクトをつくるために、左側にある'プロジェクトをつくる'を選択してください。",
|
||||
"try-these": "動作するデータがなければこちらをお試しください",
|
||||
"sample-data": "サンプルのデータセット"
|
||||
},
|
||||
"core-index-create": {
|
||||
"create-proj": "プロジェクトをつくる",
|
||||
"starting": "開始",
|
||||
"done": "完了",
|
||||
"min-remaining": "分 残っています",
|
||||
"sec-remaining": "秒 残っています",
|
||||
"almost-done": "ほぼ完了 ...",
|
||||
"memory-usage": "メモリ使用量:",
|
||||
"no-details": "技術的詳細はありません",
|
||||
"question": "インポートしたデータでプロジェクトをつくります。どんな種類のファイルをインポートできますか?",
|
||||
"formats": "TSV, CSV, *SV, Excel (.xls and .xlsx), JSON, XML, RDF as XML, と Google Data documents がサポートされています。他の形式のサポートはOpenRefineのエクステンションにより追加できます。",
|
||||
"from": "データを取得する"
|
||||
},
|
||||
"core-index-import": {
|
||||
"import-proj": "プロジェクトをインポートする",
|
||||
"locate": "プロジェクトファイルを選択する (.tar or .tar.gz):",
|
||||
"file": "プロジェクト名:",
|
||||
"rename": "プロジェクト名を変更 (任意):",
|
||||
"inspecting": "選択したファイルを検査中 ...",
|
||||
"warning-name": "プロジェクト名をつけてください。",
|
||||
"errors": "エラー:",
|
||||
"creating-proj": "プロジェクト作成中 ...",
|
||||
"import": "インポートしますか?",
|
||||
"name": "名前",
|
||||
"mime-type": "Mime-type",
|
||||
"format": "フォーマット",
|
||||
"size": "サイズ",
|
||||
"warning-select": "1つ以上のファイルを選択してください。",
|
||||
"inspecting-files": "選択したファイルを<br/>検査中 ...",
|
||||
"unknown-err": "不明なエラー",
|
||||
"error": "エラー:",
|
||||
"select-file": "インポートのためにファイルを選択",
|
||||
"several-file": "いくつかのファイルが存在します。インポートのために選択をしてください。",
|
||||
"sel-by-extension": "エクステンションで選択",
|
||||
"sel-by-regex": "ファイル名を正規表現で選択",
|
||||
"parsing-options": "パースオプションを設定",
|
||||
"project-name": "プロジェクト 名",
|
||||
"updating-preview": "プレビューをアップデート中 ...",
|
||||
"parse-as": "データパース方法",
|
||||
"this-computer": "このコンピューター",
|
||||
"warning-data-file": "インポートするデータを選択してください。",
|
||||
"uploading-data": "アップロード中 ...",
|
||||
"web-address": "ウェブアドレス (URLs)",
|
||||
"warning-web-address": "インポートのためにウェブアドレスを指定してください。",
|
||||
"downloading-data": "データをダウンロード中 ...",
|
||||
"clipboard": "クリップボード",
|
||||
"warning-clipboard": "インポートのためにデータを貼り付けてください。",
|
||||
"uploading-pasted-data": "貼り付けデータをアップロード中 ...",
|
||||
"locate-files": "コンピューター上の1つ以上のファイルを選択する:",
|
||||
"enter-url": "データをダウンロードするためにURLを入力してください:",
|
||||
"clipboard-label": "クリップボードからここにデータを貼り付けてください:",
|
||||
"import-worksheet": "インポートするワークシート",
|
||||
"column-widths": "カラム幅:",
|
||||
"column-names": "カラム名:",
|
||||
"comma-separated": "カンマ区切り数値",
|
||||
"optional-separated": "オプション, カンマ区切り",
|
||||
"warning-record-path": "レコードの最初のパスを指定してください。",
|
||||
"pick-nodes": "レコードノードを選択",
|
||||
"char-encoding": "文字エンコーディング"
|
||||
},
|
||||
"core-index-open": {
|
||||
"open-proj" : "プロジェクトを開く",
|
||||
"name": "名前",
|
||||
"rename": "リネーム",
|
||||
"last-mod": "最終更新日時",
|
||||
"del-title": "プロジェクトを削除",
|
||||
"del-body": "プロジェクトを削除してもよろしいですか \"",
|
||||
"new-title": "新しいプロジェクト名:",
|
||||
"warning-rename": "プロジェクトのリネームに失敗しました:",
|
||||
"warning-proj-name": "プロジェクト名を指定してください。",
|
||||
"warning-data-file": "データかURLを指定してください。",
|
||||
"browse": "作業ディレクトリを閲覧"
|
||||
},
|
||||
"core-index-lang": {
|
||||
"lang-settings": "言語設定",
|
||||
"label": "言語を選択する",
|
||||
"send-req": "変更",
|
||||
"page-reload": "変更を適用するためにページを再読み込みしてください。"
|
||||
},
|
||||
"core-index-parser":{
|
||||
"ignore-first": "先頭を無視",
|
||||
"lines-beg": "開始行",
|
||||
"parse-next": "次をパース",
|
||||
"lines-header": "カラムのヘッダーとして",
|
||||
"discard-initial": "イニシャルを削除",
|
||||
"rows-data": "行",
|
||||
"load-at-most": "最大読み込み行",
|
||||
"parse-cell": "セルのテキストをパース<br/>数字, 日付, ...",
|
||||
"store-blank": "空白行を保存",
|
||||
"store-nulls": "nullとして空白セルを保存",
|
||||
"store-source": "各行に<br/>ファイルソース<br/>(ファイルネーム, URLs)を保存",
|
||||
"preserve-empty": "空文字を保存",
|
||||
"trim": "文字列の先頭と文末の空白を削除",
|
||||
"json-parser": "ロードする最初のレコードに対応した最初のJSON { } ノードをクリック",
|
||||
"parse-every": "すべてをパース",
|
||||
"lines-into-row": "行を1行に",
|
||||
"col-separated-by": "カラムの区切り文字",
|
||||
"commas": "カンマ (CSV)",
|
||||
"tabs": "タブ (TSV)",
|
||||
"custom": "カスタム",
|
||||
"escape": "特殊文字は \\ でエスケープしてください",
|
||||
"quotation-mark": "引用符はカラム区切りを含む<br/>セルを囲むために<br/>使用されています",
|
||||
"click-xml": "ロードする最初のレコードに対応した最初のXML要素をクリック"
|
||||
},
|
||||
"core-dialogs": {
|
||||
"cluster-edit": "カラムをクラスタ & 編集",
|
||||
"cluster-size": "クラスタサイズ",
|
||||
"row-count": "行カウント",
|
||||
"cluster-values": "クラスタ内の値",
|
||||
"merge": "マージする?",
|
||||
"new-cell-val": "新しいセル値",
|
||||
"use-this-val": "この値を使う",
|
||||
"browse-only-these": "これらの値のみ閲覧",
|
||||
"browse-this-cluster": "このクラスタを閲覧",
|
||||
"no-cluster-found": "クラスタは選択されたメソッドでは見つかりません",
|
||||
"try-another-method": "他のメソッドやパラメーターに変えてみてください",
|
||||
"clustering": "クラスタリング... ",
|
||||
"warning-check-boxes": "編集内容を適用するために編集のチェックボックスをチェックしてください。",
|
||||
"choices-in-cluster": "# クラスタ内選択結果",
|
||||
"rows-in-cluster": "# クラスタ内行",
|
||||
"choice-avg-length": "選択結果の平均長",
|
||||
"choice-var-length": "選択結果の長さ分散",
|
||||
"found": "結果",
|
||||
"filtered-from": "フィルター <b>",
|
||||
"from-total": "</b> の中",
|
||||
"cluster-descr": "この機能は別の表現形式かもしれない異なったセル値のグループを探すのに役立ちます。たとえば、\"New York\" と \"new york\" は非常に似た概念ですが表記の違いがあります。また、 \"Gödel\" と \"Godel\" は多分同じ人を示します。",
|
||||
"find-more": "詳細はこちら ...",
|
||||
"method": "メソッド ",
|
||||
"key-collision": "キー衝突法",
|
||||
"nearest-neighbor": "最近傍法",
|
||||
"keying-function": "Keying Function ",
|
||||
"fingerprint": "fingerprint",
|
||||
"ngram": "ngram-fingerprint",
|
||||
"metaphone": "metaphone3",
|
||||
"phonetic": "cologne-phonetic",
|
||||
"distance-fun": "Distance Function ",
|
||||
"leven": "レーベンシュタイン距離法",
|
||||
"ppm" : "PPM",
|
||||
"ngram-size": "Ngram Size ",
|
||||
"ngram-radius": "Radius ",
|
||||
"block-chars": "Block Chars ",
|
||||
"reorder-column": "カラムを並べ替え/削除",
|
||||
"drag-column": "ドラッグして並べ替え",
|
||||
"drop-column": "ここにドラッグし削除",
|
||||
"template-export": "テンプレートの出力",
|
||||
"template-prefix": "接頭辞",
|
||||
"template-rowt": "行テンプレート",
|
||||
"template-rows": "行区切り",
|
||||
"template-suffix": "接尾辞",
|
||||
"idling": "アイドリング中...",
|
||||
"updating": "アップデート中...",
|
||||
"scatterplot-matrix": "散布図行列",
|
||||
"focusing-on": "focusing on",
|
||||
"processing": "処理中...",
|
||||
"error-getColumnInfo": "'get-columns-info'エラー",
|
||||
"no-column-dataset": "データセットにカラムがありません",
|
||||
"linear-plot": "Linear Plot",
|
||||
"logarithmic-plot": "Logarithmic Plot",
|
||||
"rotated-counter-clock": "45度反時計回りする",
|
||||
"no-rotation": "回転なし",
|
||||
"rotated-clock": "45度時計回りする",
|
||||
"small-dot": "小さいドット",
|
||||
"regular-dot": "標準的なドット",
|
||||
"big-dot": "大きいドット",
|
||||
"cell-fields": "現在のセル:'value'と'recon'のフィールドを持つ",
|
||||
"cell-value": "現在のセルの値:'cell.value'がショートカット",
|
||||
"row-fields": "現在の行: 'flagged', 'starred', 'index', 'cells','record'の5つのフィールドを持つ",
|
||||
"cells-of-row": "現在の行のセル: 'row.cells'がショートカットである。特定のセルはもしカラム名が単語であれば'cells.<column name>'で、それ以外の場合は'cells[\"<column name>\"]'で呼び出すことができる。",
|
||||
"row-index": "現在の行のインデックス: 'row.index'がショートカット",
|
||||
"returns": "returns",
|
||||
"from": "From",
|
||||
"expression": "式",
|
||||
"reuse": "再利用",
|
||||
"remove": "削除",
|
||||
"error": "エラー",
|
||||
"no-syntax-err": "No syntax error",
|
||||
"internal-err": "Internal error",
|
||||
"language": "言語",
|
||||
"preview": "プレビュー",
|
||||
"history": "履歴",
|
||||
"starred": "スター",
|
||||
"help": "ヘルプ",
|
||||
"opt-code-applied": "オプションコードが適用されました。",
|
||||
"error-apply-code": "オプションコードの適用でエラーが発生。",
|
||||
"custom-tab-exp": "Custom Tabular Exporter",
|
||||
"content": "内容",
|
||||
"download": "ダウンロード",
|
||||
"upload": "アップロード",
|
||||
"opt-code": "オプションコード",
|
||||
"sel-and-ord": "出力のためにカラムを選択",
|
||||
"opt-for": "オプション",
|
||||
"for-recon-cell": "照合したセルを出力",
|
||||
"match-ent-name": "マッチしたエンティティー名",
|
||||
"cell-content": "セルの内容",
|
||||
"match-ent-id": "マッチしたエンティティーID",
|
||||
"link-match": "マッチしたエンティティーページへのリンク",
|
||||
"out-not-unmatch": "Output nothing for unmatched cells",
|
||||
"date-format": "日付時刻の値にフォーマットを使ってください",
|
||||
"date-iso": "ISO 8601, e.g., 2011-08-24T18:36:10+08:00",
|
||||
"short-format": "Short locale フォーマット",
|
||||
"medium-format": "Medium locale フォーマット",
|
||||
"long-format": "Long locale フォーマット",
|
||||
"full-format": "Full locale フォーマット",
|
||||
"custom": "カスタム",
|
||||
"local-time": "ローカルタイムゾーンを使用",
|
||||
"omit-time": "時間を省く",
|
||||
"out-col-header": "カラムのヘッダーを出力",
|
||||
"out-empty-row": "空の列(nullのすべてのセル)を出力",
|
||||
"ignore-facets": "ファセットやフィルターを無視しすべての行を出力",
|
||||
"line-based": "Line-based text formats",
|
||||
"other-format": "その他のフォーマット",
|
||||
"tsv": "タブ区切り (TSV)",
|
||||
"csv": "カンマ区切り (CSV)",
|
||||
"custom-separator": "カスタム区切り",
|
||||
"excel": "Excel (.xls)",
|
||||
"excel-xml": "Excel in XML (.xlsx)",
|
||||
"html-table": "HTML table",
|
||||
"char-enc": "文字エンコード",
|
||||
"line-sep": "Line separator",
|
||||
"upload-to": "アップロード",
|
||||
"json-text": "次のようなJSONテキストは、他のタブで設定したオプションをエンコードします。それをコピーして、後で保存し、貼り付け、適用をクリックし同じオプションを再利用することができます。"
|
||||
},
|
||||
"core-facets": {
|
||||
"remove-facet": "このファセットを削除",
|
||||
"reset": "リセット",
|
||||
"invert": "反転",
|
||||
"change": "変更",
|
||||
"click-to-edit": "クリックして式を編集",
|
||||
"sort-by": "ソート",
|
||||
"name": "名前",
|
||||
"count": "カウント",
|
||||
"cluster": "クラスタ",
|
||||
"current-exp": "現在の式",
|
||||
"facet-choices": "タブ区切りでファセットを選択",
|
||||
"loading": "ロード中...",
|
||||
"too-many-choices": "選択が表示には多すぎます",
|
||||
"set-choice-count": "カウントを限定してください",
|
||||
"edit": "編集",
|
||||
"facet-by-count": "選択肢数でファセット",
|
||||
"edit-based-col": "カラムの式でファセットを編集",
|
||||
"edit-facet-exp": "ファセット式で編集",
|
||||
"set-max-choices": "それぞれのテキストファセットに表示する選択の最大値を設定(多すぎるとアプリケーションの速度が低下します)",
|
||||
"case-sensitive": "大小文字を区別",
|
||||
"regular-exp": "正規表現",
|
||||
"time": "時間",
|
||||
"non-time": "非時間",
|
||||
"blank": "空白",
|
||||
"error": "エラー",
|
||||
"unknown-error": "未知のエラー",
|
||||
"linear-plot": "Linear Plot",
|
||||
"linear-plot-abbr": "lin",
|
||||
"logar-plot": "Logarithmic Plot",
|
||||
"logar-plot-abbr": "log",
|
||||
"rotated-counter-clock": "45度反時計回りする",
|
||||
"no-rotation": "回転しない",
|
||||
"rotated-clock": "45度時計回りする",
|
||||
"small-dot": "小さいドット",
|
||||
"regular-dot": "標準的なドット",
|
||||
"big-dot": "大きいドット",
|
||||
"export-plot": "プロットを出力",
|
||||
"numeric": "数字"
|
||||
},
|
||||
"core-project": {
|
||||
"open": "開く",
|
||||
"permalink": "パーマリンク",
|
||||
"export": "出力",
|
||||
"help": "ヘルプ",
|
||||
"starting": "開始",
|
||||
"facet-filter": "Facet / Filter",
|
||||
"undo-redo": "取り消す / やり直す",
|
||||
"extensions": "エクステンション",
|
||||
"proj-name": "クリックでプロジェクトをリネーム",
|
||||
"use-facets": "facetとfilterを使う",
|
||||
"use-to-select": "データのサブセットを選択してファセットやフィルターを使えます。それぞれのデータカラムのメニューからファセットとフィルターメソッドを選択してください。",
|
||||
"not-sure": "ご不明な場合は",
|
||||
"watch-cast": "取説動画を御覧ください",
|
||||
"refreshing-facet": "ファセットをリフレッシュ...",
|
||||
"update-facets": "すべてのファセットをアップデート",
|
||||
"clear-selection": "すべてのファセットで選択をクリア",
|
||||
"remove-all": "すべてのファセットを削除",
|
||||
"export-project": "プロジェクトを出力",
|
||||
"tab-value": "タブ区切り (TSV)で出力",
|
||||
"comma-sep": "カンマ区切り (CSV)で出力",
|
||||
"html-table": "HTMLテーブル",
|
||||
"excel": "Excel (.xls)",
|
||||
"excel-xml": "Excel 2007+ (.xlsx)",
|
||||
"odf": "ODF スプレッドシート",
|
||||
"triple-loader": "Triple loader",
|
||||
"mqlwrite": "MQLWrite",
|
||||
"custom-tabular": "カスタムして表形式出力...",
|
||||
"templating": "テンプレート...",
|
||||
"warning-align": "まだ任意のスキーマの配置を行っていないので、\nエクスポートするトリプルはありません。\n\n最初にFreebaseのスキーマで、データを整列するコマンド[Freebase > スキーマのアライメントスケルトンを編集...]を\n使用してください。",
|
||||
"json-invalid": "貼り付けられたJSONは無効です",
|
||||
"undo-history": "元に戻す履歴",
|
||||
"mistakes": "ミスは心配しないでください。すべての変更はここに表示され、あなたは変更をいつでも元に戻すことができます。",
|
||||
"learn-more": "更に学ぶ »",
|
||||
"apply": "適用…",
|
||||
"extract": "展開…",
|
||||
"filter": "フィルター:",
|
||||
"extract-history": "操作履歴を展開",
|
||||
"extract-save": "操作履歴を他のプロジェクトなどで適用できるようにJSONに保存します。",
|
||||
"apply-operation": "操作履歴を適用",
|
||||
"paste-json": "展開した操作履歴のJSONを貼り付ける:",
|
||||
"complete": "完了",
|
||||
"other-processes": "他の保留中プロセス",
|
||||
"other-process": "他の保留中プロセス",
|
||||
"cancel-all": "すべてをキャンセル",
|
||||
"cancel": "キャンセル",
|
||||
"canceling": "キャンセル中...",
|
||||
"last-op-er": "最後の操作でエラーが発生しました。",
|
||||
"continue-remaining": "残っている操作を継続",
|
||||
"undo": "取り消す"
|
||||
},
|
||||
"core-recon": {
|
||||
"access": "アクセス",
|
||||
"service-api": "サービスAPI",
|
||||
"cell-type": "これらのタイプの1つのエンティティに各セルを名寄せ",
|
||||
"col-detail": "他のカラムから関連する詳細を使用",
|
||||
"against-type": "タイプで名寄せ",
|
||||
"no-type": "特定のタイプでなく名寄せ",
|
||||
"auto-match": "信頼性の高い候補をオートマッチ",
|
||||
"warning-type-sugg": "データ内でどのタイプも見つかりませんでした。手動でタイプを特定してください。",
|
||||
"column": "カラム",
|
||||
"include": "含む",
|
||||
"as-property": "プロパティ",
|
||||
"contact-service": "名寄せサービスにコンタクト中",
|
||||
"error-contact": "名寄せサービスのコンタクトにエラー",
|
||||
"wd-recon-lang": "jp",
|
||||
"recon-col": "カラムを名寄せ",
|
||||
"pick-service": "左からサービスかエクステンションを選択",
|
||||
"enter-url": "サービスのURLを入力",
|
||||
"cell-contains": "各セルは含む:",
|
||||
"max-candidates" : "返却される候補の最大値",
|
||||
"service-title": "サービス"
|
||||
},
|
||||
"core-util-enc": {
|
||||
"select-enc": "エンコーディングを選択する",
|
||||
"common": "一般的なエンコーディング",
|
||||
"all": "すべてのエンコーディング",
|
||||
"encoding": "エンコーディング",
|
||||
"aliases": "別名",
|
||||
"today": "今日",
|
||||
"yesterday": "昨日",
|
||||
"days-ago": "日前",
|
||||
"week-ago": "1週間前",
|
||||
"weeks-ago": "週間前",
|
||||
"month-ago": "1ヶ月前",
|
||||
"months-ago": "ヶ月前",
|
||||
"year-ago": "1年前",
|
||||
"years-ago": "年前",
|
||||
"working": "Working",
|
||||
"invalid-date": "無効な日付"
|
||||
},
|
||||
"core-views": {
|
||||
"edit-cell": "このセルを編集",
|
||||
"choose-match": "新しいマッチを選択",
|
||||
"match-all-cells": "このトピックを一致するすべてのセルにマッチ",
|
||||
"match-this-cell": "このトピックをこのセルにマッチ",
|
||||
"create-topic-cells": "一致するすべてのセルに対し新しいトピックを作成",
|
||||
"create-topic-cell": "このセルに対し新しいトピックを作成",
|
||||
"create-topic": "新しいトピックを作成",
|
||||
"search-match": "マッチを検索",
|
||||
"not-valid-number": "有効な数値でない",
|
||||
"not-valid-date": "有効な日付でない",
|
||||
"match-this": "このセルだけマッチ",
|
||||
"match-other": "同じ内容の他のセルもマッチ",
|
||||
"search-for": "検索",
|
||||
"match-cell": "このセルにマッチ",
|
||||
"match-identical": "すべての一致するセルにマッチ",
|
||||
"matched": "マッチ",
|
||||
"new": "新しい",
|
||||
"to-be-recon": "名寄せされた",
|
||||
"facet": "ファセット",
|
||||
"edit-cells": "セル編集",
|
||||
"edit-column": "カラム編集",
|
||||
"transpose": "行列変換",
|
||||
"sort": "ソート",
|
||||
"collapse-expand": "データを見やすくするためにカラムをたたむ/開く",
|
||||
"collapse-this": "カラムをたたむ",
|
||||
"collapse-other": "これ以外のカラムをたたむ",
|
||||
"collapse-left": "左側すべてをたたむ",
|
||||
"collapse-right": "右側すべてをたたむ",
|
||||
"reconcile": "名寄せ",
|
||||
"match-fb": "Freebaseでこのカラムのセルをトピックにマッチ",
|
||||
"reverse": "反転",
|
||||
"remove-sort": "ソートを削除",
|
||||
"sort-by": "ソート",
|
||||
"sort-cell": "セル値をソート",
|
||||
"pos-blank": "空白とエラーの位置",
|
||||
"text": "テキスト",
|
||||
"case-sensitive": "大小文字の区別",
|
||||
"numbers": "数字",
|
||||
"dates": "日付",
|
||||
"booleans": "ブーリアン",
|
||||
"drag-drop": "ドラッグ&ドロップで再整理",
|
||||
"forward": "前に",
|
||||
"sort-by-col": "このカラムだけソート",
|
||||
"smallest-first": "昇順",
|
||||
"largest-first": "降順",
|
||||
"earliest-first": "早いもの順",
|
||||
"latest-first": "遅いもの順",
|
||||
"false-true": "falseのちtrue",
|
||||
"true-fasle": "trueのちfalse",
|
||||
"valid-values": "有効な値",
|
||||
"blanks": "空白",
|
||||
"errors": "エラー",
|
||||
"search-fb-topic": "すべてのフィルターされたセルにマッチしたトピックをFreebaseで検索:",
|
||||
"copy-recon-judg": "カラムからの名寄せをコピー",
|
||||
"copy-to-col": "カラムにコピー",
|
||||
"copy-opt": "オプションをコピー",
|
||||
"apply-to-cell": "判断されたセルを適用",
|
||||
"what-to-copy": "コピーするもの:",
|
||||
"new-recon": "新しい名寄せ判断",
|
||||
"match-recon": "名寄せ判断のマッチ",
|
||||
"warning-other-col": "コピー先の他のカラムを選択してください。",
|
||||
"warning-sel-judg": "コピー先の判断の種類を選択してください。",
|
||||
"start-recon": "名寄せ開始",
|
||||
"recon-text-fb": "Freebaseのトピックでカラムのテキストを名寄せ",
|
||||
"facets": "ファセット",
|
||||
"by-judg": "判断",
|
||||
"best-score": "最良の候補スコア",
|
||||
"best-cand-score": "最良の候補スコア",
|
||||
"best-type-match": "最良の候補タイプマッチ",
|
||||
"best-cand-type-match": "最良の候補タイプマッチ?",
|
||||
"best-name": "最良の候補名マッチ",
|
||||
"best-cand-name": "最良の候補名マッチ?",
|
||||
"best-edit-dist": "最良の候補name edit distance",
|
||||
"best-cand-edit-dist": "最良の候補name edit distance",
|
||||
"best-word-sim": "最良の候補name word similarity",
|
||||
"best-cand-word-sim": "最良の候補name word similarity",
|
||||
"best-type": "最良の候補タイプ",
|
||||
"qa-facets": "QAファセット",
|
||||
"qa-results": "QA結果",
|
||||
"qa-results2": "QA結果",
|
||||
"judg-actions": "判断 actions",
|
||||
"judg-actions2": "判断 Actions",
|
||||
"judg-hist": "判断履歴エントリー",
|
||||
"hist-entries": "履歴エントリー",
|
||||
"actions": "Actions",
|
||||
"best-cand": "最良の候補と各セルをマッチ",
|
||||
"best-cand2": "各セルとすべての現在のフィルター行にこのカラムの最良の候補をマッチ",
|
||||
"new-topic": "各セルに新しいトピックを作成",
|
||||
"new-topic2": "すべての現在のフィルター行にこのカラムの各セルに対し新しいトピックを作成",
|
||||
"one-topic": "類似セルに新しいトピックを作成",
|
||||
"one-topic2": "すべての現在のフィルター行にこのカラムの類似セルの各グループにトピックを作成",
|
||||
"filtered-cell": "すべてのフィルターセルとマッチ",
|
||||
"filtered-cell2": "すべてのフィルターセルとマッチするトピックを検索",
|
||||
"discard-judg": "名寄せ判断を捨てる",
|
||||
"discard-judg2": "すべての現在のフィルター行に対するこのカラムの名寄せ判断を捨てる",
|
||||
"clear-recon": "名寄せデータをクリア",
|
||||
"clear-recon2": "すべての現在のフィルター行に対するこのカラムの名寄せデータをクリア",
|
||||
"copy-recon": "名寄せデータをコピー...",
|
||||
"copy-recon2": "このカラムの名寄せデータを他のカラムにコピー",
|
||||
"custom-facet": "カラムのカスタムファセット",
|
||||
"custom-numeric-label": "カラムのカスタム数値ファセット",
|
||||
"custom-numeric": "カスタム数値ファセット",
|
||||
"text-facet": "テキストファセット",
|
||||
"numeric-facet": "数値ファセット",
|
||||
"timeline-facet": "タイムラインファセット",
|
||||
"scatterplot-facet": "散布図ファセット",
|
||||
"custom-text-facet": "カスタムテキストファセット",
|
||||
"custom-facets": "カスタムファセット",
|
||||
"word-facet": "Wordファセット",
|
||||
"duplicates-facet": "Duplicatesファセット",
|
||||
"numeric-log-facet": "Numeric logファセット",
|
||||
"bounded-log-facet": "1-bounded numeric logファセット",
|
||||
"text-length-facet": "Text lengthファセット",
|
||||
"log-length-facet": "Log of text lengthファセット",
|
||||
"unicode-facet": "Unicode char-codeファセット",
|
||||
"facet-error": "エラーでのファセット",
|
||||
"facet-blank": "空白でのファセット",
|
||||
"text-filter": "テキストフィルター",
|
||||
"add-col-col": "カラムに基づくカラムの追加",
|
||||
"new-col-name": "新しいカラム名",
|
||||
"on-error": "エラー",
|
||||
"set-blank": "空白をセット",
|
||||
"store-err": "エラーを保存",
|
||||
"copy-val": "オリジナルのカラムから値をコピー",
|
||||
"warning-col-name": "カラム名を入力してください。",
|
||||
"add-col-fetch": "カラムに基づきURLをフェッチしたカラムを追加",
|
||||
"throttle-delay": "スロットル遅延",
|
||||
"milli": "ミリセカンド",
|
||||
"url-fetch": "フェッチのためのURLの定式化:",
|
||||
"enter-col-name": "新しいカラム名を入力",
|
||||
"split-col": "カラムを分割",
|
||||
"several-col": "複数のカラムに",
|
||||
"how-split": "カラム分割の方法",
|
||||
"by-sep": "区切りで",
|
||||
"separator": "区切り",
|
||||
"reg-exp": "正規表現",
|
||||
"split-into": "で分割",
|
||||
"col-at-most": "最大限のカラム(制限なく空白を残す)",
|
||||
"field-len": "フィールド長で",
|
||||
"list-int": "カンマ区切りで数値をリストに 例, 5, 7, 15",
|
||||
"after-split": "分割後",
|
||||
"guess-cell": "セルタイプを推測",
|
||||
"remove-col": "カラムを取り除く",
|
||||
"specify-sep": "区切りを指定してください。",
|
||||
"warning-no-length": "フィールド長が指定されてません。",
|
||||
"warning-format": "与えられたフィールド長はフォーマットを満たしていません。",
|
||||
"check-format": "ファイルのフォーマットを確認してください。",
|
||||
"split-into-col": "複数のカラムに分割",
|
||||
"add-based-col": "このカラムに基づいたカラムを追加",
|
||||
"add-by-urls": "フェッチしたURLでカラムを追加",
|
||||
"rename-col": "カラムをリネームする",
|
||||
"move-to-beg": "先頭にカラムを移動",
|
||||
"move-to-end": "末尾にカラムを移動",
|
||||
"move-to-left": "左にカラムを移動",
|
||||
"move-to-right": "右にカラムを移動",
|
||||
"show-as": "表示",
|
||||
"first": "最初",
|
||||
"previous": "前へ",
|
||||
"next": "次へ",
|
||||
"last": "最後",
|
||||
"all": "All",
|
||||
"facet-star": "スターでファセット",
|
||||
"starred-rows": "星付き行",
|
||||
"facet-flag": "フラグでファセット",
|
||||
"flagged-rows": "フラグ付き行",
|
||||
"edit-rows": "行を編集",
|
||||
"star-rows": "スターをつける",
|
||||
"unstar-rows": "スターを外す",
|
||||
"flag-rows": "フラグをつける",
|
||||
"unflag-rows": "フラグを外す",
|
||||
"remove-matching": "マッチしたすべての行を削除",
|
||||
"edit-col": "カラムを編集",
|
||||
"reorder-remove": "カラムを並べ替え/取り除く",
|
||||
"view": "View",
|
||||
"collapse-all": "すべてのカラムをたたむ",
|
||||
"expand-all": "すべてのカラムを開く",
|
||||
"reorder-perma": "行を固定",
|
||||
"by": "By",
|
||||
"custom-text-trans": "カスタムテキストでカラム変換",
|
||||
"keep-or": "オリジナルを保持",
|
||||
"re-trans": "再変換",
|
||||
"times-chang": "times 変更なしまで",
|
||||
"enter-separator": "値間を使い区切りを入力",
|
||||
"what-separator": "何区切りで値を分けますか?",
|
||||
"transform": "変換",
|
||||
"common-transform": "一般的な変換",
|
||||
"trim-all": "先頭と末尾の空白を削除",
|
||||
"collapse-white": "連続した空白をたたむ",
|
||||
"unescape-html": "HTMLエンティティーをエスケープされていない形に戻す",
|
||||
"titlecase": "先頭大文字に",
|
||||
"uppercase": "大文字に",
|
||||
"lowercase": "小文字に",
|
||||
"to-number": "数値に",
|
||||
"to-date": "日付に",
|
||||
"to-text": "テキストに",
|
||||
"blank-out": "セルを空白に",
|
||||
"fill-down": "満たす",
|
||||
"blank-down": "空白で満たす",
|
||||
"split-cells": "多値のセルを分割",
|
||||
"join-cells": "多値のセルを結合",
|
||||
"cluster-edit": "クラスタと編集",
|
||||
"transp-cell": "行にカラムを越えてセルを転置",
|
||||
"from-col": "カラムから",
|
||||
"to-col": "カラムへ",
|
||||
"transp-into": "へ転置",
|
||||
"two-new-col": "2つの新しいカラム",
|
||||
"key-col": "キーカラム",
|
||||
"contain-names": "(オリジナルのカラム名を含む)",
|
||||
"val-col": "値 カラム",
|
||||
"contain-val": "(オリジナルのセル値を含む)",
|
||||
"one-col": "1つのカラム",
|
||||
"prepend-name": "オリジナルのカラム名を各セルの先頭に追加する",
|
||||
"follow-by": "に続く",
|
||||
"before-val": "セル値の前",
|
||||
"ignore-blank": "空白セルを無視",
|
||||
"fill-other": "他のカラムを満たす",
|
||||
"spec-new-name": "新しいキーカラム名を指定してください。",
|
||||
"spec-new-val": "新しい値をカラム名に指定してください。",
|
||||
"spec-col-name": "新しいカラム名を指定してください。",
|
||||
"spec-separator": "オリジナルのカラム名とセル値の間に区切りを指定してください。",
|
||||
"how-many-rows": "いくつの行を転置しますか?",
|
||||
"expect-two": "少なくとも2以上の数字をいれてください。",
|
||||
"columnize": "キー/値 カラムでカスタマイズする",
|
||||
"note-col": "カラムにしるしをつける (optional)",
|
||||
"sel-col-val": "互いに異なるキーカラムと値カラムを選択してください。",
|
||||
"cannot-same": "もし指定した場合、ノートカラムはキーカラムや値カラムと同じにすることはできません。",
|
||||
"transp-cell-row": "行をカラムを越えてセルを転置",
|
||||
"transp-cell-col": "カラムに行のセルを転置",
|
||||
"columnize-col": "キー/値カラムでカラム化",
|
||||
"data-type": "データタイプ:",
|
||||
"number": "数値",
|
||||
"boolean": "ブーリアン",
|
||||
"date": "日付",
|
||||
"ctrl-enter": "Ctrl-Enter",
|
||||
"rows": "行",
|
||||
"records": "レコード",
|
||||
"show": "表示"
|
||||
},
|
||||
"core-buttons": {
|
||||
"cancel": "キャンセル",
|
||||
"ok": " OK ",
|
||||
"import-proj": "インポート",
|
||||
"select-all": "全選択",
|
||||
"unselect-all": "全選択解除",
|
||||
"deselect-all": "全選択解除",
|
||||
"select": "選択",
|
||||
"unselect": "選択解除",
|
||||
"startover": "« 最初からやり直す",
|
||||
"conf-pars-opt": "パースオプションを設定する »",
|
||||
"reselect-files": "« ファイルを再選択",
|
||||
"create-project": "プロジェクトを作成 »",
|
||||
"next": "次へ »",
|
||||
"add-url": "他のURLを追加",
|
||||
"update-preview": "プレビューをアップデート",
|
||||
"pick-record": "レコード要素を選択",
|
||||
"merge-cluster": "Merge Selected & Re-Cluster",
|
||||
"merge-close": "Merge Selected & Close",
|
||||
"close": "閉じる",
|
||||
"reset-template": "テンプレートをリセット",
|
||||
"export": "出力",
|
||||
"preview": "プレビュー",
|
||||
"download": "ダウンロード",
|
||||
"upload": "アップロード",
|
||||
"apply": "適用",
|
||||
"enter": "Enter",
|
||||
"esc": "Esc",
|
||||
"refresh": "再読み込み",
|
||||
"reset-all": "すべてリセット",
|
||||
"remove-all": "すべて削除",
|
||||
"perform-op": "操作を実行",
|
||||
"add-std-svc": "標準サービスを追加",
|
||||
"start-recon": "名寄せ開始",
|
||||
"add-service": "サービスを追加",
|
||||
"dont-reconcile": "セルを名寄せしない",
|
||||
"new-topic": "新しいトピック",
|
||||
"match": "マッチ",
|
||||
"copy": "コピー",
|
||||
"transpose": "転置",
|
||||
"apply-to-all": "すべての一致するセルに適用"
|
||||
}
|
||||
}
|
@ -350,21 +350,11 @@
|
||||
"as-property": "作为属性",
|
||||
"contact-service": "正在访问搭配服务",
|
||||
"error-contact": "在访问搭配服务时出现异常",
|
||||
"fb-recon": "基于query的Freebase搭配",
|
||||
"wd-recon-lang": "zh",
|
||||
"recon-col": "搭配列",
|
||||
"pick-service": "在左侧选择一个服务或扩展",
|
||||
"add-recon-srv": "添加具命名空间的搭配服务",
|
||||
"namespace": "命名空间",
|
||||
"ent-type": "实体类型 (可选)",
|
||||
"add-std-srv": "添加标准搭配服务",
|
||||
"enter-url": "键入一个服务的URL",
|
||||
"specify-ns": "请指定一个命名空间.",
|
||||
"cell-contains": "各个包含以下内容的单元格:",
|
||||
"fb-id": "a Freebase ID, e.g., /en/solar_system",
|
||||
"fb-guid": "a Freebase GUID, e.g., #9202a8c04000641f80000000000354ae",
|
||||
"fb-key": "a Freebase key in",
|
||||
"fb-en-ns": "英文维基命名空间",
|
||||
"this-ns": "该命名空间:",
|
||||
"max-candidates" : "最大候选服务返回数量",
|
||||
"service-title": "Services"
|
||||
|
||||
@ -659,7 +649,6 @@
|
||||
"remove-all": "全部移除",
|
||||
"perform-op": "执行这些操作",
|
||||
"add-std-svc": "添加标准服务",
|
||||
"add-named-svc": "添加命名空间服务",
|
||||
"start-recon": "开始搭配",
|
||||
"add-service": "添加服务",
|
||||
"dont-reconcile": "不搭配单元格",
|
||||
|
@ -18,25 +18,25 @@
|
||||
<td>
|
||||
<div class="binning-controls"><span bind="or_dialog_keying"></span>
|
||||
<select bind="keyingFunctionSelector">
|
||||
<option selected="true" bind="or_dialog_fingerprint"></option>
|
||||
<option bind="or_dialog_ngram"></option>
|
||||
<option bind="or_dialog_metaphone"></option>
|
||||
<option bind="or_dialog_phonetic"></option>
|
||||
<option selected="true" bind="or_dialog_fingerprint" value="fingerprint"></option>
|
||||
<option bind="or_dialog_ngram" value="ngram-fingerprint"></option>
|
||||
<option bind="or_dialog_metaphone" value="metaphone3"></option>
|
||||
<option bind="or_dialog_phonetic" value="cologne-phonetic"></option>
|
||||
</select></div>
|
||||
<div class="knn-controls hidden"><span bind="or_dialog_distance"></span>
|
||||
<select bind="distanceFunctionSelector">
|
||||
<option selected="true" bind="or_dialog_leven"></option>
|
||||
<option bind="or_dialog_ppm"></option>
|
||||
<option selected="true" bind="or_dialog_leven" value="levenshtein"></option>
|
||||
<option bind="or_dialog_ppm" value="PPM"></option>
|
||||
</select></div>
|
||||
</td>
|
||||
<td>
|
||||
<div id="ngram-fingerprint-params" class="function-params hidden">
|
||||
<span bind="or_dialog_ngramSize"></span><input type="text" value="2" bind="ngramSize" name="ngram-size" size="2" class="param" datatype="int">
|
||||
</div>
|
||||
</div>
|
||||
<div class="knn-controls hidden">
|
||||
<span style="margin-right: 1em"><span bind="or_dialog_radius"></span><input type="text" value="1.0" bind="radius" name="radius" size="2" class="param" datatype="float"></span>
|
||||
<span><span bind="or_dialog_blockChars"></span><input type="text" value="6" bind="ngramBlock" name="blocking-ngram-size" size="2" class="param" datatype="int"></span>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td bind="resultSummary" style="text-align:right;">
|
||||
</td>
|
||||
@ -54,7 +54,7 @@
|
||||
<td class="left" style="text-align: left">
|
||||
<button class="button" bind="selectAllButton"></button>
|
||||
<button class="button" bind="deselectAllButton"></button>
|
||||
</td>
|
||||
</td>
|
||||
<td class="right" style="text-align: right">
|
||||
<button class="button" bind="exportClusterButton"></button>
|
||||
<button class="button button-primary" bind="applyReClusterButton"></button>
|
||||
|
@ -23,8 +23,8 @@ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
@ -37,9 +37,9 @@ function ClusteringDialog(columnName, expression) {
|
||||
this._method = "binning";
|
||||
this._function = "fingerprint";
|
||||
this._params = {};
|
||||
|
||||
|
||||
this._facets = [];
|
||||
|
||||
|
||||
this._createDialog();
|
||||
this._cluster();
|
||||
}
|
||||
@ -50,7 +50,7 @@ ClusteringDialog.prototype._createDialog = function() {
|
||||
|
||||
this._elmts = DOM.bind(dialog);
|
||||
this._elmts.dialogHeader.text($.i18n._('core-dialogs')["cluster-edit"]+' "' + this._columnName + '"');
|
||||
|
||||
|
||||
this._elmts.or_dialog_descr.html($.i18n._('core-dialogs')["cluster-descr"]);
|
||||
this._elmts.or_dialog_findMore.html($.i18n._('core-dialogs')["find-more"]);
|
||||
this._elmts.or_dialog_method.html($.i18n._('core-dialogs')["method"]);
|
||||
@ -66,14 +66,14 @@ ClusteringDialog.prototype._createDialog = function() {
|
||||
this._elmts.or_dialog_ppm.html($.i18n._('core-dialogs')["ppm"]);
|
||||
this._elmts.or_dialog_ngramSize.html($.i18n._('core-dialogs')["ngram-size"]);
|
||||
this._elmts.or_dialog_radius.html($.i18n._('core-dialogs')["ngram-radius"]);
|
||||
this._elmts.or_dialog_blockChars.html($.i18n._('core-dialogs')["block-chars"]);
|
||||
this._elmts.or_dialog_blockChars.html($.i18n._('core-dialogs')["block-chars"]);
|
||||
this._elmts.selectAllButton.html($.i18n._('core-buttons')["select-all"]);
|
||||
this._elmts.deselectAllButton.html($.i18n._('core-buttons')["unselect-all"]);
|
||||
this._elmts.exportClusterButton.html($.i18n._('core-buttons')["export-cluster"]);
|
||||
this._elmts.applyReClusterButton.html($.i18n._('core-buttons')["merge-cluster"]);
|
||||
this._elmts.applyCloseButton.html($.i18n._('core-buttons')["merge-close"]);
|
||||
this._elmts.closeButton.html($.i18n._('core-buttons')["close"]);
|
||||
|
||||
|
||||
this._elmts.methodSelector.change(function() {
|
||||
var selection = $(this).find("option:selected").text();
|
||||
if (selection == $.i18n._('core-dialogs')["key-collision"]) {
|
||||
@ -88,56 +88,56 @@ ClusteringDialog.prototype._createDialog = function() {
|
||||
self._elmts.distanceFunctionSelector.change();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
var changer = function() {
|
||||
self._function = $(this).find("option:selected").text();
|
||||
self._function = $(this).find("option:selected").val();
|
||||
$(".function-params").hide();
|
||||
$("#" + self._function + "-params").show();
|
||||
params_changer();
|
||||
};
|
||||
|
||||
|
||||
this._elmts.keyingFunctionSelector.change(changer);
|
||||
this._elmts.distanceFunctionSelector.change(changer);
|
||||
|
||||
|
||||
var params_changer = function() {
|
||||
self._params = {};
|
||||
$(".dialog-body input.param:visible").each(function() {
|
||||
var e = $(this);
|
||||
var name = e.attr('name');
|
||||
var datatype = e.attr('datatype') || 'string';
|
||||
var value = e.val();
|
||||
var value = e.val();
|
||||
if (datatype == 'int') {
|
||||
value = parseInt(value,10);
|
||||
} else if (datatype == 'float') {
|
||||
value = parseFloat(value);
|
||||
}
|
||||
}
|
||||
self._params[name] = value;
|
||||
});
|
||||
self._cluster();
|
||||
};
|
||||
|
||||
|
||||
this._elmts.ngramSize.change(params_changer);
|
||||
this._elmts.radius.change(params_changer);
|
||||
this._elmts.ngramBlock.change(params_changer);
|
||||
|
||||
|
||||
this._elmts.selectAllButton.click(function() { self._selectAll(); });
|
||||
this._elmts.deselectAllButton.click(function() { self._deselectAll(); });
|
||||
this._elmts.exportClusterButton.click(function() { self._onExportCluster(); });
|
||||
this._elmts.applyReClusterButton.click(function() { self._onApplyReCluster(); });
|
||||
this._elmts.applyCloseButton.click(function() { self._onApplyClose(); });
|
||||
this._elmts.closeButton.click(function() { self._dismiss(); });
|
||||
|
||||
|
||||
this._level = DialogSystem.showDialog(dialog);
|
||||
};
|
||||
|
||||
ClusteringDialog.prototype._renderTable = function(clusters) {
|
||||
var self = this;
|
||||
|
||||
|
||||
var container = this._elmts.tableContainer;
|
||||
|
||||
|
||||
if (clusters.length > 0) {
|
||||
var table = $('<table></table>').addClass("clustering-dialog-entry-table")[0];
|
||||
|
||||
|
||||
var trHead = table.insertRow(table.rows.length);
|
||||
trHead.className = "header";
|
||||
$(trHead.insertCell(0)).text($.i18n._('core-dialogs')["cluster-size"]);
|
||||
@ -149,9 +149,9 @@ ClusteringDialog.prototype._renderTable = function(clusters) {
|
||||
var renderCluster = function(cluster) {
|
||||
var tr = table.insertRow(table.rows.length);
|
||||
tr.className = table.rows.length % 2 === 0 ? "odd" : "even";
|
||||
|
||||
|
||||
$(tr.insertCell(0)).text(cluster.choices.length);
|
||||
|
||||
|
||||
$(tr.insertCell(1)).text(cluster.rowCount);
|
||||
|
||||
var facet = {
|
||||
@ -167,7 +167,7 @@ ClusteringDialog.prototype._renderTable = function(clusters) {
|
||||
"s":[
|
||||
]
|
||||
};
|
||||
|
||||
|
||||
var ul = $('<ul></ul>');
|
||||
var choices = cluster.choices;
|
||||
var rowCount = 0;
|
||||
@ -175,7 +175,7 @@ ClusteringDialog.prototype._renderTable = function(clusters) {
|
||||
var parent = $(this).closest("tr");
|
||||
var value = $(this).text();
|
||||
cluster.value = value;
|
||||
|
||||
|
||||
parent.find("input[type='text']").val(value);
|
||||
var checkbox = parent.find("input[type='checkbox']");
|
||||
checkbox.prop('checked', true).change();
|
||||
@ -195,7 +195,7 @@ ClusteringDialog.prototype._renderTable = function(clusters) {
|
||||
};
|
||||
li.appendTo(ul);
|
||||
}
|
||||
|
||||
|
||||
var params = [
|
||||
"project=" + encodeURIComponent(theProject.id),
|
||||
"ui=" + encodeURIComponent(JSON.stringify({
|
||||
@ -205,7 +205,7 @@ ClusteringDialog.prototype._renderTable = function(clusters) {
|
||||
var url = "project?" + params.join("&");
|
||||
|
||||
var div = $('<div></div>').addClass("clustering-dialog-value-focus");
|
||||
|
||||
|
||||
var browseLink = $('<a target="_new" title="'+$.i18n._('core-dialogs')["browse-only-these"]+'">'+$.i18n._('core-dialogs')["browse-this-cluster"]+'</a>')
|
||||
.addClass("clustering-dialog-browse-focus")
|
||||
.attr("href",url)
|
||||
@ -217,7 +217,7 @@ ClusteringDialog.prototype._renderTable = function(clusters) {
|
||||
.mouseleave(function() { browseLink.css("visibility", "hidden"); })
|
||||
.append(ul)
|
||||
.append(div);
|
||||
|
||||
|
||||
var editCheck = $('<input type="checkbox" />')
|
||||
.change(function() {
|
||||
cluster.edit = this.checked;
|
||||
@ -226,26 +226,26 @@ ClusteringDialog.prototype._renderTable = function(clusters) {
|
||||
if (cluster.edit) {
|
||||
editCheck.attr("checked", "true");
|
||||
}
|
||||
|
||||
|
||||
var input = $('<input type="text" size="25" />')
|
||||
.attr("value", cluster.value)
|
||||
.bind("keyup change input",function() {
|
||||
cluster.value = this.value;
|
||||
}).appendTo(tr.insertCell(4));
|
||||
};
|
||||
|
||||
|
||||
for (var i = 0; i < clusters.length; i++) {
|
||||
renderCluster(clusters[i]);
|
||||
}
|
||||
|
||||
|
||||
container.empty().append(table);
|
||||
|
||||
|
||||
this._elmts.resultSummary.html(
|
||||
(clusters.length === this._clusters.length) ?
|
||||
("<b>" + this._clusters.length + "</b> cluster" + ((this._clusters.length != 1) ? "s" : "") + " "+$.i18n._('core-dialogs')["found"]) :
|
||||
("<b>" + clusters.length + "</b> cluster" + ((clusters.length != 1) ? "s" : "") + " "+$.i18n._('core-dialogs')["filtered-from"]+ this._clusters.length +$.i18n._('core-dialogs')["from-total"] )
|
||||
);
|
||||
|
||||
|
||||
} else {
|
||||
container.html(
|
||||
'<div style="margin: 2em;"><div style="font-size: 130%; color: #333;">'+$.i18n._('core-dialogs')["no-cluster-found"]+'</div><div style="padding-top: 1em; font-size: 110%; color: #888;">'+$.i18n._('core-dialogs')["try-another-method"]+'</div></div>'
|
||||
@ -255,23 +255,23 @@ ClusteringDialog.prototype._renderTable = function(clusters) {
|
||||
|
||||
ClusteringDialog.prototype._cluster = function() {
|
||||
var self = this;
|
||||
|
||||
|
||||
var container = this._elmts.tableContainer.html(
|
||||
'<div style="margin: 1em; font-size: 130%; color: #888;">'+$.i18n._('core-dialogs')["clustering"]+'<img src="images/small-spinner.gif"></div>'
|
||||
);
|
||||
|
||||
|
||||
this._elmts.resultSummary.empty();
|
||||
|
||||
$.post(
|
||||
"command/core/compute-clusters?" + $.param({ project: theProject.id }),
|
||||
{
|
||||
engine: JSON.stringify(ui.browsingEngine.getJSON()),
|
||||
clusterer: JSON.stringify({
|
||||
'type' : this._method,
|
||||
{
|
||||
engine: JSON.stringify(ui.browsingEngine.getJSON()),
|
||||
clusterer: JSON.stringify({
|
||||
'type' : this._method,
|
||||
'function' : this._function,
|
||||
'column' : this._columnName,
|
||||
'params' : this._params
|
||||
})
|
||||
})
|
||||
},
|
||||
function(data) {
|
||||
self._updateData(data);
|
||||
@ -289,26 +289,26 @@ ClusteringDialog.prototype._updateData = function(data) {
|
||||
value: this[0].v,
|
||||
size: this.length
|
||||
};
|
||||
|
||||
|
||||
var sum = 0;
|
||||
var sumSquared = 0;
|
||||
var rowCount = 0;
|
||||
$.each(cluster.choices, function() {
|
||||
rowCount += this.c;
|
||||
|
||||
var l = this.v.length;
|
||||
|
||||
var l = this.v.length;
|
||||
sum += l;
|
||||
sumSquared += l * l;
|
||||
});
|
||||
|
||||
|
||||
cluster.rowCount = rowCount;
|
||||
cluster.avg = sum / cluster.choices.length;
|
||||
cluster.variance = Math.sqrt(sumSquared / cluster.choices.length - cluster.avg * cluster.avg);
|
||||
|
||||
|
||||
clusters.push(cluster);
|
||||
});
|
||||
this._clusters = clusters;
|
||||
|
||||
|
||||
this._resetFacets();
|
||||
this._updateAll();
|
||||
};
|
||||
@ -322,14 +322,14 @@ ClusteringDialog.prototype._deselectAll = function() {
|
||||
};
|
||||
|
||||
ClusteringDialog.prototype._onApplyClose = function() {
|
||||
var self = this;
|
||||
var self = this;
|
||||
this._apply(function() {
|
||||
self._dismiss();
|
||||
});
|
||||
};
|
||||
|
||||
ClusteringDialog.prototype._onApplyReCluster = function() {
|
||||
var self = this;
|
||||
var self = this;
|
||||
this._apply(function() {
|
||||
self._cluster();
|
||||
});
|
||||
@ -350,14 +350,14 @@ ClusteringDialog.prototype._apply = function(onDone) {
|
||||
for (var j = 0; j < cluster.choices.length; j++) {
|
||||
values.push(cluster.choices[j].v);
|
||||
}
|
||||
|
||||
|
||||
edits.push({
|
||||
from: values,
|
||||
to: cluster.value
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (edits.length > 0) {
|
||||
Refine.postCoreProcess(
|
||||
"mass-edit",
|
||||
@ -435,7 +435,7 @@ ClusteringDialog.prototype._resetFacets = function() {
|
||||
r.elmt.remove();
|
||||
}
|
||||
this._facets = [];
|
||||
|
||||
|
||||
this._createFacet($.i18n._('core-dialogs')["choices-in-cluster"], "size");
|
||||
this._createFacet($.i18n._('core-dialogs')["rows-in-cluster"], "rowCount");
|
||||
this._createFacet($.i18n._('core-dialogs')["choice-avg-length"], "avg");
|
||||
@ -453,9 +453,9 @@ ClusteringDialog.prototype._createFacet = function(title, property) {
|
||||
ClusteringDialog.Facet = function(dialog, title, property, elmt, clusters) {
|
||||
this._dialog = dialog;
|
||||
this._property = property;
|
||||
|
||||
|
||||
var self = this;
|
||||
|
||||
|
||||
var max = Number.NEGATIVE_INFINITY;
|
||||
var min = Number.POSITIVE_INFINITY;
|
||||
for (var i = 0; i < clusters.length; i++) {
|
||||
@ -464,7 +464,7 @@ ClusteringDialog.Facet = function(dialog, title, property, elmt, clusters) {
|
||||
max = Math.max(max, val);
|
||||
min = Math.min(min, val);
|
||||
}
|
||||
|
||||
|
||||
this._min = min;
|
||||
this._max = max;
|
||||
if (min >= max) {
|
||||
@ -472,7 +472,7 @@ ClusteringDialog.Facet = function(dialog, title, property, elmt, clusters) {
|
||||
this._baseBins = [];
|
||||
} else {
|
||||
var diff = max - min;
|
||||
|
||||
|
||||
this._step = 1;
|
||||
if (diff > 10) {
|
||||
while (this._step * 100 < diff) {
|
||||
@ -483,7 +483,7 @@ ClusteringDialog.Facet = function(dialog, title, property, elmt, clusters) {
|
||||
this._step /= 10;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
this._min = (Math.floor(this._min / this._step) * this._step);
|
||||
this._max = (Math.ceil(this._max / this._step) * this._step);
|
||||
this._binCount = 1 + Math.ceil((this._max - this._min) / this._step);
|
||||
@ -496,10 +496,10 @@ ClusteringDialog.Facet = function(dialog, title, property, elmt, clusters) {
|
||||
this._max = (Math.ceil(this._max / this._step) * this._step);
|
||||
}
|
||||
this._baseBins = this._computeDistribution(clusters);
|
||||
|
||||
|
||||
this._from = this._min;
|
||||
this._to = this._max;
|
||||
|
||||
|
||||
elmt.addClass("clustering-dialog-facet");
|
||||
var html = $(
|
||||
'<div class="clustering-dialog-facet-header">' + title + '</div>' +
|
||||
@ -508,12 +508,12 @@ ClusteringDialog.Facet = function(dialog, title, property, elmt, clusters) {
|
||||
'</div>' +
|
||||
'<div class="clustering-dialog-facet-selection" bind="selectionContainer"></div>'
|
||||
).appendTo(elmt);
|
||||
|
||||
|
||||
this._elmts = DOM.bind(html);
|
||||
|
||||
|
||||
this._histogram = new HistogramWidget(this._elmts.histogramContainer, { binColors: [ "#ccccff", "#6666ff" ] });
|
||||
this._sliderWidget = new SliderWidget(this._elmts.sliderWidgetDiv);
|
||||
|
||||
|
||||
this._elmts.sliderWidgetDiv.bind("slide", function(evt, data) {
|
||||
self._from = data.from;
|
||||
self._to = data.to;
|
||||
@ -536,7 +536,7 @@ ClusteringDialog.Facet.prototype.restrict = function(clusters) {
|
||||
if (!this._baseBins.length || (this._from == this._min && this._to == this._max)) {
|
||||
return clusters;
|
||||
}
|
||||
|
||||
|
||||
var clusters2 = [];
|
||||
for (var i = 0; i < clusters.length; i++) {
|
||||
var cluster = clusters[i];
|
||||
@ -552,20 +552,20 @@ ClusteringDialog.Facet.prototype.update = function(clusters) {
|
||||
if (!this._baseBins.length) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
var bins = this._computeDistribution(clusters);
|
||||
|
||||
this._sliderWidget.update(
|
||||
this._min,
|
||||
this._max,
|
||||
this._step,
|
||||
this._min,
|
||||
this._max,
|
||||
this._step,
|
||||
this._from,
|
||||
this._to
|
||||
);
|
||||
this._histogram.update(
|
||||
this._min,
|
||||
this._max,
|
||||
this._step,
|
||||
this._min,
|
||||
this._max,
|
||||
this._step,
|
||||
[ this._baseBins, bins ]
|
||||
);
|
||||
};
|
||||
@ -579,13 +579,13 @@ ClusteringDialog.Facet.prototype._computeDistribution = function(clusters) {
|
||||
for (var b = 0; b < this._binCount; b++) {
|
||||
bins.push(0);
|
||||
}
|
||||
|
||||
|
||||
for (var i = 0; i < clusters.length; i++) {
|
||||
var cluster = clusters[i];
|
||||
var val = cluster[this._property];
|
||||
var bin = Math.round((val - this._min) / this._step);
|
||||
bins[bin]++;
|
||||
}
|
||||
|
||||
|
||||
return bins;
|
||||
};
|
||||
|
@ -93,8 +93,8 @@ TextSearchFacet.prototype._initializeUI = function() {
|
||||
'<div class="facet-text-body"><div class="grid-layout layout-tightest layout-full"><table>' +
|
||||
'<tr><td colspan="4"><div class="input-container"><input bind="input" /></div></td></tr>' +
|
||||
'<tr>' +
|
||||
'<td width="1%"><input type="checkbox" bind="caseSensitiveCheckbox" /></td><td>'+$.i18n._('core-facets')["case-sensitive"]+'</td>' +
|
||||
'<td width="1%"><input type="checkbox" bind="regexCheckbox" /></td><td>'+$.i18n._('core-facets')["regular-exp"]+'</td>' +
|
||||
'<td width="1%"><input type="checkbox" bind="caseSensitiveCheckbox" id="caseSensitiveCheckbox" /></td><td><label for="caseSensitiveCheckbox">'+$.i18n._('core-facets')["case-sensitive"]+'</label></td>' +
|
||||
'<td width="1%"><input type="checkbox" bind="regexCheckbox" id="regexCheckbox" /></td><td><label for="regexCheckbox">'+$.i18n._('core-facets')["regular-exp"]+'</label></td>' +
|
||||
'</tr>' +
|
||||
'</table></div></div>'
|
||||
);
|
||||
|
@ -229,7 +229,7 @@ Refine.OpenProjectUI.prototype._onClickUploadFileButton = function(evt) {
|
||||
} else {
|
||||
$("#file-upload-form").attr("action",
|
||||
"command/core/create-project-from-upload?" + [
|
||||
"url=" + encodeURICompnent(dataURL),
|
||||
"url=" + encodeURIComponent(dataURL),
|
||||
"split-into-columns=" + $("#split-into-columns-input")[0].checked,
|
||||
"separator=" + $("#separator-input")[0].value,
|
||||
"ignore=" + $("#ignore-input")[0].value,
|
||||
|
@ -1,141 +0,0 @@
|
||||
/*
|
||||
|
||||
Copyright 2010, Google Inc.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above
|
||||
copyright notice, this list of conditions and the following disclaimer
|
||||
in the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
* Neither the name of Google Inc. nor the names of its
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
*/
|
||||
|
||||
function ReconFreebaseQueryPanel(column, service, container) {
|
||||
this._column = column;
|
||||
this._service = service;
|
||||
this._container = container;
|
||||
|
||||
this._constructUI();
|
||||
}
|
||||
|
||||
ReconFreebaseQueryPanel.prototype.activate = function() {
|
||||
this._panel.show();
|
||||
};
|
||||
|
||||
ReconFreebaseQueryPanel.prototype.deactivate = function() {
|
||||
this._panel.hide();
|
||||
};
|
||||
|
||||
ReconFreebaseQueryPanel.prototype.dispose = function() {
|
||||
this._panel.remove();
|
||||
this._panel = null;
|
||||
|
||||
this._column = null;
|
||||
this._service = null;
|
||||
this._container = null;
|
||||
};
|
||||
|
||||
ReconFreebaseQueryPanel.prototype._constructUI = function() {
|
||||
var self = this;
|
||||
this._panel = $(DOM.loadHTML("core", "scripts/reconciliation/freebase-query-panel.html")).appendTo(this._container);
|
||||
this._elmts = DOM.bind(this._panel);
|
||||
|
||||
this._elmts.or_recon_contain.html($.i18n._('core-recon')["cell-contains"]);
|
||||
this._elmts.or_recon_fbId.html($.i18n._('core-recon')["fb-id"]);
|
||||
this._elmts.or_recon_fbGuid.html($.i18n._('core-recon')["fb-guid"]);
|
||||
this._elmts.or_recon_fbKey.html($.i18n._('core-recon')["fb-key"]);
|
||||
this._elmts.or_recon_fbEnNs.html($.i18n._('core-recon')["fb-en-ns"]);
|
||||
this._elmts.or_recon_thisNs.html($.i18n._('core-recon')["this-ns"]);
|
||||
|
||||
this._wireEvents();
|
||||
};
|
||||
|
||||
ReconFreebaseQueryPanel.prototype._wireEvents = function() {
|
||||
var self = this;
|
||||
this._elmts.strictNamespaceInput
|
||||
.suggest({ filter : '(all type:/type/namespace)' })
|
||||
.bind("fb-select", function(e, data) {
|
||||
self._panel.find('input[name="recon-dialog-strict-choice"][value="key"]').attr("checked", "true");
|
||||
self._panel.find('input[name="recon-dialog-strict-namespace-choice"][value="other"]').attr("checked", "true");
|
||||
});
|
||||
};
|
||||
|
||||
ReconFreebaseQueryPanel.prototype.start = function() {
|
||||
var bodyParams;
|
||||
|
||||
var match = $('input[name="recon-dialog-strict-choice"]:checked')[0].value;
|
||||
if (match == "key") {
|
||||
var namespaceChoice = $('input[name="recon-dialog-strict-namespace-choice"]:checked')[0];
|
||||
var namespace;
|
||||
|
||||
if (namespaceChoice.value == "other") {
|
||||
var suggest = this._elmts.strictNamespaceInput.data("data.suggest");
|
||||
if (!suggest) {
|
||||
alert($.i18n._('core-recon')["specify-ns"]);
|
||||
return;
|
||||
}
|
||||
namespace = {
|
||||
id: suggest.id,
|
||||
name: suggest.name
|
||||
};
|
||||
} else {
|
||||
namespace = {
|
||||
id: namespaceChoice.value,
|
||||
name: namespaceChoice.getAttribute("nsName")
|
||||
};
|
||||
}
|
||||
|
||||
bodyParams = {
|
||||
columnName: this._column.name,
|
||||
config: JSON.stringify({
|
||||
mode: "freebase/strict",
|
||||
match: "key",
|
||||
namespace: namespace
|
||||
})
|
||||
};
|
||||
} else if (match == "id") {
|
||||
bodyParams = {
|
||||
columnName: this._column.name,
|
||||
config: JSON.stringify({
|
||||
mode: "freebase/strict",
|
||||
match: "id"
|
||||
})
|
||||
};
|
||||
} else if (match == "guid") {
|
||||
bodyParams = {
|
||||
columnName: this._column.name,
|
||||
config: JSON.stringify({
|
||||
mode: "freebase/strict",
|
||||
match: "guid"
|
||||
})
|
||||
};
|
||||
}
|
||||
|
||||
Refine.postCoreProcess(
|
||||
"reconcile",
|
||||
{},
|
||||
bodyParams,
|
||||
{ cellsChanged: true, columnStatsChanged: true }
|
||||
);
|
||||
};
|
@ -23,7 +23,6 @@
|
||||
<tr>
|
||||
<td align="left">
|
||||
<button class="button" bind="addStandardServiceButton"></button>
|
||||
<button class="button" bind="addNamespacedServiceButton"></button>
|
||||
</td>
|
||||
<td align="right">
|
||||
<button class="button" bind="reconcileButton"></button>
|
||||
@ -31,4 +30,4 @@
|
||||
</td>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -49,12 +49,10 @@ ReconDialog.prototype._createDialog = function() {
|
||||
this._elmts.servicePanelMessage.html($.i18n._('core-recon')["pick-service"]);
|
||||
this._elmts.serviceListTitle.html($.i18n._('core-recon')["service-title"]);
|
||||
this._elmts.addStandardServiceButton.html($.i18n._('core-buttons')["add-std-svc"]+"...");
|
||||
this._elmts.addNamespacedServiceButton.html($.i18n._('core-buttons')["add-named-svc"]+"...");
|
||||
this._elmts.reconcileButton.html($.i18n._('core-buttons')["start-recon"]);
|
||||
this._elmts.cancelButton.html($.i18n._('core-buttons')["cancel"]);
|
||||
|
||||
this._elmts.addStandardServiceButton.click(function() { self._onAddStandardService(); });
|
||||
this._elmts.addNamespacedServiceButton.click(function() { self._onAddNamespacedService(); });
|
||||
|
||||
this._elmts.reconcileButton.click(function() { self._onOK(); });
|
||||
this._elmts.cancelButton.click(function() { self._dismiss(); });
|
||||
@ -227,46 +225,4 @@ ReconDialog.prototype._onAddStandardService = function() {
|
||||
elmts.input.focus().select();
|
||||
};
|
||||
|
||||
ReconDialog.prototype._onAddNamespacedService = function() {
|
||||
var self = this;
|
||||
var dialog = $(DOM.loadHTML("core", "scripts/reconciliation/add-namespaced-service-dialog.html"));
|
||||
var elmts = DOM.bind(dialog);
|
||||
|
||||
elmts.dialogHeader.html($.i18n._('core-recon')["add-recon-srv"]);
|
||||
elmts.or_recon_namespace.html($.i18n._('core-recon')["namespace"]+":");
|
||||
elmts.or_recon_entType.html($.i18n._('core-recon')["ent-type"]+":");
|
||||
elmts.addButton.html($.i18n._('core-buttons')["add-service"]);
|
||||
elmts.cancelButton.html($.i18n._('core-buttons')["cancel"]);
|
||||
|
||||
var level = DialogSystem.showDialog(dialog);
|
||||
var dismiss = function() {
|
||||
DialogSystem.dismissUntil(level - 1);
|
||||
};
|
||||
|
||||
elmts.namespaceInput
|
||||
.suggest({ filter : '(all type:/type/namespace)' })
|
||||
.bind("fb-select", function(e, data) {
|
||||
elmts.typeInput.focus();
|
||||
});
|
||||
|
||||
elmts.typeInput.suggestT({ filter : '(all type:/type/type)' });
|
||||
|
||||
elmts.cancelButton.click(dismiss);
|
||||
elmts.addButton.click(function() {
|
||||
var namespaceData = elmts.namespaceInput.data("data.suggest");
|
||||
var typeData = elmts.typeInput.data("data.suggest");
|
||||
if (namespaceData) {
|
||||
var url = "http://reconcile.freebaseapps.com/namespace_reconcile?namespace="
|
||||
+ encodeURIComponent(namespaceData.id);
|
||||
if (typeData) {
|
||||
url += "&type=" + typeData.id;
|
||||
}
|
||||
|
||||
ReconciliationManager.registerStandardService(url, function(index) {
|
||||
self._refresh(index);
|
||||
});
|
||||
}
|
||||
dismiss();
|
||||
});
|
||||
elmts.namespaceInput.focus().data("suggest").textchange();
|
||||
};
|
@ -37,18 +37,6 @@ var ReconciliationManager = {
|
||||
_urlMap : {}
|
||||
};
|
||||
|
||||
ReconciliationManager.isFreebaseId = function(s) {
|
||||
return s == "http://rdf.freebase.com/ns/type.object.id";
|
||||
};
|
||||
|
||||
ReconciliationManager.isFreebaseMid = function(s) {
|
||||
return s == "http://rdf.freebase.com/ns/type.object.mid";
|
||||
};
|
||||
|
||||
ReconciliationManager.isFreebaseIdOrMid = function(s) {
|
||||
return ReconciliationManager.isFreebaseMid(s) || ReconciliationManager.isFreebaseId(s);
|
||||
};
|
||||
|
||||
ReconciliationManager._rebuildMap = function() {
|
||||
var map = {};
|
||||
$.each(ReconciliationManager.getAllServices(), function(i, service) {
|
||||
@ -140,10 +128,7 @@ ReconciliationManager.save = function(f) {
|
||||
};
|
||||
|
||||
(function() {
|
||||
ReconciliationManager.customServices.push({
|
||||
"name" : $.i18n._('core-recon')["fb-recon"],
|
||||
"ui" : { "handler" : "ReconFreebaseQueryPanel" }
|
||||
});
|
||||
var lang = $.i18n._('core-recon')["wd-recon-lang"];
|
||||
|
||||
$.ajax({
|
||||
async: false,
|
||||
@ -151,15 +136,13 @@ ReconciliationManager.save = function(f) {
|
||||
name: "reconciliation.standardServices"
|
||||
}),
|
||||
success: function(data) {
|
||||
if (data.value && data.value != "null") {
|
||||
if (data.value && data.value != "null" && data.value != "[]") {
|
||||
ReconciliationManager.standardServices = JSON.parse(data.value);
|
||||
ReconciliationManager._rebuildMap();
|
||||
} else {
|
||||
// FIXME: Standard recon service needs to be replaced
|
||||
// ReconciliationManager.registerStandardService(
|
||||
// "http://reconcile.freebaseapps.com/reconcile"
|
||||
// "http://standard-reconcile.freebaseapps.com/reconcile"
|
||||
// );
|
||||
ReconciliationManager.registerStandardService(
|
||||
"https://tools.wmflabs.org/openrefine-wikidata/"+lang+"/api"
|
||||
);
|
||||
}
|
||||
},
|
||||
dataType: "json"
|
||||
|
@ -222,8 +222,6 @@ ReconStandardServicePanel.prototype._wireEvents = function() {
|
||||
suggestOptions.key = null;
|
||||
suggestOptions.query_param_name = "prefix";
|
||||
input.suggestT(suggestOptions);
|
||||
} else if (this._isInFreebaseSchemaSpace()) {
|
||||
input.suggestT({ filter : '(all type:/type/type)' });
|
||||
}
|
||||
|
||||
input.bind("fb-select", function(e, data) {
|
||||
@ -251,22 +249,9 @@ ReconStandardServicePanel.prototype._rewirePropertySuggests = function(type) {
|
||||
suggestOptions.ac_param = { schema: typeof type == "string" ? type : type.id };
|
||||
}
|
||||
inputs.suggestP(suggestOptions);
|
||||
} else if (this._isInFreebaseSchemaSpace()) {
|
||||
var namespace = (type) ? (typeof type == "string" ? type : type.id) : "/common/topic"
|
||||
inputs.suggestP({
|
||||
filter : '(should (any namespace:/type/object namespace:' + namespace + '))'
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
ReconStandardServicePanel.prototype._isInFreebaseIdentifierSpace = function() {
|
||||
return ReconciliationManager.isFreebaseIdOrMid(this._service.identifierSpace);
|
||||
};
|
||||
|
||||
ReconStandardServicePanel.prototype._isInFreebaseSchemaSpace = function() {
|
||||
return ReconciliationManager.isFreebaseId(this._service.schemaSpace);
|
||||
};
|
||||
|
||||
ReconStandardServicePanel.prototype.start = function() {
|
||||
var self = this;
|
||||
|
||||
|
@ -33,16 +33,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
var CustomSuggest = {};
|
||||
|
||||
// Default API key for Refine to use for freebase suggest widget
|
||||
//CustomSuggest.setFreebaseAPIKey("AIzaSyBBTAtJ31v_jlg_ImbQuBNnAaAyrHzRyW8"); // Google key
|
||||
CustomSuggest.FREEBASE_API_KEY = "AIzaSyBAZ_EjMPKlOzyyZXv6JKXPPwJFISVji3M"; // OpenRefine default key
|
||||
|
||||
CustomSuggest.setFreebaseAPIKey = function(freebaseAPIKey) {
|
||||
$.suggest.suggest.defaults.key = freebaseAPIKey;
|
||||
$.suggest.suggestT.defaults.key = freebaseAPIKey;
|
||||
$.suggest.suggestP.defaults.key = freebaseAPIKey;
|
||||
};
|
||||
|
||||
(function() {
|
||||
|
||||
/*
|
||||
@ -168,18 +158,4 @@ CustomSuggest.setFreebaseAPIKey = function(freebaseAPIKey) {
|
||||
}
|
||||
);
|
||||
|
||||
// Use Freebase API Key
|
||||
$.ajax("command/core/get-preference",
|
||||
{
|
||||
async: false,
|
||||
data: {name: "freebase.api.key"},
|
||||
success: function(data) {
|
||||
if (data.value && data.value != "null") {
|
||||
CustomSuggest.setFreebaseAPIKey(data.value);
|
||||
} else {
|
||||
CustomSuggest.setFreebaseAPIKey(CustomSuggest.FREEBASE_API_KEY);
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
})();
|
||||
})();
|
||||
|
@ -106,8 +106,6 @@ DataTableCellUI.prototype._render = function() {
|
||||
|
||||
if (service && (service.view) && (service.view.url)) {
|
||||
a.attr("href", encodeURI(service.view.url.replace("{{id}}", match.id)));
|
||||
} else if (ReconciliationManager.isFreebaseIdOrMid(r.identifierSpace)) {
|
||||
a.attr("href", "http://www.freebase.com/view" + match.id);
|
||||
}
|
||||
|
||||
$('<span> </span>').appendTo(divContent);
|
||||
@ -150,17 +148,13 @@ DataTableCellUI.prototype._render = function() {
|
||||
|
||||
if ((service) && (service.view) && (service.view.url)) {
|
||||
a.attr("href", encodeURI(service.view.url.replace("{{id}}", candidate.id)));
|
||||
} else if (ReconciliationManager.isFreebaseIdOrMid(r.identifierSpace)) {
|
||||
a.attr("href", "http://www.freebase.com/view" + candidate.id);
|
||||
}
|
||||
|
||||
var preview = null;
|
||||
if ((service) && (service.preview)
|
||||
&& service.preview.url.indexOf("http://www.freebase.com/widget/topic") < 0) {
|
||||
if ((service) && (service.preview)) {
|
||||
preview = service.preview;
|
||||
} else if (ReconciliationManager.isFreebaseIdOrMid(r.identifierSpace)) {
|
||||
preview = DataTableCellUI.internalPreview;
|
||||
}
|
||||
|
||||
if (preview) {
|
||||
a.click(function(evt) {
|
||||
if (!evt.metaKey && !evt.ctrlKey) {
|
||||
@ -207,8 +201,6 @@ DataTableCellUI.prototype._render = function() {
|
||||
if ((service) && (service.suggest) && (service.suggest.entity)) {
|
||||
suggestOptions = service.suggest.entity;
|
||||
addSuggest = true;
|
||||
} else if (ReconciliationManager.isFreebaseIdOrMid(r.identifierSpace)) {
|
||||
addSuggest = true;
|
||||
}
|
||||
|
||||
var extraChoices = $('<div>').addClass("data-table-recon-extra").appendTo(divContent);
|
||||
@ -436,6 +428,7 @@ DataTableCellUI.prototype._postProcessSeveralCells = function(command, params, b
|
||||
);
|
||||
};
|
||||
|
||||
// TODO delete this
|
||||
DataTableCellUI.internalPreview = {
|
||||
srchurl: 'https://www.googleapis.com/freebase/v1/search?filter=(all mid:${id})'
|
||||
+ '&output=(notable:/client/summary (description citation provenance) type)'
|
||||
|
Loading…
Reference in New Issue
Block a user