⚠ Warning: This repository is a WIP. This project is in its early stages and does not have any code. Please wait to submit any issues, and stay tuned for updates.
Update, 2024-21-3: two major structural changes.
- Updates will be put into a changelog for easier access. Please see CHANGELOG.md for future reference. Dates will be written in ISO notation yyyy-mm-dd to minimize confusion. If a new format is chosen in the future, it will be put into this document first.
- Due to their complexity, there will no longer be git submodules for welkin-book and pywelkin. Instead, this README will only include links. Interested contributors can clone which projects they would like to work on. This will be the last update put in this README.
Logo and Timelapse: TBD
Welcome to Welkin, an all-purpose knowledge manager (AIM)! You can write about any and all pieces of information you wish to keep. It's a special programming language specially designed for information!
- Writing a screenplay? Store all of your key events and characters into their dedicated nodes, interweaving them as you develop the plot.
- Have a bunch of scrambled notes from a class? Put your key ideas into nodes and interconnect them, allowing you to easily traverse what you jotted down, and make it easy to keep adding on.
- Working on a programming project? Store each key function in its own node, full with documentation and overall structure. Keep your implementation inside the node and better understand how every component works.
But this list is not exhaustive; the sky is the limit!
- (The Welkin Book)[https://github.com/AstralBearStudios/welkin-book]
- (PyWelkin)[https://github.com/AstralBearStudios/pywelkin]
I'm using it as a general term, broadly meaning "anything related to your perception or thought". My definition comes from the etymology of information (with added emphasis):
from Latin informationem (nominative informatio) "outline, concept, idea" noun of action from past participle stem of informare "to train, instruct, educate; shape, give form to";
The way you perceive or think about the world creates unique forms, which is what I am calling information.
Note that information doesn't need to be true. It could be ficitious (in a book or screenplay). It definitely doesn't need to be knowledge, but I would claim its underlying structure does provide knowledge. Now, that is a rabbit hole in of itself, and I will not get to that here. (There will be an extension that handles verification and knowledge exactly: TBA).
Needless to say, it's nice to have a broad definition. Most importantly, you can, and should, write everything down! In my opinion, every piece of information formed is valuable in of itself.
- Have a mistake? You'll want to keep it for later! It could help someone else down the road
- Think you're getting stuck on a problem? Who knows what you have written; maybe it could apply in the future or even apply to something else entirely
- And the list goes on
But, I hear you asking, how do I manage all of these notes? That's where some of the core features of Welkin come in: not only can you store everything, you can easily navigate it!
That answer depends on how you perceive Welkin. From the outset, Welkin is a tool to handle labeled (finite) graphs (or networks). That's it! It can determine whether two graphs have the same structure, no matter how you name it! Everthing you do is fundamentally based on combinations and connections, no matter how many you have! Plus, you can do some special things with the computer, with a special (optional) component for making any program! Note that you can write Welkin, the language, pretty much anywhere, including good ol' paper and pencil. (I will have protocol templates you can use to help you transfer between paper and digital notes: TBA).
However, philosophically, Welkin is based on a theory called Continuum Foci Logic and Theory (CFLT). This theory is heavily inspired by both Western and Eastern thought and aims to provide a unified theory of epistemology and ontology. It is currently in the works, with some of my ideas posted on my blog: Wild Perpetual Curiosities (WPC). Over time, CFLT will be described in Welkin! That way, you can pretty much describe anything. You can use Welkin without knowing anything about this; the role of CFLT is to emphasize and enhance the inherent capaibilites of Welkin. (As I will eventually prove, Welkin is extremely powerful!)
Welkin, as a program, does need to be standardized for everyone to use. (Otherwise, it would be a bit chaotic).* To satisfy this need, there is an official book (WIP) fully describing how Welkin, the program, works, as well as a formal specification for the Welkin language. Welkin stores information in meta-graphs, which means anything can be a node, including edges or other graphs! This has yet to be seen, but Welkin aims to be a universal format. Imagine comparing structures from completely different disciplines! In this sense, Welkin is a universal (written) language!
- Zoom in/out of ideas
- Always have the option to extend on information
- Customize the way you perceive them
- Always have a mechanism to defeat repetitive structures
- Long Term: Accessibility and Human Language Support
For cross-platform availability, the first official implementation of this project is in python, called PyWelkin.
There will be dedicated files for the roadmaps, updates, etc. Eventually, these will be written in .welkin files, serving as a unified way to communicate ideas for the project (and all related projects).
Lead Developer: Oscar Bender-Stone
Please email [email protected] if you would like to be a contributor. I have yet to make the guidelines, but I am open to any recommendations as I am writing them.