ontologies

2024 - Week 33

Return to bill mountain

Amongst our many recent successes - yes, really - the procedural tracking of statutory instruments - in both website and SPARQL format - must be up there. The SI tracking work began when we last tried to build a data platform - number three or four, depending how you’re counting - and the Parliament beta website. Unfortunately, from our perspective, the beta website got canned and its accompanying data platform placed ‘on pause’. Nevertheless, before the lights went out, we managed to repurpose the code for treaty tracking purposes. Arabella, at least, seeming pretty chuffed.

Before the data platform was placed ‘on pause’ we’d intended to take our procedure model and start work on mapping the public bill procedure. Indeed, these very weeknotes were once titled ‘public bill mapping’, and then we clocked the size of that particular mountain. One supposes the thing about mountain climbing is that you don’t get to the top in one go. So when Legislation Office Liam got in touch with a query about the tracking of legislative consent motions, we were delighted to venture out of base camp and begin our assault. To that end, Librarian Jayne and box-to-box computational midfielder Michael spent many happy hours in the company of colleagues from the devolved legislatures mapping out their procedures.

The hard part being done - or so they thought - the next step would have been a couple of tweaks to our procedure mapping stack - database, editor, ontology, orchestration - with the aim of making it public bill compliant. Unfortunately - we do find ourselves typing unfortunately rather a lot - our Jianhan is the only person with experience of working on that stack. And Jianhan, as we all know, is rather busy. Weeknotes passim. So that work was also placed ‘on pause’. And for want of a few hours work, we found ourselves blocked for a good couple of years.

At this point we get to type an all too rare ‘fortunately’. Fortunately, Delivery Manager Lydia somehow managed to unlock a couple of days of Jianhan time. Jianhan, being a productive type, made the most of those two days, updating the procedure editor database, the procedure editor application code, the data platform mk three - or four - ontology and the piping between.

All of which means we’re finally in a position to start work on the procedural tracking of public bills. Or at least the LCM part of it. Marvellous. Only one hurdle remains to be vaulted - the three websites of the devolved legislatures being a little lacking in both structure and information. So tracking down evidence of the things we need to track is more difficult than would be ideal. A chat with Graeme and more work with Belfast, Cardiff and Edinburgh beckons, our current thinking pointing toward a more federated approach to all things LCM tracking related. Stay tuned.

Delegation’s what you need

Still in procedure mapping world, we’re pleased to announce that colleagues in the Parliamentary Computational Section have made a tweak or two to our statutory instrument website. First up, the form text inviting users to search by ‘title or paper number’ now says ‘title or Statutory Instrument number’, bringing labelling inline with the rest of the website. Secondly, labels on links to legislation.gov.uk have also received a tweak and now boast a title attribute giving the full title of the instrument. Good news for both search engines and screen reader users. And finally, title elements now come with the full title of the SI. What was there before being a mystery to your correspondents. Small changes, perhaps, but all improvements.

On the subject of papers laid during prorogation

Your regular correspondent looks at that heading and reflects on how they would have known few of those words a few years ago. With a slight worry that these notes may be impenetrable to the parliamentary outsider. That said, we all live, we all learn. Let’s attempt an explanation.

During a parliament period, Parliament may be either in session or prorogued. Sessions and prorogation periods being contiguous. Dissolution aside - let’s not go there - a session ends at prorogation, and a prorogation period ends when Members are summoned back to Westminster for a new session. It is true to say that not much parliamentary business happens during a prorogation period. The Houses do not sit and cannot be recalled to sit. Committees do not sit. Motions and questions are not tabled. And etc. However, certain papers can be laid.

Should a paper be laid during prorogation, the laying is reported by both Houses in the following session. Obviously. Time travel being impossible. Now, there has been a long-term disagreement between Clerkly colleagues and the blasted computers on this matter. What has happened in practice being the worst of all worlds - the hacking of data only leading to the wrong answer. Winces. Colleagues operating the knobs and dials of the papers laid application type in the date of laying and the application goes off to the calendar system to find out which session that date falls in. If the date falls during prorogation, the poor computers panic and the paper cannot be laid, at least as far as the computer is concerned. Not a great outcome.

In order to overcome this computational calamity, people maintaining the calendar application have been forced to pretend that the previous session did not end when it ended, but instead ended the day before the next session starts. The effect being papers laid during prorogation have been flagged as belonging to the preceding session. There are no good outcomes here. Not only is our session data incorrect, the papers laid are assigned to the wrong session.

For that reason, Librarian Jayne and computational journeymen Young Robert and Michael have been prototyping atop our beloved egg timer. A date within a session now reports the session it is in. A date within a prorogation leading into a new session, reports that the laying will be reported in the forthcoming session. And a date within a prorogation leading into dissolution, reports that the laying will be reported in the first session of the next Parliament. None of our lovely data getting hacked in the process. A single caveat still applies. Whilst the egg timer records dates of prorogations and dissolutions, it does not record the times at which they happen. For that reason, on the final day of any session, it is not possible to determine if the paper made the cut - as it were - or did not. Messaging for this edge case of an edge case has now been applied.

