Data Schema (Version 0.35)
Works
A Work has:
ref(REQUIRED string)title(REQUIRED string)first_uk_publication(string,YYYY,YYYY-MMorYYYY-MM-DD)message(string)tg_page(string)tg_history_page(string)hammond(string, this work's item code in Hammond & Anderson's Descriptive Bibliography, such asA3; sections areA,B,C,Di,Dii,Ei,Eii,Fi,Fii,FiiiandG)abbreviations(list of Abbreviation items)contains(list of Contains items)questions(list of strings)publication_groups(list of Publication Group items)
Abbreviations
How one source shortens a work's title. An Abbreviation has:
abbreviation(REQUIRED string)source(REQUIRED string, a key indata/abbreviation_sources.yaml)
Publication Groups
A Publication Group has:
uid(REQUIRED string, four-character base30)label(string)isbn10(string)isbn13(string)unnumbered(string, one ofpredates,club,publisher)year(integer)questions(list of strings)publisher_editions(list of Publisher Edition items)
Publisher Editions
A Publisher Edition has:
uid(REQUIRED string, four-character base30)label(REQUIRED string)first_year(REQUIRED integer)format(REQUIRED string, one ofhardback,paperback)trim(string, one ofa-format,b-format,c-format; paperbacks only)publisher(string, a label indata/publishers.yaml)market(string, a key in themarketfacet ofdata/tags.yaml)traits(list of strings, each a key in thetraitsfacet ofdata/tags.yaml)physical(list of strings, each a key in thephysicalfacet ofdata/tags.yaml; how the edition was issued, such as in a slipcase or as large print)contains(list of Contains items)questions(list of strings)impression_groups(REQUIRED list of Impression Group items)
Impression Groups
An Impression Group has:
id(REQUIRED string)uid(REQUIRED string, four-character base30)tbn_ref(integer)tbn_id(integer)hammond_pages(list of integers, the pages of Hammond & Anderson's Descriptive Bibliography that describe this printing, ascending and without repeats)publisher(string, a label indata/publishers.yaml)cover_url(string)cover_source(string, a key indata/image_sources.yaml)cover_design(a Cover Design)cover_artwork(string, the key of an artwork inart/metadata.yaml)first_year(integer)first_impression(integer)first_known_impression(integer)first_possible_impression(integer)last_impression(integer)last_known_impression(integer)last_possible_impression(integer)design_series(string, the key of a series indata/design_series.yaml)set(string or list of strings, the key or keys of a set indata/sets.yaml)set_volume(integer, which volume of that set this is)set_variant(string, the key of a variant in that set, when its contents are not the same copy to copy; absent means common to every copy)questions(list of strings)note(string)impressions(list of Impression items)
Cover Design
A Cover Design has:
relation(REQUIRED string, one ofillustration,based-on-design,based-on-artwork,slipcase-illustration,illustrated,from-source)artists(list of strings, each the key of an artist inart/metadata.yaml)source(string)note(string)
Impressions
An Impression has:
impression(REQUIRED integer)year(integer)copies(integer)printer(string, the key of a printer indata/printers.yaml)printed_in(string)typeface(string, the key of a typeface indata/typefaces.yaml)boards(string)dust_jacket(string, one ofmatte,glossy,satin)price(mapping of three-letter uppercase currency code to number)
Typefaces
The vocabulary in data/typefaces.yaml. A Typeface has:
label(REQUIRED string)family(string, the key of another typeface)foundry(string)technology(string)note(string)
Image Sources
The vocabulary in data/image_sources.yaml. An Image Source has:
label(REQUIRED string)url(string)note(string)
Printers
The vocabulary in data/printers.yaml. A Printer has:
label(REQUIRED string)country(string)note(string)
Design Series
The vocabulary in data/design_series.yaml. A Design Series has:
label(REQUIRED string)years(string)covers(list of strings)format(string,hardbackorpaperback)trim(string, one ofa-format,b-format,c-format)traits(list of strings, each a key in thetraitsfacet ofdata/tags.yaml)
Publishers
The vocabulary in data/publishers.yaml. A Publisher has:
label(REQUIRED string)years(string)note(string)imprint_of(string, the key of another publisher)became(string, the key of another publisher)names(list of strings, each the key of another publisher)relation(string, one ofimprint,joint,for)questions(list of strings)
Tags
The vocabulary in data/tags.yaml. A Tag has:
facet(REQUIRED string, one ofmarket,traits,physical)label(REQUIRED string)
Abbreviation Sources
The vocabulary in data/abbreviation_sources.yaml, naming whose house style an
Abbreviation belongs to. An Abbreviation Source has:
label(REQUIRED string)url(string)note(string)
Sets
The vocabulary in data/sets.yaml. A Set has:
uid(REQUIRED string, four-character base30)label(REQUIRED string)publisher(string, a label indata/publishers.yaml)year(integer)composition(string, one ofgathered,exclusive,mixed)volumes(integer)isbn10(string)isbn13(string)tbn_ids(list of integers, the tolkienbooks.net records this set names: its own and, where they are catalogued, its volumes')tbn_refs(mapping of tolkienbooks.net id to record number, for those ids intbn_idsthat no printing in the database carries; a printing supplies the rest)cover_url(string)cover_source(string, a key indata/image_sources.yaml)variants(list of Set Variant items, at least two; for a set whose contents are not the same copy to copy)questions(list of strings)
Set Variants
A Set Variant has:
key(REQUIRED string)label(REQUIRED string)
Art
The file art/metadata.yaml has:
artworks(REQUIRED mapping of Artwork items)artists(REQUIRED mapping of Artist items)
Artists
An Artist has:
name(REQUIRED string)tg_page(string)
Artworks
An Artwork has:
artist(REQUIRED string, the key of an artist inart/metadata.yaml)title(string)unofficial_title(string)file(string)tg_page(string)
An Artwork must have a title or an unofficial_title.