diff --git a/shared/rdf_config/wjazzd.toml b/shared/rdf_config/wjazzd.toml new file mode 100644 index 00000000..26f89e3a --- /dev/null +++ b/shared/rdf_config/wjazzd.toml @@ -0,0 +1,73 @@ +[general] +name = "wjazzd" +csv_folder = "../../wjazzd/data/reconciled" +rdf_output_folder = "../../wjazzd/data/rdf" +test_mode = false + +[namespaces] +rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#" +rdfs = "http://www.w3.org/2000/01/rdf-schema#" +xsd = "http://www.w3.org/2001/XMLSchema#" +wd = "http://www.wikidata.org/entity/" +wdt = "http://www.wikidata.org/prop/direct/" +mb = "https://musicbrainz.org/recording/" +jr = "http://mir.audiolabs.uni-erlangen.de/jazztube/wjazzd/records/" +jc = "http://mir.audiolabs.uni-erlangen.de/jazztube/wjazzd/compositions/" +js = "http://mir.audiolabs.uni-erlangen.de/jazztube/wjazzd/solos/solo/" +jt = "http://mir.audiolabs.uni-erlangen.de/jazztube/wjazzd/tracks/" +jtr = "http://mir.audiolabs.uni-erlangen.de/jazztube/wjazzd/transcriptions/" +lmwj = "https://linkedmusic.ca/graphs/wjazzd/" + +[composition_info] +PRIMARY_KEY = "compid" +compid = {type = "lmwj:Composition", prefix = "jc"} +title = "rdfs:label" +composer = "P86" # composer (P86) +form = "" +template = "P144" # based on (P144) +tonalitytype = "" +genre = "P136" # genre (P136) + +[record_info] +PRIMARY_KEY = "recordid" +recordid = {type = "lmwj:Record", prefix = "jr"} +artist = "P175" # performer (P175) +recordtitle = "rdfs:label" +label = "P264" # record label (P264) +recordbib = "" +mbzid = "" + +[record_info.releasedate] +pred = "P577" # publication date (P577) +datatype = "xsd:gYear" + +[solo_info] +PRIMARY_KEY = "melid" +melid = {type = "lmwj:Solo",prefix = "js"} +trackid = {pred = "P361", prefix = "jt"} # part of (P361) +compid = {pred = "P2550", prefix = "jc"} # recording or performance of (P2550) +recordid = {prefix = "jr"} +performer = "P175" # performer (P175) +title = "rdfs:label" +titleaddon = "" +solopart = "" +instrument = "P870" # instrumentation (P870) +style = "P176" # manufacturer (P176) +avgtempo = "P1725" # beats per minute (P1725) +tempoclass = "" +rhythmfeel = "" +key = "P826" # tonality (P826) +signature = "P3440" # time signature (P3440) +chorus_count = "" + +[track_info] +PRIMARY_KEY = "trackid" +trackid = {type = "lmwj:Track", prefix = "jt"} +filename_track = "rdfs:label" +recordid = {pred = "P361", prefix = "jr"} # part of (P361) +lineup = "P175" # performer (P175) +instrument = "P870" # instrumentation (P870) +mbzid = "P4404" # MusicBrainz recording ID (P4404) +trackno = "" +recordingdate = {pred = "P10135", datatype = "xsd:date"} # recording date (P10135) +compid = {pred = "P2550", prefix = "jc"} # recording or performance of (P2550) \ No newline at end of file diff --git a/shared/rdf_conversion/using_rdfconv_script.md b/shared/rdf_conversion/using_rdfconv_script.md index 2a046c00..abde074e 100644 --- a/shared/rdf_conversion/using_rdfconv_script.md +++ b/shared/rdf_conversion/using_rdfconv_script.md @@ -60,13 +60,13 @@ The steps below must be completed before running the general RDF conversion scri - Run the following command to create a configuration file ```bash -python -m rdfconv.tomlgen --output +python -m rdfconv.tomlgen --input --output ``` In the case of The Session, the command looks like: ```bash -python -m rdfconv.tomlgen ../thesession/data/reconciled --output rdf_config/thesession.toml +python -m rdfconv.tomlgen --input ../thesession/data/reconciled --output rdf_config/thesession.toml ``` - A new TOML configuration will be created at your select output path. diff --git a/wjazzd/.gitignore b/wjazzd/.gitignore new file mode 100644 index 00000000..6320cd24 --- /dev/null +++ b/wjazzd/.gitignore @@ -0,0 +1 @@ +data \ No newline at end of file diff --git a/wjazzd/README.md b/wjazzd/README.md new file mode 100644 index 00000000..7ede0fa5 --- /dev/null +++ b/wjazzd/README.md @@ -0,0 +1,48 @@ +# About Weimar Jazz Database +The Weimar Jazz Database was created as part of the Jazzomat project. Much of the information can be found on the [official website](https://jazzomat.hfm-weimar.de/dbformat/dboverview.html). + +For an even more in depth dive into the project, you can read chapters in the [following book](https://d1wqtxts1xzle7.cloudfront.net/55243585/inside_the_jazzomat_final_rev_oa4-libre.pdf?1512809734=&response-content-disposition=inline%3B+filename%3DInside_the_Jazzomat_New_Perspectives_for.pdf&Expires=1767825454&Signature=GuXygFuslUrc9TcEqJTsp-NZWtGMvTtDvm8-4uvCqWHFW5Fd2OXsNfHIwj6Y1PN4wGxoWO2ielG8fTfp2ZX9viXent09q7LTbipArwkMq0J~U6nfwg8DNakUtaG5i902N5Mc3Pq5jpjOFjFCt5yKVvOZxj0QV2Nap1c84YcV3aj1kZ7WPJY4iKRcGZwasLaWUqn0WJIEj3fne0DfZ5G~ygytq3ySiyJhH726cwSO4yRuocTuq80BXfMH1xoc6ZqzOcamy2~xwr3EOQw0oWt0ytvq7yr6J2hNBNhYRGmLT7ggOcPVZIrE0D5B3CStzZgA~dMWcBrWGva22c4Dz4WNaA__&Key-Pair-Id=APKAJLOHF5GGSLRBV4ZA), starting on page 19. + +The official abbreviation of `Weimar Jazz Database` is `WjazzD` (occasionally referred to as `WJD` as well), we will be using the lowercase string `wjazzd` to as a naming convention. + +[Jazztube](http://mir.audiolabs.uni-erlangen.de/jazztube/) is a related project by the team behind the Weimar Jazz Database, aiming to help visualize `WjazzD`. Since [Jazztube](http://mir.audiolabs.uni-erlangen.de/jazztube/) webpages are more informative, our URI will point to `http://mir.audiolabs.uni-erlangen.de/jazztube/` instead of `https://jazzomat.hfm-weimar.de/`. + +# How to Obtain The Database +The database can be downloaded at the [official download page](https://jazzomat.hfm-weimar.de/download/download.html) in the form of a SQLite3 database. + +# Ingestion Workflow +- Change Directory to Repository Root +- Obtain a copy of the Weimar Jazz Database SQLite file and store it at the path `/wjazzd/data/sql/wjazzd.db` +- Install `sqlite3` if not done already +```bash +sudo apt install sqlite3 # Or 'brew install sqlite' on macOS +``` +- Export all tables of SQLite file to CSV +```bash +mkdir -p ./wjazzd/data/raw && \ +for t in $(sqlite3 ./wjazzd/data/sql/wjazzd.db ".tables"); do + echo "Exporting $t" + sqlite3 -header -csv ./wjazzd/data/sql/wjazzd.db "SELECT * FROM $t;" \ + > ./wjazzd/data/raw/$t.csv +done +``` +- Copy relevant CSV to a separate `data/processed` folder (some CSVs, like `melody.csv`, are not worth being converted to Linked Data form) +```bash +mkdir -p wjazzd/data/processed && cp wjazzd/data/raw/{composition_info.csv,record_info.csv,solo_info.csv,track_info.csv,transcription_info.csv} wjazzd/data/processed/ +``` +- Reconcile processed CSV using OpenRefine: refer to [reconciliation guideline](./doc/reconciliation_procedures.md) +- After reconciliation, review `shared/rdf_config/wjazzd.toml` to make sure that it matches your reconciled CSV. For more information on how the General RDF Conversion script works, please consult [its documentation](../shared/rdf_conversion/using_rdfconv_script.md) +- After having reviewed the TOML file, run the general rdf conversion script using the following command from the `/shared` directory: +```bash +python -m rdfconv.convert rdf_config/wjazzd.toml +``` + +# Content of the Database +The [official database homepage](https://jazzomat.hfm-weimar.de/dbformat/dboverview.html) provides a comprehensive overview of each table and field in the database. Below will be provided a quick overview of the entities that are ingested into the LinkedMusic Datalake + +## Ingested Entity Types +- solo: a section in a recorded song where a musician is soloing. A solo is part of a song +- track: a song. A track is part of a record (i.e. album) and contains one or more solos +- record: an album. A record contains tracks. +- composition: the jazz composition underlying a solo or a track. Both a solo and the track containing it are linked to the composition. + diff --git a/wjazzd/doc/reconciliation_procedures.md b/wjazzd/doc/reconciliation_procedures.md new file mode 100644 index 00000000..0682e8d5 --- /dev/null +++ b/wjazzd/doc/reconciliation_procedures.md @@ -0,0 +1,207 @@ +# Weimar Jazz Database OpenRefine Reconciliation Procedures + +This guide covers the steps to take to clean and reconcile the Weimar Jazz Database in OpenRefine. More specifically, the following CSV files will be reconciled before being converted to RDF: + +- `solo_info.csv` +- `composition_info.csv` +- `record_info.csv` +- `track_info.csv` + +The JSON files located in `wjazzd/openrefine` can be used to automatically apply the procedures detailed below. + +## solo_info.csv + +- The performer column must be reconciled to the type `human (Q5)`. Some musicians need to be manually selected amongst matching people with similar names +- The `instrument` column must be expanded using the dictionary below, before being reconciled: + +```json +{ + "as": "Alto Saxophone", + "bcl": "Bass Clarinet", + "bs": "Bass Saxophone", + "cl": "Clarinet", + "cor": "Cornet", + "g": "Guitar", + "p": "Piano", + "ss": "Soprano Saxophone", + "tb": "Trombone", + "tp": "Trumpet", + "ts": "Tenor Saxophone", + "ts-c": "C Melody Saxophone", + "vib": "Vibraphone" +} +``` + +- The `style` column should be prepended `" jazz"` and then reconciled +- The `key` column should be processed using the following Jython expression, then reconciled; strings like "C-dor" will be left unreconciled + +```python +if value.endswith("maj"): + return value[:-3] + " major" +elif value.endswith("min"): + return value[:-3] + " minor" +else: + return value +``` + +- The `signature` column should be reconciled with time signatures + +## composition_info.csv + +- The ids in `compid` are unfortunately slightly misaligned with the ones in Jazztube, which the URI should reference. Run the following Python command to align the ids: +```python +num = int(value) +if num >= 156: + num += 1 + +# Step 2 +if num >= 276: + num += 1 + +# Step 3 +if num >= 281: + num += 1 + +return str(num) +``` +- The column `genre` has two possible values: `"Original"` and `Great American Songbook`. The former should be deleted (it will not be stored); the latter should be reconciled to `Great American Songbook (Q1151397)`. +- In the column `template`, the value `blues` should be expanded to `twelve-bar blues`, the column should then be reconciled +- For the column `composer`, do the following steps: + 1. Split multi-valued cell at `,` (e.g. `"Parker, Gillespie` should be split in two) + 2. Spilt multi-valued cell at `/` (e.g. `Carmichael/Parish` should be split in two) + 3. Trim leading and trailing whitespace + 4. Create a separate `jazz musician` column, filled entirely with the value `"jazz musician"`. Reconcile the `composer` column using `jazz musician` as the `occupation (P106)`: this should improve the accuracy of reconciliation. Delete the `jazz musician` column after reconciliation. + 5. After the first reconciliation, you will do a second reconciliation for `composer` that have been unmatched. This time, you should create a column filled with the value `"composer"` + 6. Repeat the same process for the profession `"songwriter"` + +## record_info.csv + +- The column `artist` must have its multi-valued cells split at `/`, and then reconciled +- The column `label` must have its multi-valued cells split at `/`, and then reconciled. This reconciliation requires slightly more manual verification. + +## track_info.csv + +- For the column `lineup` (and `instrument` column, which we will create from it), do the following steps: + + 1. Split multi-valued cell in the column `lineup` at `;` (e.g. `"Art Pepper (as, cl); Charles Haden (b)` should be split in two) + 2. Create a new column `instrument` based on the `lineup` column. Use the following GREL regex: `value.match(/.*\(([^)]+)\).*/)[0]` + 3. Split multi-valued cell in the column `instrument` at `,` (e.g. `"as, cl"` should be split in two) + 4. Delete the parenthesis containing the instrument from the `lineup` column (e.g. `"Charles Haden (b)` becomes `Charles Haden`). Use the following GREL regex: `value.replace(/\s*\(.*\)\s*/, "")` + 5. Trim whitespace for both columns + 6. Expand the column `instrument` using the following dictionary + + ```python + jazz_instruments = { + "arr": "", + "as": "Alto Saxophone", + "b": "Bass", + "B": "Bass", + "bc": "Bass Clarinet", + "bcl": "Bass Clarinet", + "bgo": "Baritone Guitar", + "bjo": "Banjo", + "bs": "Baritone Saxophone", + "cga": "Congas", + "cl": "Clarinet", + "cn": "Conga", + "cor": "Cornet", + "dr": "Drums", + "eb": "Electric Bass", + "electric p": "Electric Piano", + "fl": "Flute", + "flgn": "Flugelhorn", + "g": "Guitar", + "git": "Guitar", + "hca": "Harmonica", + "key": "Keyboard", + "p": "Piano", + "p-tp": "Piccolo Trumpet", + "perc": "Percussion", + "rhodes": "Rhodes Piano (Electric Piano)", + "ss": "Soprano Saxophone", + "synth": "Synthesizer", + "tb": "Trombone", + "tp": "Trumpet", + "trp": "Trumpet", + "ts": "Tenor Saxophone", + "ts-c": "Tenor Saxophone C-melody", + "Vc": "Cello", + "vcl": "Vocals", + "vib": "Vibraphone", + "voc": "Vocals" + } + ``` + + 7. Reconcile both the `instrument` and `lineup` column + +- The `recordingdate` column has many entity that needs to be cleaned up: + + 1. Apply the following Jython command to clean up most of the badly formatted cells: + + ```python + import re + + def extract_date(value): + g = re.search(r"(\d{1,2})\s*\.\s*(\d{1,2})\s*\.\s*(\d{4})$", value) + + if g: + day = g.group(1).zfill(2) + month = g.group(2).zfill(2) + year = g.group(3) + return year + "-" + month + "-" + day + else: + return value + + return extract_date(value) + ``` + + 2. Apply the following Jython command to clean up a few remaining cells in the format of `January, 1999` + + ```python + import re + + def extract_date(value): + month_dict = { + "january": "01", + "february": "02", + "march": "03", + "april": "04", + "may": "05", + "june": "06", + "july": "07", + "august": "08", + "september": "09", + "october": "10", + "november": "11", + "december": "12" + } + + g = re.search(r"([A-Za-z]+)\s*(\d{4})$", value) + + if g: + day = "01" + month = month_dict[g.group(1).lower()] + year = g.group(2) + return year + "-" + month + "-" + day + else: + return value + + return extract_date(value) + ``` + + 3. Apply the following command to expand years (e.g. `1999`) to a date (e.g. `1999-01-01`) + + ```python + import re + + def extract_date(value): + g = re.match(r"\d{4}", value) + + if g: + return g.group(1)+"-01-01" + else: + return value + + return extract_date(value) + ``` + diff --git a/wjazzd/openrefine/history/composition_info_history.json b/wjazzd/openrefine/history/composition_info_history.json new file mode 100644 index 00000000..16066e9c --- /dev/null +++ b/wjazzd/openrefine/history/composition_info_history.json @@ -0,0 +1,1758 @@ +[ + { + "op": "core/recon", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "genre", + "expression": "value", + "columnName": "genre", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "GREAT AMERICAN SONGBOOK", + "l": "GREAT AMERICAN SONGBOOK" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "genre", + "config": { + "mode": "standard-service", + "service": "https://wikidata.reconci.link/en/api", + "identifierSpace": "http://www.wikidata.org/entity/", + "schemaSpace": "http://www.wikidata.org/prop/direct/", + "autoMatch": true, + "batchSize": 10, + "columnDetails": [], + "limit": 0 + }, + "description": "Reconcile cells in column genre to type null" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "genre", + "expression": "value", + "columnName": "genre", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "GREAT AMERICAN SONGBOOK", + "l": "GREAT AMERICAN SONGBOOK" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "genre", + "similarValue": "GREAT AMERICAN SONGBOOK", + "judgment": "matched", + "match": { + "id": "Q1151397", + "name": "Great American Songbook", + "types": [ + "Q34684312", + "Q60733114" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Great American Songbook (Q1151397) for cells containing \"GREAT AMERICAN SONGBOOK\" in column genre" + }, + { + "op": "core/text-transform", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "template", + "expression": "value", + "columnName": "template", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "Blues", + "l": "Blues" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "template", + "expression": "grel:\"twelve bar blues\"", + "onError": "keep-original", + "repeat": false, + "repeatCount": 10, + "description": "Text transform on cells in column template using expression grel:\"twelve bar blues\"" + }, + { + "op": "core/multivalued-cell-split", + "columnName": "composer", + "keyColumnName": "compid", + "mode": "separator", + "separator": ",", + "regex": false, + "description": "Split multi-valued cells in column composer" + }, + { + "op": "core/multivalued-cell-split", + "columnName": "composer", + "keyColumnName": "compid", + "mode": "separator", + "separator": "/", + "regex": false, + "description": "Split multi-valued cells in column composer" + }, + { + "op": "core/text-transform", + "engineConfig": { + "facets": [], + "mode": "record-based" + }, + "columnName": "composer", + "expression": "value.trim()", + "onError": "keep-original", + "repeat": false, + "repeatCount": 10, + "description": "Text transform on cells in column composer using expression value.trim()" + }, + { + "op": "core/column-addition", + "engineConfig": { + "facets": [], + "mode": "record-based" + }, + "baseColumnName": "composer", + "expression": "grel:\"jazz musician\"", + "onError": "set-to-blank", + "newColumnName": "jazz musician", + "columnInsertIndex": 3, + "description": "Create column jazz musician at index 3 based on column composer using expression grel:\"jazz musician\"" + }, + { + "op": "core/recon", + "engineConfig": { + "facets": [], + "mode": "record-based" + }, + "columnName": "composer", + "config": { + "mode": "standard-service", + "service": "https://wikidata.reconci.link/en/api", + "identifierSpace": "http://www.wikidata.org/entity/", + "schemaSpace": "http://www.wikidata.org/prop/direct/", + "type": { + "id": "Q5", + "name": "human" + }, + "autoMatch": true, + "batchSize": 10, + "columnDetails": [ + { + "column": "jazz musician", + "propertyName": "occupation", + "propertyID": "P106" + } + ], + "limit": 0 + }, + "description": "Reconcile cells in column composer to type Q5" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [], + "mode": "record-based" + }, + "columnName": "composer", + "similarValue": "Gillespie", + "judgment": "matched", + "match": { + "id": "Q49575", + "name": "Dizzy Gillespie", + "types": [ + "Q5" + ], + "score": 82.14285714285715 + }, + "shareNewTopics": false, + "description": "Match item Dizzy Gillespie (Q49575) for cells containing \"Gillespie\" in column composer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "composer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "composer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + }, + { + "type": "range", + "name": "composer: best candidate's score", + "expression": "cell.recon.best.score", + "columnName": "composer", + "from": 50, + "to": 101, + "selectNumeric": true, + "selectNonNumeric": true, + "selectBlank": true, + "selectError": true + } + ], + "mode": "record-based" + }, + "columnName": "composer", + "similarValue": "Parker", + "judgment": "matched", + "match": { + "id": "Q103767", + "name": "Charlie Parker", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Charlie Parker (Q103767) for cells containing \"Parker\" in column composer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "composer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "composer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + }, + { + "type": "range", + "name": "composer: best candidate's score", + "expression": "cell.recon.best.score", + "columnName": "composer", + "from": 50, + "to": 101, + "selectNumeric": true, + "selectNonNumeric": true, + "selectBlank": true, + "selectError": true + } + ], + "mode": "record-based" + }, + "columnName": "composer", + "similarValue": "Parish", + "judgment": "matched", + "match": { + "id": "Q1379565", + "name": "Mitchell Parish", + "types": [ + "" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Mitchell Parish (Q1379565) for cells containing \"Parish\" in column composer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "composer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "composer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + }, + { + "type": "range", + "name": "composer: best candidate's score", + "expression": "cell.recon.best.score", + "columnName": "composer", + "from": 50, + "to": 101, + "selectNumeric": true, + "selectNonNumeric": true, + "selectBlank": true, + "selectError": true + } + ], + "mode": "record-based" + }, + "columnName": "composer", + "similarValue": "Ellington", + "judgment": "matched", + "match": { + "id": "Q4030", + "name": "ديوك إلينغتون", + "types": [ + "Q5" + ], + "score": 87.14285714285715 + }, + "shareNewTopics": false, + "description": "Match item ديوك إلينغتون (Q4030) for cells containing \"Ellington\" in column composer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "composer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "composer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + }, + { + "type": "range", + "name": "composer: best candidate's score", + "expression": "cell.recon.best.score", + "columnName": "composer", + "from": 50, + "to": 101, + "selectNumeric": true, + "selectNonNumeric": true, + "selectBlank": true, + "selectError": true + } + ], + "mode": "record-based" + }, + "columnName": "composer", + "similarValue": "Oscar Peterson", + "judgment": "matched", + "match": { + "id": "Q105349", + "name": "Oscar Peterson", + "types": [ + "Q5" + ], + "score": 89.71428571428572 + }, + "shareNewTopics": false, + "description": "Match item Oscar Peterson (Q105349) for cells containing \"Oscar Peterson\" in column composer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "composer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "composer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + }, + { + "type": "range", + "name": "composer: best candidate's score", + "expression": "cell.recon.best.score", + "columnName": "composer", + "from": 50, + "to": 101, + "selectNumeric": true, + "selectNonNumeric": true, + "selectBlank": true, + "selectError": true + } + ], + "mode": "record-based" + }, + "columnName": "composer", + "similarValue": "Kern", + "judgment": "matched", + "match": { + "id": "Q313270", + "name": "Jerome Kern", + "types": [ + "Q5" + ], + "score": 87.71428571428572 + }, + "shareNewTopics": false, + "description": "Match item Jerome Kern (Q313270) for cells containing \"Kern\" in column composer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "composer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "composer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + }, + { + "type": "range", + "name": "composer: best candidate's score", + "expression": "cell.recon.best.score", + "columnName": "composer", + "from": 50, + "to": 101, + "selectNumeric": true, + "selectNonNumeric": true, + "selectBlank": true, + "selectError": true + } + ], + "mode": "record-based" + }, + "columnName": "composer", + "similarValue": "Gershwin", + "judgment": "matched", + "match": { + "id": "Q123829", + "name": "George Gershwin", + "types": [ + "Q5" + ], + "score": 89.71428571428572 + }, + "shareNewTopics": false, + "description": "Match item George Gershwin (Q123829) for cells containing \"Gershwin\" in column composer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "composer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "composer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + }, + { + "type": "range", + "name": "composer: best candidate's score", + "expression": "cell.recon.best.score", + "columnName": "composer", + "from": 50, + "to": 101, + "selectNumeric": true, + "selectNonNumeric": true, + "selectBlank": true, + "selectError": true + } + ], + "mode": "record-based" + }, + "columnName": "composer", + "similarValue": "Mitchel Parish", + "judgment": "matched", + "match": { + "id": "Q1379565", + "name": "Mitchell Parish", + "types": [ + "" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Mitchell Parish (Q1379565) for cells containing \"Mitchel Parish\" in column composer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "composer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "composer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + }, + { + "type": "range", + "name": "composer: best candidate's score", + "expression": "cell.recon.best.score", + "columnName": "composer", + "from": 50, + "to": 101, + "selectNumeric": true, + "selectNonNumeric": true, + "selectBlank": true, + "selectError": true + } + ], + "mode": "record-based" + }, + "columnName": "composer", + "similarValue": "Erdman", + "judgment": "matched", + "match": { + "id": "Q59524608", + "name": "Ernie Erdman", + "types": [ + "Q5" + ], + "score": 76.42857142857143 + }, + "shareNewTopics": false, + "description": "Match item Ernie Erdman (Q59524608) for cells containing \"Erdman\" in column composer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "composer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "composer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + }, + { + "type": "range", + "name": "composer: best candidate's score", + "expression": "cell.recon.best.score", + "columnName": "composer", + "from": 50, + "to": 101, + "selectNumeric": true, + "selectNonNumeric": true, + "selectBlank": true, + "selectError": true + } + ], + "mode": "record-based" + }, + "columnName": "composer", + "similarValue": "Klenner", + "judgment": "matched", + "match": { + "id": "Q15093760", + "name": "John Klenner", + "types": [ + "Q5" + ], + "score": 69.14285714285714 + }, + "shareNewTopics": false, + "description": "Match item John Klenner (Q15093760) for cells containing \"Klenner\" in column composer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "composer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "composer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + }, + { + "type": "range", + "name": "composer: best candidate's score", + "expression": "cell.recon.best.score", + "columnName": "composer", + "from": 93, + "to": 96, + "selectNumeric": true, + "selectNonNumeric": true, + "selectBlank": true, + "selectError": true + } + ], + "mode": "record-based" + }, + "columnName": "composer", + "similarValue": "Cliff Burwell", + "judgment": "matched", + "match": { + "id": "Q5132560", + "name": "Cliff Burwell", + "types": [ + "Q5" + ], + "score": 87.71428571428572 + }, + "shareNewTopics": false, + "description": "Match item Cliff Burwell (Q5132560) for cells containing \"Cliff Burwell\" in column composer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "composer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "composer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + }, + { + "type": "range", + "name": "composer: best candidate's score", + "expression": "cell.recon.best.score", + "columnName": "composer", + "from": 93, + "to": 96, + "selectNumeric": true, + "selectNonNumeric": true, + "selectBlank": true, + "selectError": true + } + ], + "mode": "record-based" + }, + "columnName": "composer", + "similarValue": "Kahn", + "judgment": "matched", + "match": { + "id": "Q520751", + "name": "Gus Kahn", + "types": [ + "Q5" + ], + "score": 87.71428571428572 + }, + "shareNewTopics": false, + "description": "Match item Gus Kahn (Q520751) for cells containing \"Kahn\" in column composer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "composer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "composer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + }, + { + "type": "range", + "name": "composer: best candidate's score", + "expression": "cell.recon.best.score", + "columnName": "composer", + "from": 93, + "to": 96, + "selectNumeric": true, + "selectNonNumeric": true, + "selectBlank": true, + "selectError": true + } + ], + "mode": "record-based" + }, + "columnName": "composer", + "similarValue": "La Rocca", + "judgment": "matched", + "match": { + "id": "Q737521", + "name": "Nick LaRocca", + "types": [ + "Q5" + ], + "score": 82.85714285714286 + }, + "shareNewTopics": false, + "description": "Match item Nick LaRocca (Q737521) for cells containing \"La Rocca\" in column composer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "composer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "composer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + }, + { + "type": "range", + "name": "composer: best candidate's score", + "expression": "cell.recon.best.score", + "columnName": "composer", + "from": 93, + "to": 96, + "selectNumeric": true, + "selectNonNumeric": true, + "selectBlank": true, + "selectError": true + } + ], + "mode": "record-based" + }, + "columnName": "composer", + "similarValue": "Rodgers", + "judgment": "matched", + "match": { + "id": "Q269094", + "name": "Richard Rodgers", + "types": [ + "Q5" + ], + "score": 87.71428571428572 + }, + "shareNewTopics": false, + "description": "Match item Richard Rodgers (Q269094) for cells containing \"Rodgers\" in column composer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "composer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "composer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + }, + { + "type": "range", + "name": "composer: best candidate's score", + "expression": "cell.recon.best.score", + "columnName": "composer", + "from": 93, + "to": 96, + "selectNumeric": true, + "selectNonNumeric": true, + "selectBlank": true, + "selectError": true + } + ], + "mode": "record-based" + }, + "columnName": "composer", + "similarValue": "Harry Warren", + "judgment": "matched", + "match": { + "id": "Q938810", + "name": "Harry Warren", + "types": [ + "Q5" + ], + "score": 87.71428571428572 + }, + "shareNewTopics": false, + "description": "Match item Harry Warren (Q938810) for cells containing \"Harry Warren\" in column composer" + }, + { + "op": "core/text-transform", + "engineConfig": { + "facets": [], + "mode": "row-based" + }, + "columnName": "jazz musician", + "expression": "grel:\"composer\"", + "onError": "keep-original", + "repeat": false, + "repeatCount": 10, + "description": "Text transform on cells in column jazz musician using expression grel:\"composer\"" + }, + { + "op": "core/recon", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "composer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "composer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "composer", + "config": { + "mode": "standard-service", + "service": "https://wikidata.reconci.link/en/api", + "identifierSpace": "http://www.wikidata.org/entity/", + "schemaSpace": "http://www.wikidata.org/prop/direct/", + "type": { + "id": "Q5", + "name": "human" + }, + "autoMatch": true, + "batchSize": 10, + "columnDetails": [ + { + "column": "jazz musician", + "propertyName": "occupation", + "propertyID": "P106" + } + ], + "limit": 0 + }, + "description": "Reconcile cells in column composer to type Q5" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "composer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "composer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "composer", + "similarValue": "C. Porter", + "judgment": "matched", + "match": { + "id": "Q215120", + "name": "Cole Porter", + "types": [ + "Q5" + ], + "score": 90 + }, + "shareNewTopics": false, + "description": "Match item Cole Porter (Q215120) for cells containing \"C. Porter\" in column composer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "composer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "composer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "composer", + "similarValue": "B.Marsalis", + "judgment": "matched", + "match": { + "id": "Q454819", + "name": "Branford Marsalis", + "types": [ + "" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Branford Marsalis (Q454819) for cells containing \"B.Marsalis\" in column composer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "composer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "composer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "composer", + "similarValue": "Nat Adderley", + "judgment": "matched", + "match": { + "id": "Q499649", + "name": "Nat Adderley", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Nat Adderley (Q499649) for cells containing \"Nat Adderley\" in column composer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "composer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "composer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "composer", + "similarValue": "Thelonious Monk", + "judgment": "matched", + "match": { + "id": "Q109612", + "name": "Thelonious Monk", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Thelonious Monk (Q109612) for cells containing \"Thelonious Monk\" in column composer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "composer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "composer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + }, + { + "type": "range", + "name": "composer: best candidate's score", + "expression": "cell.recon.best.score", + "columnName": "composer", + "from": 97, + "to": 101, + "selectNumeric": true, + "selectNonNumeric": true, + "selectBlank": true, + "selectError": true + } + ], + "mode": "row-based" + }, + "columnName": "composer", + "similarValue": "Hart", + "judgment": "matched", + "match": { + "id": "Q725828", + "name": "Lorenz Hart", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Lorenz Hart (Q725828) for cells containing \"Hart\" in column composer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "composer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "composer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + }, + { + "type": "range", + "name": "composer: best candidate's score", + "expression": "cell.recon.best.score", + "columnName": "composer", + "from": 97, + "to": 101, + "selectNumeric": true, + "selectNonNumeric": true, + "selectBlank": true, + "selectError": true + } + ], + "mode": "row-based" + }, + "columnName": "composer", + "similarValue": "Evans", + "judgment": "matched", + "match": { + "id": "Q208205", + "name": "Bill Evans", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Bill Evans (Q208205) for cells containing \"Evans\" in column composer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "composer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "composer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + }, + { + "type": "range", + "name": "composer: best candidate's score", + "expression": "cell.recon.best.score", + "columnName": "composer", + "from": 97, + "to": 101, + "selectNumeric": true, + "selectNonNumeric": true, + "selectBlank": true, + "selectError": true + } + ], + "mode": "row-based" + }, + "columnName": "composer", + "similarValue": "Coltrane", + "judgment": "matched", + "match": { + "id": "Q7346", + "name": "John Coltrane", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item John Coltrane (Q7346) for cells containing \"Coltrane\" in column composer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "composer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "composer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + }, + { + "type": "range", + "name": "composer: best candidate's score", + "expression": "cell.recon.best.score", + "columnName": "composer", + "from": 97, + "to": 101, + "selectNumeric": true, + "selectNonNumeric": true, + "selectBlank": true, + "selectError": true + } + ], + "mode": "row-based" + }, + "columnName": "composer", + "similarValue": "Monk", + "judgment": "matched", + "match": { + "id": "Q109612", + "name": "Thelonious Monk", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Thelonious Monk (Q109612) for cells containing \"Monk\" in column composer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "composer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "composer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + }, + { + "type": "range", + "name": "composer: best candidate's score", + "expression": "cell.recon.best.score", + "columnName": "composer", + "from": 97, + "to": 101, + "selectNumeric": true, + "selectNonNumeric": true, + "selectBlank": true, + "selectError": true + } + ], + "mode": "row-based" + }, + "columnName": "composer", + "similarValue": "Miles Daivs", + "judgment": "matched", + "match": { + "id": "Q93341", + "name": "Miles Davis", + "types": [ + "" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Miles Davis (Q93341) for cells containing \"Miles Daivs\" in column composer" + }, + { + "op": "core/column-removal", + "columnName": "jazz musician", + "description": "Remove column jazz musician" + }, + { + "op": "core/recon", + "engineConfig": { + "facets": [], + "mode": "row-based" + }, + "columnName": "template", + "config": { + "mode": "standard-service", + "service": "https://wikidata.reconci.link/en/api", + "identifierSpace": "http://www.wikidata.org/entity/", + "schemaSpace": "http://www.wikidata.org/prop/direct/", + "type": { + "id": "Q105543609", + "name": "musical work/composition" + }, + "autoMatch": true, + "batchSize": 10, + "columnDetails": [], + "limit": 0 + }, + "description": "Reconcile cells in column template to type Q105543609" + }, + { + "op": "core/text-transform", + "engineConfig": { + "facets": [], + "mode": "row-based" + }, + "columnName": "genre", + "expression": "grel:if(value != \"ORIGINAL\", value, \"\")", + "onError": "keep-original", + "repeat": false, + "repeatCount": 10, + "description": "Text transform on cells in column genre using expression grel:if(value != \"ORIGINAL\", value, \"\")" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [], + "mode": "row-based" + }, + "columnName": "template", + "similarValue": "twelve bar blues", + "judgment": "matched", + "match": { + "id": "Q2089987", + "name": "twelve-bar blues", + "types": [ + "" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item twelve-bar blues (Q2089987) for cells containing \"twelve bar blues\" in column template" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "template: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "template", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "template", + "similarValue": "So What", + "judgment": "matched", + "match": { + "id": "Q919291", + "name": "So What", + "types": [ + "Q105543609" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item So What (Q919291) for cells containing \"So What\" in column template" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "template: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "template", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "template", + "similarValue": "What Is this Thing Called Love", + "judgment": "matched", + "match": { + "id": "Q860211", + "name": "What Is This Thing Called Love?", + "types": [ + "Q105543609" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item What Is This Thing Called Love? (Q860211) for cells containing \"What Is this Thing Called Love\" in column template" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "template: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "template", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "template", + "similarValue": "Confirmation", + "judgment": "matched", + "match": { + "id": "Q5160128", + "name": "Confirmation", + "types": [ + "Q105543609" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Confirmation (Q5160128) for cells containing \"Confirmation\" in column template" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "template: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "template", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "template", + "similarValue": "Tune Up", + "judgment": "matched", + "match": { + "id": "Q97480277", + "name": "Tune Up", + "types": [ + "Q105543609" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Tune Up (Q97480277) for cells containing \"Tune Up\" in column template" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "template: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "template", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "template", + "similarValue": "So what", + "judgment": "matched", + "match": { + "id": "Q919291", + "name": "So What", + "types": [ + "Q105543609" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item So What (Q919291) for cells containing \"So what\" in column template" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "template: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "template", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "template", + "similarValue": "All the things you are", + "judgment": "matched", + "match": { + "id": "Q1410072", + "name": "All the Things You Are", + "types": [ + "Q105543609" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item All the Things You Are (Q1410072) for cells containing \"All the things you are\" in column template" + }, + { + "op": "core/text-transform", + "engineConfig": { + "facets": [], + "mode": "record-based" + }, + "columnName": "compid", + "expression": "jython:if int(value) < 156:\n return value\nelse:\n return str(int(value) + 1)", + "onError": "keep-original", + "repeat": false, + "repeatCount": 10, + "description": "Text transform on cells in column compid using expression jython:if int(value) < 156:\n return value\nelse:\n return str(int(value) + 1)" + }, + { + "op": "core/text-transform", + "engineConfig": { + "facets": [], + "mode": "record-based" + }, + "columnName": "compid", + "expression": "jython:if int(value) < 276: \n return value \nelse: return str(int(value) + 1)", + "onError": "keep-original", + "repeat": false, + "repeatCount": 10, + "description": "Text transform on cells in column compid using expression jython:if int(value) < 276: \n return value \nelse: return str(int(value) + 1)" + }, + { + "op": "core/text-transform", + "engineConfig": { + "facets": [], + "mode": "record-based" + }, + "columnName": "compid", + "expression": "jython:if int(value) < 281: \n return value \nelse: return str(int(value) + 1)", + "onError": "keep-original", + "repeat": false, + "repeatCount": 10, + "description": "Text transform on cells in column compid using expression jython:if int(value) < 281: \n return value \nelse: return str(int(value) + 1)" + } +] \ No newline at end of file diff --git a/wjazzd/openrefine/history/record_info_history.json b/wjazzd/openrefine/history/record_info_history.json new file mode 100644 index 00000000..2624c5f0 --- /dev/null +++ b/wjazzd/openrefine/history/record_info_history.json @@ -0,0 +1,1913 @@ +[ + { + "op": "core/recon", + "engineConfig": { + "facets": [], + "mode": "row-based" + }, + "columnName": "artist", + "config": { + "mode": "standard-service", + "service": "https://wikidata.reconci.link/en/api", + "identifierSpace": "http://www.wikidata.org/entity/", + "schemaSpace": "http://www.wikidata.org/prop/direct/", + "type": { + "id": "Q5", + "name": "human" + }, + "autoMatch": true, + "batchSize": 10, + "columnDetails": [], + "limit": 0 + }, + "description": "Reconcile cells in column artist to type Q5" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [], + "mode": "row-based" + }, + "columnName": "artist", + "similarValue": "Benny Carter", + "judgment": "matched", + "match": { + "id": "Q356715", + "name": "Benny Carter", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Benny Carter (Q356715) for cells containing \"Benny Carter\" in column artist" + }, + { + "op": "core/multivalued-cell-split", + "columnName": "artist", + "keyColumnName": "recordid", + "mode": "separator", + "separator": "/", + "regex": false, + "description": "Split multi-valued cells in column artist" + }, + { + "op": "core/recon", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "artist: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "artist", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "artist", + "config": { + "mode": "standard-service", + "service": "https://wikidata.reconci.link/en/api", + "identifierSpace": "http://www.wikidata.org/entity/", + "schemaSpace": "http://www.wikidata.org/prop/direct/", + "type": { + "id": "Q5", + "name": "human" + }, + "autoMatch": true, + "batchSize": 10, + "columnDetails": [], + "limit": 0 + }, + "description": "Reconcile cells in column artist to type Q5" + }, + { + "op": "core/multivalued-cell-split", + "columnName": "label", + "keyColumnName": "recordid", + "mode": "separator", + "separator": "/", + "regex": false, + "description": "Split multi-valued cells in column label" + }, + { + "op": "core/recon", + "engineConfig": { + "facets": [], + "mode": "row-based" + }, + "columnName": "artist", + "config": { + "mode": "standard-service", + "service": "https://wikidata.reconci.link/en/api", + "identifierSpace": "http://www.wikidata.org/entity/", + "schemaSpace": "http://www.wikidata.org/prop/direct/", + "type": { + "id": "Q5", + "name": "human" + }, + "autoMatch": true, + "batchSize": 10, + "columnDetails": [], + "limit": 0 + }, + "description": "Reconcile cells in column artist to type Q5" + }, + { + "op": "core/recon", + "engineConfig": { + "facets": [], + "mode": "row-based" + }, + "columnName": "label", + "config": { + "mode": "standard-service", + "service": "https://wikidata.reconci.link/en/api", + "identifierSpace": "http://www.wikidata.org/entity/", + "schemaSpace": "http://www.wikidata.org/prop/direct/", + "type": { + "id": "Q18127", + "name": "record label" + }, + "autoMatch": true, + "batchSize": 10, + "columnDetails": [], + "limit": 0 + }, + "description": "Reconcile cells in column label to type Q18127" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "artist: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "artist", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "artist", + "similarValue": "Benny Carter", + "judgment": "matched", + "match": { + "id": "Q356715", + "name": "Benny Carter", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Benny Carter (Q356715) for cells containing \"Benny Carter\" in column artist" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "artist: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "artist", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "artist", + "similarValue": "Benny Carter ", + "judgment": "matched", + "match": { + "id": "Q356715", + "name": "Benny Carter", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Benny Carter (Q356715) for cells containing \"Benny Carter \" in column artist" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "artist: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "artist", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "artist", + "similarValue": " Oscar Peterson", + "judgment": "matched", + "match": { + "id": "Q105349", + "name": "Oscar Peterson", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Oscar Peterson (Q105349) for cells containing \" Oscar Peterson\" in column artist" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "artist: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "artist", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "artist", + "similarValue": "Benny Goodman", + "judgment": "matched", + "match": { + "id": "Q46755", + "name": "Benny Goodman", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Benny Goodman (Q46755) for cells containing \"Benny Goodman\" in column artist" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "artist: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "artist", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "artist", + "similarValue": "Ben Webster", + "judgment": "matched", + "match": { + "id": "Q438460", + "name": "Ben Webster", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Ben Webster (Q438460) for cells containing \"Ben Webster\" in column artist" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "artist: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "artist", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "artist", + "similarValue": "Bob Berg", + "judgment": "matched", + "match": { + "id": "Q605063", + "name": "Bob Berg", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Bob Berg (Q605063) for cells containing \"Bob Berg\" in column artist" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "artist: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "artist", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "artist", + "similarValue": "Miles Davis", + "judgment": "matched", + "match": { + "id": "Q93341", + "name": "Miles Davis", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Miles Davis (Q93341) for cells containing \"Miles Davis\" in column artist" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "artist: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "artist", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "artist", + "similarValue": "Charlie Parker", + "judgment": "matched", + "match": { + "id": "Q103767", + "name": "Charlie Parker", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Charlie Parker (Q103767) for cells containing \"Charlie Parker\" in column artist" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "artist: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "artist", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "artist", + "similarValue": "Jim Hall", + "judgment": "matched", + "match": { + "id": "Q433054", + "name": "Jim Hall", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Jim Hall (Q433054) for cells containing \"Jim Hall\" in column artist" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "artist: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "artist", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "artist", + "similarValue": "Chris Potter", + "judgment": "matched", + "match": { + "id": "Q476598", + "name": "Chris Potter", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Chris Potter (Q476598) for cells containing \"Chris Potter\" in column artist" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "artist: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "artist", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "artist", + "similarValue": "Clifford Brown", + "judgment": "matched", + "match": { + "id": "Q354490", + "name": "Clifford Brown", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Clifford Brown (Q354490) for cells containing \"Clifford Brown\" in column artist" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "artist: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "artist", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "artist", + "similarValue": "Coleman Hawkins", + "judgment": "matched", + "match": { + "id": "Q217812", + "name": "Coleman Hawkins", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Coleman Hawkins (Q217812) for cells containing \"Coleman Hawkins\" in column artist" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "artist: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "artist", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "artist", + "similarValue": "David Murray ", + "judgment": "matched", + "match": { + "id": "Q1175803", + "name": "David Murray", + "types": [ + "" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item David Murray (Q1175803) for cells containing \"David Murray \" in column artist" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "artist: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "artist", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "artist", + "similarValue": "Dexter Gordon", + "judgment": "matched", + "match": { + "id": "Q118116", + "name": "Dexter Gordon", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Dexter Gordon (Q118116) for cells containing \"Dexter Gordon\" in column artist" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "artist: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "artist", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "artist", + "similarValue": "Don Ellis", + "judgment": "matched", + "match": { + "id": "Q708990", + "name": "Don Ellis", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Don Ellis (Q708990) for cells containing \"Don Ellis\" in column artist" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "artist: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "artist", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "artist", + "similarValue": " JJ Johnson", + "judgment": "matched", + "match": { + "id": "Q504915", + "name": "J. J. Johnson", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item J. J. Johnson (Q504915) for cells containing \" JJ Johnson\" in column artist" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "artist: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "artist", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "artist", + "similarValue": "Joe Henderson", + "judgment": "matched", + "match": { + "id": "Q506006", + "name": "Joe Henderson", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Joe Henderson (Q506006) for cells containing \"Joe Henderson\" in column artist" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "artist: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "artist", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "artist", + "similarValue": "Lee Morgan", + "judgment": "matched", + "match": { + "id": "Q362564", + "name": "Lee Morgan", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Lee Morgan (Q362564) for cells containing \"Lee Morgan\" in column artist" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "artist: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "artist", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "artist", + "similarValue": "Bill Dobbins", + "judgment": "matched", + "match": { + "id": "Q862061", + "name": "Bill Dobbins", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Bill Dobbins (Q862061) for cells containing \"Bill Dobbins\" in column artist" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "artist: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "artist", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "artist", + "similarValue": "Louis Armstrong", + "judgment": "matched", + "match": { + "id": "Q1779", + "name": "Louis Armstrong", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Louis Armstrong (Q1779) for cells containing \"Louis Armstrong\" in column artist" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "artist: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "artist", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "artist", + "similarValue": "Johnny Hodges", + "judgment": "matched", + "match": { + "id": "Q455176", + "name": "Johnny Hodges", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Johnny Hodges (Q455176) for cells containing \"Johnny Hodges\" in column artist" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "artist: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "artist", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "artist", + "similarValue": " David Murray", + "judgment": "matched", + "match": { + "id": "Q1175803", + "name": "David Murray", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item David Murray (Q1175803) for cells containing \" David Murray\" in column artist" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "label: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "label", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "label", + "similarValue": "Columbia", + "judgment": "matched", + "match": { + "id": "Q183387", + "name": "Columbia Records", + "types": [ + "Q18127", + "Q167270" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Columbia Records (Q183387) for cells containing \"Columbia\" in column label" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "label: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "label", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "label", + "similarValue": "Sony Music Entertainment Ltd..", + "judgment": "matched", + "match": { + "id": "Q10915648", + "name": "Sony Music Entertainment Taiwan", + "types": [ + "Q43229", + "Q18127", + "Q783794" + ], + "score": 81 + }, + "shareNewTopics": false, + "description": "Match item Sony Music Entertainment Taiwan (Q10915648) for cells containing \"Sony Music Entertainment Ltd..\" in column label" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "label: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "label", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "label", + "similarValue": "Fresh Sound Records", + "judgment": "matched", + "match": { + "id": "Q5503020", + "name": "Fresh Sounds Records", + "types": [ + "Q18127" + ], + "score": 97 + }, + "shareNewTopics": false, + "description": "Match item Fresh Sounds Records (Q5503020) for cells containing \"Fresh Sound Records\" in column label" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "label: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "label", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "label", + "similarValue": "Classic Records", + "judgment": "matched", + "match": { + "id": "Q837206", + "name": "Original Jazz Classics", + "types": [ + "" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Original Jazz Classics (Q837206) for cells containing \"Classic Records\" in column label" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "label: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "label", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "label", + "similarValue": "BMG", + "judgment": "matched", + "match": { + "id": "Q770103", + "name": "Bertelsmann Music Group", + "types": [ + "Q1916382", + "Q2442401", + "Q18127" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Bertelsmann Music Group (Q770103) for cells containing \"BMG\" in column label" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "label: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "label", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "label", + "similarValue": "Atlantic Records", + "judgment": "matched", + "match": { + "id": "Q202440", + "name": "Atlantic Records", + "types": [ + "Q18127" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Atlantic Records (Q202440) for cells containing \"Atlantic Records\" in column label" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "label: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "label", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "label", + "similarValue": "Rca Victor", + "judgment": "matched", + "match": { + "id": "Q3415083", + "name": "RCA Victor", + "types": [ + "Q18127" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item RCA Victor (Q3415083) for cells containing \"Rca Victor\" in column label" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "label: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "label", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "label", + "similarValue": "Columbia Records", + "judgment": "matched", + "match": { + "id": "Q183387", + "name": "Columbia Records", + "types": [ + "Q18127", + "Q167270" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Columbia Records (Q183387) for cells containing \"Columbia Records\" in column label" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "label: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "label", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "label", + "similarValue": "Riverside Records", + "judgment": "matched", + "match": { + "id": "Q2975356", + "name": "Riverside", + "types": [ + "Q18127" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Riverside (Q2975356) for cells containing \"Riverside Records\" in column label" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "label: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "label", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "label", + "similarValue": "Prestige New Jazz", + "judgment": "matched", + "match": { + "id": "Q59092889", + "name": "New Jazz", + "types": [ + "Q18127" + ], + "score": 73 + }, + "shareNewTopics": false, + "description": "Match item New Jazz (Q59092889) for cells containing \"Prestige New Jazz\" in column label" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "label: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "label", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "label", + "similarValue": "Columbia (Legacy)", + "judgment": "matched", + "match": { + "id": "Q183387", + "name": "Columbia Records", + "types": [ + "" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Columbia Records (Q183387) for cells containing \"Columbia (Legacy)\" in column label" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "label: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "label", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "artist", + "similarValue": "Phil Woods", + "judgment": "matched", + "match": { + "id": "Q639345", + "name": "Phil Woods", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Phil Woods (Q639345) for cells containing \"Phil Woods\" in column artist" + }, + { + "op": "core/recon", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "label: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "label", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "errors", + "l": "errors" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "label", + "config": { + "mode": "standard-service", + "service": "https://wikidata.reconci.link/en/api", + "identifierSpace": "http://www.wikidata.org/entity/", + "schemaSpace": "http://www.wikidata.org/prop/direct/", + "type": { + "id": "Q18127", + "name": "record label" + }, + "autoMatch": true, + "batchSize": 10, + "columnDetails": [], + "limit": 0 + }, + "description": "Reconcile cells in column label to type Q18127" + }, + { + "op": "core/recon", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "label: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "label", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "errors", + "l": "errors" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "label", + "config": { + "mode": "standard-service", + "service": "https://wikidata.reconci.link/en/api", + "identifierSpace": "http://www.wikidata.org/entity/", + "schemaSpace": "http://www.wikidata.org/prop/direct/", + "type": { + "id": "Q18127", + "name": "record label" + }, + "autoMatch": true, + "batchSize": 10, + "columnDetails": [], + "limit": 0 + }, + "description": "Reconcile cells in column label to type Q18127" + }, + { + "op": "core/row-star", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "label: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "label", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "errors", + "l": "errors" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "record-based" + }, + "starred": true, + "description": "Star rows" + }, + { + "op": "core/recon-discard-judgments", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "label: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "label", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "errors", + "l": "errors" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "record-based" + }, + "columnName": "label", + "clearData": true, + "description": "Discard recon judgments and clear recon data for cells in column label" + }, + { + "op": "core/recon", + "engineConfig": { + "facets": [], + "mode": "record-based" + }, + "columnName": "label", + "config": { + "mode": "standard-service", + "service": "https://wikidata.reconci.link/en/api", + "identifierSpace": "http://www.wikidata.org/entity/", + "schemaSpace": "http://www.wikidata.org/prop/direct/", + "type": { + "id": "Q18127", + "name": "record label" + }, + "autoMatch": true, + "batchSize": 10, + "columnDetails": [], + "limit": 0 + }, + "description": "Reconcile cells in column label to type Q18127" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "label: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "label", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "record-based" + }, + "columnName": "label", + "similarValue": "History", + "judgment": "matched", + "match": { + "id": "Q66272324", + "name": "History Records (NAID 18494861)", + "types": [ + "" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item History Records (NAID 18494861) (Q66272324) for cells containing \"History\" in column label" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "label: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "label", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "record-based" + }, + "columnName": "label", + "similarValue": "Savoy", + "judgment": "matched", + "match": { + "id": "Q1341612", + "name": "Savoy Records", + "types": [ + "Q18127" + ], + "score": 67 + }, + "shareNewTopics": false, + "description": "Match item Savoy Records (Q1341612) for cells containing \"Savoy\" in column label" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "label: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "label", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "record-based" + }, + "columnName": "label", + "similarValue": "Black Saint Records", + "judgment": "matched", + "match": { + "id": "Q880530", + "name": "Black Saint", + "types": [ + "Q18127" + ], + "score": 73 + }, + "shareNewTopics": false, + "description": "Match item Black Saint (Q880530) for cells containing \"Black Saint Records\" in column label" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "label: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "label", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + }, + { + "type": "range", + "name": "label: best candidate's score", + "expression": "cell.recon.best.score", + "columnName": "label", + "from": 43, + "to": 101, + "selectNumeric": true, + "selectNonNumeric": true, + "selectBlank": true, + "selectError": true + } + ], + "mode": "record-based" + }, + "columnName": "label", + "similarValue": "Warner Bros.", + "judgment": "matched", + "match": { + "id": "Q843402", + "name": "Warner Bros. Records", + "types": [ + "Q18127" + ], + "score": 73 + }, + "shareNewTopics": false, + "description": "Match item Warner Bros. Records (Q843402) for cells containing \"Warner Bros.\" in column label" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "label: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "label", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + }, + { + "type": "range", + "name": "label: best candidate's score", + "expression": "cell.recon.best.score", + "columnName": "label", + "from": 43, + "to": 101, + "selectNumeric": true, + "selectNonNumeric": true, + "selectBlank": true, + "selectError": true + } + ], + "mode": "record-based" + }, + "columnName": "label", + "similarValue": "Universal", + "judgment": "matched", + "match": { + "id": "Q38903", + "name": "Universal Music Group", + "types": [ + "Q2442401", + "Q1660312", + "Q116453729", + "Q891723" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Universal Music Group (Q38903) for cells containing \"Universal\" in column label" + } +] \ No newline at end of file diff --git a/wjazzd/openrefine/history/solo_info_history.json b/wjazzd/openrefine/history/solo_info_history.json new file mode 100644 index 00000000..32439798 --- /dev/null +++ b/wjazzd/openrefine/history/solo_info_history.json @@ -0,0 +1,1683 @@ +[ + { + "op": "core/text-transform", + "engineConfig": { + "facets": [], + "mode": "row-based" + }, + "columnName": "instrument", + "expression": "jython:d = {\n \"as\": \"Alto Saxophone\",\n \"bcl\": \"Bass Clarinet\",\n \"bs\": \"Bass Saxophone\",\n \"cl\": \"Clarinet\",\n \"cor\": \"Cornet\",\n \"g\": \"Guitar\",\n \"p\": \"Piano\",\n \"ss\": \"Soprano Saxophone\",\n \"tb\": \"Trombone\",\n \"tp\": \"Trumpet\",\n \"ts\": \"Tenor Saxophone\",\n \"ts-c\": \"C Melody Saxophone\",\n \"vib\": \"Vibraphone\"\n}\n\nreturn d.get(value, value)", + "onError": "keep-original", + "repeat": false, + "repeatCount": 10, + "description": "Text transform on cells in column instrument using expression jython:d = {\n \"as\": \"Alto Saxophone\",\n \"bcl\": \"Bass Clarinet\",\n \"bs\": \"Bass Saxophone\",\n \"cl\": \"Clarinet\",\n \"cor\": \"Cornet\",\n \"g\": \"Guitar\",\n \"p\": \"Piano\",\n \"ss\": \"Soprano Saxophone\",\n \"tb\": \"Trombone\",\n \"tp\": \"Trumpet\",\n \"ts\": \"Tenor Saxophone\",\n \"ts-c\": \"C Melody Saxophone\",\n \"vib\": \"Vibraphone\"\n}\n\nreturn d.get(value, value)" + }, + { + "op": "core/text-transform", + "engineConfig": { + "facets": [], + "mode": "row-based" + }, + "columnName": "key", + "expression": "jython:if value.endswith(\"maj\"):\n return value[:-3] + \" major\"\nelif value.endswith(\"min\"):\n return value[:-3] + \" minor\"\nelse:\n return value", + "onError": "keep-original", + "repeat": false, + "repeatCount": 10, + "description": "Text transform on cells in column key using expression jython:if value.endswith(\"maj\"):\n return value[:-3] + \" major\"\nelif value.endswith(\"min\"):\n return value[:-3] + \" minor\"\nelse:\n return value" + }, + { + "op": "core/column-removal", + "columnName": "chord_changes", + "description": "Remove column chord_changes" + }, + { + "op": "core/recon", + "engineConfig": { + "facets": [], + "mode": "row-based" + }, + "columnName": "performer", + "config": { + "mode": "standard-service", + "service": "https://wikidata.reconci.link/en/api", + "identifierSpace": "http://www.wikidata.org/entity/", + "schemaSpace": "http://www.wikidata.org/prop/direct/", + "type": { + "id": "Q5", + "name": "human" + }, + "autoMatch": true, + "batchSize": 10, + "columnDetails": [], + "limit": 0 + }, + "description": "Reconcile cells in column performer to type Q5" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "performer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "performer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "performer", + "similarValue": "Benny Carter", + "judgment": "matched", + "match": { + "id": "Q356715", + "name": "Benny Carter", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Benny Carter (Q356715) for cells containing \"Benny Carter\" in column performer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "performer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "performer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "performer", + "similarValue": "Benny Goodman", + "judgment": "matched", + "match": { + "id": "Q46755", + "name": "Benny Goodman", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Benny Goodman (Q46755) for cells containing \"Benny Goodman\" in column performer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "performer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "performer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "performer", + "similarValue": "Ben Webster", + "judgment": "matched", + "match": { + "id": "Q438460", + "name": "Ben Webster", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Ben Webster (Q438460) for cells containing \"Ben Webster\" in column performer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "performer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "performer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "performer", + "similarValue": "Bob Berg", + "judgment": "matched", + "match": { + "id": "Q605063", + "name": "Bob Berg", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Bob Berg (Q605063) for cells containing \"Bob Berg\" in column performer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "performer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "performer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "performer", + "similarValue": "Buck Clayton", + "judgment": "matched", + "match": { + "id": "Q999321", + "name": "Buck Clayton", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Buck Clayton (Q999321) for cells containing \"Buck Clayton\" in column performer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "performer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "performer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "performer", + "similarValue": "Charlie Parker", + "judgment": "matched", + "match": { + "id": "Q103767", + "name": "Charlie Parker", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Charlie Parker (Q103767) for cells containing \"Charlie Parker\" in column performer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "performer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "performer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "performer", + "similarValue": "Chris Potter", + "judgment": "matched", + "match": { + "id": "Q476598", + "name": "Chris Potter", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Chris Potter (Q476598) for cells containing \"Chris Potter\" in column performer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "performer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "performer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "performer", + "similarValue": "Clifford Brown", + "judgment": "matched", + "match": { + "id": "Q354490", + "name": "Clifford Brown", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Clifford Brown (Q354490) for cells containing \"Clifford Brown\" in column performer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "performer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "performer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "performer", + "similarValue": "Coleman Hawkins", + "judgment": "matched", + "match": { + "id": "Q217812", + "name": "Coleman Hawkins", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Coleman Hawkins (Q217812) for cells containing \"Coleman Hawkins\" in column performer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "performer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "performer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "performer", + "similarValue": "Curtis Fuller", + "judgment": "matched", + "match": { + "id": "Q1145565", + "name": "Curtis Fuller", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Curtis Fuller (Q1145565) for cells containing \"Curtis Fuller\" in column performer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "performer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "performer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "performer", + "similarValue": "David Murray", + "judgment": "matched", + "match": { + "id": "Q1175803", + "name": "David Murray", + "types": [ + "" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item David Murray (Q1175803) for cells containing \"David Murray\" in column performer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "performer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "performer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "performer", + "similarValue": "Dexter Gordon", + "judgment": "matched", + "match": { + "id": "Q118116", + "name": "Dexter Gordon", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Dexter Gordon (Q118116) for cells containing \"Dexter Gordon\" in column performer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "performer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "performer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "performer", + "similarValue": "Don Ellis", + "judgment": "matched", + "match": { + "id": "Q708990", + "name": "Don Ellis", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Don Ellis (Q708990) for cells containing \"Don Ellis\" in column performer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "performer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "performer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "performer", + "similarValue": "George Coleman", + "judgment": "matched", + "match": { + "id": "Q1386738", + "name": "George Coleman", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item George Coleman (Q1386738) for cells containing \"George Coleman\" in column performer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "performer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "performer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "performer", + "similarValue": "Henry Allen", + "judgment": "matched", + "match": { + "id": "Q1383538", + "name": "Red Allen", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Red Allen (Q1383538) for cells containing \"Henry Allen\" in column performer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "performer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "performer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "performer", + "similarValue": "J.J. Johnson", + "judgment": "matched", + "match": { + "id": "Q504915", + "name": "J. J. Johnson", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item J. J. Johnson (Q504915) for cells containing \"J.J. Johnson\" in column performer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "performer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "performer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "performer", + "similarValue": "Joe Henderson", + "judgment": "matched", + "match": { + "id": "Q506006", + "name": "Joe Henderson", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Joe Henderson (Q506006) for cells containing \"Joe Henderson\" in column performer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "performer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "performer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "performer", + "similarValue": "John Abercrombie", + "judgment": "matched", + "match": { + "id": "Q438092", + "name": "John Abercrombie", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item John Abercrombie (Q438092) for cells containing \"John Abercrombie\" in column performer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "performer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "performer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "performer", + "similarValue": "Johnny Dodds", + "judgment": "matched", + "match": { + "id": "Q498495", + "name": "Johnny Dodds", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Johnny Dodds (Q498495) for cells containing \"Johnny Dodds\" in column performer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "performer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "performer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "performer", + "similarValue": "Johnny Hodges", + "judgment": "matched", + "match": { + "id": "Q455176", + "name": "Johnny Hodges", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Johnny Hodges (Q455176) for cells containing \"Johnny Hodges\" in column performer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "performer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "performer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "performer", + "similarValue": "Lee Morgan", + "judgment": "matched", + "match": { + "id": "Q362564", + "name": "Lee Morgan", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Lee Morgan (Q362564) for cells containing \"Lee Morgan\" in column performer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "performer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "performer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "performer", + "similarValue": "Louis Armstrong", + "judgment": "matched", + "match": { + "id": "Q1779", + "name": "Louis Armstrong", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Louis Armstrong (Q1779) for cells containing \"Louis Armstrong\" in column performer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "performer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "performer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "performer", + "similarValue": "Miles Davis", + "judgment": "matched", + "match": { + "id": "Q93341", + "name": "Miles Davis", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Miles Davis (Q93341) for cells containing \"Miles Davis\" in column performer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "performer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "performer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "performer", + "similarValue": "Milt Jackson", + "judgment": "matched", + "match": { + "id": "Q435665", + "name": "Milt Jackson", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Milt Jackson (Q435665) for cells containing \"Milt Jackson\" in column performer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "performer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "performer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "performer", + "similarValue": "Nat Adderley", + "judgment": "matched", + "match": { + "id": "Q499649", + "name": "Nat Adderley", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Nat Adderley (Q499649) for cells containing \"Nat Adderley\" in column performer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "performer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "performer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "performer", + "similarValue": "Phil Woods", + "judgment": "matched", + "match": { + "id": "Q639345", + "name": "Phil Woods", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Phil Woods (Q639345) for cells containing \"Phil Woods\" in column performer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "performer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "performer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "performer", + "similarValue": "Rex Stewart", + "judgment": "matched", + "match": { + "id": "Q765531", + "name": "Rex Stewart", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Rex Stewart (Q765531) for cells containing \"Rex Stewart\" in column performer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "performer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "performer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "performer", + "similarValue": "Steve Coleman", + "judgment": "matched", + "match": { + "id": "Q524953", + "name": "Steve Coleman", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Steve Coleman (Q524953) for cells containing \"Steve Coleman\" in column performer" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "performer: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "performer", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "performer", + "similarValue": "Steve Lacy", + "judgment": "matched", + "match": { + "id": "Q504641", + "name": "Steve Lacy", + "types": [ + "Q5" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Steve Lacy (Q504641) for cells containing \"Steve Lacy\" in column performer" + }, + { + "op": "core/text-transform", + "engineConfig": { + "facets": [], + "mode": "row-based" + }, + "columnName": "style", + "expression": "jython:return value + \" jazz\"", + "onError": "keep-original", + "repeat": false, + "repeatCount": 10, + "description": "Text transform on cells in column style using expression jython:return value + \" jazz\"" + }, + { + "op": "core/recon", + "engineConfig": { + "facets": [], + "mode": "row-based" + }, + "columnName": "style", + "config": { + "mode": "standard-service", + "service": "https://wikidata.reconci.link/en/api", + "identifierSpace": "http://www.wikidata.org/entity/", + "schemaSpace": "http://www.wikidata.org/prop/direct/", + "type": { + "id": "Q188451", + "name": "music genre" + }, + "autoMatch": true, + "batchSize": 10, + "columnDetails": [], + "limit": 0 + }, + "description": "Reconcile cells in column style to type Q188451" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "style: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "style", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "style", + "similarValue": "POSTBOP jazz", + "judgment": "matched", + "match": { + "id": "Q1092837", + "name": "post-bop", + "types": [ + "Q188451" + ], + "score": 74 + }, + "shareNewTopics": false, + "description": "Match item post-bop (Q1092837) for cells containing \"POSTBOP jazz\" in column style" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "style: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "style", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "style", + "similarValue": "HARDBOP jazz", + "judgment": "matched", + "match": { + "id": "Q181010", + "name": "hard bop", + "types": [ + "Q188451", + "Q28820001" + ], + "score": 74 + }, + "shareNewTopics": false, + "description": "Match item hard bop (Q181010) for cells containing \"HARDBOP jazz\" in column style" + }, + { + "op": "core/recon", + "engineConfig": { + "facets": [], + "mode": "row-based" + }, + "columnName": "key", + "config": { + "mode": "standard-service", + "service": "https://wikidata.reconci.link/en/api", + "identifierSpace": "http://www.wikidata.org/entity/", + "schemaSpace": "http://www.wikidata.org/prop/direct/", + "type": { + "id": "Q192822", + "name": "tonality" + }, + "autoMatch": true, + "batchSize": 10, + "columnDetails": [], + "limit": 0 + }, + "description": "Reconcile cells in column key to type Q192822" + }, + { + "op": "core/recon-match-best-candidates", + "engineConfig": { + "facets": [ + { + "type": "range", + "name": "key: best candidate's score", + "expression": "cell.recon.best.score", + "columnName": "key", + "from": 87, + "to": 101, + "selectNumeric": true, + "selectNonNumeric": true, + "selectBlank": true, + "selectError": true + } + ], + "mode": "row-based" + }, + "columnName": "key", + "description": "Match each cell to its best recon candidate in column key" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "range", + "name": "key: best candidate's score", + "expression": "cell.recon.best.score", + "columnName": "key", + "from": 28, + "to": 84, + "selectNumeric": true, + "selectNonNumeric": true, + "selectBlank": true, + "selectError": true + } + ], + "mode": "row-based" + }, + "columnName": "key", + "similarValue": "Db- minor", + "judgment": "matched", + "match": { + "id": "Q3303490", + "name": "D-flat minor", + "types": [ + "" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item D-flat minor (Q3303490) for cells containing \"Db- minor\" in column key" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "range", + "name": "key: best candidate's score", + "expression": "cell.recon.best.score", + "columnName": "key", + "from": 28, + "to": 84, + "selectNumeric": true, + "selectNonNumeric": true, + "selectBlank": true, + "selectError": true + } + ], + "mode": "row-based" + }, + "columnName": "key", + "similarValue": "Bb- minor", + "judgment": "matched", + "match": { + "id": "Q283887", + "name": "B-flat minor", + "types": [ + "" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item B-flat minor (Q283887) for cells containing \"Bb- minor\" in column key" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "key: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "key", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "key", + "similarValue": "Eb- minor", + "judgment": "matched", + "match": { + "id": "Q14254276", + "name": "E-flat minor", + "types": [ + "" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item E-flat minor (Q14254276) for cells containing \"Eb- minor\" in column key" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "key: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "key", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "key", + "similarValue": "Ab", + "judgment": "new", + "shareNewTopics": true, + "description": "Mark to create one single new item for all cells containing \"Ab\" in column key" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "key: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "key", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "new", + "l": "new" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "row-based" + }, + "columnName": "key", + "similarValue": "Ab", + "judgment": "matched", + "match": { + "id": "Q719309", + "name": "A-flat major", + "types": [ + "" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item A-flat major (Q719309) for cells containing \"Ab\" in column key" + }, + { + "op": "core/recon", + "engineConfig": { + "facets": [], + "mode": "row-based" + }, + "columnName": "instrument", + "config": { + "mode": "standard-service", + "service": "https://wikidata.reconci.link/en/api", + "identifierSpace": "http://www.wikidata.org/entity/", + "schemaSpace": "http://www.wikidata.org/prop/direct/", + "type": { + "id": "Q110295396", + "name": "type of musical instrument" + }, + "autoMatch": true, + "batchSize": 10, + "columnDetails": [], + "limit": 0 + }, + "description": "Reconcile cells in column instrument to type Q110295396" + }, + { + "op": "core/recon-match-best-candidates", + "engineConfig": { + "facets": [], + "mode": "row-based" + }, + "columnName": "instrument", + "description": "Match each cell to its best recon candidate in column instrument" + }, + { + "op": "core/recon", + "engineConfig": { + "facets": [], + "mode": "row-based" + }, + "columnName": "signature", + "config": { + "mode": "standard-service", + "service": "https://wikidata.reconci.link/en/api", + "identifierSpace": "http://www.wikidata.org/entity/", + "schemaSpace": "http://www.wikidata.org/prop/direct/", + "type": { + "id": "Q155234", + "name": "time signature" + }, + "autoMatch": true, + "batchSize": 10, + "columnDetails": [], + "limit": 0 + }, + "description": "Reconcile cells in column signature to type Q155234" + }, + { + "op": "core/recon-discard-judgments", + "engineConfig": { + "facets": [], + "mode": "row-based" + }, + "columnName": "signature", + "clearData": true, + "description": "Discard recon judgments and clear recon data for cells in column signature" + }, + { + "op": "core/recon", + "engineConfig": { + "facets": [], + "mode": "row-based" + }, + "columnName": "signature", + "config": { + "mode": "standard-service", + "service": "https://wikidata.reconci.link/en/api", + "identifierSpace": "http://www.wikidata.org/entity/", + "schemaSpace": "http://www.wikidata.org/prop/direct/", + "type": { + "id": "Q155234", + "name": "time signature" + }, + "autoMatch": true, + "batchSize": 10, + "columnDetails": [], + "limit": 0 + }, + "description": "Reconcile cells in column signature to type Q155234" + }, + { + "op": "core/text-transform", + "engineConfig": { + "facets": [], + "mode": "record-based" + }, + "columnName": "compid", + "expression": "jython:if int(value) < 156:\n return value\nelse:\n return str(int(value) + 1)", + "onError": "keep-original", + "repeat": false, + "repeatCount": 10, + "description": "Text transform on cells in column compid using expression jython:if int(value) < 156:\n return value\nelse:\n return str(int(value) + 1)" + }, + { + "op": "core/text-transform", + "engineConfig": { + "facets": [], + "mode": "record-based" + }, + "columnName": "compid", + "expression": "jython:if int(value) < 276: \n return value \nelse: return str(int(value) + 1)", + "onError": "keep-original", + "repeat": false, + "repeatCount": 10, + "description": "Text transform on cells in column compid using expression jython:if int(value) < 276: \n return value \nelse: return str(int(value) + 1)" + }, + { + "op": "core/text-transform", + "engineConfig": { + "facets": [], + "mode": "record-based" + }, + "columnName": "compid", + "expression": "jython:if int(value) < 281: \n return value \nelse: return str(int(value) + 1)", + "onError": "keep-original", + "repeat": false, + "repeatCount": 10, + "description": "Text transform on cells in column compid using expression jython:if int(value) < 281: \n return value \nelse: return str(int(value) + 1)" + } +] \ No newline at end of file diff --git a/wjazzd/openrefine/history/track_info_history.json b/wjazzd/openrefine/history/track_info_history.json new file mode 100644 index 00000000..8688b5db --- /dev/null +++ b/wjazzd/openrefine/history/track_info_history.json @@ -0,0 +1,704 @@ +[ + { + "op": "core/multivalued-cell-split", + "columnName": "lineup", + "keyColumnName": "trackid", + "mode": "separator", + "separator": ";", + "regex": false, + "description": "Split multi-valued cells in column lineup" + }, + { + "op": "core/text-transform", + "engineConfig": { + "facets": [], + "mode": "row-based" + }, + "columnName": "lineup", + "expression": "value.trim()", + "onError": "keep-original", + "repeat": false, + "repeatCount": 10, + "description": "Text transform on cells in column lineup using expression value.trim()" + }, + { + "op": "core/column-addition", + "engineConfig": { + "facets": [], + "mode": "row-based" + }, + "baseColumnName": "lineup", + "expression": "grel:value.match(/.*\\(([^)]+)\\).*/)[0]", + "onError": "set-to-blank", + "newColumnName": "instrument", + "columnInsertIndex": 4, + "description": "Create column instrument at index 4 based on column lineup using expression grel:value.match(/.*\\(([^)]+)\\).*/)[0]" + }, + { + "op": "core/multivalued-cell-split", + "columnName": "instrument", + "keyColumnName": "trackid", + "mode": "separator", + "separator": ",", + "regex": false, + "description": "Split multi-valued cells in column instrument" + }, + { + "op": "core/text-transform", + "engineConfig": { + "facets": [], + "mode": "row-based" + }, + "columnName": "instrument", + "expression": "value.trim()", + "onError": "keep-original", + "repeat": false, + "repeatCount": 10, + "description": "Text transform on cells in column instrument using expression value.trim()" + }, + { + "op": "core/mass-edit", + "engineConfig": { + "facets": [], + "mode": "row-based" + }, + "columnName": "instrument", + "expression": "value", + "edits": [ + { + "from": [ + "b", + "B" + ], + "fromBlank": false, + "fromError": false, + "to": "b" + } + ], + "description": "Mass edit cells in column instrument" + }, + { + "op": "core/text-transform", + "engineConfig": { + "facets": [], + "mode": "record-based" + }, + "columnName": "instrument", + "expression": "jython:d = {\n \"arr\": \"\",\n \"as\": \"Alto Saxophone\",\n \"b\": \"Bass\",\n \"B\": \"Bass\",\n \"bc\": \"Bass Clarinet\",\n \"bcl\": \"Bass Clarinet\",\n \"bgo\": \"Baritone Guitar\",\n \"bjo\": \"Banjo\",\n \"bs\": \"Baritone Saxophone\",\n \"cga\": \"Congas\",\n \"cl\": \"Clarinet\",\n \"cn\": \"Conga\",\n \"cor\": \"Cornet\",\n \"dr\": \"Drums\",\n \"eb\": \"Electric Bass\",\n \"electric p\": \"Electric Piano\",\n \"fl\": \"Flute\",\n \"flgn\": \" Flugelhorn\",\n \"g\": \"Guitar\",\n \"git\": \"Guitar\",\n \"hca\": \"Harmonica\",\n \"key\": \"Keyboard\",\n \"p\": \"Piano\",\n \"p-tp\": \"Piccolo Trumpet\",\n \"perc\": \"Percussion\",\n \"rhodes\": \"Rhodes Piano (Electric Piano)\",\n \"ss\": \"Soprano Saxophone\",\n \"synth\": \"Synthesizer\",\n \"tb\": \"Trombone\",\n \"tp\": \"Trumpet\",\n \"trp\": \"Trumpet\",\n \"ts\": \"Tenor Saxophone\",\n \"ts-c\": \"Tenor Saxophone C-melody\",\n \"Vc\": \"Cello\",\n \"vcl\": \"Vocals\",\n \"vib\": \"Vibraphone\",\n \"voc\": \"Vocals\"\n }\n\nreturn d[value]", + "onError": "keep-original", + "repeat": false, + "repeatCount": 10, + "description": "Text transform on cells in column instrument using expression jython:d = {\n \"arr\": \"\",\n \"as\": \"Alto Saxophone\",\n \"b\": \"Bass\",\n \"B\": \"Bass\",\n \"bc\": \"Bass Clarinet\",\n \"bcl\": \"Bass Clarinet\",\n \"bgo\": \"Baritone Guitar\",\n \"bjo\": \"Banjo\",\n \"bs\": \"Baritone Saxophone\",\n \"cga\": \"Congas\",\n \"cl\": \"Clarinet\",\n \"cn\": \"Conga\",\n \"cor\": \"Cornet\",\n \"dr\": \"Drums\",\n \"eb\": \"Electric Bass\",\n \"electric p\": \"Electric Piano\",\n \"fl\": \"Flute\",\n \"flgn\": \" Flugelhorn\",\n \"g\": \"Guitar\",\n \"git\": \"Guitar\",\n \"hca\": \"Harmonica\",\n \"key\": \"Keyboard\",\n \"p\": \"Piano\",\n \"p-tp\": \"Piccolo Trumpet\",\n \"perc\": \"Percussion\",\n \"rhodes\": \"Rhodes Piano (Electric Piano)\",\n \"ss\": \"Soprano Saxophone\",\n \"synth\": \"Synthesizer\",\n \"tb\": \"Trombone\",\n \"tp\": \"Trumpet\",\n \"trp\": \"Trumpet\",\n \"ts\": \"Tenor Saxophone\",\n \"ts-c\": \"Tenor Saxophone C-melody\",\n \"Vc\": \"Cello\",\n \"vcl\": \"Vocals\",\n \"vib\": \"Vibraphone\",\n \"voc\": \"Vocals\"\n }\n\nreturn d[value]" + }, + { + "op": "core/recon", + "engineConfig": { + "facets": [], + "mode": "record-based" + }, + "columnName": "instrument", + "config": { + "mode": "standard-service", + "service": "https://wikidata.reconci.link/en/api", + "identifierSpace": "http://www.wikidata.org/entity/", + "schemaSpace": "http://www.wikidata.org/prop/direct/", + "type": { + "id": "Q110295396", + "name": "type of musical instrument" + }, + "autoMatch": true, + "batchSize": 10, + "columnDetails": [], + "limit": 0 + }, + "description": "Reconcile cells in column instrument to type Q110295396" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [], + "mode": "record-based" + }, + "columnName": "instrument", + "similarValue": "Clarinet", + "judgment": "matched", + "match": { + "id": "Q8343", + "name": "clarinet", + "types": [ + "Q110295396" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item clarinet (Q8343) for cells containing \"Clarinet\" in column instrument" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [], + "mode": "record-based" + }, + "columnName": "instrument", + "similarValue": "Drums", + "judgment": "matched", + "match": { + "id": "Q11404", + "name": "drum", + "types": [ + "Q110295396" + ], + "score": 89 + }, + "shareNewTopics": false, + "description": "Match item drum (Q11404) for cells containing \"Drums\" in column instrument" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [], + "mode": "record-based" + }, + "columnName": "instrument", + "similarValue": "Drums", + "judgment": "matched", + "match": { + "id": "Q128309", + "name": "drum kit", + "types": [ + "" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item drum kit (Q128309) for cells containing \"Drums\" in column instrument" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "instrument: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "instrument", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "record-based" + }, + "columnName": "instrument", + "similarValue": "Cornet", + "judgment": "matched", + "match": { + "id": "Q202027", + "name": "cornet", + "types": [ + "Q110295396" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item cornet (Q202027) for cells containing \"Cornet\" in column instrument" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "instrument: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "instrument", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "record-based" + }, + "columnName": "instrument", + "similarValue": "Tenor Saxophone C-melody", + "judgment": "matched", + "match": { + "id": "Q1022301", + "name": "C melody saxophone", + "types": [ + "" + ], + "score": 43 + }, + "shareNewTopics": false, + "description": "Match item C melody saxophone (Q1022301) for cells containing \"Tenor Saxophone C-melody\" in column instrument" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "instrument: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "instrument", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "record-based" + }, + "columnName": "instrument", + "similarValue": "Rhodes Piano (Electric Piano)", + "judgment": "matched", + "match": { + "id": "Q743659", + "name": "Rhodes piano", + "types": [ + "" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item Rhodes piano (Q743659) for cells containing \"Rhodes Piano (Electric Piano)\" in column instrument" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "instrument: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "instrument", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "record-based" + }, + "columnName": "instrument", + "similarValue": "Baritone Guitar", + "judgment": "matched", + "match": { + "id": "Q64038", + "name": "baritone guitar", + "types": [ + "" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item baritone guitar (Q64038) for cells containing \"Baritone Guitar\" in column instrument" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "instrument: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "instrument", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "record-based" + }, + "columnName": "instrument", + "similarValue": "Electric Piano", + "judgment": "matched", + "match": { + "id": "Q1136507", + "name": "electric piano", + "types": [ + "" + ], + "score": 50 + }, + "shareNewTopics": false, + "description": "Match item electric piano (Q1136507) for cells containing \"Electric Piano\" in column instrument" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "instrument: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "instrument", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "record-based" + }, + "columnName": "instrument", + "similarValue": "Electric Bass", + "judgment": "matched", + "match": { + "id": "Q64166304", + "name": "electric bass guitar", + "types": [ + "Q110295396" + ], + "score": 86 + }, + "shareNewTopics": false, + "description": "Match item electric bass guitar (Q64166304) for cells containing \"Electric Bass\" in column instrument" + }, + { + "op": "core/recon-judge-similar-cells", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "instrument: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "instrument", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "record-based" + }, + "columnName": "instrument", + "similarValue": "Flute", + "judgment": "matched", + "match": { + "id": "Q11405", + "name": "flute", + "types": [ + "Q110295396" + ], + "score": 100 + }, + "shareNewTopics": false, + "description": "Match item flute (Q11405) for cells containing \"Flute\" in column instrument" + }, + { + "op": "core/text-transform", + "engineConfig": { + "facets": [], + "mode": "record-based" + }, + "columnName": "lineup", + "expression": "grel:value.replace(/\\s*\\(.*\\)\\s*/, \"\")", + "onError": "keep-original", + "repeat": false, + "repeatCount": 10, + "description": "Text transform on cells in column lineup using expression grel:value.replace(/\\s*\\(.*\\)\\s*/, \"\")" + }, + { + "op": "core/text-transform", + "engineConfig": { + "facets": [], + "mode": "record-based" + }, + "columnName": "lineup", + "expression": "value.trim()", + "onError": "keep-original", + "repeat": false, + "repeatCount": 10, + "description": "Text transform on cells in column lineup using expression value.trim()" + }, + { + "op": "core/recon", + "engineConfig": { + "facets": [], + "mode": "record-based" + }, + "columnName": "lineup", + "config": { + "mode": "standard-service", + "service": "https://wikidata.reconci.link/en/api", + "identifierSpace": "http://www.wikidata.org/entity/", + "schemaSpace": "http://www.wikidata.org/prop/direct/", + "type": { + "id": "Q5", + "name": "human" + }, + "autoMatch": true, + "batchSize": 10, + "columnDetails": [], + "limit": 0 + }, + "description": "Reconcile cells in column lineup to type Q5" + }, + { + "op": "core/recon-match-best-candidates", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "lineup: judgment", + "expression": "forNonBlank(cell.recon.judgment, v, v, if(isNonBlank(value), \"(unreconciled)\", \"(blank)\"))", + "columnName": "lineup", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "none", + "l": "none" + } + } + ], + "selectBlank": false, + "selectError": false + }, + { + "type": "range", + "name": "lineup: best candidate's score", + "expression": "cell.recon.best.score", + "columnName": "lineup", + "from": 94, + "to": 101, + "selectNumeric": true, + "selectNonNumeric": true, + "selectBlank": true, + "selectError": true + } + ], + "mode": "record-based" + }, + "columnName": "lineup", + "description": "Match each cell to its best recon candidate in column lineup" + }, + { + "op": "core/text-transform", + "engineConfig": { + "facets": [], + "mode": "record-based" + }, + "columnName": "recordingdate", + "expression": "jython:import re\n\ndef extract_date(value):\n g = re.search(r\"(\\d{1,2})\\s*\\.\\s*(\\d{1,2})\\s*\\.\\s*(\\d{4})$\", value)\n\n if g:\n day = g.group(1).zfill(2)\n month = g.group(2).zfill(2)\n year = g.group(3)\n return year + \"-\" + month + \"-\" + day\n else:\n return value\n \nreturn extract_date(value)", + "onError": "keep-original", + "repeat": false, + "repeatCount": 10, + "description": "Text transform on cells in column recordingdate using expression jython:import re\n\ndef extract_date(value):\n g = re.search(r\"(\\d{1,2})\\s*\\.\\s*(\\d{1,2})\\s*\\.\\s*(\\d{4})$\", value)\n\n if g:\n day = g.group(1).zfill(2)\n month = g.group(2).zfill(2)\n year = g.group(3)\n return year + \"-\" + month + \"-\" + day\n else:\n return value\n \nreturn extract_date(value)" + }, + { + "op": "core/text-transform", + "engineConfig": { + "facets": [], + "mode": "record-based" + }, + "columnName": "recordingdate", + "expression": "jython:import re\n\ndef extract_date(value):\n month_dict = {\n \"january\": \"01\",\n \"february\": \"02\",\n \"march\": \"03\",\n \"april\": \"04\",\n \"may\": \"05\",\n \"june\": \"06\",\n \"july\": \"07\",\n \"august\": \"08\",\n \"september\": \"09\",\n \"october\": \"10\",\n \"november\": \"11\",\n \"december\": \"12\"\n }\n\n g = re.search(r\"([A-Za-z]+)\\s*(\\d{4})$\", value)\n\n if g:\n day = \"01\"\n month = month_dict[g.group(1).lower()]\n year = g.group(2)\n return year + \"-\" + month + \"-\" + day\n else:\n return value\n \nreturn extract_date(value)", + "onError": "keep-original", + "repeat": false, + "repeatCount": 10, + "description": "Text transform on cells in column recordingdate using expression jython:import re\n\ndef extract_date(value):\n month_dict = {\n \"january\": \"01\",\n \"february\": \"02\",\n \"march\": \"03\",\n \"april\": \"04\",\n \"may\": \"05\",\n \"june\": \"06\",\n \"july\": \"07\",\n \"august\": \"08\",\n \"september\": \"09\",\n \"october\": \"10\",\n \"november\": \"11\",\n \"december\": \"12\"\n }\n\n g = re.search(r\"([A-Za-z]+)\\s*(\\d{4})$\", value)\n\n if g:\n day = \"01\"\n month = month_dict[g.group(1).lower()]\n year = g.group(2)\n return year + \"-\" + month + \"-\" + day\n else:\n return value\n \nreturn extract_date(value)" + }, + { + "op": "core/text-transform", + "engineConfig": { + "facets": [], + "mode": "record-based" + }, + "columnName": "recordingdate", + "expression": "jython:import re\n\ndef extract_date(value):\n g = re.match(r\"^\\d{4}$\", value)\n\n if g:\n return g.group(0)+\"-01-01\"\n else:\n return value\n\nreturn extract_date(value)", + "onError": "keep-original", + "repeat": false, + "repeatCount": 10, + "description": "Text transform on cells in column recordingdate using expression jython:import re\n\ndef extract_date(value):\n g = re.match(r\"^\\d{4}$\", value)\n\n if g:\n return g.group(0)+\"-01-01\"\n else:\n return value\n\nreturn extract_date(value)" + }, + { + "op": "core/mass-edit", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "recordingdate", + "expression": "value", + "columnName": "recordingdate", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "25, 26 & 30.09 1983", + "l": "25, 26 & 30.09 1983" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "record-based" + }, + "columnName": "recordingdate", + "expression": "value", + "edits": [ + { + "from": [ + "25, 26 & 30.09 1983" + ], + "fromBlank": false, + "fromError": false, + "to": "1983-09-30" + } + ], + "description": "Mass edit cells in column recordingdate" + }, + { + "op": "core/mass-edit", + "engineConfig": { + "facets": [ + { + "type": "list", + "name": "recordingdate", + "expression": "value", + "columnName": "recordingdate", + "invert": false, + "omitBlank": false, + "omitError": false, + "selection": [ + { + "v": { + "v": "September 1964?", + "l": "September 1964?" + } + } + ], + "selectBlank": false, + "selectError": false + } + ], + "mode": "record-based" + }, + "columnName": "recordingdate", + "expression": "value", + "edits": [ + { + "from": [ + "September 1964?" + ], + "fromBlank": false, + "fromError": false, + "to": "1964-09-01" + } + ], + "description": "Mass edit cells in column recordingdate" + }, + { + "op": "core/text-transform", + "engineConfig": { + "facets": [], + "mode": "record-based" + }, + "columnName": "compid", + "expression": "jython:if int(value) < 156:\n return value\nelse:\n return str(int(value) + 1)", + "onError": "keep-original", + "repeat": false, + "repeatCount": 10, + "description": "Text transform on cells in column compid using expression jython:if int(value) < 156:\n return value\nelse:\n return str(int(value) + 1)" + }, + { + "op": "core/text-transform", + "engineConfig": { + "facets": [], + "mode": "record-based" + }, + "columnName": "compid", + "expression": "jython:if int(value) < 276: \n return value \nelse: return str(int(value) + 1)", + "onError": "keep-original", + "repeat": false, + "repeatCount": 10, + "description": "Text transform on cells in column compid using expression jython:if int(value) < 276: \n return value \nelse: return str(int(value) + 1)" + }, + { + "op": "core/text-transform", + "engineConfig": { + "facets": [], + "mode": "record-based" + }, + "columnName": "compid", + "expression": "jython:if int(value) < 281: \n return value \nelse: return str(int(value) + 1)", + "onError": "keep-original", + "repeat": false, + "repeatCount": 10, + "description": "Text transform on cells in column compid using expression jython:if int(value) < 281: \n return value \nelse: return str(int(value) + 1)" + } +] \ No newline at end of file