2020 - Week 21

Twacking tweaties

Way back in week 14 Twitter finally consented to handing Michael keys to their API. He’d pulled together some old code from an Erskine May mangling Twitter bot with a SPARQL query from Librarian Jayne, and made a new bot that tweets every time the FCO lays a treaty before Parliament. Hereafter referred to as the Tweaty Twacker. He promptly forgot about it because the FCO failed to turn up with any treaties. Which made the whole thing quite impossible to test. Until Thursday, when Morocco No. 1 (2020) landed on our doormat. Or, to give it its full title, “Agreement, done at London on 26 October 2019, in the form of an exchange of notes between the Government of the United Kingdom of Great Britain and Northern Ireland and the Government of the Kingdom of Morocco in respect of Protocol 4 of the Agreement establishing an Association between the United Kingdom of Great Britain and Northern Ireland and the Kingdom of Morocco”. And we discover that Michael’s code did in fact work. Which surprised everyone. Not least Michael.

We feel we should point out that Tweaty Twacker was put together in free time. As a citizen. And not as an employee. Because our data is openly licenced and because our SPARQL endpoint is openly available, almost anyone with the barest modicum of code skill could have easily done the same. With a name like Tweaty Twacker, it’s clearly not an official, supported service. Though it’s hard to think of much that could go wrong. If anyone reading this has any ideas for a more mature branding approach, please do get in touch.

Procedure mapping

Librarian Jayne and Michael have had a busy week, finally getting around to turning their game of email tennis with Journal Office Jane into maps and data. They kicked off Monday by adding steps for the depositing of a criminal offences statement by the government, a duty imposed by the EU Withdrawal Act 2018. Precedence suggests this only happens under affirmative procedures, primarily drafts so far and also one made instrument. As neither the Act nor the written statement are specific on procedural detail, relevant steps have been added to all four procedures. Because what’s the point of a belt if you don’t also have braces? By the end of the week, Jayne had gone back and re-indexed affected SI work packages from the start of the 2017-19 session. Including, for example, the Operation of Air Services (Amendment etc.) (EU Exit) Regulations 2018. And - because she is nothing if not cognisant of user needs as emergent from materials - she’s also written a SPARQL query returning all SIs laid into Parliament that have been accompanied by a criminal offences statement. A present is always nicer when wrapped with a bow.

Procedure mapping continued throughout the week, with Jayne and Michael donning gardening gloves and getting stuck into the thorny tangle of SIs being revoked whilst still before Parliament. Whilst an SI might be revoked at any point in its life, we are keen to not bite off more than can reasonably be chewed. And tracking the full lifecycle of legislation is really more of a job for our friends at The National Archives. But where revocation impacts on parliamentary procedure, a keen interest is taken. Drafts being drafts, until they leave Parliament approved or unrejected they are not on the Statute Book and cannot be revoked. So for the purposes of revocation impacting on procedure, the draft procedures remain untouched. Instruments laid as made on the other hand, might in certain circumstances be revoked during their period of parliamentary scrutiny. So both the made negative and made affirmative procedures now feature new steps and a plethora of new routes to cope with both revocation and replacement. And a strongly worded scope note that these steps should only be actualised when revocation occurs during the scrutiny period. Once again, Jayne has gone back to the start of the 2017-19 session and re-indexed instruments revoked - and occasionally replaced - whilst still before Parliament. Such as the Abortion (Northern Ireland) Regulations 2020, which was revoked and replaced by the Abortion (Northern Ireland) (No. 2) Regulations 2020 whilst approval motions for the former were before both Houses. And once again, Jayne has take out her SPARQL spanner and written a query to return all SIs revoked whilst still before Parliament. Applause Jayne.

Mapping the revocation steps introduced the question of whether revocation should preclude committee decisions. So Jayne and Michael fired up Outlook and sent off another email to JO Jane, who got back in 10 minutes to say in theory, committees should not consider revoked instruments but occasionally one slipped through the net. Such as the Public Sector Bodies (Websites and Mobile Applications) Accessibility Regulations 2018 which was considered by the JCSI. So the decision was taken to add preclusion routes from revocation to committee decisions. However, whilst we may be conservative on output, we are always liberal on input. Whenever a committee makes an exception to the general rule, there is nothing in our software to prevent us actualising any step - precluded or otherwise. And everyone is happy.

Jayne and Michael also added a new step to the made affirmative procedure to handle instruments lapsing. This usually happens when the government runs out of time to get approval motions through Parliament. A fate which befell the Immigration (Amendment) (EU Exit) Regulations 2019. Jayne has re-indexed relevant SIs since the start of the 2017-19 session to indicate lapsing where pertinent and crafted a fine SPARQL query returning lapsed SIs for your querying pleasure.

