Neil Fitzgerald
@nfitzger.glammr.us.ap.brid.gy
68 followers 5 following 65 posts
Head of #DigitalResearch #BritishLibrary #DigitalScholarship | Executive Committee member: #iiif | #impactocr | #ai4lam | opinions my own. [bridged from https://glammr.us/@nfitzger on the fediverse by https://fed.brid.gy/ ]
Posts Media Videos Starter Packs
Reposted by Neil Fitzgerald
wragge.hcommons.social.ap.brid.gy
I've been playing with AllMaps to georeference SLV maps that are available via @IIIF. Here's a set of maps of the Melbourne CBD created for fire insurance in the 1920s. https://viewer.allmaps.org/?url=https%3A%2F%2Fannotations.allmaps.org%2Fmanifests%2F628c216109f482f1 Hold down 'b' to remove […]
Original post on hcommons.social
hcommons.social
Reposted by Neil Fitzgerald
wragge.hcommons.social.ap.brid.gy
Blog post number 2 from my State Library Victoria residency is all about urls -- GLAM hacking 101! https://updates.timsherratt.org/2025/09/23/exploring-slv-urls.html #glam #libraries #digitalhumanities
Exploring SLV urls
I like urls. They take you places. And if you know how to read them, they can tell you things about the systems that created them. One of the first things I did when I started my residency at SLV LAB, was to try and understand how their collection urls work. There’s a couple of well-worn methods I use when digging into a new site. The first is url hacking – this involves fiddling around with the parameters in a url and submitting the result to see what happens. The Trove Data Guide includes some examples of hacking Trove urls to change the delivery of search results. The second method involves opening up the developer console in your web browser and watching the activity in the network tab as you click on links. This tells you where the information that gets loaded into your browser actually comes from – sometimes exposing handy urls that you can use to shortcut access to useful data. ## Permalinks The SLV uses Primo for its public-facing catalogue, as well as other systems such as Rosetta and IIIF to deliver digitised content. I’d noticed that Zotero gets some useful data from the catalogue using the default ‘Primo 2018’ translator, however, important things like the item url aren’t captured. The problem is that Primo’s ‘permalinks’ are generated as required by a browser click – they’re not embedded anywhere on the page. This makes it hard to Zotero to grab them. So I started wondering how Zotero could construct short, persistent(ish) links to items. Here’s a link to an item in Primo: https://find.slv.vic.gov.au/discovery/fulldisplay?vid=61SLV_INST:SLV&search_scope=slv_local&tab=searchProfile&context=L&docid=alma9941325055707636 It looks pretty long and messy, but if you start deleting parameters and resubmitting, you’ll find that only two parameters are essential, `vid` and `docid`. This means we can rewrite the url as: https://find.slv.vic.gov.au/discovery/fulldisplay?vid=61SLV_INST:SLV&docid=alma9941325055707636 Much nicer. The ‘permalink’ for the same item is: https://find.slv.vic.gov.au/permalink/61SLV_INST/1sev8ar/alma9941325055707636 If you look closely at the url path and compare it to the example above you’ll see the path is constructed from `/vid/[some other id]/docid`. One of the librarians explained to me that the other identifier in the permalink is an encoding of the view type, but given that the ‘fulldisplay’ view is the default, we don’t really need it. So the shortened url seems fine for use in Zotero and is easy to generate from the current url. Nice. It’s also worth noting that the `vid` value doesn’t seem to change, so to construct catalogue urls in your code, all you really need is the ALMA identifier that’s in the `docid` parameter. ## Structured data Item pages in Primo include a link labelled ‘Display source record’. If you click on this you’re taken to a representation of the item’s metadata in MARC. Here’s what the urls look like: https://find.slv.vic.gov.au/discovery/sourceRecord?vid=61SLV_INST%3ASLV&docId=alma9941325055707636&recordOwner=61SLV_INST Notice that the ‘fulldisplay’ in the url path above has changed to ‘sourceRecord’. There’s also a new `recordOwner` parameter, but it seems you can delete this and still get the same result. Having access to the MARC record is handy, because it delivers the metadata in a simple, structured plain text format. But while the ‘source record’ page looks like a plain text file, it’s actually a HTML page that embeds a plain text record. If you open up the network tab of your browser’s developer console and reload the ‘source record’ page, you’ll see a different url is loaded under the hood: https://find.slv.vic.gov.au/primaws/rest/pub/sourceRecord?docId=alma9941325055707636&vid=61SLV_INST:SLV&recordOwner=61SLV_INST&lang=en See how the url path has changed from `/discovery/` to `/primaws/rest/pub`? This url _does_ deliver a plain text version of the MARC record. Once you have the plain text version you can parse the contents to extract the structured data. There are tools that can probably do this automatically, but it’s also pretty easy using regular expressions. Here’s an example of some code I used to parse map records. def get_marc_value(marc, tag, subfield): """ Gets the value of a tag/subfield from a text version of an item's MARC record. """ try: tag = re.search(rf"^{tag}\t.+", marc, re.M).group(0) subfield = re.search(rf"\${subfield}([^\$]+)", tag).group(1) except AttributeError: return None return subfield.strip(" .,") You can also access a JSON representation of the record by adding the parameter `&showPnx=true` to the catalogue url: https://find.slv.vic.gov.au/discovery/fulldisplay?vid=61SLV_INST:SLV&search_scope=slv_local&tab=searchProfile&context=L&docid=alma9941325055707636&showPnx=true Once again, this is a JSON representation embedded in a web page. Using the same developer console trick, you can identify the direct url is: https://find.slv.vic.gov.au/primaws/rest/pub/pnxs/L/alma9941325055707636?vid=61SLV_INST:SLV&lang=en&search_scope=slv_local&showPnx=true&lang=en You should be able to parse the response from this url as JSON and use it in your code. I think the Zotero translator makes use of this `pnx` data. If you want to download the MARC or JSON representations in your code, all you really need is the `alma` identifier. Just use it to construct one of the direct urls, such as this: https://find.slv.vic.gov.au/primaws/rest/pub/sourceRecord?docId=alma9941325055707636&vid=61SLV_INST:SLV The `recordOwner` and `lang` parameters are not needed, and the `vid` parameter doesn’t change. Librarians using Primo have documented a number of tricks like this and shared handy bookmarklets to rewrite urls and get catalogue data in different forms. ## IIIF and images SLV delivers digitised images using IIIF. The IIIF manifest urls are not directly exposed through the web interface, but you can construct your own. IIIF manifest urls look like this: https://rosetta.slv.vic.gov.au/delivery/iiif/presentation/2.1/IE24074939/manifest.json All we need to construct them is the `IE` identifier, in this case `IE24074939`. But where do you find this identifier? If you’re looking at an image in the SLV’s image viewer, the url will be something like this: https://viewer.slv.vic.gov.au/?entity=IE24074939&mode=browse Yep, the `IE` identifier is right there in the url. Just extract it from the viewer url, and plug it into the manifest url! If you’re looking at a catalogue record, or starting with one of the `alma` identifiers, you can get the `IE` identifier from the `956$e` field of the MARC record. The IIIF manifest will, in turn, provide identifiers for individual images that can be requested using the standard IIIF syntax. To save myself a bit of fiddling about, I created a userscript that exposes the IIIF manifest url within the image viewer. If you install it you’ll see something like this: ## Handles Links to digitised items sometimes come in the form of ‘handles’: http://handle.slv.vic.gov.au/10381/4338980 These urls are redirected to the image viewer. If you want to construct one of these handles, the identifier can be found in `956$a` field of the MARC record. ## From old to new I was looking at the datasets created about 8 years ago in the SLV open data repository and noticed they included urls from the previous catalogue. Fortunately, the old urls redirect to the new system. For example, this url: http://search.slv.vic.gov.au/MAIN:Everything:SLV_VOYAGER1842440 Redirects to: https://find.slv.vic.gov.au/discovery/fulldisplay?context=L&vid=61SLV_INST:SLV&search_scope=slv_local&tab=searchProfile&docid=alma9918424403607636 If you look closely at the urls you’ll see that the identifier from the old system is embedded in the new identifier: `1842440` is in `9918424403607636` – `99_1842440_3607636`. This means if you have a lot of old urls, such as in the open datasets, you can easily rewrite them in your code. ## The process of GLAM hacking No doubt a lot of this is well-known to librarians, and there’s probably many subtleties or complexities that my poking about has missed. But I wanted to document the process as much as the results – to give an idea of what I do when I approach a new GLAM collection online. I suppose this is GLAM hacking 101.
updates.timsherratt.org
Reposted by Neil Fitzgerald
wragge.hcommons.social.ap.brid.gy
Kicking off my residency at the SLV LAB with my first blog post. Many more to come! https://updates.timsherratt.org/2025/09/22/creative-technologistinresidence-at-the-state.html #glam #libraries #digitalhumanities
Creative Technologist-in-Residence at the State Library of Victoria!
I’m very excited to be the new Creative Technologist-in-Residence at the SLV LAB. For the next few months I get to play around with metadata and images, think about online access, experiment with different technologies, and build things to help people to explore the State Library’s collections. In other words, I get to be in my happy place! My group at the recent SLV WikiFest was thinking about ways of helping researchers find resources relating to particular locations – how do I find material about my suburb, or my street? Coincidentally, the main focus of my residency will also be place-based collections, so I get to really think through some of the possibilities. SLV staff have already pointed me to some amazing maps and photographs, such as the Committee for Urban Action collection, the Mahlstedt fire survey maps, the MMBW plans, and the Victorian parish maps. At the same time, I’ll be using my usual GLAM hacking approach to poke around in the SLV website to try and understand what data is currently available, identify any roadblocks, and document opportunities for computational research. The results of my residency will be shared on the SLV LAB site, in GitHub, in the SLV section of the GLAM Workbench, and of course here. As usual, I’ll be working in the open, documenting things as I go along, so please join me on the journey! Although the residency was formally announced today, I’ve actually been working with SLV data for the last couple of weeks and I’ve already got a backlog of stuff I need to blog about. Here’s a taster – what happens when you generate bounding boxes for thousands of parish maps from the available metadata and throw them on a map…?
updates.timsherratt.org
Reposted by Neil Fitzgerald
petrichor.digipres.club.ap.brid.gy
📢 Applications open for the 2026 Software Sustainability Institute Fellowship on 11 August, just a couple of weeks away, closing 6 October! 🚀

