--- title: "March, 2018" date: 2018-03-02T16:07:54+02:00 author: "Alan Orth" tags: ["Notes"] --- ## 2018-03-02 - Export a CSV of the IITA community metadata for Martin Mueller ## 2018-03-06 - Add three new CCAFS project tags to `input-forms.xml` ([#357](https://github.com/ilri/DSpace/pull/357)) - Andrea from Macaroni Bros had sent me an email that CCAFS needs them - Give Udana more feedback on his WLE records from last month - There were some records using a non-breaking space in their AGROVOC subject field - I checked and tested some author corrections from Peter from last week, and then applied them on CGSpace ``` $ ./fix-metadata-values.py -i Correct-309-authors-2018-03-06.csv -db dspace -u dspace -p 'fuuu' -f dc.contributor.author -t correct -m 3 $ ./delete-metadata-values.py -i Delete-3-Authors-2018-03-06.csv -db dspace -u dspace-p 'fuuu' -f dc.contributor.author -m 3 ``` - This time there were no errors in whitespace but I did have to correct one incorrectly encoded accent character - Add new CRP subject "GRAIN LEGUMES AND DRYLAND CEREALS" to `input-forms.xml` ([#358](https://github.com/ilri/DSpace/pull/358)) - Merge the ORCID integration stuff in to `5_x-prod` for deployment on CGSpace soon ([#359](https://github.com/ilri/DSpace/pull/359)) - Deploy ORCID changes on CGSpace (linode18), run all system updates, and reboot the server - Run all system updates on DSpace Test and reboot server - I ran the [orcid-authority-to-item.py](https://gist.github.com/alanorth/24d8081a5dc25e2a4e27e548e7e2389c) script on CGSpace and mapped 2,864 ORCID identifiers from Solr to item metadata ``` $ ./orcid-authority-to-item.py -db dspace -u dspace -p 'fuuu' -s http://localhost:8081/solr -d ``` - I ran the DSpace cleanup script on CGSpace and it threw an error (as always): ``` Error: ERROR: update or delete on table "bitstream" violates foreign key constraint "bundle_primary_bitstream_id_fkey" on table "bundle" Detail: Key (bitstream_id)=(150659) is still referenced from table "bundle". ``` - The solution is, as always: ``` $ psql dspace -c 'update bundle set primary_bitstream_id=NULL where primary_bitstream_id in (150659);' UPDATE 1 ``` - Apply the proposed PostgreSQL indexes from DS-3636 (pull request [#1791](https://github.com/DSpace/DSpace/pull/1791/) on CGSpace (linode18) ## 2018-03-07 - Add CIAT author Mauricio Efren Sotelo Cabrera to controlled vocabulary for ORCID identifiers ([#360](https://github.com/ilri/DSpace/pull/360)) - Help Sisay proof 200 IITA records on DSpace Test - Finally import Udana's 24 items to [IWMI Journal Articles](https://cgspace.cgiar.org/handle/10568/36185) on CGSpace - Skype with James Stapleton to discuss CGSpace, ILRI website, CKM staff issues, etc ## 2018-03-08 - Looking at a CSV dump of the CIAT community I see there are tons of stupid text languages people add for their metadata - This makes the CSV have tons of columns, for example `dc.title`, `dc.title[]`, `dc.title[en]`, `dc.title[eng]`, `dc.title[en_US]` and so on! - I think I can fix — or at least normalize — them in the database: ``` dspace=# select distinct text_lang from metadatavalue where resource_type_id=2; text_lang ----------- ethnob en spa EN En en_ en_US E. EN_US en_U eng fr es_ES es (16 rows) dspace=# update metadatavalue set text_lang='en_US' where resource_type_id=2 and text_lang in ('en','EN','En','en_','EN_US','en_U','eng'); UPDATE 122227 dspacetest=# select distinct text_lang from metadatavalue where resource_type_id=2; text_lang ----------- ethnob en_US spa E. fr es_ES es (9 rows) ``` - In other news, I was playing with adding ORCID identifiers to a dump of CIAT's community via CSV in OpenRefine - Using a series of filters, flags, and GREL expressions to isolate items for a certain author, I figured out how to add ORCID identifiers to the `cg.creator.id` field - For example, a GREL expression in a custom text facet to get all items with `dc.contributor.author[en_US]` of a certain author with several name variations (this is how you use a logical OR in OpenRefine): ``` or(value.contains('Ceballos, Hern'), value.contains('Hernández Ceballos')) ``` - Then you can flag or star matching items and then use a conditional to either set the value directly or add it to an existing value: ``` if(isBlank(value), "Hernan Ceballos: 0000-0002-8744-7918", value + "||Hernan Ceballos: 0000-0002-8744-7918") ``` - One thing that bothers me is that this won't honor author order - It might be better to do batches of these in PostgreSQL with a script that takes the `place` column of an author into account when setting the `cg.creator.id`