Sommaire
- 1 Interview with Maxime Lathuilière – inventaire.io
- 2 Introducing Maxime
- 3 The Path to Inventory Creation
- 4 The beginnings of the project
- 5 But what is inventory at its core?
- 6 The choice of the AGPL license
- 7 The technologies used
- 8 The first inventory financings
- 9 What is Wikidata?
- 10 Funding by Wikimedia
- 11 Other financing
- 12 Next Generation Internet (NGI0) and the NLNet Foundation
- 13 The community around inventory
- 14 What is Fediverse?
- 15 Why ActivityPub is not suitable for an inventory tool
- 16 ActivityPub features implemented in inventory
- 17 Inventory and Bookwyrm
- 18 Progress report after 10 years of the inventory project
- 19 Inventory Challenges
- 20 Presenting inventory to someone who doesn’t know
- 21 Presenting inventory to a free software developer
- 22 Conclusion
- 23 License
Interview with Maxime Lathuilière – inventaire.io
Walid : new episode of Projets Libres!.
Today we’re going to talk about a tool that I discovered a long time ago, in 2015. At the time, I was looking for a solution to manage my library of books and a bit by chance, I had come across this inventaire.io tool. I watched a talk my guest gave today, Maxime Lathuilière, at a meetup at Mozilla in 2015. Indeed, it’s going back up.
I had continued to follow the project a little bit and I thought about it again because I saw a news on Mastodon that inventaire.io had received funding from the NLNet foundation. We’re going to talk about that later. I told myself that we absolutely had to talk about inventory.io so here we are so I’m with the founder of inventorie.io.
Maxime, welcome to the podcast.
Maxime : Thank you, hi.
Introducing Maxime
Walid : So the first thing is that I’m going to ask you to tell us a little bit about who you are, how you discovered free software and what does it mean for you to do free software?
Maxime : As you said, it’s starting to go back up, now it’s been maybe 15 years…
I’m familiar with free software and in fact I was… I’m starting from a very long way. So between 2008-2010, I was still a student in business school and I was very far from the issues of the web, free software, etc. But I became interested in it because I had a hunch that there was something that could be done to solve environmental, social, resource information management problems. That is to say, it seemed to me, at last, I began to embroider a digital utopia which was that we will be able to organize information on resources with free tools and free knowledge and this will allow us to have more control as citizens over the impacts of our consumption. So I was very much in the perspective of a consumer-actor, a bit of a hummingbird. Through our individual actions and consumption choices, we will be able to solve environmental and social problems. I’ve moved a little bit since then because I’ve realized that there are some dead ends, but that’s how I got my foot in it. I started to dig into these questions, I started to take an interest in the web, and I came across conferences that made an impression on me: so around 2010, I’m thinking in particular of the lecture that Benjamin Bayart gave at Sciences Po on What is the Internet?
I watched a lot of conferences like this, which were perfect for me, since Sciences Po and business school have a bit of the same profiles. We are people whose teaching is not very technical. This conference in particular made an impression on me because it takes you by the hand and it makes you think a little bit about protocols, the political issues of an information architecture, etc. And so it kind of got me on my foot in the stirrup on that. And so I started going to see a lot of things. I went to see what Framasoft, Mozilla, Wikimedia were doing. And so I started hanging out more and more in those environments and educating myself like that, little by little.
Walid : It’s funny, I would have thought you had a technical background.
Maxime : I discovered this… In fact, in business school, I arrived there, if you dig even deeper into archaeology, that’s how I ended up in this mess. I was in high school and I was interested in economics and sociology.
I had been fascinated by the introduction to SES, so Economics and Social Sciences. And when we went to the Bac S, we didn’t have those classes at all. And so at the time, and maybe also a little bit to distinguish myself from my brothers and sisters, I went for an ES baccalaureate rather than an S baccalaureate, whereas now there would be a lot of things in the S baccalaureate that would interest me. But so I ended up in high school, and then I was told “the best thing you can do is prepare for a business school. I thought I was going to be able to go to business school and do entryism, make things happen from the inside out like you can be naïve at 16.
And so there I was, on that path, and I believed in it for a while. I started, I continued to be interested in environmental subjects. And free software has made us do that. I came to free software because of its political aspect. And gradually, it was free software that also gave me the tools of technical emancipation. That is to say, the whole community, they were perhaps even stronger at the time, was pushing you up the ass to install Linux rather than your Windows. And so I started to go and scratch a little bit, see how I could install this on my machine. And so gradually, I was able to realize that finally, the step to go from a non-technical profile to a technical one, having after knowledge, and then I still had some technical appetites, I was doing video editing, I was already doing this kind of hacks.
I was gradually able to realize that it wasn’t that insurmountable to start scraping web technologies, so HTML, CSS, JavaScript, which were designed as consumer technologies. That’s kind of how I found my way around.
The Path to Inventory Creation
Walid : Can you explain a little bit about the process that leads to the creation of inventories? Where does it come from?
Maxime : I have to start from my digital utopia of managing information on resources with free software and free knowledge.
From that idea, I started with ideas of “we’re going to have tools controlled by citizens in free software that will replace Amazon’s interfaces, FNAC’s interfaces, etc. in the organization of resource information”. The example I gave perhaps in the conferences you saw at the time was when you do, for example, if you buy a computer on the FNAC website, the graphical interface is proprietary and you don’t control it, the recommendation algorithm is proprietary and you don’t control it, and the data itself.
And so, you’re very limited as a buyer in what you can do, play as a comparator, as a recommendation tool. But I wanted to go out and get this information out about the resources and this choice of proprietary interfaces, and have control over this information and be able to inject third-party data into it, so KUE What to Choose, or on computers, there may be consumer groups or user groups that will be more competent to judge the hardware, which I would trust more than FNAC or Amazon or I don’t know. And so I started with this idea of being able to make free software as an alternative to these proprietary interfaces. And so, it seemed to me that it was interesting that I, who had this side, what I had learned in business school, what I knew about the world of sales, marketing, allowed me to make a kind of bridge between free software and access to information on resources.
In fact, the most blocking point is getting sellers to share information about what they sell in a standard format that can be reused by tools etc. So you have to have a community around a tool that will have a significant use so that sellers are interested in putting their data in this standard format. We are still very, very far from that. But that’s what motivated me at the time, what to do, I wanted to be able to make a prototype of something that went in that direction, to have a free tool to manage information on resources. And at that time, so around 2011, I was in touch, I started spending time with the community around collaborative consumption that was growing at that time.
So it was we’re going to be able to… The archetype, the example we gave all the time was that we’re going to be able to lend each other drills, we’re going to be able to carpool, etc. And so it was peer-to-peer exchanges of resources, loans, etc. So I was kind of caught up in that, because there was a dynamic, there was a group, in particular I was very much on the side of Ouishare, where there were a lot of people who were interested in it. And in particular, in Ouishare, there was a subgroup of radicalized librists who were Ouishare Labs, or with people more inclined to free software than to consumption in general, collaborative consumption.
There were ideas for experimentation, protocols, how to inform your network of the resources you have and what you can offer them, so to lend them, give them, etc. In this bath of ideas that was Ouishare Labs, this idea of inventory began to germinate. At that point, I thought… Even if there was…
I had done a few years before a project called BookSurfing, which was a kind of first version, but at that time I was absolutely not technically competent to realize this idea. But I kept working on the idea and from 2013 I started to really switch to a technical learning research: to go and learn HTML, CSS, JavaScript, HTTP. What I needed to develop this project. I was able to start the inventory codebase in 2014 as a result of all this research.
Walid : 2014, it’s been 10 years…
Maxime : That’s right, it’s going to be in June of this year, it’s going to be the 10th anniversary of the first commit on the Inventory repo, which is a bit scary.
The beginnings of the project
Walid : Several questions on this, the first one is do you start on your own or are there all these people around you from Ouishare Labs, but the inventory project was really me the one who carried it?
Maxime : I started the development on my own and it took a long time afterwards to get people into the project. It’s also a question of how to get more of us to carry out this project.
But so in 2014 I started on my own and then there is Jums who joined me in 2016-2017, who started to take an interest in the project and who gradually started contributing code and who has been in the project ever since. And so we’ve both been coding on the project ever since. And then we have a lot of contributors who come to help us with other aspects, especially translation. We have translations into many languages by people most of whom we don’t know.
The whole bibliographic database aspect, there are countless contributors because one of the particularities of the project is that we are building a database that enriches Wikidata and therefore will reuse contributions from the Wikidata community. And then we’re going to have contributors at Inventory who are going to enrich the two databases, Wikidata and Inventory.
But what is inventory at its core?
Walid : And Inventory being a kind of front. Can you just explain in a few words what Inventory is?
Maxime: Inventory is two projects at the same time. There is the project that we present to the general public. Everyone is asked to create an inventory of their books and for each book to indicate whether they want to give it away, lend it, sell it and indicate to whom this book will be visible. So it can be publicly visible, people will be able to see. If we want to indicate our location, we can then see this book as being in the corner. But you can also restrict visibility to your association’s group or just your friends. And there you have it, so that’s the first pillar of the tool. The first part of the tool is this book sharing tool.
And to enable this book sharing tool, there is a second pillar, a second part of the project which is the bibliographic database, which is an extension of the Wikidata database and which will try to make it as easy as possible to share books by having the most complete and user-friendly database possible.
The choice of the AGPL license
Walid : I had two questions for you on that. The first is what license did you use for the inventory project and why did you use that license? And the second question then is what technologies did you use to develop Inventory?
Maxime : So on licensing, it was a difficult question because licenses are important issues and I wanted licenses that were not necessarily available in the existing system. While I was interested in free software, I found that it could be problematic to write code that would then be reused by… if we imagine that the inventory project was immensely popular, perhaps Amazon would want to have its own inventory instance. And I found it annoying that the license allows this type of reuse. I was interested in CopyFarLeft licenses, Peer Public Licenses, anti-capitalist ethical licenses.
There were things that existed, but it’s very little used compared to everything that is CopyLeft, so free software, GPL license, AGPL. This also makes the software incompatible with all those GPL and AGPL licenses. I ended up being satisfied with the AGPL license, which is an adaptation of the GPL, so the GNU Public License, which is a virus license, so you can’t close the code. The code will remain open, if we make significant changes to it, we will have to put them back into the codebase. And AGPL adds to that that it’s suitable for online web services, because there’s actually the issue of the user of the software that wasn’t originally covered in the original GPL and is dealt with in the AGPL. It seems to be working well enough for Google to consider this license toxic and refuse to use any software licensed under AGPL. So it seems to be working. We’re continuing with that and for the moment there’s no reason to change it.
The technologies used
Walid : What about the technologies you use?
Maxime : There are many technologies we use. I recommend the stack.inventaire.io site where we detail in detail all the technologies we use.
The most important ones are JavaScript on the server side, so with Node.js and Express, and on the client side. So historically, I left in 2014 with what I had learned at that time, which was Backbone And since 2019 we’ve started from Backbone and we’re moving towards Slender and we’re getting there soon, we’re at we have to be at 90-95% transition, we’re going to be at the complete end of Backbone soon, which is going to be worth celebrating, because we’re still gaining a lot in code maintainability. Yes, for the JavaScript aspects. Then on the server side, we use a CouchDB database, so it’s NoSQL. JSON is stored directly in the database.
Elasticsearch for everything that’s searched. LevelDB for everything cached.
The first inventory financings
Walid : The second part I’d like us to talk about is the financing part. What I understand is that in 2014 when you started basically, there wasn’t really a business model around inventory, how did it evolve actually? How do you finance or finance inventory?
Maxime : So from 2014 to 2018 it wasn’t funded. I actually had the chance in 2014: I participated with Michael Fozeu in a competition that was organized by , where we were asked to make a prototype of an application that would work with Cozy Cloud.
Walid : What is?
Maxime : It’s the New Generation Internet Foundation.
Walid : Okay.
Maxime : So it was, because I’m not completely sure it still exists. They were running this contest and they were offering a prize to submit applications that used data in Cozy Cloud. It was while doing this contest that I completely adopted the technical stack of Cozy Cloud which was Backbone, CoffeeScript, CouchDB. For the purposes of this competition, I learned all these technologies.
Then, I directly reused it in the inventory and I was able to get 7000 euros in price from the for the prototype we had made, as a reward for this prototype. And then, I lived frugally with that 7000 euros, living half the time at my parents’ house, half the time in communities right and left, especially in Germany, where there were very frugal approaches to food recovery, recovering unsold food, and being very much in the sharing of resources. And so I was able to live frugally with what I had won in the competition.
I received a little bit of RSA, because I have never been employed, it was very short in 2013, but since then I had not been employed so I was not entitled to unemployment. Then I was able to get funding for inventory needs. I was also developing tools to work with Wikidata. And so I was able to get funding from Wikimedia to work on some of these tools. I was able to get maybe 8000 euros to work for 6 months on these tools.
What is Wikidata?
Walid : Can you remind people, for people who don’t know, what Wikidata is?
Maxime : The somewhat simplistic way I present it in general is the Wikipedia of data. That is to say, we have a wiki, therefore a database that anyone can modify, enrich, and whereas Wikipedia offers you to modify text and therefore to share knowledge through text. Wikidata will offer you to modify structured data, i.e. we will have a subject that will have a property and a value for this property. For example, FOSDEM will be able to be a topic, and we will be able to say FOSDEM, nature of the event, event, annual periodicity, website, and we will be able to link to the website.
So it’s no longer text, it’s subject, property, value. And that’s a lot of things. It allows in the first place, so Wikidata is first and foremost at the service of the Wikimedia projects. Wikipedia, which we know well, but also Wikisource, Wiktionary, Wikimedia Commons and others. And so the Vietnamese Wikipedia doesn’t need to be updated to have the latest value of the number of inhabitants of Lyon because a person will be able to come to Wikidata and put the last value for the number of inhabitants in Lyon and it will be able to automatically update the value on all Wikipedias that reuse Wikidata data.
So that’s the first goal of Wikidata. Then there is a goal of reusing the data externally as well. There are projects, especially in research. There is the Wikicite collective, which had worked a lot on this, on the reuse of Wikidata data in research. There is the Scholia website, which also provides access to data in Wikidata on all research articles, the authors of those articles, who cites whom, etc. So there’s a lot of work in that direction, and there are projects like Inventory that will be able to reuse some of the Wikidata data that interests them. So in our case, it’s everything about the authors, their works, the publishing houses, etc.
Funding by Wikimedia
Walid : So you said you had 8000 euros in funding from Wikimedia, right?
Maxime : That’s right, if I remember correctly. This funding was to improve tools that I had already started to develop, especially JavaScript tools, to reuse Wikidata data, to simplify it in particular, because the Wikidata data model is a bit hairy, a little fleshed out. The first need we have when we retrieve Wikidata data is to be able to sort through all this noise to really get the essentials.
Then, little by little, we’re going to see a little bit of detail because there’s a richness of the data model that’s interesting. But in the beginning, we really want simple data. I created a tool on this called the Wikidata SDK, which has since become the Wikibase SDK because Wikidata is an instance of Wikibase, in the same way that Wikipedia is an instance of MediaWiki.
So there’s the Wikibase SDK to use the data. And also, for inventory purposes, after a while we needed to be able to modify the Wikidata data from the inventory. For example, being able to add an author to a work entity in Wikidata and without leaving the inventory to make it more convenient. And so there was this need to be able to do it easily and so I developed Wikibase Edit which allows you to make this modification on a remote Wikibase, managing permissions, etc. Because I’ve become a fan of command-line tools over the years, I’ve also written a tool called Wikibase CLI, CLI stands for Common Line Interface, and so it’s a tool that allows you to read and write Wikidata, and any Wikibase, from the command line. Those were the three main tools that I was funded to do.
Walid : Okay, you’re funded for the integration between inventory and Wikimedia?
Maxime : This funding was strictly for the tools themselves. That is, Wikimedia did not fund inventory.
Walid : I’ll make an aside on that, how do you actually contact the people at Wikimedia? How does it work? You’re going to see them and say, here’s my project, this is what I’m trying to do and everything. Were there already other projects that were trying to make their data customers as well?
Maxime : It’s an important part of the life of the Inventory project. Since 2015, I have tried to get closer to the Wikimedia community because I saw that there were things to do together, that we had to work together and there were mutual interests in working together. I was very lucky, so at that time, I was living in Lyon and the Wikimedia hackathon that year, in 2015, was in Lyon. Whereas it’s a hackathon that takes place every year in a different European city. And so I was able, realizing it at the last moment, to go and see them and go and discuss with the Wikidata team. And so I was able to start from there to discuss, to exchange. I came back to the next hackathon and we were able to exchange like that.
And so in 2018, I knew enough people and I felt legitimate to send a proposal. And then this proposal had a call for community feedback on whether this proposal is interesting for Wikidata, for Wikimedia. And there, I was fortunate to have the support of a large number of people I had met at these events and who knew my work, who had been able to see the evolution of the inventory and the tools and therefore who recommended me in this funding.
Walid : So it starts with a physical meeting.
Maxime : For many of them, yes.
Other financing
Walid : Okay, I’ll close that parenthesis. What did you get next in terms of funding?
Maxime : In 2019-2020, with Jums, we worked, so we actually put on a performance. We weren’t funded for inventory, but we did a service for the BNF and the ABES, who wanted to experiment with the use of Wikibase for their knowledge base needs.
Walid: What is ABES?
Maxime : it’s the Bibliographic Agency for Higher Education.
Walid : Okay, okay.
Maxim : they are the ones who manage the FIDOC, which is a bibliographic database of Higher Education, where you will find all the information on… In particular, I think they are the ones who make the site thèse.fr, so there’s all the information about theses, PhDs, etc. And so they have a data sharing initiative and they wanted to experiment on the possibility of using Wikibase for that purpose. And in the same way, I had met a person from ABES who had invited me to apply for this call for tenders and so we were chosen and we were able to get funding for a service. In a way, it was a service that meant that we didn’t work on inventory at that time, but at the same time it was able to finance us, to have financing like that and to be able to continue working on inventory. And so that was in 2018-2019 and from 2020, we had another person called Hellekin who recommended that we apply for NGI funding, which is Next Generation Internet, so it was NGI Zero, which is a subset of NGI, which aims to fund free software, among other things. And at the time it was NGI Zero Discovery, there are a lot of names, we get a little lost, Discovery was very focused on everything that was search, and in particular they were very interested in everything that could be integrated ActivityPub.
Next Generation Internet (NGI0) and the NLNet Foundation
Walid : We’ll talk about it later, it’s a topic for listeners who follow a bit of the podcast that we’ve already talked about with Peertube, we’ve also talked about it with Castopod. It’s a fairly recurring topic, funding via NGI and the NLnet foundation. So in the end, you applied for one of the calls, it was through NLnet, right?
Maxime : It was via NLNet, yes.
Walid : It’s filling out a form.
Maxime : That’s right. On the NLnet website, there are regular calls for applications. NLNet is part of a consortium. There are several organizations in this consortium, including small singularity, of which Helenkin is a member. This consortium is going to recommend to different projects, it’s going to make this means of funding known to the free software community and so it’s started to fund a lot of projects so as you said but then it’s NLNet that manages so we apply on the NLNet website and it’s NLNet that reviews the different projects, chooses which projects are funded and then we are in contact with NLNet to obtain the different types of… so we sign a Memorandum of Understanding to record our agreement on what is going to be financed.
Then we make the corresponding developments and ask them for payment once it’s done.
Walid : So what does this NLnet funding imply? What changes from the moment you start to get this funding? And by the way, you’ve had several too? What’s actually changing for you?
Maxime : What’s different is that we don’t have to pay ourselves anymore, which makes a huge difference. Also it structures the development a little bit, that is to say that in relation to…
When I started the project in 2014, I was a complete novice in technical project management. So I learned while doing the project. After that, Jums brought experience. He had worked as a developer in an organization where there was already more professionalism. So he was able to bring things to the table. But after NLnet, it forced us to have a vision: a little more to anticipate what we were going to work on in the next few months.
That is to say, ideally, we want to be able to offer features for which we are asking for funding and that it corresponds to the work that actually makes sense at the time. It forced us to think a little bit more upstream about what we needed to do now.
Walid : What do they see interesting about inventory that makes them want to invest money in Inventory?
Maxim : what interests them in Inventory is not so much the book-sharing aspect as the innovative side of how we will reuse data, structure different databases, all this with free licenses on the data and on the software, and how we will build this knowledge base on top of Wikidata, in relation to Wikidata.
It’s this whole aspect, it’s the whole bibliographic data pillar, federated data, that they’re mainly interested in, even if they’re also interested in the… So then it’s always interesting, here I say this, it’s more in the feedback we got on the third financing that has just started, but depending on the interlocutor we have in front of us, at NLNet, there will be an interest in different things. In any case, sometimes the focus is on different things.
But so yes, lately, it’s been more about this federated data aspect.
Walid : So actually, basically, from the moment you start to get NLNet funding, so there are several, it allows both of you, that’s it, to pay a salary, that it becomes your business in the end?
Maxime : So it was already our de facto activity, but at least we could be paid. In 2019 we created the Inventaire association which has two members, so Jums and I, and we were able to work in this association whose statutes are available on the Inventaire wiki to go and see it, and so since then we have been an employee of the association.
Walid : So it’s interesting to see that in the end this funding can change everything in a project.
Maxime : It’s likely that if we hadn’t had this funding, at some point we wouldn’t have been able to continue the project. I had already come to spend many years in a frugal lifestyle and after a while there is an exhaustion in being a bit in nomadic mode and always paying a little attention to your expenses. And so having the opportunity to make a living from the project you’re working on full-time is still critical in the survival of the project.
The community around inventory
Walid : Next point, we’ve started to talk about it a little bit, it’s the community around inventaire.io. Who is your community?
Maxime : So in the end, we’ve already seen a lot of different aspects of this community. So there’s a whole aspect to Wikimedia. So we have many users of Wikidata, of Wikipedia, who come to find in Inventory the means to manage their library while being very close to Wikipedia and Wikidata. Because on Inventory, once you see your inventory, you can also go and explore the bibliographic database. And everywhere in the bibliographic database, we’re going to show excerpts from Wikipedia with a link to the corresponding Wikipedia page, show Wikidata data.
And so for someone who is a contributor to Wikipedia, to Wikidata, it’s interesting to see all this data that they contribute to. It’s quite appreciated in the community, that aspect. One of the ways Wikidata characterizes inventory is through a visualization of Wikidata. That is to say, from their point of view, there is the Wikidata interface which is a bit austere, we see very raw, very minimalist data, and there are different visualizers and inventories is one of them.
So that’s a part of the community, then there’s obviously the whole free software community, where maybe it’s the moment when what warmed my heart was the last free software day in Lyon (LDLR: the JDLL). It seemed to me that this was perhaps the room in the world with the highest density of inventory users. Because I spent a lot of time there in Lyon. And in the free software community, that’s where there were the most people familiar with the project. It motivated me a lot at the time on the project, because we get warm feedback, and in particular I’m very grateful to Framasoft who has supported the project for a long time, who had done an interview, published an interview in 2019 (Editor’s note: in fact it was a mistake by Maxime, it was in 2021 on Framablog) which also brought us back a lot of their community, French and French-speaking free software.
And then there’s a third aspect, but one that we may not know as well about, which is the whole world of book lovers, librarians, book professionals, who sometimes find…
The librarians we met, who told us that it allowed them to continue working from home because they continue to be librarians. That’s kind of what we’re proposing. Everyone is invited to become a librarian in their network. And so there you have it, people who love books can find in this tool a way to live their passion.
Walid : What do you know about your community of users, other than when you meet them physically in a room?
Maxime : So we know what we can see on the site, that is to say that on the site we can see, there is a map where we can walk around and see the local groups, the users who have substantial inventories. What we’re seeing through this is a lot, so maybe the biggest collective groups of users, they’re going to be activist groups, groups that want to share knowledge on a specific subject, so we’ve seen groups of developers, groups, anarchist libraries that are going to do their inventory because these associations have a room with a library but don’t necessarily have library tools and are going to use Inventory as a tool librarian.
Walid : That’s what I was looking for when I came across Inventory.
Maxime : That’s the initial goal of the project. That was kind of the idea I had that we could have groups by companies, coworking, associations, that each collective could have its library distributed like that.
Walid : Are the majority of the users French-speaking or are they spread across a lot of different countries?
Maxime : I don’t have very detailed statistics on this, but with a wet finger of what we see on the map, the air of being half in France, another 40 percent elsewhere in Europe and 10 percent elsewhere in the world.
Walid : And so the last question I have about the community part is that as a project, an inventory, what gives its community a tool to be able to interact with the project? Is there a forge? Is there a forum, a discussion channel?
Maxime : So we have different tools. In the first means of contact we have, in general it is either by email, because the site offers a contact email, or by social networks, especially present on Mastodon, Fediverse. And once there’s that first contact, we invite people to join our chatroom. In particular, we have a discussion group on Matrix Element where we have now started to divide by topics, bibliographic data or technical topics, or general discussion. So we invite everyone to join the topics that interest them in there. Conversations are by default in English so that you can invite people a little more widely than just the French-speaking world, although sometimes the discussions come back in French, if people are not comfortable in English.
We also have a wiki where we will document the project. We’d like to do more and more tutorials that help newcomers to the tool get familiar with the tool. We’ve launched drafts, there’s still a lot of work to be done, so if there are people who want to contribute, it’s very welcome to make tutorial sheets to help people come and adopt the project.
So the tool is the forge. We have a git forge, so we’re still on the Github. That time will probably come to an end. Here we take a close look at everything that is being done on federated forging projects with ActivityPub. In fact, you’d like to be on a free forge. It’s always the problem of how not to be cut off from contributors. If we could go straight to a federated forge, that would be the best. There’s a lot of movement in this space. For the moment we’re staying on Github, but we’re keeping a close eye on what’s happening on other free forges.
What is Fediverse?
Walid : Next point, this is one of my favorite points, it’s the Fediverse. So we’ve already talked in other episodes, but I talk again and again each time with the projects that fit in with the Fediverse. There’s a whole inventory section around Fediverse and ActivityPub.
But first, the first thing I’d like to ask you is, what is your definition of Fediverse?
Maxime : To the trick question!
Walid : That’s why I ask for it from all projects, actually. That’s because it’s for everyone to give their own take on the thing.
Maxime : There are several Fediverse, actually. I think there are several possible perimeters. The broadest definition is all social networks federated around federation protocols. Today, we hear about ActivityPub, but before ActivityPub, there were already Diasporas, Frendi.ca. There were already things that existed and that are considered part of the Fediverse, at least in its history. Because today it’s true, a lot of things are happening around ActivityPub. This is perhaps the second definition today of Fediverse, which is all these tools, these social networks that exchange with the ActivityPub protocol.
Walid : So my second question on this is, what is the inventory space in the Fediverse?
Maxime : It’s typically Mastodon, it’s about exchanging micro-blogs, exchanging notes. From a technical point of view of ActivityPub, it is the software that publishes notes. The servers notify each other of the new notes available and we have a flow of information and activities. And so for this purpose, ActivityPub seems to work. So there are criticisms to be made about the viability of this mode of operation at the scale, about what we see, for example, instances that, having limited disk space, are forced to delete notes from the history after maybe two years, delete what they have locally. And so that means that we can no longer access notes older than two years, which is problematic from an archivist’s point of view or just from the point of view of people who want to have access to the context of these old notes.
But hey, overall we manage to recreate with ActivityPub, with Mastodon, a kind of distributed Twitter. It works pretty well, we have a large user base. It also works quite well with posting comments on videos, so on we see Peertube or I think there are other software that I may not know as well. There are different things like that that come together with Mastodon and where the feedback seems to work. But as soon as we go to uses that are less in the commentary, it seems to me that it can become complicated.
And in particular, inventory from this point of view is a bit weird. That is to say, when you create an inventory of your books, you can think of it as an activity stream, but the activity stream is less interesting than the database that is built up by this inventory. That is to say, having the latest books added to your inventory is interesting, as a topicality. So there are two questions that the inventory is trying to answer. It’s:
- I’m looking for a book that has it?
- What books are available in our networks, what could I borrow if I wanted a book?
And these two questions, from an HTTP request point of view, well, protocol, it’s not necessarily very practical to go through ActivityPub to do that.
Why ActivityPub is not suitable for an inventory tool
Walid : Is that the case now?
Maxime : No. I’ll tell you why it’s complicated. It’s that when you’re looking for a particular book, you want to query a database and that says “well, well, I have such and such a book in the database, well, such and such a person has such and such a book and could lend it to you. And that in the ActivityPub model, it would require having the information that such and such a person has such and such a book. So it would require having been there at the time when this person, who may be on another instance, published the activity that he had such and such a book in his inventory. And that would mean being able to keep this information over a long period of time because maybe in 5 years, this person will still have this book in his inventory and I would still like to know where can I find this book, but the activity will have to be able to be still available. And in fact, it seems to me that this model of ActivityPub where each server will locally copy the database that will then be searchable shows its limits for this type of use. And that we’d be much more… It seems to me that it would work much better to keep the reference data on the instances and that when I make the request to find out who can lend me this book, my server will ask the other servers who has this book. And so that would mean that someone who has their inventory server on their Raspberry Pi could just have their inventory data locally, but then go and query the server of a library that has 50,000 references without having to have their data locally. And so just go and ask for the piece of data that we’re interested in. So there you have it, it seems to me that for stock querying, ActivityPub is not the finite federation protocol.
ActivityPub features implemented in inventory
Walid : Do you currently have any implementation of ActivityPub or none at all?
Maxime : We have an implementation of ActivityPub that aims to share inventory activities. That is to say, when you have made the choice to make your profile fediverse, it is a logism that you have invented, so you can go into its parameters and make your profile fediversible. From there, this will mean that typical people on Mastodon or elsewhere on the Fediverse will be able to follow your profile and receive activities when you add books to your inventory. That’s one aspect. And so that’s the flow of activities, it allows us to know what’s new in the inventories of the people we’re interested in.
Walid : There is no notion of commentary?
Maxime : No, there is no notion of commentary. It’s a bit of a minimalist implementation that focuses on this workflow aspect. There is a second implementation of ActivityPub which is based on knowledge and in particular it allows you to track not a user but an entity. So we’re going to be able to follow an author, a publisher, a work, and when there are changes that are made to the bibliographic database, for example when there’s a new edition coming out with a given publisher, and if we follow that publisher, we’ll be able to see in its behemoth feed that there’s a new edition that has been added for that publisher. So that’s very experimental because there are uses that can be interesting but it’s not always obvious. It’s not necessarily that the edition has just been released, it could just be that the data was missing from the database and someone was going to indicate the data. But it’s an experiment that we wanted to carry out and for which we had funding and funding.
Walid : This brings me to what you were saying at the very beginning and which echoes the episode with the people of Open Food Facts with the whole notion of getting the publishers to put their own data on it, since it is themselves the source.
Maxime : But for that, they have to find an interest in it, you have to have a critical mass. Yes, and they are generally cautious. So we, in addition, in relation to Open Food Facts, I think that Open Food Facts is dealing with behemoths, food giants. So that’s yet another category. We have the publishing houses. There are giants, but there are also a lot of independent publishers.
We don’t have a collaboration yet, but I think it could be something that could be interesting, especially for small independent publishers, to help them structure their data. Then, for the most part, the web is not their job, and so there can be some apprehension, lack of knowledge of the confidence they can have in a project like this, and perhaps of the usefulness that there can be in being present in the database like that. In any case, for us, it is one of our objectives to support independent publishing houses in their effort to offer the readership things that are not offered by publishers who are all concentrated at Bolloré. All the ways we can support them, we’re warm, we’re interested.
Inventory and Bookwyrm
Walid : last topic on this news item, I have a friend of mine who once told me about a tool, (hi Fabrice), called Bookwyrm. It’s funny because we were talking about it earlier about anti-capitalist licenses, it has an anti-capitalist license. It’s a tool that allows you to do book reviews and the first time I saw it I was there “but it’s great this thing but in fact there would be things to do with Inventory!” and so in fact I wanted to know if you had done things with Bookwyrm which is also another service that itself is also federated if I say no nonsense and so there you have it I was wondering if you have any relationship with the people at Bookwyrm, if you’ve ever done things with them.
Maxime : We had exchanges, in particular by various contributors who came to propose integrations in one direction and in the other, and there is in particular in the existing today, there is a use by Bookwyrm which reuses inventory data.
Walid : Do we say “Bookworm”?
Maxime : I think it’s “Bookwyrm”.
Walid : OK, I didn’t know how to put it.
Maxime : After that, Bookworm uses data from OpenLibrary and inventory.
So that’s a first integration. We’d like to be able to post reviews that have been written in Bookwyrm. We’d like to be able to display them in Inventory. We can’t do that at the moment. This goes back to the problem I mentioned before, which is that typically, the requests we would like to be able to make are “for a given work, give me the reviews that correspond to this work”. And we don’t know how to make that request to Bookwyrm today.
And so, because we don’t know which body to ask him about, there’s no way to make a federated request. The only way, again with ActivityPub, is to listen to the activities to build the database locally. So in the absence of that, at the moment, we’re not able to display those criticisms. We also have another problem with the data structure. You should be able to search their database by ISBN or by Wikidata ID or by OpenLibrary ID or Inventory ID.
Be careful, open library or inventory, we’re going to find a way to make these requests. So it’s a technical problem that we have. And then there’s also the consideration of, “do we want to have the ability to federate, write reviews in Inventory and then be able to share them with Bookwyrm”?
It’s a recurring topic and in fact, it could be interesting, but it’s true that the two projects are often compared and it’s not always easy for people who come to work on these subjects to see the differences.
We really focused on the physical objects delivered and on the management of their loans, donations, etc. Whereas Bookwyrm really set out on an alternative to Goodread, talking about books as ideas, talking about books as works. And somehow, these two tools could have connections, could have overlaps, but it’s not directly competing in use. You can’t manage inventory with Bookwyrm, you can’t manage loans, make exchanges, etc. And today we can’t make… So we can but it’s not really optimal to make reviews today in the inventory.
Walid : Ok, I’ll follow it with interest if things change in the years to come, because it seemed to me that there were indeed some nice synergies on this.
Progress report after 10 years of the inventory project
Walid : The last part is what I call the challenges ahead. In fact, I wanted to know a little bit, update, where are you and a little bit, what are the things that are going to happen? First of all, where are you at? What do you think of the project after 10 years? What’s good? What’s wrong? How do you see it? That’s the first thing.
Maxime : That’s a difficult question because we’re often with our noses to the grindstone. So here, we have to raise it a little bit and see the project a little more broadly. There are clearly things that motivate me to continue the project. There is sustained interest from different people. We get a lot of feedback from people who think it’s a great project. And so that’s kept the project going all these years. After clearly there was no audience success, the number of users is not insane and so it raises the question of the usefulness of the project sometimes. We say to ourselves, well, is it worth spending so much time on a project where there are not 500,000 users? After us, it’s, and I think I’m thinking in particular of Jums, who reminds us of this regularly, who says that if there are a few users, a few groups of users who have a use, for example, in associative libraries, in collectives, where they will be able to share knowledge like that, in fact, that’s enough for us.
It already justifies the project of being able to help collectives share knowledge. That’s enough motivation. It can be complicated sometimes on a daily basis, after 10 years, to find the motivation for a project that is still relatively unknown to the general public.
Walid : You don’t give a presentation, for example, at FOSDEM?
Maxime: I did a lot of them in the first years of the project. I got a little exhausted.
I used to run stands, I remember, in 2015, running a booth in parallel with COP21. No, it wasn’t there. The COP in Paris, there was a festival, finally there were booths where there were free parties where I would run the booth all day and make a presentation, etc. Very enthusiastic.
And actually, it takes an insane amount of energy to do a day like that. And so it’s true that right now, maybe I don’t have the level of energy that I might have had at that time. I’m saving myself a little bit more. At FOSDEM, I went a little more to peck and chat with people. I was available to discuss, but I didn’t feel the energy to go and give a presentation, which meant blocking out months in advance. It can be complicated.
And on this point, it’s true that this is one of the aspects, it seems clear to me that there is a need for relays, there is a need for there to be new energies that come to join the project so that people still have the desire to go and see everyone to talk about it, because maybe we are tired after ten years.
Inventory Challenges
Walid : You actually just answered part of my next question, so who were the challenges actually, what were the challenges for the coming months, years of the project? The first challenge was to get new blood. Do you see any other challenges, other big challenges ahead?
Maxime : Then there are the challenges, so we’ve just signed an agreement with NLnet for the developments over the coming year.
So in the challenges to come, there is everything that we have agreed on and in particular there is the inventaire.io site, which is the main body and, to my knowledge, the only one because, in particular, because we have more or less discouraged from creating other bodies by saying as it stands it is not necessarily a good idea. And the reason for this is that creating new instances today means starting from an empty bibliographic database. We have Wikidata, which is still available, but we don’t reuse all the work that is done on inventaire.io to improve bibliographic data. And so, one of the major projects will be to allow new instances to be created, while reusing inventory.io data.
And so, it’s possible that the two pillars of the project I was talking about in the introduction will be more clearly separated in the future. And so, that we have another site that is dedicated to bibliographic data and that the inventory part can be more easily decentralized, so that we have several instances of inventory and therefore of management of its inventory of books that reuses shared bibliographic data.
This is perhaps the biggest challenge for the year and then we have a lot of challenges on how we will be able to improve interactions with Wikidata, because it was a bit of a crazy challenge to embark on a project that uses a database controlled by another project. This means getting involved in the other project’s data model choices, etc. And this poses difficulties for which today we have a certain number of answers. The project has had time to mature on this. And sometimes patches too. And there are things that we’d like to improve, and these are also big projects where we’re going to try to solve problems that we’ve been identifying now for a number of years on the way we interact with Wikidata to be able to improve the way we reuse data, and also we’re going to be able to share more data with Wikidata, especially design data. These are perhaps the two biggest challenges ahead for the project from a technical point of view.
And then there are these technical challenges and we have, as you said, there is an organizational and communication challenge because that’s really, I think, what is perhaps the most problematic today. So it’s our difficulty in bringing new people into the project. That is to say, we are very happy with all the contributions we have in the bibliographic data, in the translations, but there are still very few people who come to help with code. And one of our hopes is that with decentralization, we’ll be able to unlock this because we hope that people will be able to install the inventory software and see how they can improve their instance and therefore come and contribute. So that’s one of our hopes on the code contribution aspect. And then there’s a whole communication issue, where we’ve tinkered with stickers, flyers, but it’s still very small, we don’t distribute many much, we print very little. There may be a lot of work to be done on this, in terms of communication, and to find ways to make this project known, which is now, because for a number of years, I may have put on the brakes by saying: no, but it’s not ready, it’s not ready. I think that now we are at a level of maturity where we can bring people from the general public to the tool without them breaking their teeth on bugs etc. I think that now might be the right time to speed up communication and the problem is that we are the nose of the technique and so we can’t take this time to play dumb.
So here too we may need help, new energies and on that.
Presenting inventory to someone who doesn’t know
Walid : We’re coming to the end of the interview, I’d like to move on to a little conclusion and in conclusion I’d like to ask you two questions. The first is how would you present inventory in one or two sentences to a user who doesn’t know? What would you say to him?
Maxime : So it will depend on the user, I usually adapt the presentation in public.
Walid : You take someone who is at a party, you take someone who doesn’t know, so you don’t know the technical past, how do you explain it in two sentences or three sentences, what does Inventory do?
Maxime : inventory allows you to make an inventory of these books, so for each book say whether you want to lend it, give it away or sell it and choose who can see this resource next. It’s a way of presenting the project. And another way of saying the same thing is actually that it’s a tool that allows you to build federated libraries. We will get to the point where collectives can have a common library distributed, and therefore each one becomes the librarian of the rest of the network. We help collectives to create distributed libraries. That’s another way of looking at the project.
Presenting inventory to a free software developer
Walid : Second question, how would you introduce Inventory to a free software developer? What would you say to him in a few sentences?
Maxime : It’s a very rich project with a whole bunch of questions and it’s exciting because we’re going to be juggling a whole bunch of technical bricks, on structured, federated data issues. We’re going to do SPARQL, HTTP, ActivityPub. We now have questions about decentralization, how we are going to publish software that can be reused by different people.
And so have questions about how we make this distributed maintenance as easy as possible. And we’re going to have the whole question of federation other than through ActivityPub. So to answer all the questions I was asking about how we go about questioning different bodies about what they have in their database. So we have questions about which protocol to use to make these federated requests. Maybe it can be DHT (distributed hash table), maybe it can be other peer-to-peer protocols. There are a lot of technical challenges and then there’s the whole bibliographic data part where there’s modeling for all those who are fans of books, comics, manga, there are a whole bunch of things to do on how to represent the data.
Are you interested in moving from the complexity of reality into a more or less coherent data model? There are things to do. I’m thinking, for example, of the example of how to represent Dragon Ball Z, a series like Dragon Ball Z, in structured data. Do we represent by chapters? Do we represent by volumes? And if so, in what language.
This is perhaps too traumatic an example to begin with. This is not a good example to begin with.
Walid : No, but that’s fine.
Maxime : There are a lot of interesting things to scratch off. And for me, it’s a project that I always find very rich, especially because of all the things it makes known as a book. I discover books all the time, I discover publishers all the time, subjects, it’s fascinating.
Conclusion
Walid : Maxime, thank you very much for responding to my request and we were able to meet at FOSDEM so we were able to talk a little bit this year, it was cool for me too to prepare. If you liked it, leave me some comments, mainly on Mastodon, it’s always a pleasure to have. Maxime, thank you. Good evening to you, stay well.
And then I hope to see you again next time on the podcast to talk again again.
Maxime : Well, with pleasure. Thank you to all listeners and join us in the chat. We hope to see many of you….
This episode was recorded on February 29, 2024.
License
This podcast is published under the dual license Art Libre 1.3 or later – CC BY-SA 2.0 or later.