A BibTeX bibliography file may reasonably be compared to a small database, the entries in which are references to literature that may be called up by citations in a document.
Each entry in the bibliography has a type and a unique key. The bibliography is read, by BibTeX, using the details specified in a bibliography style. From the style, BibTeX finds what entry types are permissible, what fields each entry type has, and how to format the whole entry.
The type specifies the type of document you're making reference to; it
may run all the way from things like "Book
" and
"Proceedings
" (which may even contain other citations
of type "InBook
" or "InProceedings
")
through dissertation styles like "PhdThesis
" to
otherwise-uncategorisable things such as "Misc
". The
unique key is something you choose yourself: it's what you use when
you want to cite an entry in the file. People
commonly create a key that combines the (primary) author's name and
the year of publication, possibly with a marker to distinguish
publications in the same year. So, for example, the Dyson, Eddington,
Davidson paper about deflection of starlight appears in my
experimental .bib
file as Dyson20.1
.
So, noting the rules of the style, you have 'simply' to write a bibliography database. Fortunately, there are several tools to help in this endeavour:
thebibliography
environment, the Perl script tex2bib will
probably help (there's no documentation other than the oddly-named
tex2bib.readme).
Tools such as Xbibfile (a graphical user interface), ebib (a database application written to run 'inside' emacs) and btOOL (a set of perl tools for building BibTeX database handlers) are available from CTAN.
Other systems, such as RefDB, BibORB, BibDesk, pybliographer and the Java-based Bibkeeper and JabRef (which claims to supersede Bibkeeper) are only available from their development sites.
This question on the Web: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=buildbib