CGSpace Notes

Documenting day-to-day work on the CGSpace repository.

October, 2023

2023-10-02

  • Export CGSpace to check DOIs against Crossref
    • I found that Crossref’s metadata is in the public domain under the CC0 license
    • One interesting thing is the abstracts, which are copyrighted by the copyright owner, meaning Crossref cannot waive the copyright under the terms of the CC0 license, because it is not theirs to waive
    • We can be on the safe side by using only abstracts for items that are licensed under Creative Commons
  • This GREL extracts the text content of the <jats:p> tags (ie, no other JATS XML markup tags like <jats:i>, <jats:sub>, etc):
forEach(value.parseXml().select("jats|p"),i,i.xmlText()).join("")
  • Note that we need to use select("jats|p") instead of select("jats:p") for OpenRefine’s parseXml, and we need to join() on the end
  • I updated metadata for about 3,000 items using Crossref metadata
    • I stripped trailing periods for titles where they were missing on the Crossref titles
    • I copied abstracts for about 600 items that were missing them, for items that were Creative Commons
    • I updated publishers for a few thousand more where ours and Crossref disagreed, checking a handful manually first
  • I also added subjects to the crossref_doi_lookup.py script to see if they will be useful for us
    • When checking with csv-metadata-quality I can validate those subjects against AGROVOC and add them if they are valid

2023-10-03

  • I added the item type to the collection subscription email on DSpace 6
    • It’s done differently on DSpace 7 so I’ll have to see how to do it there…
  • Test a patch that fixes a bug with item versioning disabled in DSpace 7
    • I hadn’t realized that DSpace 7 defaulted to versioning being enabled, whereas we never used this in DSpace 6 (yet)
  • Submit an issue regarding duplicate Discovery sort fields in DSpace 7

2023-10-05

  • Some discussion this week about issue and online dates for journal articles, with regards to PRMS
    • I looked more closely at the Crossref API docs and realized (again) that their “issue” date is not the same as our issue date—they take the earlier of the print and online dates!
    • Also, very many items have no print date at all, perhaps due to delays, errors, or simply because the journal is “online only”!
    • I suggested again that PRMS should consider both, and take the earlier of the two, then make sure whether the date is in the current reporting period
    • I managed to find 80 items with print publishing dates from 2023 and updated those from Crossref, but for the rest we will have to think about how we handle them

2023-10-06

  • More discussion about dates after looking closely at them yesterday and today
    • Crossref doesn’t always have both issued and online dates—sometimes they have one, sometimes the other, and sometimes both, so we cannot rely on them 100% for that.
    • In some cases, the item is available online for months (or even a year!), but has not been included in an issue yet, and thus has no “issue” date, for example:
    • Even journals make mistakes: this journal article was “issued” in 2022, but online in 2023! This is not Crossref’s fault, but the journal’s!
    • I found a bunch more strange cases regarding dates and recommended to PRMS team that they use the earlier of the issued and online dates
  • Meet with Aditi to start discussing the scope of knowledge products we can get for the CGIAR climate change synthesis

2023-10-07

  • I spent a few hours (!) debugging an issue in Python when downloading PDFs
    • I think it ended up being due to requests_cache!!! Grrrr
    • On a positive note I’ve greatly refactored my script for discovering and downloading PDFs from Unpaywall
  • Export CGSpace to check for missing Initiative collection mappings
  • Start a harvest on AReS

2023-10-08

  • Starting to see some stuck locks on CGSpace this morning
    • I will give notice and restart CGSpace
  • Work on Python script to harvest DSpace REST API and save to CSV

2023-10-11

2023-10-12

  • Discuss MODS issues in CGSpace’s OAI-PMH with Stefano and Valentina
    • AGRIS can currently only support MODS 3.7 so they need us to roll our 3.8 work from 2023-06 back down, which requires some minor changes to the crosswalk

2023-10-13

  • I did some more minor work to get the MODS 3.7 changes ready for AGRIS on DSpace Test

2023-10-14

  • Export CGSpace to check for missing Initiative collection mappings
  • Start a harvest on AReS
  • I deployed the AGRIS changes for OAI-PMH on CGSpace

2023-10-16

  • Fix some typos in ILRI subjects on CGSpace
    • These were affecting the taxonomy on ilri.org
    • I exported CGSpace and did some validation and cleanup on ILRI subjects, moving some to AGROVOC subjects
  • Port the MODS 3.7 crosswalk from DSpace 6 to DSpace 7
    • It works fine, we only need to take note that the OAI-PMH endpoint is now relative to the /server path instead of a dedicated OAI path

2023-10-17

  • Export CGSpace to do some cleanups all over on invalid metadata values
    • I found many metadata values in the wrong field, wrong format, etc
    • This ended up being cleanups for 694 items

2023-10-20

  • Export CGSpace to check for missing Initiative collection mappings
  • I also did a run of looking up all Initiative outputs with DOIs against Crossref to check for missing dates, publishers, etc
    • I found issued dates for a few, and online dates for over 100
    • I also fixed some incorrect licenses, access status, and abstracts

2023-10-23

  • Export a list of Internal Documents for Peter to review to see if we can re-classify some
    • Peter sent changes for 740 items so I applied them on CGSpace
  • Testing the changes for OpenRXV DSpace 7 compatibility

2023-10-24

  • Sync DSpace 7 Test with a fresh CGSpace snapshot
  • Meeting with FARA to discuss DSpace training and support
  • Meeting with IFPRI about migrating to CGSpace

2023-10-25

  • Maria was asking about an error deleting an item in the Alliance community
    • The error was “Authorization denied for action OBSOLETE (DELETE) on BITSTREAM:…”
    • According to my notes this error happened a few times in the past and is some kind of corner case regarding permissions
    • I deleted the item for her
  • I deleted a handful of old CRP groups on CGSpace

2023-10-27

  • Peter sent me a list of journal articles from Altmetric that have an ILRI affiliation, but no Handle
    • I used my crossref_doi_lookup.py script to fetch the metadata for them using their DOIs, then did a bunch of cleanup in OpenRefine
  • Test some LDAP patches for DSpace 7

2023-10-30

  • Some work on metadata for Aditi’s review
    • I found more preprints grrrr

2023-10-31

  • Peter got back to me with the cleanups on ILRI journal articles from Altmetric that we didn’t have on CGSpace
    • I did another duplicate check and found four more duplicates that had been uploaded yesterday
    • Then I did a quick sanity check and uploaded the remaining 19 items to CGSpace