-
Notifications
You must be signed in to change notification settings - Fork 103
Home
Knowledge Canvas is a meta-productivity tool meant to make learning and research easier and more organized. With Knowledge Canvas, you can import almost any digital resource and treat it as a knowledge-producing entity. This is accomplished by abstracting any/every digital resource into what we call a Knowledge Source, which is a polymorphic structure that may contain things like metadata, raw text, images, video, audio, events, timelines, and more. Knowledge sources are grouped into Projects, which are organized hierarchically and can be extended in any configuration the user prefers. Projects can also have their own timelines, topics, etc.
Knowledge Canvas is built on Electron and Angular and is primarily written in TypeScript. It is intended to be Web3 capable and utilizes Open Graph standards.
Two things led to the development of Knowledge Canvas:
-
While working at JPL as an intern (back in 2019), one of my projects involved summarizing articles from IDC and Gartner to support efforts that required rapid research and iteration. Being perpetually lazy, I figured it would be easier to make a computer summarize things for me. While the idea was well received, there wasn’t enough funding/enthusiasm to support it as a standalone project.
-
When UCLA went online back in March of 2020, I struggled… hard. There were far too many digital resources to keep track of and the amount of required reading seemed to increase exponentially. I had various systems for organizing my files, and other systems for organizing web resources, but I felt like there should be a better, more unified, way of doing things.
A knowledge source can be a link to a web page, a path to a local file, a URI to a calendar entry, etc. If you can drag-and-drop something in to the app, it can be a knowledge source. So far I have hooks for local files, web links, raw text, raw HTML, calendar entries (macOS), emails (macOS), and OmniFocus tasks (macOS). This list is limited to the things I have had time and interest to implement, but the possibilities are quite literally endless.
Once a knowledge source is imported, it can be passed to Tika to extract text content, which can then be used to generate extractive/abstractive summaries (a-la BERT, DistilBERT, …), perform topic modeling, document clustering, etc. One of the more exciting possibilities is the PRDAG (short for “pre-requisite directed acyclic graph”). The PRDAG, once implemented, will take in a selection of knowledge sources and generate a graph that answers the question “which of these N articles/documents should I read first, second, etc.“.
Finally, the app is built on Electron, so it has most of the capabilities you would expect from a normal browser. This means you can view/use full-blown web apps like Trello, Notion, and Google Docs directly in the app. As of now, you can also preview PDFs directly from the app using the default PDF viewer that comes with Chromium. Support for better viewing will be provided by PDF.js at some point, and support for markup/annotation will be paramount.
The app relies exclusively on local storage and local processes. There are no servers involved (except a local Docker instance of Tika Server) and local documents never leave your computer.
Cheers,
Rob Royce