Implement Related Topics
Right now, topics are not connected to each other, except nesting for the is-a relationship (for e-g: programming-languages/java , nations/china, musical-instruments/flute etc). This makes "Browsing Topics" hard to navigate.
We had started with a strict hierarchical model where each topic could have prerequisites and sub-topics. This is how classcentral.com organizes their topics. However, it was felt that this was too rigid. For example: machine-learning would come under computer-science where as statistics would be under mathematics. The connections between statistics and machine-learning would be lost.
We could support multiple types of edges between topic nodes. And that's why TopicRelation model has this schema: topic_relations(id, from_topic_id, to_topic_id, kind)
However, this table is currently empty. We need to think about what kind of connections can topics have with each other.
Some good insights can be taken from how librarians classify books: Dewey Decimal system, Colon Classification, Faceted Classification, or knowledge-graph techniques such as ConceptNets etc.
This is how classcentral does it.
Link: https://www.classcentral.com/subjects Online course taxonomy: https://github.com/classcentral/online-course-taxonomy
or we could build a concept net like this.
Added parent_id and second_parent_id columns in topics table above and implemented a hierarchy view of this on the topics/<id>/explore page. This lets us show ClassCentral like view, but allows a topic to be shown under two parents. For example: "AI Ethics" should fall under both "AI" and "Ethics".

Leaving the issue open for future enhancements of topic relationships.
One question to think about: Should items on sub-topics be listed on the parent topic?
UNESCO has a relevant standard: https://unesdoc.unesco.org/ark:/48223/pf0000235049
Discovered via https://blog.lobid.org/2019/05/17/skohub.html
There's a good taxonomy and a circular-tree style navigation on https://haha.academy/
http://math.mx/ has another interesting view of topic tree navigation
Some ideas here: https://medium.com/the-experimental-year/designing-a-self-directed-learning-network-v0-3-8a8a990d0bfe
Universal Decimal Classification: https://udcsummary.info/php/index.php
https://app.learney.me/
Also, shared some thoughts in this thread: https://fosstodon.org/@nilesh/108401571160053250
https://skohub.io/dini-ag-kim/vocabs-edu/heads/master/w3id.org/class/esc/scheme.en.html
The Educational Subjects Classification (ESC) is an extension of the International Standard Classification of Education (ISCED-2013). For example, it can be used for classifying by subject services that enable access to or discovery of educational resources. It is developed and maintained in the context of the OER Worldmap (OER = Open Educational Resources).
ack. The ESC is nice for well known school subjects but rather strict when it comes to things which they do not teach you at school. 😃 So, maybe you find other things in the International Press Council Subject Code
IPTC really defines nice taxonomies and classification; all at https://cv.iptc.org/newscodes/ Others are to describe Topic: Media Topic to describe Genre: Product Genre and Genre
It has the same SKOS and JSON-LD definition format like ESC [ just with a few extensions called IKOS ]
PS: The above links the target, better to link the Permalink: https://w3id.org/class/esc/scheme.en.html