Semantically speaking – the weeknote

Last week was rather intense. I spent it at the Knowledge Graph Conference (KGConf) at Cornell Tech on Roosevelt Island, New York.

Around 2010 I got first interested in graphs and the semantic stuff. The ideas of Web 3.0 (not the blockchain, the semantic web), HTML 5, and Resource Description Framework (RDF) were compelling. They promised to address what was wrong with the internet and data of the previous decades. So, enthusiastically, I started reading, learning, and experimenting. It lasted a couple of years, but gradually it all started to look like solutions looking for problems, a bunch of fascinating but rather impractical and unnecessary ideas.

That was then. Fast forward a decade, and I joined the Civil Service. Within a few months, the semantic web was back on my mind. When I first looked at it, the ideas and the solutions were simply too big for my professional world of small startups and digital agencies. They were solving problems which were not mine to solve. But now? I am a part of an extra-large, very-federated and rather-anarchic organisation with an ambition to use the information it holds well for the public good. So many data challenges around me appear to be screaming: semantic web, linked data, graph databases, RDF, and knowledge graphs. Look at my Search for a Better Search if you need a detailed example.

I have been talking about this for a year now. I have presented some ideas in several cross-government fora, including Data Connect 22. As a result, I found some interest, a few fellow enthusiasts, and more than a healthy dose of suspicion towards the ideas. And this is surprising! Because a decade earlier, we were the pioneers, the early adopters of this technology. Back then, in the early 2010s, we were publishing public information as linked data. What happened? Unlike me back then, the Civil Service had and still has the problems this technology was designed to solve.

I thought I might not be in the right circles, not connected enough, that this is only my opinion. But now I have discussed these topics with several experts from many countries and organisations during the conference. Those who remember the early 2010s remember the British involvement and are puzzled as I am about how it all fizzled out.

What happened? Is it connected to the Government Digital Services revolution that started about the same time? Or is it just a coincidence? It isn’t because the problems have disappeared or the solutions are not worth pursuing. Last week I saw how various private and public organisations apply these technologies to get more out of their data and to collaborate better across organisational boundaries. I’m sure it would help us solve our problems, and achieve our ambitions too!

So let’s do it. Let’s at least start the discussion at least. Unlike ten years ago, we have Digital Data and Technology (DDaT) functions across the government. We have new data professions, like my own – data architecture. So far, as a profession, we have been focusing on relational data modelling and futile attempts at data centralisation. Let’s at least explore the possibility of a decentralised (federated, not blockchained), semantic data architecture for the government and the public good. It is more complex than what we are used to. But I’m sure it will be worth it. I know we can do it.

If you agree or disagree, let’s talk. If you are or were involved in things like that in the Civil Service, please reach out. A discussion is needed. Contact me here, on twitter, linked in, where ever.

Back to the weeknote. The Knowledge Graph Conference I attended was much better than I expected, and not only because of the content – which was good. It was a much-needed opportunity to reflect on my ideas about open, linked data in the public domain. I met experts, practitioners, and enthusiasts of the technology from around the world. I have learnt about successes but also challenges ahead. I will likely use these contacts to help us all progress the applications of structured graph knowledge in the public domain.

Weeknote 8 – protocols and Data Bites

I went to the 41st edition Data Bites at the Institute for Government. If this is your first time reading about them, these are monthly events where four speakers present eight (a byte) minute presentations on topics relating to data in government. Then a short, eight-minute-long conversation follows.

They are organised because (from their website)

Better use of data is key to more effective government. Across government, teams are doing fascinating work with data, on everything from policy to public services, to visualisation and ethics.

But that work often doesn’t get the attention it deserves. ‘Data’ means many different things across government and is fragmented across (and within) different organisations, professions, and functions. Those not working directly with data may not understand the benefits better information can bring.

I found the presentation from the Hackney Local Authority the most interesting. Sandrine Balley presented how and why they developed a web map template to open up spatial data on their website. The lack of open data publication platforms motivated them. They wanted to have something simple, so there was no need for great technical skills or expensive commercial products to publish the authority’s geospatial information.

It works, and it solves their problem. However, when asked what they are doing to promote their solutions to other local authorities to share their work, Sandrine admitted that they “could do more”. And, of course, they were at the Data Bites. They are promoting the work. But as often in similar settings, the focus was on “look what we have done!”. It is not about sharing the technology, asking for collaboration to take it to the next step. It is about sharing success stories. Important, but an invitation to cooperation would be more powerful.

Since I joined the Civil Service and its Digital, Data and Technology function, I was inspired by the ambition to work in the open and reuse technology for the public good. And for better value for money. But I am growing more and more disappointed. There are some good examples of this, like for the Design System, but by large, the same problems are solved again and again with code dumped in public github repositories, but never reused.

This is despite the fact that there is a lot of effort to standardise and to enforce encourage compliance with centrally approved standards. I think the “standards” and “central” are parts of the problem in our very federated and rather anarchic organisation. I disagree. I have been talking about the benefits of agreeing on simple protocols over implementing standards whenever I have a chance. And there is plenty of opportunity because there is no shortage of big government projects aiming at standardising, centralising, solving “it” for “all”. I don’t think it will ever work. I think we need to find ways to collaborate without coordination. And protocols like those powering the internet, are good examples on how to do it.

And so I was very happy to come across The Unreasonable Sufficiency of Protocols article earlier this week. It is very long, but worth the time to read text about the benefits of protocols. It also differentiates protocols from related terms like standards, conventions, APIs, and platforms. It explains why protocols are best placed to increase cohesion without decreasing autonomy. This is what we need to collaborate without coordination. Have a read if you can spare the time. I hope I will get to discuss it soon at the 2023 Open Data Camp unconference in Wolverhampton.

