2023 - Week 14

Weeknotes start - as they so often do - with apologies. Your regular correspondents encountered a procrastination hurdle, on which they tripped and fell. Please rest assured, Anya and Michael are mortified. They feel they’ve let the team down, let themselves down and - worst of all - let our dear reader down. They will learn from the experience. Or take learnings, as Young Robert might say.

Whilst our notes have not always been timely, we have consoled ourselves with the notion that they have a little more skip and bounce than the average RAG report. At least that’s what we thought we thought. Unfortunately, rumours have reached our ears - as rumours are prone to do - that our dedicated reader is keen for us to take a more professional tone. For that reason - and for one week only - we’ve asked ChatGPT to rewrite our notes in the style of a business person with an MBA. If you prefer our usual ramblings, please read on. If you’d prefer something with a little more workplace polish, please click here [ROBOTS].


Team:reference data continue to plug away at general election planning. Librarians Anna and Phil have been hard at work tidying our party data. Phil has removed any and all orphan parties - those with neither election candidates nor parliamentary whippings - from MNIS. Orphans removed, Anna turned her information management talents to party deduplication. We had some parties listed twice - once by their full name, once by the short name. Tidying complete, we no longer do. Still on parties, Anna has also finished tidying our party affiliation - or whippings if you will - start dates, which had gone awry for a handful of Members elevated to the House of Lords. Top work Phil and Anna.

Party progress progressing apace, investigations by our colleagues in Software Engineering have also cleared up a constituency question or two. We now have a much better idea of which database fields we should care about. And, more importantly, which ones we needn’t. We know, for instance, that the ‘Locata ID’ was there to support an old ‘find my MP’ type system. A system that has since been replaced. Possibly twice. We also know that the ‘OS Name’ field is not used in any downstream systems. Or at least none that can be found. And the ‘Old DIS ID’ is also deprecated. The clue was probably in the name, DIS being an old acronym for The Library. The Library has a new acronym now. Of course it does. But everyone still calls it The Library. Obviously. Anyay - three fields we can comfortably lose interest in.

Unfortunately, the same is not true of the geometries field. This is used to hold a constituency boundary shape file. The shape file, in turn, is used to render maps on constituency pages. How and when such shape files are acquired and who uploads them remains a mystery to be solved.

Really Simple Syndication

As our regular reader will be more than aware, our crack team of librarians spend much of their working lives taking material from various procedural systems, subject indexing it, procedurally indexing it and linking things together to better reflect reality. For most of our older systems, feeds of material are automated. For some of our of more recent systems, project time, money and attention were exhausted before any feeds were built.

If you tuned in last time, you’ll know that Librarian Anya commissioned computational cabin boy Michael to take a peep at the bill system API and work out whether or not feeds could somehow be wrangled from it. And it turned out they could. Our bill papers app went live a couple of weeks ago, offering RSS feeds for bill papers by type and by a given bill. So if you’re following the progress of a bill or two and want updates in your favourite feed reader or email client, please take a look.

Since our last missive, Michael has added a dash of left joins and a sprinkling of inner joins and the whole thing is considerably faster. A thing he’s quite proud of. After all, when you’re carrying out mission critical librarianship, speed is of the essence.

Not content with drowning in floods of emails, Anya has also been talking with Library data scientist Louie who’s now looking into the possibility of piping our new RSS feeds into Sharepoint. Which is where our librarian’s task lists are kept. Poor librarians.

At this point, Michael considered his work complete, downed tools and made for the Tothill Street smoking step. Where he was once more collared by Anya taking the opportunity to point out that the committee system also lacks anything in the way of feeds. And wondering if we might, perhaps, take the committee system API and churn out some RSS for that too. A couple of weeks later, we now have a feed of oral evidence transcripts. Of a sort. They don’t actually update yet. The next step being to rewrite the import code whilst balancing the need to keep things in sync with the desire to not swamp the API. At which point, we’ll have RSS of evidence transcripts, committee work packages, committee work packages by type and ICS feeds of committee meetings and bits of those meetings. Smashing.

Eggciting news

Imagine waking up on Spring Equinox Sunday, only to find yourself with 100 clocks to reset. That’s the position our crack team of librarians find themselves in, every time planned sitting days change. Scrutiny periods for instruments are set out in legislation and often - though not quite always - count assorted patterns of sitting days. At any one time, we have roughly 100 instruments subject to such scrutiny periods before Parliament. Which means a sitting day change results in a whole morning lost to clock end updates. Not a job that sparks joy.

Luckily, we have our beloved egg timer and our beloved egg timer can take the types of days to count, the number of days to count and the date from which we start counting and automagically produce an anticipated end date from its magician’s hat. Our latest experiment - or safe to fail probe, as Young Robert might say - involves plugging the egg timer into the procedure editor - the database to which all those end dates are added by hand - and seeing what happens.

To that end our Jianhan has been hard at work updating both procedure editor database and application to be more clock compliant. It now describes calculation styles, clocks and day counts, all of which are necessary for egg timer integration. We have a plan for migrating and populating the new bits of the model to data platform mk 3 and a sketch of the code necessary to make the two systems talk. More news soon.

In other egg timer news, we’re pleased to announce that Librarian Jayne and Michael once more formed like Voltron, and another tiny egg timer gap has now been plugged. Whilst we’d always been good for parliament periods, dissolutions, sessions - and, by implication - prorogations, adjournment days and two flavours of sitting days, we had a recess shaped gap in our data, if not in our models. This gap has now been plastered over and the egg timer comes complete with recess listings. Listings that are also available as subscribeable calendar feeds. Because of course they are. If a job’s worth doing, it’s worth doing properly. And we don’t cut serialisation corners in these parts. If your calendar lacks automated recess dates, please consider subscribing.

