ThoughtSoap is a web perl script that allows an "entity" to be rated and reviewed by a community of users. An entity can be a book, a restaurant, a business, a web site, a service, a doctor, or whatever else the administrator has decided upon. Thoughtsoap also has the ability to incorporate other databases such a the Library of Congress' online book catalog and other network enabled-Z39.50 libraries, FreeDB and ChefMoz's restaurant database. Any entity can be recommended to other users or groups registered with the web site. The concept is similar to Epinions but in an (eventual) open-source arena geared towards a much smaller user base.
ThoughtSoap is also a web site running said application. Right now, the code and site are in beta testing.
The code makes heavy use of The Template Toolkit, and DBCoder.
If the project ever sees the true light of day (or the net), I'll release it under some GPL or BSD-like copyleft.
The idea came out of a company called GuideVine. This was started by myself, Jonathan Drummey, with help from John Romkey, Adam Hirsch, Bill Marrs, Glen Daniels, and Rachel Mello. Like most Internet startups of the late 1990s and early 2000s, GuideVine was shorted lived. We started throwing around ideas in the fall of 1999, and the company died shortly after it was officially incorporated in February 2000. I was "The Programmer" and pseudo-CTO while Jonathan was the President and business head.
Several months after GuideVine died, I started working on ThoughtSoap. The work I had done in Guidevine could be considered prototype #1. The code was based off on E-Perl and had separate modules for each of the site's functions.
Prototype #2, the beginnings of ThoughtSoap, was started in early summer of 2000. I was looking for something to do and wanted a sense of some closure on GuideVine. For the next year, I spent several intense periods on and off again rewriting the code in Perl, not EPerl. This version had the concept of "entities" hard coded into it. That is there was a module for books, and a module for music, etc.
Prototype #3 went in the direction of using The Template Toolkit for all HTML display. By using the toolkit the code was nicely cleaned up and allowed for better code structuring. The entity modules were scrapped in favor of a generic "Entity Engine" that is highly configurable. An entity could be easily be described by one configuration file created by the administrator. This version also introduced communities and communities ratings and suggestions. A community user could recommend to the entire community an entity. Z39.50 imports were added as well to support easy lookup of book information.
Prototype #4 is currently in the works. This is mostly based off #3 with the Engine restructured into a better object oriented design. (January, 2003)
As things stand, the system is centered around an entity. Entities are defined by a configuration file and existing scheme.
All entities share some basic information - a name ("Foobar tools"), a url ("http://www.foobar.foo/tools"), and a description ("A wonderful tool to produce foo bars with."). Addition information can be included to further describe the entity. For example: an address ("Foobar, Inc. 1 foobar way, Foobar, FB, USA"), a neighborhood ("FooBar Square"), or anything else you might think up.
If you are curious about what's going on with the code, write me: lion at apocalypse DOT (that's a ".") com.