Skip to content

Basics: Projects

Rob Royce edited this page Jul 30, 2022 · 3 revisions

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.

What are Projects?

Projects are very similar to folders on your computer, except in Knowledge, they are also a great way to facilitate structured learning.

tutorial_1

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.

How can I create Projects?

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. Screen Shot 2022-07-29 at 6 26 00 PM

Project Inheritance

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:

Screen Shot 2022-07-29 at 7 00 05 PM

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.

Screen Shot 2022-07-29 at 7 02 00 PM

Screen Shot 2022-07-29 at 7 03 52 PM

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.

How should I structure my Projects?

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:

By Course

- School
  - Courses
    - CS101
      - Homework
        - Homework 1
        - Homework 2
        - ...
      - Notes
      - Lecture Material
    - CS102
    - ...

Screen Shot 2022-07-29 at 6 51 03 PM

By Concept/Topic

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
    - ...

Screen Shot 2022-07-29 at 6 52 24 PM

By Project (i.e. Software Development project)

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

Screen Shot 2022-07-29 at 6 53 17 PM