2021 - Week 8

Money saving expert

Our Jianhan has been busy scratching his head about how we might save a little money on hosting costs for the data platform. It was set up to cope with the anticipated demand of the beta website, but the beta website is no more. Early efforts to scale back the API did not go so well but this week he’s managed to resize the triple store machines to a lower specification, thereby saving both pounds and pence. He’s also been looking at our backup strategy and how we might shave some costs there. We had been backing up every couple of hours but the platform is ever growing, and storing that many backups does not come for free. So this week Jianhan has nudged the dials and we now back up once a day at 9pm. Thereby saving both taxpayer money and energy consumption in one mighty blow.

Whilst he was on the job he also noticed that our backups were not, in fact, complete backups. A thing he has now fixed. And that, we thought, was that … right up until Thursday, when an over eager inverse functional property caused something of an inference explosion and we were forced to restore from backups. To which we can only add, “phew”. Although poor Librarian Jayne still had to spend Thursday evening re-doing the work she’d done on Thursday afternoon. In the end though, both day and data were saved. Heroes both. Applause Jayne and Jianhan.

Enabling enabling Acts

Never one to put his feet up, Jianhan has also been beavering away on enabling enabling acts in the procedure editor, procedure editor database and data platform. The query to get Acts of Parliament out of SOLR and into our database has been further polished and the pipes from database to triple store are flowing freely. We are now feature complete and awaiting testing from our colleagues in Software Engineering. This to check we’ve not inadvertently broken the statutory instrument and treaty tracking websites. Once that’s done, we’ll put all our code live and it’s back over to Software Engineering to add the appropriate signposting and filtering to the SI website.

Logicifying the procedure model

Jayne and Michael have spent several hours of the week remapping our draft affirmative procedure to match our newly logical model. There’s not an awful lot to add here beyond pointing out that the lack of a clock, the possibility of withdrawal and the House of Lords having not one but two ways to reject an instrument makes it our most logically dense map yet. Take a look at some of those procedure conclusion steps. It’s verging on being really rather pretty.

Map parsing

In the absense of anything more interesting to do, Michael spent most of last weekend trying to wrap his brain around our map parsing. Taking a tip from Samu, he’s now given up on pseudocode efforts and attempted to write some actual code. There are currently two versions: one that starts parsing from procedural start steps and works in theory but not in practice, and one that starts parsing from any business step and works in practice but not in theory. Young Robert and Michael have spent a couple of hours staring at Michael’s efforts but haven’t yet managed to spot why the one that works in theory causes his computer to explode. It’s perfectly possible there’s a bug in a query somewhere and he’s once more joining to a table that he’s not using. Or that the code is mostly fine but his computer thinks it’s in the middle of an infinte loop when it is not. How one gets Ruby code to show a little more patience is a question yet to be resolved.

The version that works in practice has been wrapped into a web app so, if you’re not a command line kinda person, you can still see what the procedure maps suggest is allowed to happen, what’s caused to happen, what can’t happen yet and what can’t happen now. Whilst it’s all still far from perfect, it does give us some insight into where we need to tighten our logic maps, so has proved useful on some level.

We still have a problem with steps that can happen many times leading to other steps that can happen many times and where and when we assume symmetry in the maps. Robert and Michael have been chewing the fat about a new type of step with the working name of ‘equals’. The ‘equals’ step does some evaluation of the number of actualisations of tabling steps compared to the number actualisations of withdrawal steps and proceeds accordingly. They’ve even gone so far as to suggest that routes might propagate numbers as well as TRUEs, FALSEs, NULLs and UNTRAVERSABLEs - but at the point we’d be pretty much knitting our own programming language. One wonders how Robert’s plans to (re)learn Prolog are going.

Relationifying the models

Librarian Anya and computational experts Robert and Michael have continued to apply what little remains of their brain capacity to converting some of our ontological models into something more relational. If nothing else, it’s an opportunity to kick tyres and look at what we’ve done from a slightly different angle. The accompanying design notes are available for anyone to comment, so if you spot something that’s unclear or just plain wrong, do please dive in.

Forming like Voltron

Friday saw the first of what will hopefully be many meetings between librarians Anya and Jayne, computational experts Jianhan, Robert and Michael, and computational expert boss bloke Ian. Talk turned toward our inference explosion, a subject that was hardly avoidable, and how we might mitigate against such things in the future. We also hatched a plan to migrate some of the applications we currently have running on Heroku to Azure. Which, if nothing else, should save Michael £30 a month.