A large part of the week was spent splicing the draft and made negative procedures and gluing them back together to fashion something Jayne and Michael thought might describe the Census SI procedure. It’s perhaps more primary school art than Frankenstein, although the results are no less horrifying. This is formally considered a composite procedure; informally the words ‘hot’ and ‘mess’ have been used. Conversations with Jane teach us that the procedure for Census SIs is somewhat more improvised than for regular instruments. Jane thought that the two parts happen in series, with the negative part of the procedure flowing into the affirmative part following the usual 40 day praying period. This time around however, the government tabled the approval motion whilst the negative part of proceedings was still in full swing. As you might infer from the subject matter, this procedure comes along once every 10 years - we’ve yet to track down someone who lived through the 2010 Order and can tell us the tale. Next week, Jayne plans to comb through Erskine May and the Companion to Standing Orders in search of clues as to what happened the last time such an instrument passed into a low earth orbit. If anyone has any recollection - or knows anyone who might have a recollection - of previous dealings with the Census SI procedure please do shout. We’d love to hear from you.

A little while back, the team did some work on made affirmatives under the Sanctions and Anti-Money Laundering Act 2018. These instruments have a slight quirk whereby sand does not begin to flow through the egg timer of approval until a provision of the regulation comes into force. JO Jane declared herself happy with the proposed map but did suggest speaking to someone with a legal brain at the FCO before proceeding. And duly put us in touch with just such a person. The FCO have since got back in touch and mid-June has been agreed on to poke and prod maps via the pixels on our shared screens.

In the course of all these changes, Jayne and Michael noticed they’d added allows routes from SLSC decisions to the tabling of an approval motion in the House of Lords, in both affirmative procedures. They have no idea when this happened or indeed why. But as any fule kno it quite clearly breaks JCSI scrutiny reserve under Standing Order 72. So those routes have now been removed.

Your weekly egg timer update

If you tuned in last week, you’ll know that Michael’s code for handling dates in the egg timer was on the shonky side. The shonkiness was not in his handling of sitting days, or adjourned days, or prorogued days, or dissolution days, or even parliamentary days as yet unannounced. The shonkiness was his handling of normal days. The ones that appear in calendars. To sidestep the shonkiness, he’s stripped out his calendar date class and monkey patched the Ruby date class. This particular piece of monkey patching is probably quite safe; it seems unlikely that method names such as is_commons_short_adjournment? are part of many people’s core date handling. The patching took up a good part of Monday and Tuesday and did not really help to prove the concept. By Wednesday morning he was pretty much back to where he was on Friday night. But happier. And that’s not nothing. In these troubled timesTM.

In addition to a calculator for SIs laid in the Commons only and one for PNSIs, Michael has added a calculator for negative SIs laid before both Houses. He’s also added a calculator for made affirmatives laid before both Houses. All of which seem to work but they do require testing. A lot of testing.

Good news on that front: Librarian Jayshree was populating our Google calendars with anticipated dates for future sittings. Anticipated sitting days feels slightly less reliable than it might normally be. Because the sitting patterns of both Houses have been less than predictable. In these troubled timesTM. She then turned her attention to the past - much safer territory - and backdated our calendars to the start of the 2017-19 session. This means that next week we’ll be able to test the calculators against what happened in actuality. And then we’ll know whether we have spent our time wisely and well.

Next week, Michael plans to add calculators for Commons only made affirmatives, Legislative Reform Orders, Localism Orders and Public Body Orders. This is in no way an attempt to delay commencing work on the treaty scrutiny calendar. Not at all related to treaties using a slightly different definition of ‘day’, and looking a hell of a lot harder.

Always about the collaboration

An early morning email on Tuesday brought happy news. Our bid for funding from the Blavatnik School of Government for future collaboration with our ParlRules friends met with success. We hope beyond hope that this offers the prospect of future trips to Oxford. Though to be honest, right now, a trip to Slough would be pretty exciting.

Tiny chisel news

Robert and Michael’s tiny chisels have been chipping away at model level description comments - this list. Some improvement has been detected. Work continues as work will.

Following another chat with Silver - this time not involving red wine, or at least only limited amounts of red wine - Michael decided to try a new approach to the interface model. This model is used to tie all the domain specific, fag packety mini-models into one huge ever growing pulsating brain that rules from the centre of the etc. Previously, he’d been using owl:equivalentClass to bridge bounded contexts and tie every instance of a class to every other instance of that class in every other model. Which meant equivalency declarations were growing, not exponentially at least but rather messily. He’s now moved class definitions used in multiple models into the interface model, and is using that as a link hub for equivalency claims. This was supposed to tidy up the diagram; he’s not completely convinced his efforts have met with much success. And it’s hard not to worry about all those subclasses.