Procedural parsing

Considering ourselves to be the first team to ever produce machine-readable, logical and arithmetic parliamentary procedure maps, we’re also fairly confident we’re the first team to ever force a machine to parse one. Not that we rest on our laurels. This week, our Jianhan has been occupied with translating Young Robert and Michael’s parsing code scribblings into production ready code. Which means our parsed procedure steps now come complete with occurrence score annotations, the better to inform our crack team of librarians which bits of procedure are likely to happen. And which bits hardly ever happen. Lovely stuff.

Map making

Returning from her well-deserved vacation, Librarian Jayne has once more had her nose pressed to the procedural cartography grindstone. The aftershocks of the recent machinery of government change continue to make themselves felt as parliamentary cogs disengage, gears shift and flywheels spin back into life.

BEIS went down and took its scrutinising committee with it, to be replaced by a brand new Business and Trade Committee. Which means LRO procedure routes to the BEIS Committee are now time-bound firmly in the past and new steps and new routes to the Business and Trade Committee have been added. A similar change was seen in our CRaG treaty map where the Business and Trade Committee also fills the gap once occupied by the International Trade Committee.

In other treaty procedure news, Jayne has also added new steps and routes for the depositing of government negotiation objectives, committee reports on such objectives and government responses to such reports. Unfortunately, the treaty website does not yet cope with steps happening before the treaty itself is laid. We await our colleagues in Software Engineering making a couple more tweaks to the website code and we should - in theory - be in the enviable position of not only supporting treaties laid in Parliament, but pre-laying scrutiny too. A major breakthrough, as we’re sure treatyheads everywhere will agree. Top work Jayne.

What is the range of a breathalyser?

By this stage of the season, we had been hoping to report that our depositing model would be close to complete. Sadly, we find ourselves still in the midst of an intellectual disagreement about the nature of deposits, the nature of papers and the nature of artefacts. The famed depositing of a breathalyser is causing much consternation, as conversation drifts into HTTPRange-14 territory. Not territory any of us want to occupy. House of Lords librarians from the depositing corner have been summoned, in the hope they can help us extricate ourselves from the intricacies of things that HTTP most definitely will not and cannot dereference.

In more cheery modelling news, we can report that our first pass at a related item model is now considered complete. If a touch verbose. It’s supposed to specialise the way in which our crack team of librarians make links between assorted types of parliamentary material, originating in assorted systems. For now, they have but a single link type - related item - to rely on. An exercise to explore what’s in librarian heads - or their ‘mental models’ as Young Robert might say - has been embarked upon and we’re pretty sure the model can express what we need it to express. The only question remaining being whether our turn toward the ternary is one or two triples more expansive than it needs to be. An email has been dispatched in the direction of friend of the family Silver in search of a considered second opinion. We wait, breath bated.

Also considered complete is our written statement making model. Though, since that only provides a dab of glue between our making available model and our written statement model, it’s not much to get terribly excited about.

Finally, Librarian Jayne and computational midshipmen Young Robert and Michael have been busy stripping back and rebuilding our treaty model. It’s still missing a comment or two, but - when read in conjunction with our making available, laying and paper models, we think we think it makes sense.

Librarian mapping

Not content with librarian’s mapping, this time out we’ve also spent some time mapping librarians. Boss ‘brarian Anya and her computational lapdog Michael were joined by boss boss ‘brarian Bryn for a sketching session of the librarian services offered above and beyond a very thin layer of pixels. Our user base tends toward the diverse and enquires are drip fed to librarian ears through a variety of channels. How we log, triage and indeed commoditise the outputs of these calls remains an unsolved problem. Librarian Jayne’s shiny SPARQL library once more proving an ideal to aim for.

Given time and a whiteboard, we’d like to bend Bryn’s ears on the services built on services built on services that happen beneath the pixel waves. Ideally ridding ourselves of the dreaded “product” word and thereby taking out two birds with a single stone.


It’s not all work in these parts. Sometimes we get a chance to play too. Sometimes we even double up, combine and do both. Such was the case Thursday before last when Anya, Young Robert and Michael took a train to the seaside for a boozer-based appointment with Silver. Well, almost the seaside. Lewes being a mere hop and a skip as the seagull flies.

Anya, having recently been appointed Product Owner of our new search service, found herself a little baffled about the differences between Product Owners, Product Managers, Service Owners, Service Managers, Project Managers, Delivery Managers and etc. Being ontological, domain driven types, an attempt was made to use beer glasses and beer mats to set out some form of taxonomy. Reader, we did not get so far. Quite safe to say, we all remain baffled.

We moved onto the main business of the day. Young Robert and our Jianhan have been lumbered with the unenviable task of slurping triples out of data platform mk 1, reshaping them - we think, and pushing the results into data platform mk 4. Not an easy task. In a pixel-based chat, Silver had mentioned the utility of SPARQL CONSTRUCT queries for such tasks, but - given Anya and Michael have only just started their beginners’ SPARQL course - this seemed a little beyond them. Silver’s legendary patience and sketching skills came into their own and we think we all left the pub the wiser. Thanks Silver. Super chap.

Work pens placed into pencil cases, Michael hoped Young Robert would be tempted to a brief reprise of their legendary dodgem battle of Brighton Pier. Sadly, Robert succumbed to sleepiness somewhere around tea time and headed home. Undeterred, Anya, Silver and Michael took the train over to Brighton where they were joined by data scientist Louie. In a pub. Of course. A lovely time was had by all.