over budget
Distributed Idea Mapping System
Current Project Status
unfunded
Total
amount
Received
$0
Total
amount
Requested
$18,000
Total
Percentage
Received
0.00%
Solution

An open source collaborative idea mapping platform with a minimal comprehensive set of semantic components for ideation, maybe w/ voice chat

Problem

Collaboration currently requires several over-featured apps that can’t easily distill first principle solutions for collective idea spaces

Addresses Challenge
Feasibility
Auditability

Team

2 members

  • download
  • download

[IMPACT]

Maximizing the value of ideas would benefit greatly from allowing people to map out the connections between them and build up a shared knowledge base. This collective idea space would allow people to make connections later on and improve the cross-pollination of ideas between different topics. Some of this is already being done through collaborative discussions on Zoom during the after-town-hall breakout rooms and the Swarm sessions where people collaborate on Google Docs and Miro boards.

The idea of this proposal is to create a decentralized open source tool for providing that same type of collaboration through a unified interface that focuses on making semantic connections between ideas without being bogged down by choices about visualizations and different structural styles for laying out information. If there is a simple open standard way to structure contributions to the collective Cardano idea space, and if interactions between collaborators can continue on an ongoing basis, then the amount of insights gained through the process of ideation could be greatly increased.

Methods of idea mapping like the Zettelkasten framework and applications like Obsidian help lots of people improve their individual productivity. This Distributed Idea Mapping System (DIMS) is meant to iterate on the productivity gains of such tools and apply them to decentralized collaboration. It could also include a simple template system which would allow for the constraints of a Catalyst proposal (character limits, required fields, etc…). Ideas incorporated into a proposal could automatically be bibliographically linked to it, giving attribution to those who add info to the collective idea space or to external sources where the ideas came from.

The software will consist of a server application that anyone can spin up on their own system, this will provide a web-based interface and possible command line tools for building a private idea graph. Users will have the freedom to make any part of their idea graph available through a peer-to-peer network to other running nodes. This will possibly use of git, IPFS or similar tools to store shared graph data in plain text files.

The target audience is anyone who wants a tool that helps them make connections between their own ideas, with the possibility of applying individual skills and ideas to collaborative efforts that produce openly searchable results. This could include the process of proposal writing or team building for Catalyst, but it is by no means limited to Catalyst. It should also facilitate collaboration in the process of building an open source project, allowing teams to share insights on a private network, building and maintaining large volumes of documentation, creating specifications for tools and protocols, etc…

This project is focused on goal alignment, which is a serious need for open source development. If you have a large company with a management team calling all the shots, then the process is a little easier, but if you’re trying to harness the collective intelligence of people all over the world, without limiting innovative thinking or the successful streamlining of operations, this requires the automation of a small, carefully selected, number of constraints that optimize for both parallel workflows and the convergence of ideas into unified solutions.

Building scalable systems is a hard thing to do, and it can require a lot of time and effort to do things correctly, but things can be made easier by choosing the right tools. My plan is to write the backend for this tool in the Pony programming language. Pony is an actor model language, which forces you to build things in a way that is scalable by default. Its type system is also comparable in correctness guarantees to what Haskell gives you, without the difficulty associated with writing fast, low level code.

Another challenge is the lack of libraries in Pony, since it’s a fairly young language. This can be mitigated by its FFI that allows interoperability with C or Rust code, as well as the ability to set up virtual environments to run existing command-line tools before native Pony implementations exist… at a later time, I hope to implement the Ouroboros mini-protocols in Pony, but interacting with the cardano-cli tool will work in the shorter term.

I also plan to write a web-based frontend in Elm that provides the UX I’m looking for in a collaboration tool as well as a command-line interface.

[FEASIBILITY]

It should be possible to create an MVP within the 6 months of funding. The features I will focus on in order of importance are as follows:

  1. Ability for one person to map out ideas and compile them into documents individually.
  2. Allowing multiple users to interact on the same server instance.
  3. Connecting server instances.
  4. Peer-to-peer networking between server instances and decentralized storage of ideas.
  5. Wallet or token-based identity and integration with Cardano for compensation mechanisms

It will most likely take longer than six months to integrate it with Cardano for identity and compensation, but most of the other features should be achievable. P2P might take a little more time too. The other’s shouldn’t be hard to achieve.

I’m willing to commit to devoting 25 hours a week for a period of 6 months specifically to this project:

($30/hour)×(25 hours/week)×(*4 weeks/month)*×(6 months) = $18,000

I’m totally willing to continue working on this project without Catalyst compensation after six months, as it will be useful for me.

Ken Stanton

A mostly hobbyist programmer since the age of 12 (26 years) with a focus on distributed systems, compilers, and how programming language semantics influence developer experience. He loves to teach people about technical things.

Elsie Manase

A Malawian with a background in Logistics. She’s going to be helping her husband (Ken) manage his time between teaching and working on his projects. Elsie’s also interested in learning about Cardano and programming. She, and other people I’m working with here in Malawi, will help me test my ideas for UX to make sure they are accessible for people with limited computer knowledge.

[AUDITABILITY]

The codebase will be available on github so people can track my progress. Here are some of the required steps in implementing this project:

  1. Work out the details of a minimal set of Markdown features including Latex math equations and build parsers for the frontend and backend.
  2. Work out the filesystem… how ideas are stored on the system that runs the server, as well as the structure of the graph and how it can efficiently be traversed.
  3. The communication protocol between the backend and frontend.
  4. How different nodes communicate with each other and build efficient connections between different frontend users.

Having a working application that other people can use. Since the codebase will be open source, anyone will be able to take my code and iterate on it if they want something a little different.

