not approved

Distributed Idea Management System

$12,480.00 Requested
Ideascale logo View on ideascale
Community Review Results (1 reviewers)
Impact / Alignment
Feasibility
Auditability
Solution

DIMS will be a decentralized, open source, CLI and web-based tool to help people build shared knowledge graphs. Highlighting overlaps in what people are working on will make collaboration easier.

Problem:

Finding gaps that you can fill in the Cardano idea space is a difficult process. Current methods favor competition over collaboration. Current solutions aren't Cardano-focused or free and open source.

Yes Votes:
₳ 20,619,562
No Votes:
₳ 30,765,685
Votes Cast:
180

  • download
  • download

[IMPACT] Please describe your proposed solution.

Problems To solve:

  • Incentives in Catalyst tend to favor competition over collaboration.
  • Work done in the greater Cardano community isn't easy to integrate with idea and proposal formation in Catalyst.
  • Top-down governance isn't as flexible and scalable as approaches that build things up from localized needs.
  • It's not easy for people to apply their expertise to projects they aren't in direct collaboration with.
  • Reducing the need for different projects to duplicate the same work isn't easy.

Reasons for my approach:

  1. Every individual involved in Catalyst has a unique perspective about the way things are, and the way things could potentially be.
  2. Solutions for idea management shouldn't get in the way of the individual's ability to build on this unique perspective.
  3. Making it easy for different people's ideas to compose into a shared perspective will highlight overlapping interests that can lead to opportunities for collaboration.
  4. Maintaining a shared knowledge base that allows people to link their contributions together will allow us to map out the topology of the idea space as it grows more complex over time.
  5. Some ideas will be refined as people gain clarity about what they are working on.
  6. Refining ideas is more like adding resolution to an image than changing how things connect together.
  7. Because the idea space can only gain more clarity over time as people merge and iterate on ideas, it can act as a foundation for how people connect together at different levels of resolution.
  8. One person might look at things from a high level perspective in order to find gaps in the idea space that need to be filled.
  9. Another group of people might collaborate on a small technical niche topic.
  10. Localized views of an idea graph can be independent of each other without needing management from the top down.
  11. If someone makes a connection between different parts of the knowledge graph, and people accept it as a valuable connection, then it will bring new nodes into the perspective of any team that's working on one of the related topics.
  12. A lot of tools that are used in the process of ideation and development have overlapping semantics, and a major goal for this project is to find ways to reduce the need for redundant features.

Target audience:

  • Anyone who wants to map out complex ideas.
  • Anyone who wants to discover other people's ideas.
  • Teachers, presentation givers, and students.
  • Developers and researchers.

Implementation steps:

  • A stand-alone web application that can be served anywhere on the internet:

  • For viewing or presenting an individual's knowledge graph.

  • Content will be stored in a repository of plain text files in a simple markup language.

  • This should allow people to start building out their ideas independently before more collaborative features are present.

  • It should be easy to edit the text files manually and track changes with git before the process is automated through a server app.

  • A server application that can manage a local idea graph through the web app or a terminal interface:

  • Automating the process of managing files and pushing them to a remote repository for sharing ideas online.

  • Research into hash-based content storage individual blocks vs. files:

  • In an idea graph, it's common to reuse blocks in different contexts.

  • Time-stamping blocks of content and signing them with a Cardano wallet is a sufficient source of pseudonymous identification.

  • This could potentially use something like Ada Handles to compensate anyone for work done under a given pseudonym.

  • If the uniqueness of work done under an alias is verifiable and worthy of compensation, it doesn't matter how many identities the contributor has.

  • Real-time collaboration through any server instance to host multiple users:

  • Give the server the capacity to manage and combine the work of many different contributors.

  • Work on the front-end to reflect what other people are doing.

  • Real-time communication beyond the process of building a shared idea graph will be considered, but external tools for video or audio will be sufficient.

Note: Items beyond this point will require more time than the commitment made in this proposal, but I plan to keep working after closing it.

  • A content delivery network between server instances:

  • This will require more research along the way, but it will probably include some of the following concepts:

  • Version control and dependency management features similar to git and nix.

  • The knowledge graph could be stored using IPFS or something like it:

  • As long as people find a piece of information interesting and integrate it with their idea graphs, it can be pinned in their IPFS instances, allowing it to persist.

  • Scripting and multilingual literate programming as part of an idea graph:

  • A long-term goal is to explore the possibilities of using the same graph structure optimized for idea management as a way to manage the structure of large code bases.

  • Graphs are more flexible than file-based systems.

  • Integrating code with a shared knowledge base would provide several benefits to members of the Cardano community and anyone else who might adopt this solution:

  • On-boarding developers will become easier if documentation can link to any related parts of a code base.

  • Efforts on various open source projects could share common pieces of code at a more granular level than libraries.

  • Tying code to the topography of ideas increases the ability to discover existing work, and provides more insight into whether it would be more beneficial to add to the existing code or submit an alternative approach.

  • Training programs could be built as graph structures that guide people into whatever depth of understanding the code that they wish.

