Sologue - The Solutions Catalogue
We tend to see things around us as problems and not solutions, but in reality most things around us (present and past) are solving a problem of some sort. If we are interested in being competent at creating solutions, a good place to start is to look at what problems existing things are solving and how they are solving them. In doing so, we can ask questions that can help us learn much about solutions (e.g. When did it start solving the problem? What other solutions to the problem exists or have existed? Was the thing originally developed to solve the problem it now solves? Is the problem it is really solving the one that everyone thinks it is solving?). This can lead to better knowledge of solutions, how to come up with more solutions and what might cause them to work or fail. There is also a pedagogical reason for viewing existing things as solutions: it may be easier to remember or understand something by knowing what problem it solved and how it solved it rather than simply learning that information by rote.
To facilitate what is mentioned in the Motivation, this project aims to create the tools which will allow users to catalogue existing things, the problems they solve and how they solve them. Other information like how they came to be and new problems they create will also be collected where possible. Having such a repository of solutions will allow us to analyse existing solutions and propose new or improved solutions to existing problems (e.g. by using machine learning to discover solutions with similar mechanisms).
Sologue is an open source project. The code for the components is open and the data collected and stored on the website are open. We hope that this will allow it to attract contributors to both its codebase and data who are passionate about it.
The code implements the following main components:
Webapp which allows users to view, add, curate and find sologue entries. This can be accessed here. (Status: Alpha Release)
NLP module which processes text for potential sologue entries. (Status: Not Started)
Interface which allows users to label potential entries identified by the NLP component as correct or not. (Status: Not Started)
Machine Learning module which analyses the sologue entries to determine how solutions are similar, can be applied to new problems, etc. (Status: Not Started)
How can I contribute?
The project is in its early stages, so we value contributions from persons interested in its mission or for any other reason.
Please read CONTRIBUTING.md for details on the process for contributing code and data, and our code of conduct.
How to set up the web app locally?
The web app can be set up locally to use for contributing and use.
The requirements are in the requirements.txt file.
Setting up the database
- Navigate to the sologue_code folder.
- The latest SQL migrations should be in the migrations folder.
$python manage.py migrate.
Start the app
$python manage.py runserverto start the webapp on the development server.
This project is licensed under the MIT License - see the LICENSE.md file for details
The following open source projects make Sologue possible: