2021 - Week 6

Short / sweet

It’s been another long week. The work has been productive if a little dull. By this stage of lockdown life, we’re all quite tired. Verging on the miserable. So let’s try to keep this short and to the point. For once.

Logicifying the procedure model

Librarian Jayne and computational ‘expert’ Michael spent a dreadfully dull week adding the final touches to their remapping of the newly logicified draft negative statutory instrument procedure map, before decanting all the routes into the machines. Endless hours of Michael reading out step labels and poor Jayne typing, punctuated with the occasional snigger and blush when they hit upon a step label with vaguely smutty connotations. That said, help from the ever reliable Jianhan made their lives almost bearable. In previous outings they’d removed non-logical routes by hand, before embarking on the addition of logical ones. This time around, Jayne hit upon the smart idea of asking Jianhan to politely ask the machines to have rid of these pesky routes. Which he duly did. In about a tenth of the time it would have taken mere humans. Thanks Jianhan.

Help was also forthcoming in the form of Jianhan’s trusty step checker code. It loops through routes in a procedure, gets all their source and target steps, checks they have the expected number of inputs and outputs and emails the results. From very sketchy memory the made negative map took about five runs of the checker script before all the ANDs and ORs had two inputs and one output, all the NOTs and decision steps had one input and one output and all the business steps had one input and as many outputs as procedure permits. This time around the email reported no errors on its third pass. So we think we’re improving. Slowly. All this drudgery was not without rewards. By the end of Friday, we asked the machines to draw the draft negative procedure and this is what they came up with. Clever machines.

In drafting the draft negative map, Jayne and Michael clocked that some steps are a promise to the future and would not need to be mapped if the website exposed just a little of the cone of potential futures. Until that happens, we’re left with steps that are logically unnecessary but currently demanded. So Anya, Young Robert and Michael have added another note to our rapidly expanding design notes to capture why they’re there and why we’d like to get rid of them.

Map parsing

At the end of last week, we reported that we’d finally cracked the procedure map parsing code. We were, of course, quite wrong. By Friday bedtime, Michael realised that Anya’s requirement to distinguish between things that could not yet happen and things that could not now happen added a level of complication that he had not fully recognised. So on Wednesday morning, Young Robert and Michael took another stab at solving the problem and emerged quite satisfied that this time it was all ironed out. This feeling persisted until Wednesday afternoon when Michael realised the code would not make it past the first route. The problem was later explained by Robert, who declared that our maps were in fact non-Eulerian - impossible to traverse by visiting each edge only once. A realisation he might have had sooner. The problem is most apparent in our new solution to self-preclusion, which usually states that ‘thing X having happened AND thing Y NOT having happened, thing Y will now happen’. Which creates a cyclic triangle where one cannot parse the route to Y without first parsing the route from Y. All enough to make anyone cry. So Anya, Robert and Michael sharpened their tiny chisels and once more hacked apart our pseudocode to separate out the parsed attribute of a route from the value attribute of a route. That was Friday. It’s now Saturday. No one has yet thought of a reason why this won’t work. But give it time. Our current approach lacks nuance and is very much reliant on brute force. We think that we think that the maximum number of passes required to successfully parse all of the routes in a procedure grows as the square of the number of routes in the procedure. Although that maths is beyond us, it is clearly less than ideal. At some point, Robert and Michael intend to start all over again with a much more efficient, more Samu-like approach. But that might have to wait for a week. Or two.

Your correspondents confess they do not know the collective noun for a group of librarians. But let’s go with collection for now. On Friday a collection of librarians - numbering Anya, Jayne, Claire, Emma, Ayesha and Martin - met with Jianhan, Robert and Michael to review work on the work package visualisations. The pictures are not yet, in all fairness, the prettiest of things - they’re more than a little bit noisy. But they do do their job and give our librarians a better sense of the future possibility space than anything the clerks have to hand. The assembled collective agreed that sometimes one needs a map and sometimes one needs a sat nav. And these two needs do not preclude each other. Accepting that no view is perfect led to agreement that by far the best approach is to start with all the information to hand and allow users to filter out information they find unnecessary. In the finest traditions of progressive disclosure, we hope to persuade Robert to prototype a more toggle-able approach to detail that will hopefully make everyone happy.

Enabling enabling Acts

As we may have mentioned last week, we thought we’d seen the last of proposed negative statutory instruments. They first surfaced in the European Union (Withdrawal) Act 2018 and have raised their heads again in the European Union Future Relationship Act 2020. JO Jane is keen to have the SI website differentiate between PNSIs enabled by the Withdrawal Act and PNSIs enabled by the Future Relationship Act. But our legislation model was a little finickity and way too complicated to allow such links to be made. Following last week’s chat with John, Matthew and Catherine, Anya, Jayne, Robert and Michael have removed some of the cruft around duties toward Parliament - which was always a thing more hoped for than achievable - and added a new property linking statutory enabled things to the Act or Acts that enable them. An email documenting these changes has winged its way to our friends at TNA and we hope to have our homework marked in the not too distant future.

In the meantime, we have started to list out the work needed at our end to enable our crack team of librarians to add enabling Acts to PNSIs. And indeed SIs. There is a new list on the left of our Trello board setting out everything we think we need to complete before our colleagues in Software Engineering can do their bit. Most tasks falling firmly on the plate of our Jianhan. Michael took time out of his busy schedule to add a couple of new tables to the ERD of our procedure editor database in a gesture of solidarity with the poor lad. He felt it was the least he could do.

Kind hearts and coronets

In other news, our quest to understand peers and peerages continues. On Monday, Michael met Librarian Ned and an attempt was made to list our outstanding questions. Michael has since made a couple of tidies to the application we’ve built on top of David’s data and it’s starting to look reasonable. We still have need to better understand the relationship between letters patent and subsidiary peerages but luckily Ben has supplied us with an introduction to a chap from the College of Arms. So we hope to be able to make more progress soon.