If it works for mapping out the details of my projects, and allows people to collaborate on the idea process, I’d consider that to be a success.

(I’ve never been funded by Catalyst since I started submitting proposals in Fund 2.)

Fund 2

Cardano and FP in Malawi:

https://cardano.ideascale.com/c/idea/323778

This was my original, unfunded proposal in Catalyst, back while I was still living in California. My hope was to move here to Malawi and start a business teaching computer science and Cardano, but due to the fact that I’ve had to solely rely on my own savings, any teaching I’ve done here has been informal and just to my group of friends. Getting funded for the current Cardano Tech Training in Malawi proposal would help me teach in a more public setting.

Fund 3

Marlowe and Plutus Mobile:

https://cardano.ideascale.com/c/idea/334477

This unfunded proposal was about creating a mobile interface that could allow people to easily build Marlowe ASTs on their mobile phones, with the hope of adding support for building up Plutus programs too, based on the information that was available at the time. This is related to my current Poplar Programming Language proposal. My hope was that Plutus would become something simpler than Haskell and stick more closely to what is available in the Core language without having a disconnect between Plutus Core’s semantics and what language features exist in the off-chain code.

I wanted to work on this as a teaching tool here in Malawi.

Nmadi Space: A Digital Universe:

https://cardano.ideascale.com/c/idea/334508

This unfunded proposal was a game idea that I’m still playing around with. I sort of want to get something working with my current Poplar Language proposal before I start building a Cardano-based game, because it should greatly reduce the complexity required to build all the necessary features, which would involve a side-chain attached to Cardano through the use of Hydra heads, while relying on a different set of CAP theorem tradeoffs for localized high availability of game states, unlike what is required for monetary security on Cardano. Poplar should allow me to write it all in one language, if I decide to write a game like this.

Fund 4

(No Proposals)

Fund 5

Mobile Plutus and Marlowe Dev Tools:

https://cardano.ideascale.com/c/idea/352064

This unfunded proposal is an iteration of Marlowe and Plutus Mobile that I submitted in Fund 3. As such, it is related to Poplar in the current fund.

Fund 6

Distributed Collaboration Protocol (DCP):

https://cardano.ideascale.com/c/idea/369937

This unfunded proposal is directly related to the current DIMS proposal. It was focused on creating an open standard process for collaboration that focuses on scalability and limiting the amount of necessary knowledge for newcomers while helping to guide them to positions that fits their skills and desired role. DIMS is about building up a map of the idea space in the Cardano ecosystem that is easily traversable. If I add voice chat to DIMS, then finding an interesting conversation will be as easy as traversing the idea space through linked ideas. Other ways of connecting people may also be beneficial. These ideas were part of my research for DCP and may find their way into DIMS.

Plutus Integration with Pony Lang:

https://cardano.ideascale.com/c/idea/370089

The current Poplar Programming Language proposal is what I really wanted to do when I submitted this unfunded proposal.

Elm Integration with Plutus:

https://cardano.ideascale.com/c/idea/370150

This unfunded proposal is also related to Poplar, since I want Poplar to contain the basic semantics of Elm as well as the functionality of Elm’s Core library.

Fund 7

(No Proposals)

Fund 8

Distributed Idea Mapping System (DIMS):

https://cardano.ideascale.com/c/idea/401008

An idea mapping system that will be highly useful for organizing and creating documentation for other projects like my programming language, Poplar, as well as opening new doors for decentralized collaboration.

This will be written using the same technology stack as Poplar so that I can hopefully port its code to poplar for easier codebase maintenance!

Poplar Programming Language:

https://cardano.ideascale.com/c/idea/401069

This is my programming language that I want to design and write compilation tools for to lower the barrier to entry for Dapp, side-chain, and blockchain-based game developers.

This project will highly benefit from DIMS, because it requires doing comparative analysis on the type theories of many different programming languages, while DIMS still doesn’t exist I’m going using a proprietary application called Obsidian to build up my connected knowledge base. It’s free for personal use. My hope is to make DIMS more minimal than Obsidian, so porting to DIMS might take some work if too many Obsidian features are used.

Cardano Tech Training in Malawi:

https://cardano.ideascale.com/c/idea/401102

I live in Malawi, the warm heart of Africa, with my wife Elsie (a Malawian), and this proposal is to start a public study space here where people can come to learn about technical aspects and usage of Cardano as well as functional programming among other technical topics.

I plan to teach, and use the space to work on my other projects when I’m not teaching. My wife will take care of administrative details as well as learning more about Cardano.

Having tools like DIMS will enhance collaborative learning sessions and help students to build up their own project ideas from the process of finding new connections in the collective idea space.

My hope for Poplar is to give new programmers the chance to utilize the full power of the Cardano blockchain in their own projects with minimum possible cognitive load. During my time here in Malawi, I’ve taught some of my friends here the basics of programming in Elm. Elm has simplicity, stability guarantees, and the visual output of a language for the web. These things make it more accessible for beginners. The cognitive load of setting up the tool chain, understanding Haskell compiler extensions, monadic composition, template Haskell, and more, makes it very difficult to even consider for a programmer who has just started learning. Abstracting away complexity, and providing easy-to-use tools, without compromising efficiency, and the guarantees given by a pure functional language with a powerful type system could make teaching Plutus-based development accessible… even to teach to beginners here in Malawi.

Community Reviews (1)

Comments

close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    d. 3 se. 24
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    d. 4 se. 3
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    d. 3 se. 48
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    d. 2 se. 16
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    d. 3 se. 14
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    d. 3 se. 19
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    d. 4 se. 59
    Darlington Kofa
0:00
/
~0:00