Expected outcomes:

  • To help people manage the complexity of what's going on in the Cardano ecosystem.
  • Facilitating efforts in the process of building and collaborating on dapps for Cardano.
  • To improve clarity in how different parts of our ecosystem fit together.
  • Promoting further innovation by helping people manage and present their ideas.

How this approach is unique:

  • A lot of the features I want this project to include can be broken down into a fairly small set of primitives.
  • A focus on making the UX as simple as possible while focusing on features that encourage best practices according to the current research in knowledge management systems.
  • A focus on collaboration.
  • Free and open source.
  • Custom tailored for the needs of the Cardano community:
  • Integration with Cardano wallet-based identity.
  • This can allow people to build up contribution-based identity.

Benefits of this project:

  • To me:

  • There are several project ideas I want to work on in the future that require a knowledge management system to deal with how different areas of my research relate to each other.

  • Eventually, this project's continued development could be managed from within this project.

  • Reducing frustration with systems that incentivize adversarial behaviors.

  • To the Catalyst community:

  • Helping people see how different ideas and proposals fit together.

  • Building up an idea space that persists across funding rounds.

  • This can incorporate progress tracking of current projects.

  • Getting a clearer picture of what projects and ideas people are working on could guide further ideation.

  • It may also be possible to use this project to simplify the process of building a proposal:

  • Making an idea graph public can answer people's questions if a proposal isn't detailed enough.

  • Parts of an idea graph can be dropped into a proposal, or the details important to a proposal can be integrated into an idea graph to structure someone's thought process.

  • To the greater Cardano community:

  • Improving people's abilities to manage ideas is important to any project.

  • This tool should make it easier for various projects to find overlapping work that can be done in collaboration.

    [IMPACT] Please describe how your proposed solution will address the Challenge that you have submitted it in.

  • Connecting ideas together provides a foundation for connecting people.

  • Connections between people are the basis for building a thriving ecosystem.

  • Using connected ideas as the basis for connecting people allows for work to be localized around ideas.

  • Having a way to make localized connections without centralized control allows much more to be done in parallel.

  • Anyone should be able to point out new connections between different parts of the idea space without blocking anyone's current workflow.

  • The connections between ideas and current information work as a catalyst for innovation.

  • Capacity for innovation and opportunities to improve people's lives are reasons that make a platform like Cardano interesting.

  • Growth is driven by opportunities for people to improve their lives.

  • In the same way that Cardano provides a robust, immutable history of people's transactions over time, my hope is to build a robust, immutable history of how people's ideas evolve over time:

  • If you add a timestamp to every iteration of an idea over time, nothing that has been contributed in the past has to change.

  • You can track the timeline of any idea.

  • Because you are localized as an individual, it isn't possible to track every change in a system that's experiencing exponential growth:

  • Your own interests are what attract you to work on any given idea.

  • If it's easy to find the idea you want to work on and the people you want to work with, then it isn't necessary to track the whole ecosystem.

  • People have ideas that overlap in different ways:

  • People with broad interest can make connections between different topics.

  • Specialists can add more depth to their specific topics of expertise.

  • Just the intersection between the interests of different people should allow unified goals to form naturally, without the potential bottleneck of top-down control.

  • A well-crafted way of managing ideas can optimize collaboration.

  • Developers can connect to teams or get donations by focusing on gaps in the idea space that providers of funds deem to be important.

  • If specifications and ideas are linked directly to dapp code bases, auditing the code for reliability becomes easier.

  • Integrating development efforts between projects reduces duplicated work.

  • Visualizing the work being done on Cardano and being able to hone in on where you fit into the bigger picture is good for our ecosystem, and if done right, can extend to solving problems that aren't currently in our reach.

Technical requirements:

  • Everything required on Cardano for reaching the MVP of this project:

  • It doesn't require much more than being able to integrate with a wallet to sign additions to the idea graph.

  • At the least, having wallet-based identity will allow people to tip contributors for work signed with their keys.

  • It may be helpful to use smart contracts to validate the state of the idea graph periodically by storing hashes of the data on Cardano.

  • Nothing needs to be added to Cardano for this project, but some aspects of this project might benefit features that haven't yet dropped as of the writing of this proposal:

  • Being able to more easily collaborate on code base overlaps could translate to reference scripts, for example.

    [IMPACT] What are the main risks that could prevent you from delivering the project successfully and please explain how you will mitigate each risk?

Most of the work on an MVP will probably be done before voting starts, but there are many features I can work on during the funded period.

Mitigating Risks:

Risk 1: Distributed systems are complicated.

Solutions:

  • The initial MVP will focus primarily on the case of single users, and trying to help them become more productive in organizing their thoughts.
  • Being able to easily publish their knowledge bases on existing systems like GitHub in a format that's easy for other users to connect to will be adequate for productivity before working on a custom solution for integrating people's work in a fully decentralized way.
  • It will be decentralized in the sense that each user is maintaining a knowledge base locally, and publishing can potentially be distributed across current platforms that host git repositories.
  • Further work after the MVP will look at adapting the solutions already present in the structure of Cardano for this project.

