30 years dreaming of the semantic web
Tags: webdev, semanticweb, webcomponents, burnout
Published: 2023-12-01 07:11:13

---
title: 30 years dreaming of the semantic web
published: true
description: From Perl to the bleeding edge of buildless javascript web components
tags: #webdev,#semanticweb,#webcomponents,#burnout
canonical_url: https://blog.jonas.liljegren.org/30-years-in-the-web/
cover_image: https://blog.jonas.liljegren.org/content/images/2023/06/amiga-2.jpg
# Use a ratio of 100:42 for best results.
# published_at: 2023-06-19 13:33 +0000
---

I started writing HTML in 1995 after enrolling at the university informatics department. That was the year when Netscape just started adding new capabilities to the web, like background images, colors, tables, javascript and animated gifs.

The first parts of what would become paranormal.se were created at that time. In those days, a homepage was your home on the web. It was a place for your notes, bookmarks and contact information. I have basically kept my homepage from that time, with just some minor updates to keep it usable and somewhat up to date over the years.

I soon found my home at the student computer club. Spending all nights learning programming in Perl on the Solaris, while listening on MP3s of [Belinda Carlisle](https://youtu.be/j2F4INQFjEI), [Tracy Chapman](https://youtu.be/AIOAlaACuv4) or anything else I found on the server. Installing qtest1 on all the lab computers for checking it out.

I used Perl for creating the first online facebook for the students at the informatics department. Also created the student newspaper CMS (Snutten), and the computer club website (SKIP) along with the growing paranormal site.

I have always preferred dynamic languages that cover the space between low level functionality and high level concepts, from ARexx to Perl to Javascript. Living on the edge, submitting bug reports and patches to the language or libraries since around 1996.

Paranormal.se was a project to create a semantic knowledge base with a hypertext frontend. The idea was to discover and surface new knowledge by integrating a large body of research and existing theories. I was hoping to create a sort of discussion forum where each new discussion would help to organize all existing information, making the whole continually more connected and refined. So many algorithms today work by surfacing the most popular and generally understood thinking. I had an idea of how to nurture ideas and perspectives and let them grow until more people understand them. Unlocking the secrets of the universe.

Dreaming of Xanadu. I love the original vision of Ted Nelson, who coined the terms hypertext and hypermedia. This would later inspire Tim Berners-Lee creation of the Web. I was deeply involved in the semantic web during the introduction of RDF in 1999. The dream of connecting all the world's knowledge with machine-readable semantic markup and a universal API for all public databases. The ontologies would  allow for artificial intelligence to answer any question using deduction with symbolic logic. This is still very much a central part of knowledge representation today and used in combination with machine learning and large language models.

Changing workplace, I picked up my personal GNU/Linux server with all my sites and mail, to find a new home at the next company. This would be the place where I fully developed my hypertext dream, using the technology both for the company and the personal project.

Paranormal.se [version 3](https://paranormal.se/) (P3) consists of about 30.000 topics and 16.000 users. It was a very active community around 1998 - 2008. This was before Wikipedia and Facebook. In 2007, I started developing version 4 (P4) with a much better system for version management, graph database flexibility and deduction capabilities. By 2009, I was burned out.

P4 was supposed to use my semantic database library [RDF::Base](https://blog.jonas.liljegren.org/rdf-base/) (RB), which was created to run on my application framework [Para::Frame](https://blog.jonas.liljegren.org/para-frame/) (PF), built with Perl. PF and RB have been continually developed and refined since 2003. It's powerful and versatile, including multisite frontends, content management, request tracker, email handing, translations, external API and load balancing. All of it built on a [semantic database](https://blog.jonas.liljegren.org/semantic-databases/) inspired by RDF with typed literals, reified statements, class schemas and syllogism inference. Since it's a temporal database, parts or whole of queries can be constrained to a selected date.

PF and RB was the foundation for Hotellguiden.se from 2003 to 2009. After that, the system would continue to serve as the main customer management database, handling bookings and statistics, newsletters and even the internal call center administration, integrating all the business systems.

GOV, a web voting system for liquid democracy, was built in 2009 by my brother, for Aktiv Demokrati. It was built using RDF::Base and included ranked pair condorcet method for voting on lists. The liquid democracy was implemented by letting users delegate voting to other users. If you did not vote, the vote of your delegate would be counted. This also handled prioritized lists of delegates, voting jurisdiction and the temporal information of membership and voting history. I took over the development in 2010 and continued its development until 2017.

I have administered a lot of sites for forums, blogs or facebook pages related to groups I participated in. This includes Perl Mongers, Aktiv Demokrati, Occupy Göteborg, Zeitgeist Movement Sweden, Direktdemokraterna, in addition to many more personal sites. I also produced a lot of IRL events for Zeitgeist and Direktdemokraterna, including several Z-day conferences and election campaigns. This included a lot of marketing on the streets, public speaking and also online campaigns using ads, facebook and emails. Also did a lot of printing material, recording and editing of audio and video.

All of this ended in 2015. Burned out again, but now with [health problems](https://blog.jonas.liljegren.org/tag/health/). I started investigating what I could do better for recovering my health, including diet, exercise and supplements. Eventually [learned what to do](https://blog.jonas.liljegren.org/re-botad/) to stay productive. I also took more time for rest and relaxation with playstation gaming, renewing my interest in game design. Especially [systemic story games](https://blog.jonas.liljegren.org/tag/systemic/).

A new generation for the booking system started development in 2015, now based on Javascript, NodeJS and the graph database Neo4J. I made the jump from Perl to Javascript and took the opportunity to jump to the bleeding edge, with ES modules, web components and low complexity. That which later would be called Modern Web.

I see so many problems in apps from Facebook, Youtube and others. Especially for making systems that support you switching devices or working with other people, with all information kept up to date regardless of their source. I did a lot of work to make it easy to build large interconnected semantic systems with guaranteed consistency in all async scenarios. More on that later.

By 2020, the project was halted. My workplace decided to simplify and outsource all IT. The world-leading system I had developed was not the right match for the company.

Now, I’m [looking for my dream job](https://blog.jonas.liljegren.org/techstack/), advancing the state of the web using bleeding edge web technologies like buildless web components and reactive state semantic graphs, connected to the latest of LLM AI using embeddings for ML vector databases.