2022 - Week 16

So, it’s been quite a while. Too long, some might say. We would, of course, offer apologies to our regular reader but, for once, it is not laziness on our part, circumstances placing productivity quite beyond our control. First there was a dose of COVID, then there was another dose of COVID, then there was Easter recess and now there’s another dose of COVID. So that’s been our lives, how’s yours?

Handing in homework

The last few weeks have been rather frantic for librarians Anya and Silver, all four shoulders applied to the Herculean task of shoving the Parliament Thesaurus up a subsiding mountain of recently - and not so recently - commissioned software. Or devising an approach to a single subject view of the House of Commons Library, if you will. This week, their report gained its final dotted Is and crossed Ts and made its way into Director-land for marking. Quite how we translate recommendations into actions remains a mystery to be solved. Especially given next week sees Silver investing in a set of crown green bowls and heading off into early retirement. We wish him well and hope he’ll continue to lend his brains in exchange for a knee blanket and a push along Brighton prom.

Enabling enabling Acts

Way back in 2021, a new and much improved version of the statutory instrument website went live. One change we asked for didn’t quite make it through sprint planning, so, for the last few months, whilst users have been able to search for SIs enabled by a given Act, they haven’t been able to search for SIs enabled by more than one Act. Or indeed a combination of SIs enabled by one Act and SIs enabled by another Act. That has now changed. It should be noted that entering more than one Act operates as a non-exclusive OR, returning SIs enabled by one Act, or the other Act, or both. It does not operate as an AND, returning only SIs enabled by both Acts. Neither Librarian Jayne nor her computational helpmate Michael can say they’re absolutely happy with that, and, if they ruled the school, they’d really rather prefer a solution more like parliamentary search where the question of whether to AND or to OR is left open to the user. Still, they do not rule the school and both the Legislation Offices and, more importantly, JO Jane seem happy with the result. Which is all that matters, at the end of the day. And if you are in the market for SIs enabled by Act 1 AND Act 2, there is, of course a query for that.

In other enabling Act news, poor Jayne continues to slog away adding Royal Assent dates to a spreadsheet of Acts kindly donated by TNA Catherine. TNA have the dates - of course they do - but sadly not in the beta environment, which means Jayne has somewhere around 10,500 missing dates to add. All is not pure slog though, the existence of Wikidata and Jayne’s beloved SPARQL helping to automate matters magnificently. At least back to 1959. The rest of history being a somewhat longer job. Once the data is compiled, we will, of course, endeavour to give it back to Wikidata. Our dog food being their dog food and vice versa.

Return to public bill mountain

Working in the open can come with its trials and indeed tribulations but, generally speaking, we’d recommend it to anyone. There are, after all, more experts out there than in here. We’ve frequently found ourselves in receipt of feedback that corrected our misunderstandings, patched over our omissions and generally course corrected our efforts. Thanks be to John.

Dear reader, we cannot say we are proud of this one. A little while back we made our first attempts at mapping the mechanisms of prerogative consent. Three rather nice, quite basic but delightfully self-contained maps emerged. One such map covered the consent of the Grand Steward of Scotland. Except, except, except, there is no Grand Steward, only a Great Steward. How this mistake happened we really cannot say. Luckily, Ben was both on hand and on Twitter to correct our shameful mistake. Both map and data have now been updated and Jayne and Michael have retired from the scene blushing.

Back in undocumented week 14, we met with colleagues from Senedd Cymru to chat through our early efforts on mapping their legislative consent motion procedure. It is, in many ways, not dissimilar to the procedure in the Scottish Parliament, so we took that, relabelled it and tweaked it a little. Differences in the Senedd procedure would be appear to be:

In truth, we suspect that that last one is not in fact a difference and that we just forgot to ask Scottish Parliament colleagues the same question. An email is winging its way to Edinburgh to clarify our confusion.

Also back in week 14, we were delighted to be joined by House of Commons private bills clerk Katya as we set about disemboweling our initial attempts at examination for hybridity. This mini-procedure currently forms part of our House of Commons first reading map. It probably shouldn’t do. The main thing we’d got wrong was making the ‘resolution that the promoters are permitted to proceed with the bill’ step dependent on the Standing Orders (Private Bills) Committee reporting that standing orders ought to be dispensed with and that the promoters may proceed with the bill. Which obviously made no sense. If you spot any red arrows in the map, that’s where we need to fix things. Next week, we hope.