Risk 2: The UX could suffer if features aren't streamlined and integrated.

Solutions:

  • The research I've been doing focuses a lot on minimizing the number of features as much as possible without compromising the expressive power of the system.
  • I've spent a lot of my time over the years doing comparative analysis on the semantic features of different programming languages.
  • My approach is to express the features of this project as an AST, and refine it until it has both the expressive power that I'm aiming for and a lack of overlapping semantics between its possible expression types.
  • Doing the UI first will also allow me to have more time testing the UX, and getting feedback from other potential users.

Risk 3: It could be difficult to integrate with other tools used in our ecosystem.

Solutions:

  • This tool will be quite useful even if it stands on its own.
  • There's some research I'll need to do about which other tools would improve the workflow of this project by adding interoperability.
  • I do plan to make extending this project as easy as possible so that others can work on integrations if they find it beneficial to do so.

Risk 4: The UX could end up being less compelling than similar tools.

Solutions:

  • There are other knowledge management systems that are much further along than this one, though, a lot aren't open source.

  • Sometimes having too many features can get in the way of actually getting work done.

  • Since this is specifically for the Cardano ecosystem, and it's geared towards collaborative knowledge management, features related to this should stand out from other options.

  • Keeping the UI simple and uncluttered will be part of mitigating this risk.

  • Having a simple language for expressing how ideas map to each other includes visual ques and reducing the amount of searching around that's needed to find all the different elements of the interface.

    [FEASIBILITY] Please provide a detailed plan, including timeline and key milestones for delivering your proposal.

This proposal is for six months of funding.

<u>Timeline:</u>

Month 1

  • A stand-alone web application that can be served anywhere on the internet.

Months 2, 3

  • A server application that can manage a local idea graph through the web app or a terminal interface.

Months 4, 5, 6

  • Real-time collaboration through any given server instance to hosts many users.

<u>Additional features I plan to work on after the completion of this proposal:</u>

  • A content delivery network between server instances.
  • Scripting and multilingual literate programming as part of an idea graph.

All I need is the funding, so I can focus on this project full-time without worrying about how I'm going to pay my bills each month.

[FEASIBILITY] Please provide a detailed budget breakdown.

Just an hourly wage for six months:

( 26 weeks ) x ( 40 hours / week ) x ( $12 / hour ) = $12480

Living in Malawi is cheaper than some parts of the world, so this amount should cover my expenses for at least six months.

[FEASIBILITY] Please provide details of the people who will work on the project.

  • I (Ken) will be working on this project by myself. Since all the code will be open source, anyone should feel free to fork my code and iterate on my work. I'm open to suggestions and collaboration, but that won't be required to complete this project.

  • My wife (Elsie) will be taking charge of administrative tasks while I focus on this project.

    [FEASIBILITY] If you are funded, will you return to Catalyst in a later round for further funding? Please explain why / why not.

  • This project won't require additional funding, but I plan to continue working on it after six months are over.

  • There are other projects I plan to submit proposals for in the future.

  • It's possible that this project could provide the means for me to fund future work outside of Catalyst, but that's beyond the MVP and requires additional research.

    [AUDITABILITY] Please describe what you will measure to track your project's progress, and how will you measure these?

  • All the code for this project will be open source and available on GitHub, along with a hosted example of the current working UI.

  • I plan on hosting my notes through the UI when it reaches an adequate state to do so.

  • I will have different people try to use the interface to get feedback on whether it's intuitive enough or not.

  • Hosting breakout rooms after town hall meetings will be something I do when I have progress to show or topics to discuss.

  • Recording feedback for potential improvements to my project will be a part of this.

  • Since people in Catalyst are the primary potential users, finding out how well my approach fits their needs is an important indicator.

    [AUDITABILITY] What does success for this project look like?

Indicators of success (at the end of the six months of funding):

  • This idea management system exists for personal and group use.

  • It works well for managing the ideation process of multiple groups in Catalyst.

  • Work has begun on the more ambitious goal of linking server instances into a unified global knowledge and ideation platform.

  • Lots of my personal notes on Cardano-related topics will be released on top of this platform, including my plans to extend this from just managing ideas to managing code in a way that's more conducive to open source collaboration.

    [AUDITABILITY] Please provide information on whether this proposal is a continuation of a previously funded project in Catalyst or an entirely new one.

  • I have not had any proposals funded since I started submitting them in Fund2.

  • I've been doing Cardano-related work full-time since I quit my job and moved to Africa over a year ago.

Community Reviews (1)

Comments

close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    3m 24s
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    4m 3s
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    3m 48s
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    2m 16s
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    3m 14s
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    3m 19s
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    4m 59s
    Darlington Kofa
0:00
/
~0:00