-
Notifications
You must be signed in to change notification settings - Fork 100
Basics: Projects
Now that we have a better understanding of what a Source is, let’s talk about how Knowledge
uses Projects to organize Sources. We will follow up with a few common types of Project structures.
Projects are very similar to folders on your computer, except in Knowledge
, they are also a great way to facilitate structured learning.
Think of the image above. Each oval shape represents a concept, and each concept can have any number of sub-concepts. In this case, the top oval represents the field of Mathematics. Within the field of Mathematics are the fields of Arithmetic and Calculus. Each of those fields contain additional concepts, and so on.
Projects bring structure to the learning process by organizing information into hierarchies. Just like with our Math example, the hierarchical structure of Projects help to break concepts into small and digestible pieces.
In Knowledge
, there is only one Project active at any given time. Whenever you create a new Project, it is automatically set as the active Project.
The easiest way is to click the + Project
button in the Inbox. You can also navigate to the Projects
tree and press the + Project
button there.
Project inheritance is another important concept in Knowledge
. Without getting too fancy, just think of it like our Math example above. Let's say we had a Project called Math, and that had sub-Projects called Arithmetic and Calculus, just like in the image. By Project inheritance, we can say that everything in the Arithmetic Project should also belong to the Math Project, but should not belong to the Calculus Project.
Therefore, when you import a Source and put it in the Arithmetic Project, you will be able to access it from both the Arithmetic Project itself, and the Math Project (because Math inherits everything in Arithmetic). However, you will not be able to access that source from the Calculus Project (because, in this example, Calculus does not inherit anything from Arithmetic).
To get a better idea of how Project inheritance works, take a look at the following Project graph:
Here, we have created the same Project structure as in the image above. We also imported various Sources from Khan Academy and YouTube. If you were to make the Math Project your active Project, you would be able to access all of the Sources. However, if you were to make the Arithmetic Project active, you will only see the two Sources in Addition, and the one source in Subtraction.
You can see this difference by comparing the two images below. The first image has the active Project set to Math, whereas the second image has the active Project set to Arithmetic. Notice that the Calculus Source is no longer available when we "drill down" into the Arithmetic Project.
Note that Project inheritance is a great way to filter out Sources you don't want to see. This is especially useful when you want to focus on a specific topic or subject.
Unfortunately, there is no one "right" answer to this question. There are an unlimited number of ways to structure your Projects, and the "best" structure for a particular use-case will likely be different for everybody.
That said, here are a few of the most common Project types:
- School
- Courses
- CS101
- Homework
- Homework 1
- Homework 2
- ...
- Notes
- Lecture Material
- CS102
- ...
The following example shows a structured reading list on the topics of AI/ML.
- AI/ML Reading List
- Course Notes
- Books
- Newsletters
- Interactive Visualizations
- Blogs
- Meta AI Blog
- Amazon Science Blogs
- Andrej Karpathy's Blog
- ...
- Awesome Deep Learning
- Misc
- Watch List (Videos)
- Course Lectures
- MIT OpenCourseware
- YouTube Channels
- ...
The following example shows the Knowledge
application as a Project.
- Knowledge
- Dependencies
- Angular
- RxJS
- Routing
- Electron
- PrimeNG
- Development
- Web Development
- HTML
- CSS
- TypeScript
- Node.js
- Python
- Design
- Inspiration
- Issues
- Features
- Calendar
- Content Extraction
- Extensions
- Search
- Machine Learning