My first exposure to “frames” (the data structure) was when I took my “Knowledge Representation and Reasoning (KRR)” class in college. That class was an elective. I simply picked it because I was interested in it, and I wanted to pursue research in the field of knowledge management. Here’s its definition from Wikipedia. https://substackcdn.com/image/fetch/$s_!5HsC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2f28ed7-245f-46ee-92cf-ccaf5ca191b9_502x443.png When I first encountered it, I didn’t really understand it. But there was an illustration in the KRR book that visualized what a “frame” is. It looked something like this. https://substackcdn.com/image/fetch/$s_!UE1v!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5636aa5-42c9-4473-a8f2-824392f075da_602x559.png An “entity” is described by several slots. Each slot has its own value. Each value has its own “type” (or data type), which could be an instance value or a link to another frame. Years after passing that class, I stumbled upon something really similar to this concept of “frames”: Wikidata. The terminology has changed a bit. Instead of an “entity,” it’s a “Wikidata item.” Instead of slots, there are “statements and properties.” From there, I immediately became an avid Wikidata contributor. It’s such a unique way to represent knowledge. Instead of representing it through natural text like in Wikipedia, in Wikidata we’re forced to abide by a certain schema and ontology. In some ways, it makes knowledge representation much more efficient (sometimes it’s easier to construct a knowledge graph triplet than to write it as a sentence, especially if your writing skills are poor). Yet at the same time, its current ontology is “not expressive enough” to represent complex knowledge. In order to make the ontology “more expressive,” one can expand it by proposing new Wikidata properties. Doing so requires extensive discussion, especially to ensure that the proposed ontology remains in sync with, and does not conflict with, the existing ontology that has been built up over the years since Wikidata first went online. Which is... tedious. Meanwhile, I see this kind of knowledge representation as quite an efficient way to represent knowledge. Maybe even for casual, personal use. Well, Wikibase (the software behind Wikidata) is open source. One can simply install it on their personal machine and experience the full breadth of Wikidata in the privacy of a local machine. From there, you can use it for casual, personal knowledge management. But I never tried installing Wikibase on my machine, despite wanting to use it to manage my own personal knowledge graph. I don’t have Docker installed on my PC. So, I made it myself, building it from scratch using a tech stack that I already know: PHP. https://substackcdn.com/image/fetch/$s_!QtfW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F590c28c4-990d-47a7-a33c-18b9406b13e3_807x648.png