One of the key things that needs to be able to happen in order for open source projects to be aware of each other is some kind of database which the community can edit, linking related items together. The goal should be to help prevent someone from accidentally (or intentionally) obscuring the awareness of a competing effort. It could also be a tool for mitigating the effects of web scraping
, by pointing to canonical versions of content direct from the author.
Wikipedia is actually serving this fairly well, and it's one of the reasons why I tend to link to the Wikipedia page about products rather than (for instance) the download site or the corporate page. It may be true today that Ableton Live
is the most outstanding audio software package on the market--but Ableton Inc. is unlikely to be linking to a formidable competitor's homepage if that ever ceases to be the case. Users of Wikipedia have the opportunity to put in a "See Also" link.
Of course, search engines and review sites can do this--but often reviews are more stagnant than the corporate site. Still, something I tend to do when I'm investigating a new product or service is to type into a search engine the simple string "better than [PROGRAMNAME]". This generates some possibilities to check out. But when I'm done, that information is lost, unless I write another review page.
This gave me the idea of creating something relatively simple--a small application which lets users express "A is better than B" relationships and upload those into a central database. Moreover, it would be able to track who holds those opinions and allow them to be lobbied to change their allegiances if new information comes to light. The concept is to create community pressure on the efforts that everyone thinks is inferior to (at minimum) place a notice on their web page informing visitors that there is another more popular option which is favored for particular reasons.
I imagine that the "better than" relationships could apply to nearly anything, though the intention is to compare things that are direct competitors. For instance, an MP3 file with a skip in it can be considered surpassed by an MP3 file that does not have a skip in it. By storing the Cryptographic Hashes
of the items being compared (whether they be names of things or entire giant binary files) it would be possible to efficiently store these relationships in the database. A browser plugin would constantly hash downloaded content and URLs and give you tips when you were looking at something that had a better version.
The basics of this program is not necessarily difficult to write--but there are many details to be thought through in regards to the management of vandalous contributions or blatant falsehoods. A similar set of issues was brought up by the Mindpixel
project--which was similarly trying to build up a repository of consensus knowledge using lots of tiny facts contributed and rated by various people.