There are some who feel that the current state of Noosphere documentation is insufficient for a strong Noosphere hacking initiative to exist. This page is a broad feature request whose role is to document and organize the process of documenting and organizing the Noosphere documentation. In other words, if you want to understand Noosphere better, you've come to the right place, and you'll find other useful links and discussions branching off from here.
Many of the feature requests for PlanetMath involve making changes to the Noosphere code. In order for these requests to get carried out, someone needs to first be able to understand the program in order to figure out how to modify it or add functionality to it. To make this first step as easy and painless as possible, ample, well-organized documentation is important.
The importance of documentation is enhanced by the choice of economic arrangement. Were we to hire a programmer on a long-term basis, it would be feasible to first have that person spend several months simply getting up to speed on the operation of the existing program and studying how the code works, and only then begin implementing new features.
Unfortunaterly, give our finances, hiring a programmer on a regular basis is not a viable option in the near future, so instead we expect that programming will be done by a combination of volunteer effort and contracting out specific tasks. Given such a model, it is crucial that a participant spend the least amount of time possible locating and studying background material before beginning work on a project. For instance, if a project might involve five hours of work writing a new subroutine and making a few changes to an existing module, it will not do to have the programmer first spend 12 hours poring through the source code and the documentation to figure out exactly where the changes need to be made and what different variables mean. Rather, the programmer should be able to spend no more than an hour reading an introductory ovderview, then locate specific information about variables, subroutines, dependencies with relative ease in a well-organized documentation.
Note: It might simply help to have Aaron's PM thesis (or at least some portions thereof) turned into wiki pages, or otherwise made world-editable. --jcorneli
Note that better Noosphere documentation could both reduce the cost (and so, the fee associated with) PlanetMath Code Bounties and also increase the likelihood that the bounties will be taken up. Insofar as the various Feature Requests related to Noosphere/PlanetMath will also require (or at least really benefit from) more knowledge about the system being available, the current feature request is in some sense the basic, primative, or prerequisite one (for these projects).
See the scholium system for one potential tool that would help with this documentation task – and for which there could also be some valuable exchange of system knowledge (but that's, basically, another story). --jcorneli
As a start, maybe we could document the various SQL tables in which Noosphere stores its information. Looking at the database administration pop-down menu, I see the following tables listed. For each of these tables, it would be good to know the following:
To be sure, some of this information is mentioned in Aaron's thesis so that would be a good starting point for this project. As for what might constitute a reasonable level of coverage, I propose the following criterion: Given the description of the tables and their contents, someone should be able to perform all the basic actions of noosphere. such as adding an entry, posting a correction, or replying to a forum post by means of appropriate SQL manipulations. Likewise, it should allow on one to port over the data contained therein to other formats, such as Arxana triplets or quintuplets.