Open kohlhase opened 5 years ago
I am starting an implementation at https://github.com/MathHubInfo/
Instead of the GIT-based JSON file solution proposed above, we probably need a database-based back-end, which stores lenses, and a service which stores lens information; see https://github.com/MathHubInfo/lenses/issues/1
Correspondingly, the front-end needs the following extensions (probably more)
MathHub wants to be a public repository of mathematical knowledge and documents, which means everyone should be able to contribute. But it should also be a portal to high-quality material, which means some kind of quality control system. Following ideas developed for/by the Connexions Project we want to employ a system of (named) "lenses", which give a reader (preferential) access to MathHub material endorsed by a set of chosen lenses. The CNX Manual section on lenses has some more information.
At its base, a lens L is just an endorsement list, i.e. a list of MathHub knowledge items endorsed as being of sufficient quality and/or interest by L.
A MathHub reader can adopt a lens L for
We probably want to have a way of storing lens adoptions for authenticated users.
Initially, lenses should have the following metadata:
Probably the best way to implement a lens is as a list of MMT URIs in a GitLab file on http://gl.mathhub.info. Then we can just use GIT authentification for lens authors and GIT management/versioning features for lens content.
For the front-end process we probably want to have a separate service, which reads lenses, indexes them, and helps it by answering questions like
Maybe this service could also take care of authentification, then the MathHub front-end only needs to keep a global variable for the user as state.