BTDTDB -- ``Been There, Done That DataBase'' Software

Do you find yourself constantly writing little scripts to mine text files for data? If you're like me, you've already created a few ad-hoc data formats and search engines to go along with them. Wishing to unify all of my databases in a common format, and to have a single searcher handle all of them, I wrote BTDTDB. Say it ten times fast.

BTDTDB's engine is written in C, and it comes with a CGI wrapper to make it Web-friendly. Well, the engine is really just a grandiose text-parser; no self-respecting database programmer would call it a database engine. Fortunately, I'm not a database programmer, so I can call it anything I want.

It accepts human-readable, plaintext database files in this format:

# Entries are delimited with "&&&START" and "&&&END", as you can see.
# Text outside entries is ignored; I use "#" as a comment character
# only for appearances; the program doesn't care either way.
# Field names also start with ``&&&''.  Each entry can have arbitrary
# fields; you can write a wrapper to treat some of them specially when
# output, if you want.
# Here are some example entries:

&&&TITLE Chicago Restaurants
&&&KEYS food chicago

&&&TITLE Largest Known Primes
&&&KEYS mathematics
&&&DESC If the title weren't so descriptive already, I'd put a
     description here.

&&&TITLE PNG - Portable Network Graphics (or "PNG is Not GIF").
&&&KEYS graphics formats
&&&DESC This is a nifty and politically-correct image format.
Netscape and IE both support it now.
Former home page at
&&&RECORD Karl Fogel   Fri May 31 18:09:11 1996


It outputs either plaintext or HTML. You can ask it to search on any fields you want; I typically use TITLE and KEYS.

So far, I use BTDTDB to serve my WWW link list and the online mirror of my father's record collection catalog.

Because BTDTDB is under active development, for the time being I'd prefer that potential users contact me directly, and/or use CVS to obtain a working copy. See the programming page for more details.

(Back to Karl Fogel's home page.)