You don't have to be writing software yourself, just interested in promoting good research software practice. It's UK-based but there are 3 places […]
Original post on digipres.club
digipres.club
Reposted by Neil Fitzgerald
petrichor.digipres.club.ap.brid.gy
There are several SSI Fellows with #glam and #digitalhumanities backgrounds: it would be amazing if there could be more of us! If this is you and you have an idea for a Fellowship project, please feel free to DM me with questions, I'd be happy to help.

It might be that you write research […]
Original post on digipres.club
digipres.club
Reposted by Neil Fitzgerald
infodocket.newsie.social.ap.brid.gy
Coalition For Networked Information (CNI) Names Kate Zwaard as New Executive Director https://www.infodocket.com/2025/07/22/coalition-for-networked-information-cni-names-kate-zwaard-as-new-executive-director/ @cni_org #libraries #infotech #edtech
Reposted by Neil Fitzgerald
discoursology.social.coop.ap.brid.gy
And it still failed. “Amsterdam followed every piece of advice in the Responsible AI playbook. It debiased its system when early tests showed ethnic bias and brought on academics and consultants to shape its approach, ultimately choosing an explainable algorithm over more opaque alternatives […]
Original post on social.coop
social.coop
Reposted by Neil Fitzgerald
fpianz.bsky.social
Hi #DH2025 attendants,
tomorrow we have a workshop titled "Exploring the GOLEM ontology and knowledge graph for narrative and fiction" and a very big room!

