Musings about open, semantic web tech by Matt Derocher

IFTTT for the Semantic Web

The semantic web is a beautiful promise. All data has real meaning and it can interoperate with all other data. I can write an article about Abraham Lincoln and mark it up with RDFa so that it is known who I am talking about. Then, some type of reasoning can be performed and search other datasets and get back info about Lincoln, such as when and where he was born, how tall he was, who his spouse was, etc.

But the problem is, there is no easy way to implement what I just described. There are people working on the idea. Some of the demos look very impressive. But for now, they are just demos. There are some JavaScript developer libraries that are aimed at making it easy to work with RDF data, but it seems like most of them aren’t ready for modern development (for example, most of the libraries I tried only work with Webpack, which was the main bundler a few years back, but new bundlers like Vite are becoming default). A lot of them are also created as part of a research project and then development seems to stop on them after the research is over.

What I want is for all my data to work together. I want to be able to have a group of browser tabs associated with my to-do list. Then I can close the tabs, and reopen them in one click from my to-do app. I also want to be able to write notes in a separate app and include tasks in them that show up in the same to-do app. I want to be able to associate PDFs and other files with my to-do app—not in an upload attachment type of way, but just to reference a document that lives somewhere else from my to-do app.

A lot of apps and services provide APIs. Some apps use APIs from other apps to create connections in their app. For example, a todo app can use a specific API from a specific calendar app to create a connection from your to-dos to your calendar. But that is just for one specific calendar app. There are many different calendar apps, and all of them have different APIs. So the developers have to learn them all and write up the connections.

I remember when IFTTT (If This, Then That) first came out. It seemed like magic. It allowed you to connect so many different services, even if the developers of those apps didn’t write specific connections. I didn’t really know any kind of scripting at the time, so it allowed me to connect my different buckets of data together. Of course, it wasn’t perfect. Data syncing was just one-directional. The two data buckets didn’t actually know about each other. One data bucket just slurped in data that was passed to it. There was no way to update that data and send it back. (Of course, you could create some kind of connection back the other way, but it would create a new data entry and not really update the original data.)

What if we had an IFTTT for the semantic web? What if I could set up connections between data sets without knowing any coding? I’m not exactly sure what it would look like. Since most RDF data exposes SPARQL endpoints, that would probably be the connecting secret sauce. (There is also Project Cambria, which is a non-semantic-web way of connecting two different data sources together.) We would still need tools to make authoring RDF data easier. And easier ways to integrate RDF data into our development. These would be the foundations to make something like this even possible.