Clock changing catastrophes

Keen followers of our Made ‘n’ Laid Twitter bot may well have noticed that both made and indeed laid dates took the sudden decision to drift off by a factor of 24 hours. This all happening on the 27th March but was only spotted by Jayne in early April. Now, as any fule kno, 27th March just happens to be the date on which we made the glorious leap into a Great British Summer. Which we assumed was more than mere coincidence. “Well, it works on my machine,” is never a great answer to any question but Michael tested the old Ruby code and it did indeed work on his machine. In fairness, he also tested the old Ruby code on Heroku and it worked there too. All of which pointed to something going awry between the Ruby code on Heroku and its rewrite into C# on Azure. Our Jianhan investigated matters and it did indeed turn out to be a BST-related configuration setting in Azure. So that’s fixed now. Thanks Jianhan.

Problematic procedure parsing - or the impenetrable bit in the middle

Week 12 saw the creation of a new card with the memorable title of ‘Untraversability of cancelled deferred divisions is polluting routes to motion agreed, disagreed and deferred in draft affirmative procedure’. Quite a gobful that one. The problem arose from the way we had been treating untraversability in the parsing code, whereby a step with an inbound route having a status of UNTRAVERSABLE would - certain conditions being met - taint any outbound routes with the same status. We had in our heads the notion of a bridge onto an island being closed having the effect of closing all the roads on the island. Unfortunately, this tainting did not stop at the limits of the island, instead having the effect of closing all other bridges off said island. And then all routes off those bridges, wiping out most of the transport network on the mainland. Which was all less than ideal. We’ve now updated all procedural maps with non-current routes to remove the need for ‘tainting’, tested those against the rewritten Ruby parsing code and everything works as expected. We await Jianhan’s fair hand to update the C# parsing code in a similar fashion, at which point, all should be fixed.

Also back in week 12, Jianhan made another small tweak to the C# parsing code, this time to allow an OR step to deal with an input of ALLOWS. Such a change would allow us to allow the maps to allow committee scrutiny should an instrument be withdrawn or revoked. Whilst still allowing for committee scrutiny to be caused should neither of those conditions exist. This week we sat down to adjust maps accordingly and found, much to our chagrin, that, whilst the new logic could be made to work, without also allowing AND steps to handle an input route with a status of ALLOWS, the maps would become somewhat more verbose than any of us consider ideal. A meeting with young Robert is pencilled in for Monday. Tune in next week for more exhilarating procedure parsing news.

Fettling Rush

Librarian Anna and computational expert James continue on their mission to bring just a little more information model and a dash more information management to our Rush database of historical Members. This week saw their second attempt at normalising relationship types, the first attempt not going so well when everyone ended up related to themselves. Attempt number two met with more success, which means we now have a new database table of relationship types and a new page to list them. Anna and James also took the opportunity to de-gender the relationships. Given we know the sex of the person at one end of the relationship and the sex of the person at the other, declaring that someone is the ‘mother of’ or the ‘father of’ all felt rather redundant when we could just roll all such relationships up into ‘parent of’. Lovely stuff as we think you’ll agree. We still have 13 Members related to themselves but we suspect that’s an error in the source data rather than anything that’s gone wrong at our end. Investigations continue.

Some time back a research team got in touch asking for access to a dump of the Rush database. They’ve since done a load of research off the back of the core Rush data and generated new data of their own. A month or so ago, they got back in touch asking if we could make use of any of the new and derived data. Unfortunately quite a lot of what they’d generated either wouldn’t fit into Rush without fairly major database and application changes or didn’t quite fit into the original aims of the Rush database. Nevertheless, James has managed to sneak in a couple of new fields which means that at least some Members now have a They Work for You ID and a boolean to capture a yes / no for ethnic minority. Better and better. Thanks Anna. Thanks James. And thanks Caroline, Stephen and Stephen.