So, even if you didn't register, you're welcome to attend in room Aud B3. You can attend online. 🥳
@dh2025lisbon.bsky.social
slide promoting a workshop about graphs and ontologies for literary studies, held at DH2025
nfitzger.glammr.us.ap.brid.gy
And we’re off for #dh2025 with queues out of the door!
Line of people queuing up for entry to the conference
Reposted by Neil Fitzgerald
tillgrallert.digitalcourage.social.ap.brid.gy
Found the D. Now looking for H.

#dh2025
nfitzger.glammr.us.ap.brid.gy
On way to #dh2025 and looking forward to a full week of #dh #digitalscholarship fun and catching up with old friends and making new!
Airport departure board and ceiling lights
Reposted by Neil Fitzgerald
edent.mastodon.social.ap.brid.gy
Hey! Stop what you're doing and nominate someone for the OpenUK Open Source Awards!

https://openuk.uk/awards/

You can nominate any UK based person, project, or group. Including yourself 😄

We promise a glittering awards ceremony which is free to attend (no […]

[Original post on mastodon.social]
Awards judges are Liz Rice, Lisa Allen, Nicholas Vibert.
Reposted by Neil Fitzgerald
christof.fedihum.org.ap.brid.gy
#dh2025 in #lisbon is next week! Let's make #Mastodon a place where to discuss and exchange around the conference, in the spirit of #Openness and #accessibility!

Conference website: https://dh2025.adho.org
DH2025 logo, in dark purple, on the left, together with the Mastodon logo in light blue, on the right.
Reposted by Neil Fitzgerald
edent.mastodon.social.ap.brid.gy
🆕 blog! “Grinding down open source maintainers with AI”

Early one morning I received an email notification about a bug report to one of my open source projects. I like to be helpful and I want people who use my stuff to have a good time, so I gave it my attention. Here's what it said:

😱 I […]
Original post on mastodon.social
mastodon.social
Reposted by Neil Fitzgerald
pbinkley.code4lib.social.ap.brid.gy
I've drifted away from IIIF lately (damn you GenAI), and I was sorry to miss the opportunity to attend the 2025 conference in Leeds (where I went to the first couple of medieval studies conferences in the '90s), but I'm glad to see the sessions are up on Youtube […]
Original post on code4lib.social
code4lib.social
nfitzger.glammr.us.ap.brid.gy
#iiif 2026 venue location is going to be The Netherlands 2-6th June!
Reposted by Neil Fitzgerald
nfitzger.glammr.us.ap.brid.gy
Thank you to everyone who has already submitted some really interesting sounding #ff2025 proposals. Final reminder for those still to submit, closing date this Sunday 1st June! See the website: https://sites.google.com/view/ai4lam/fantastic-futures-2025?authuser=0 for background information and […]
Original post on glammr.us
glammr.us