Over in new old search world, Librarian Jayne and Developer Jon continue their high-speed game of Trello table tennis. Jayne applying her trademark topspin, only to find herself on the receiving end of a deft drop-shot from Jon. Their mission is to check, tweak, double check and sign off every attribute for every object type across all our search result items. Now Trello is hooked up to our Slack and our Slack is hooked up to our mobile telephones. The game takes place at such a pace that our office has more bleeps and boops than a Back to Basics night in the heyday of Warp Records. Bleep goes Jayne, boop goes Jon, STOP BLEEPING AND BOOPING, I AM ATTEMPTING TO SNOOZE, thunders Michael. Still, it’s not all low frequency oscillations, Jayne and Jon placing a quite incredible 42 cards on the happy pile over the last couple of weeks. True diligence and a commitment to excellence, as ever. And no, we’re not going to list all the signed-off attributes here. Check the Done pile on Trello if you don’t believe us.

Despite clearing a ridiculous 42 tickets, Developer Jon was not finished. Far from it. In short order, he also reworked the facet behaviour, the ordering of filters within facets, disabled links on selected filters, tidied the presentation of selected facets and rewrote all calls to our taxonomy service to be multithreaded. The latter saving both user time and the internet from exhaustion. Jon has also updated the search application readme file for eventual handover purposes. If you’re interested in the shape of things, that’s a very good starting point.

Not only this, Jon also applied a first pass at content truncation in search result items. A side effect we should have expected, but didn’t, is that truncating HTML leads to some elements being opened, their closing tag being chopped off by the truncation code. Which led to CSS styling bleeding out of the truncated content and polluting the rest of the page. A great many things turning unexpectedly italic. Sometimes, you just want stylesheets that don’t cascade. We imagine this is a fairly common problem across a number of domains and do wonder if there’s some way to tell the document object model that these bits of the document represent a potential contagion and are best considered in isolation. If you’re one of those HTML and CSS experts and know of some way to do this, please do get in touch.

Popping on her thinking face and her product management hat, Librarian Anya has now specified the expected behaviour of both the session and date facets. She also roped in Michael to update his diagram annotating the structure of search result items. His first attempt using the same colour to mean two different things. A common problem with Michael’s diagrams we find. Never hand out the architecture crayons to the lad with the colour divergent eyes, being one lesson learned.

At her best when at her most decisive, Librarian Anya has also determined that facets will always display whether empty or not and that the boxes they sit in will no longer be closable. The latter decision causing two more cards to shift to the happy pile, facets being open by default not being a concern if you can’t close them and preservation of state not being an issue when there’s no state to preserve.

Psephologising profusely

Weeknotes, would not of course be complete without a short update on our election results website. Not being the types to disappoint our esteemed stakeholders, there have been changes a plenty. Though not many visible to the human eye. As we tried to explain last time out, our initial attempts were all very web standards, all transcluded things being transcluded from somewhere. The sudden rush to get the thing repainted before the general election hit led to a corner or two being cut. Over the last couple of weeks, the cut corners have mostly been tidied. Once again, all the transcluded things come from somewhere. The principle being, every time you come across a hash-based fragment identifier, you can substitute the hash for a slash and dereference just that. It means we now have a lot more URLs and a lot more pages, none of them actually linked to. Which confuses many a person, but this is what web design - done proper - looks like. And how we used to do things back in the 1950s. You don’t see much of it around these days. Admittedly, it does not sound like a lot of bangs for bucks, but - trust us here - it will make everything much easier to maintain. And if that doesn’t prove to be true, at least it helps to bring Michael’s URL OCD under control.

With all that said - not being complete HTTP pedants - there is one new view that we’ve actually linked to. After Statistician Carl pointed out that the only way to get comparative figures across general elections for a constituency was via our boundary set aggregations, a whole new URL has been nested underneath constituency area views giving a full history of general election - and in time by-election - results. At the click of a button. Or at least at the click of a link.

Other tidying - of equally little interest to most sane people - has also happened. Now defunct feature flags and their instantiations have been removed and a good deal of cruft - introduced to support Michael’s stumbling attempts at ‘data visualisation’ - has been removed from the election controller.

Taking a break from staring out of the train window, Michael also knocked up a quick script to churn through every constituency election, sum up the votes for all candidates and compare that against the valid vote count for the election. All numbers agreed, making the exercise simultaneously pointless and reassuring.

Taxonomic liberation

Attempts to liberate our taxonomy continued. We’re not about to say ‘at pace’ here. We don’t use words like that. But they did continue. Having decided we wanted to chop up the presentation of the taxonomy for user interface purposes - twigs, not limbs - Librarian Claire took to Data Graphs and introduced a whole array of subclasses and a set of rules designed to populate them. Librarian Anya chipped in, mapping the interface rules Claire was all too familiar with to the underlying property names. With a fair wind, we hope Silver and his Data Language colleagues will be able to take the new instructions and the new model and, well, populate it. We always live in hope.

Outreach / engagement

Our usual outreach and engagement efforts have taken something of a hit this week, both Anya and Michael retiring from the Short Message Service formally known as Twitter. If our reader came to rely on weeknote notifications through that channel, we’re sad to say that that service will no longer be supported. We will, of course, continue to work with our partners at Bluesky and Mastodon. And there’s always good, old-fashioned RSS. We wouldn’t not make RSS, now, would we?

After recently bringing Edward out of retirement to help with a conundrum we won’t venture into here, Anya and Michael were delighted to welcome him for a pint or three down Waterloo’s premiere Irish boozer. Wise counsel both sought and granted. Lovely to see you, Edward. Here’s to the Bookbinders.

Next week - like so many weeks before - will see a break in transmission for these notes. Anya, Young Robert and Michael heading up to the White Rose County for another installment of Wuthering Bytes. If you’re up there, give us a wave. Otherwise, see you on the other side.