FreeAlternatives: project proposal

Stephan Peijnik sp at fsfe.org
Thu Jan 4 10:17:49 UTC 2007


Hello everyone,

I would to present a project proposal to you, which can be found 
below and also ask you for your input on the proposal.

Regards,

Stephan

--
PROJECT PROPOSAL: FreeAlternatives (LibreAlternatives?)


Lately, I've again and again stumbled accross a problem. People have been asking for Free Software Alternatives to proprietary programs.
I am sure that most of you know this problem and there is no way of actually knowing every single alternative out there. Now this is the point where 'FreeAlternatives' drops in.

The idea is to have a database containing information on which software package is a Free Software alternative for one or more proprietary software packages. There are some problems with such a database and one of the major problems is probably keeping maintaining the database.


But there is a possible solution for this. FreeAlternatives should be a community-driven project, asking users to contribute and also enabling them to do so. Now this could lead to invalid data quite easily. Here an approval system for new submissions comes into play.


THE APPROVAL SYSTEM

First of all, every user has to register to add new entries or modify exitsing data. Upon registering a user gets a score assigned, which should be 0 points for normal users and maybe a few points for users known to be part to the Free Software movement (ie. users registering with a gnu.org, fsf.org, fsfeurope.org, fsfe.org, etc. email address).

Now, if user A, with a score of 0, submits an entry the entry should not be added straight away, but rather be added to some sort of 'to be reviewed' queue. 

User B, with at least a score of user A's score plus one, sees the submission which needs to be reviewed in the queue, reviews it and either approves it as being a valid entry, or marks it as invalid. Whatever action user B has taken now, there is still need to review if his decision was correct.

At this pont user C, having a score of at least user B's score plus one again, sees the entry in the queue and either approves it or marks it invalid.

If the submission has been approved and marked as valid it is added to the database and made 'world-visible'. If not it is deleted from the database again. Both user A and B get, if their decision has been 'correct', a point added to their score making visible that they 'know what they are doing'. One might also want to remove a point from a user's score for adding invalid entries (and also for users approving such entries).

This method should make sure that the data in the database is correct.

I also think that having some score-treshold, which cuts down the need for two approvals to one for experienced users might be a good idea. This should make it easier for such experienced users to add entries or modify data.


As I mentioned earlier, only users who want to add entries to the database have to be registered. Read-only usage is possible for everyone without the need for registering.


DATABASE CONTENTS

Now, what data should be in the database? For starters, one needs the name of the Free Software package, an URL to the project's page and a list of proprietary packages it can replace. Additionally, one might want to list the license of the package and a brief summary of its functions.

It is also possible that the information changes and thus there should be a way of changing information in the database similar to adding a new entry. Approvals for such changes should be needed as well to ensure that the database stays 'clean'.


ACCESSING THE DATABASE

How should the database be accessible? Obviously, there should be a web-interface and a command-line client accessing the database via the net. However, I think that providing all information the database contains to users and also having some kind of incremental update method is a good idea. As the software running the 'system' should (has to) be Free Software this enables users to have their own mirror of the whole database for offline use in an organization for example.


Last but not least, why am I informing you about this project? Quite simple, I would really like to make this project community-driven as a whole. I want your input such as questions on things that are unclear and your ideas on how things could be better or are plain wrong in your opinion. 
If enough people think this is a good idea there will also be need of hackers, translators (?) and any other help available when starting the project.


So finally, I would like to ask you for your input and would also like to start a discussion on this idea.




More information about the Discussion mailing list