Ever been interested in a topic that once you google you end up with explanations(quite often on wikipedia) that rely on foundational knowledge you didn't even know you should have? And then you started working your way back by googling things you didn't know until you hit something you do know and from that point you try to inch your way forward to the original topic just to get discouraged a few hours in? I know I have and it's a pain!
A well built knowledge map that would graph the relationships between different topics in a field would help alleviate this problem. Take for example linear algebra. You've heard about this fancy thing called singular value decomposition but barely know what a matrix is. You type SVD into a search box, and it generates a breadth first tree with all the topics you need to know to be able to understand SVD up to a certain depth. And then you just work from the leafs that you do understand up to the topic you are interested. This saves hours or sometimes days of just trying to understand the ordering in which you should be learning things. It essentially builds a curriculum for the user on the fly for a topic they are interested.
I would propose this as a community wiki so knowledge maps could be crowdsourced and curated as they would be time consuming and difficult to build for a single person. Would also suggest adding the ability to let users create accounts and mark off topics they feel confident they know.
Potential problems: The two big problems with this idea are
1) generating a proper knowledge map: There will be ambiguities in the edges and even the nodes of a map. Sometimes (often) you will need to be clever how you organize the information. For example, your have a dependency listing like: Matrix <- Rotation Matrix, but in reality it might be better to have something like Matrix <- Linear Transform <- Rotation Matrix. Linear transforms would act as an intermediary node for rotation, scaling, shearing, w/e.
2) a topics can be studied in different frameworks: E.g. linear algebra can be studied with or without using vector spaces. Once again, deciding how to create the knowledge graph will be difficult.
Solution: Have multiple types of edges. You can have edges to signify hard dependencies, soft dependencies, generalizations, and extensions. Maybe other types of edges. You will still need to be clever, but having a way to signify the relationship between topics will help resolve the problem.
I think this is great. the biggest usability problem with Wikipedia for me is that I use it as a primer on a topic that I don't know about, but for some reason it is still stuck with the encyclopedia metaphor.
Academic subjects on Wikipedia are close to useless, if your goal is to actually gain a comprehensive knowledge of the subject.
I experimented with something along these lines by attempting to build a threaded layout between sites based on outbound links, hoping that (for blog posts and articles) this would tend to generate a nice set of references back to original sources, etc.
The result (http://precis.gopagoda.com/url/https://news.ycombinator.com/...) still doesn't entirely work right, partly because my implementation is still pretty poor and because I could see how flawed the premise was after I actually tried it - if you try it you'll find a lot of 'threads' wind up at spam links or twitter and facebook inside of a couple of levels.
Still, I think this is a problem worth solving. Good luck with it.
Take a look at a recent project of mine, which begins to implement this idea. The approach uses Wikipedia to help find 'related' and 'prerequisite' concepts for generating a curriculum.
Yes, but as a wiki and with the additional edge information + breadth first listing as I mentioned. It doesn't have to be as finely split up as this one but maybe it should.
I have to say I'm really impressed by their progress since the last time I checked their knowledge map (~2 years ago).
Ever been interested in a topic that once you google you end up with explanations(quite often on wikipedia) that rely on foundational knowledge you didn't even know you should have? And then you started working your way back by googling things you didn't know until you hit something you do know and from that point you try to inch your way forward to the original topic just to get discouraged a few hours in? I know I have and it's a pain!
A well built knowledge map that would graph the relationships between different topics in a field would help alleviate this problem. Take for example linear algebra. You've heard about this fancy thing called singular value decomposition but barely know what a matrix is. You type SVD into a search box, and it generates a breadth first tree with all the topics you need to know to be able to understand SVD up to a certain depth. And then you just work from the leafs that you do understand up to the topic you are interested. This saves hours or sometimes days of just trying to understand the ordering in which you should be learning things. It essentially builds a curriculum for the user on the fly for a topic they are interested.
I would propose this as a community wiki so knowledge maps could be crowdsourced and curated as they would be time consuming and difficult to build for a single person. Would also suggest adding the ability to let users create accounts and mark off topics they feel confident they know.
Potential problems: The two big problems with this idea are 1) generating a proper knowledge map: There will be ambiguities in the edges and even the nodes of a map. Sometimes (often) you will need to be clever how you organize the information. For example, your have a dependency listing like: Matrix <- Rotation Matrix, but in reality it might be better to have something like Matrix <- Linear Transform <- Rotation Matrix. Linear transforms would act as an intermediary node for rotation, scaling, shearing, w/e.
2) a topics can be studied in different frameworks: E.g. linear algebra can be studied with or without using vector spaces. Once again, deciding how to create the knowledge graph will be difficult.
Solution: Have multiple types of edges. You can have edges to signify hard dependencies, soft dependencies, generalizations, and extensions. Maybe other types of edges. You will still need to be clever, but having a way to signify the relationship between topics will help resolve the problem.