uLib Raw Format

People wanting to contribute to the OUSFG VLib project often ask what format they should use when writing up catalogues of their own books. The answer i always give is that we can parse any consistent format (the power of perl), but that we prefer the data in what we call (for historical reasons which are essentially irrelevant) 'raw format'. Basically, the idea is to group works by author.

A file is made up of lines. Lines terminate at line end or at the first hash (#). Leading and trailing whitespace is ignored. Blank lines are ignored. A stop line is a line containing only a full stop (.).

A register of things is a header on a line, followed by a sequence of things, followed by a stop line.

A file is a register of member-records, headed with the date.

A member-record is a register of team-records, headed with the member's name.

A team-record is a register of copy-records, headed with the team's name.

A copy-record is the title of the work of which the copy is a copy, on a line.

In other words, start with the date on a line (actually, i ignore this, so you can leave it blank, but if you want to be pedantic, use an RFC1123 date, as used in email), then your name ("Anderson, Tom") on a line, then a list of books grouped by author, then a full stop on a line, then another full stop on a line. Books grouped by author consist of the author's name (eg "Clarke, Arthur C") on a line, followed by a sequence of book titles, each on their own line, followed by a full stop on its own line. Multiple authors are handled by combining their names with pluses (+, eg "Niven, Larry + Pournelle, Jerry"). You can add comments by putting a hash (#); all the text on a line after a hash is ignored. Blank lines are also ignored.