------------------------------------- Post ---------------------------------------

Dev Blog Takomori 1.0:
A New Way of Learning?

I finally have a completed MVP after some grinding. Since the previous dev blog, many things have changed—from the interface and features to the way the prerequisite graph is structured. So let’s see how the MVP currently looks.

Prerequisite Knowledge Graph Update

First, let’s go through how the prerequisite knowledge graph (PKG) has changed. In case you don’t know what a prerequisite knowledge graph (PKG) is, feel free to check out the previous post to understand the concept. As the name suggests, it is a knowledge graph where nodes (knowledge, topics, concepts) are connected via prerequisite relationships. You can think of it as a tech tree in a game, but for knowledge.

The graph’s architecture has been updated since then. Now, the graph has two types of nodes: topic nodes and subject nodes.

  • Topic nodes store specific, atomic units of knowledge, topics that cannot be broken down into smaller topics.
  • Subject nodes store broader fields that encompass multiple related topics (e.g., Machine Learning, Physics, Calculus). They serve as composite nodes in the graph, grouping related topics together. In most scenarios, subject nodes act like topic nodes. However, to ‘master’ a subject node, one must learn all the topic nodes assigned under it.

The subject node is implemented but does not yet display all its child nodes because the number of nodes can be overwhelming. For example, a subject like physics contains many topics, and displaying all of them at once can be overwhelming to user and computationally heavy. Methods to manage and display them efficiently are still under development. You can see the properties and rules of PKG in the figure below.

Rules of PKG Rules of Prerequisite Knowledge Graph

Topics/subjects have different states:

  • Topics/subjects you have not started learning are shown in gray.
  • Topics/subjects you are currently learning are shown in orange.
  • Topics/subjects you have mastered are shown in green.

To prove users have mastered a topic or subject, they must complete a test for topic nodes and master all topic nodes under a subject node to master the subject itself.

I have also planned out new edge types. In addition to prerequisites, I am planning to add ‘optional prerequisites’, which are not required to advance but can greatly help in understanding a topic, and ‘part of’ edges, which define topics as components of a subject.

Rules for Constructing the PKG

To maintain consistency, I have imposed some general rules when constructing the graph.

Rules for Adding Topics:

  • Atomicity: Each topic must represent the smallest indivisible concept and must not combine multiple topics.
  • Uniqueness and Clarity: Each topic name must be unique, unambiguous, and clearly defined.
  • Granularity: Topics should be specific, neither too broad nor too narrow, representing essential foundational knowledge.
  • Exclusion of Non-Topics: Practical skills, tools, general competencies, or broad subjects should not be considered as topic. One must focus on theoretical concepts only, although this might be changed in the future.

Rules for Edges:

  • Direct and Essential Prerequisites: Topics must be direct prerequisites of the provided term and not merely related, they must be essential for understanding the term. They must not simply be related, and they must not be prerequisites in reverse.
  • No Cycles in the Graph: The PKG is a directed acyclic graph, meaning it cannot have loops or circular connections. This prevents situations where a topic becomes a prerequisite for one of its own prerequisites, preventing “chicken-and-egg” problems.
  • Optional Prerequisites: Some topics have optional prerequisites, which are not mandatory but help in gaining a deeper understanding.
  • Simplified Prerequisite Links: When two topics share the same prerequisite, only the direct prerequisite is shown. For example, if Topic C depends on Topic B, and both rely on Topic A, only the links between A → B and B → C will be displayed. The relationship can still be stored in the graph database, to ensure robustness when topics are being removed.

Prerequisite Knowledge Graph (Content)

Currently, the PKG content focuses mostly on AI and a bit of math, which is subjects I know a little bit of and can validate. In the previous post, I mentioned that “this project can potentially encapsulate all human knowledge.” Welp, I take that back. I realized that not all topics require prerequisite knowledge, for example, subject like history, so they aren’t suitable for mastery learning. However, STEM subjects heavily rely on prerequisites, so building a PKG that focuses on STEM has become my priority.

There are still many concerns to address. For example:

  • How do we define ‘knowing’ a topic?
  • Since concepts vary in difficulty, how do we break them down effectively?
  • Some topics are best learned together, so how do we group them while still treating them as separate prerequisites?
  • Should we linearize the learning process, similar to how Duolingo transitioned from a tree structure to a linear format? If we strictly follow prerequisite rules, graphs will have fewer layers but more topics per layer, which could cause confusion and reduce the sense of progression (also not that nice visually).

I am not an expert in pedagogy, I am just a software developer with a preference for this kind of learning method. If anyone has ideas on improving PKG structure and definition, feel free to reach out for discussion.

Takomori (The Interface)

Of course, we have an interface to allow users to access the PKG (visit the website here). Honestly, it is far from being fully usable. However, I can’t wait to let people try it out, so I decided to roll it out as soon as possible. The previous MVP only supported guest mode. Now, users can log in to track their learning progress, take tests for validation, and follow specific graphs of interest.

One of my favorite features is the dashboard and My Tree function. The My Tree section displays all the topics you’ve learned, visually representing your knowledge growth like a tree (good luck growing your own knowledge tree!).

I have planned to implement gamification, but that will have to wait for the next phase. For now, there is a simple leveling system, where you earn experience by completing training and trials. As for what levels will be used for, I’m still thinking about it.

Conclusion

That’s it for this dev blog. There is still a long way to go, e.g. gamifying of the learning process, creating a graph editor for collaborative topic and prerequisite contributions, and even allowing users to build their own private PKGs.

PKG and Takomori still have a long journey ahead. Yet, I’m excited about the progress so far and excited to see how this tool can improve learning experiences. If you are interested in this approach or want to help build the PKG, please contact me or join our community Discord.

----------------------------------- End of Post ----------------------------------