OK what happens: There are schemas which define the structure of bibliographic records. There are also what are called RIP files which seems to be config files containing info about schemas: e.g. [org.pybliographer/bibtex/0.1] path: readers: Pyblio.Parsers.Semantic.BibTeX.Reader writers: Pyblio.Parsers.Semantic.BibTeX.Writer citationkeys: Pyblio.Cite.Keys.AuthorYear All available RIPs (system-wide and the ones in ~/.pyblio) get parsed at the start when you do: Regitry.parse_default() After the parsing there a bunch of schemas available in the Registry and you can do: Registry.getSchema() The actual schema itself seems to be specified in the .sip files found in Pyblio/RIP/. For example there is bibtex.sip and crossref.sip etc. The exact requirements for the format of this file aren't entirely clear but the existing examples are a good place to start. ## What are schemas used for ## Schemas are then used to define the format of the local pybibliographer database we use. Pyblio.Store # factory for creating dbs with different persistence backends (only file at # present) Database LocalDatabase ExternalDatabase Record Attribute (name, type, value)