There were a few other things this week that would be worth mentioning, but it is already Monday morning, 6 am local time in New York, and in two hours the Knowledge Graph Conference will start. I hope to learn much

Note 7

I don’t find it easy to keep up with week-notes. There is too much stuff I’d like to write about to find the time for it. I thought I’d do month-notes, but I missed that deadline too, so let’s call it a note, perhaps note number seven: the highlights.

Over the last couple of months, I have attended a few conferences and a few meetups. The biggest one was the SQLBits, where I delivered three sessions – nothing technical, just some Welsh lessons, as the event was in Wales this year. Nothing big, but enough to remind me how much fun it is, so I have just submitted a session for DATA:Scotland in September.

The SQLBits event was full of great sessions. That was not a surprise. What was unexpected is the excellent non-technical sessions I have seen. It was my first time at SQLBits since I stopped working with Microsoft data technologies, so I had no reason to chase the latest technical detail. Instead, I focused on the “hallway track” and the less technical presentations. For me, it was the best SQLBits experience ever. My favourite was one about building high-performance data teams by Richard Campbel, followed shortly by live Knee Deep in Tech podcast recording with Alexander and Heini.

Listening to those serious podcasters (Richard runs .Net Rocks) reminded me, that I wanted to do something like that myself. And now, I think I’ve got the right topic to do it too, but I will write a separate post about it soon. For now, back to conferences and meetups.

I attended two interesting meetups in London (I’ve been there too often recently) neo4j and OpenUK. The latter one was especially interesting with the presentation delivery by Andy Piper on open-source contributions. There were also plenty of like-minded, open-source enthusiasts to discuss code reuse in Civil Service. Something interesting will come out of this chance meeting, I’m sure. And I will be there on the 23rd of May to listen and talk about building open-source communities.

The return of in-person events is very much welcomed. The online conferences and meetups are great, but they are missing something. With our current technology, there is no chance for spontaneous, free and fast-flowing, random, person-to-person interactions. A situation like when you overhear half a sentence between biting on a pizza and think: that might be interesting! What are they talking about!? And seconds later, you are part of that conversation.

It’s a topic that has been on my mind for quite some time. It feels like we are settling into a form of “hybrid” working, which has become familiar. But is it the right way? Are the benefits really outweighing the cost? I will explore it more soon. But for now, I have signed up for a few more in-person events to keep testing the theory!

Finally, I made it to 40 last week. Having achieved my life’s ambition, I can relax now!

Weeknote 6

A more practical week this time! One when nothing was finished, but quite a few things have been started. 


The 12in23 is spreading!

Outside work, I continue on my #12in23 challenge – completing the first two languages. But that aside, it was great to see that quite a few colleagues joined in on the fun (and learning) after talking to them about it the week before. We are now sharing profiles on and learning together. Where will this lead?

Practising mob programming

Talking about learning, on Friday, I led a small workshop in mob programming with three data engineers using It went well, and I think we all learnt something. More importantly, we might have addressed some negative feedback from the last half a year of pairing in our data engineering. Drivers were reporting how stressful driving in a pairing session can be. But focusing on the need to share an idea before it is encoded, the fact that it is the navigator who comes up with ideas and the driver just codes it in, solved that problem, I think. 

It was the first such workshop I ran in the department, and it won’t be the last. It’s a natural continuation of discussions about software engineering with my coding colleagues who are not in software engineering professions. 

Applying Team Topologies

But that’s not the limit of last week’s experiments. After some convincing and some negotiating, we have started a very small-scale experiment in Team Topologies in Civil Service applications. We have set up a very small enabling team which will work to support three stream-aligned service and delivery teams.

The team is forming very fast, and I’m really looking forward to what we can do. But the fact that we were able to start is already exciting. Despite all the Government Digital Services talk about modern ways of working in Digital Data and Technology in Civil Service over the last decade, the governance structures don’t support anything but a service team well. 

So we are dipping our toes into something new, and I really want to see where it takes us over the next few months. 

Explaining programming

Talking about things new. I have spent some time in my career explaining software engineering to others. How to explain it to somebody brand new to the subject so they understand? It is not easy. It requires patience and tactfulness. The more you know, the harder it gets, as there are layers upon layers of abstractions and “assumed” understanding you have that a beginner has not. 

I’m starting a new personal challenge next week. My wife, who hasn’t written a line of code before, is thinking of changing her career. What to? That’s to be decided! But she wants to give programming a go to see if that digital thing I’ve been doing for years is something she would enjoy. 

So, here I am at a professional and personal challenge for 2023. How do you explain programming and maintain a personal relationship with somebody new to programming? Wish me luck! And any suggestions will be very much appreciated! 

Flutter State Management – Endless Possibilities!

Recently I got back to Flutter with an idea for a cross-platform mobile app. The developer experience of both Flutter and Dart is second to none, but the myriad of state management options can give anybody a headache. Where to start? What to settle on? Provider? Riverpod? Redux? BLoC? GetIt? MobX?

I am still deciding!

So, it will not be one more of those many posts arguing for the superiority of one of the approaches over the other. Instead, I would like to share what I have done to help me figure it out in case it is helpful to you.

To help compare the pros and cons of the different approaches to state management in Flutter, I have implemented a simple application multiple times in many different ways. I still don’t know which one is better, but I know how they differ. The code is available on GitHub. Have a look. Make up your own mind.