Neighbor to Neighbor system

part of the ArsDigita Community System by Philip Greenspun
The original idea, going back to 1995, of the Neighbor to Neighbor system was a repository of user experience with various kinds of merchants. I should be able to visit the service at and say "I bought a camera via mail from Joe Smith and it arrived when promised and in the stated condition." I should be able to come back a month later and edit the posting and say "Ooops.. actually the camera had a subtle hidden flaw."

At the time, it seemed like a very different application from threaded discussion. In practice, the bboard system grew much more flexible and users of the Neighbor service really seemed to need some kind of grouping/threading of items.

So why do we still have separate systems? I think that organizing by merchants and knowing that people are talking about transactions is going to be valuable in the long run. These are specializations that would really uglify the bboard code and /bboard section of the ad.ini parameters file.

The current code makes good use of the about column in the neighbor_to_neighbor table. This would typically be filled with a merchant name, e.g., "B&H Photo". In theory, the code can do much more than this.

The original idea was to have several sites running on the same db server (so there was a domain column). Then each site would have several neighbor services, e.g., my personal site could have a "photographic" category and a "Web servers" category. Within each category there would be subcategories, e.g., "Camera Shops" for "photographic".

Like all comprehensive ambitious systems designed and operated by stupid people, neighbor to neighbor never really blossomed. I ended up using it at with a hardwired domain and a hardwired primary category. I don't want to break links from all over the Internet so I can't really change this now. Thus there will have to be a default primary_category in the ad.ini file.

Another thing that should be added is good support for regionalism. It might be useful to have recommendations of roofing contractors but these have to be broken up by state. There is a region column in the data model but I haven't really done anything with the code to support it.

Interesting anecdote: in mid-1999, four years after this software was built, a company called in California raised $millions in venture capital to do the same thing as!


Here's the section from the ad.ini file:

; SystemName=Yourdomain Neighbor to Neighbor Service
; SystemOwner= something different (if desired) from SystemOwner above
; HostAdministrator=something different from system-wide
; if you're only going to run one little category, and
; for backward compatibility for
; this is a category_id referencing the n_to_n_primary_categories
; table
; if someone can't think of more than one; affects links from opc
; do we offer users a full-text search box
; do we use Oracle's Context option (only works if 
; ProvideLocalSearchP=1)
; do we use standalone PLS search system
; do we use AltaVista (only works if ProvideLocalSearchP=0
; and if the site's content is exposed to AltaVista)