a semantic site

I started this project to make colourcountry.net look a bit more up to date and make it easier for me to put things up on there. Neither of those absolutely required me to go back to hand cranking a web framework—a bit of responsive CSS and a git hook would have been enough for that—but I had been working for a while on a new "semantic" content platform for the FT and wanted to bring in some of the ideas I'd encountered there, in a simpler way.

Give real concepts IDs and work with them

I want to be able to talk about places, people, projects, directly on the site, rather than wrapping all that meaning into undifferentiated "blog posts".

Define everything in RDF

On the static web site, I could write content in Markdown and move the HTML away into templates. RDF lets me do the same thing with structure. I can move ideas about how to represent different concepts and relationships into templates, so all that's left for me to type in is the basic facts—the "semantics"—that I want to convey.

I use Turtle to enter the RDF. It's not too hard to hand-crank, and I can hope that someday there will be a decent editor for it. (But I hoped that about XML, and it never happened.)

Draw out the site from a larger knowledge graph

A web site is a slice through all my files comprising those ideas I want to (and am allowed to) make public. But the question of what goes on my web site shouldn't be tangled up with the question of what I want to capture. With FALSE I can put some RDF in any folder, and express what facts I care to about the stuff in that folder, and the Web site aspect of it just happens. Everything lives together.

Use IPFS content addressing for all binaries

IPFS and RDF go together very well: RDF lets me use global, persistent IDs to state facts about my files, while IPFS gives the files themselves a global, persistent ID, which doesn't depend on where I decide to put them, or whether I put them on a web site at all.

FALSE doesn't have to use IPFS-the-distribution-mechanism, and by default it doesn't, it just works out what the IPFS address of a file would be and serves it statically under /ipfs. The idea is that someday IPFS aware clients will do special things with paths under /ipfs.

The binaries get added to the site in a bundle with an RDF snippet giving some information about what it is. That bundle is also on IPFS, so I can assert things about my files in a way that's tightly bound to the files.

Include knowledge about the world

My knowledge graph should be just as likely to contain entities created by others as by me. When a post is just a bit of Markdown, and it lives on IPFS anyway, all we need to agree on is facts about it, like "this content is by you" and "this is you commenting on that other content by me". Which facts we decide to believe is up to us.

Talk about projects, not just artefacts

Not a goal of the content platform, but of the structure of the site, or the way I think about it. Rather than feeling like a bunch of files held together by brief pages, I want the site to tell the stories of projects, to show how they follow on from each other, how one inspires another. I want to be able to talk about unfinished projects, partly as a way to motivate myself to finish them, or at least give myself permission to consider them finished.


Beautiful code

FALSE tries to outsource its own goals as much as possible. The actual code is a proof of concept and I'm trying to limit its scope.

Lots of features

FALSE already has more features than it really needs.