[openbiblio-dev] Enriched BibJSON

Tom Oinn tom.oinn at okfn.org
Sat Jun 23 12:03:08 UTC 2012

Hi all,

We decided some time ago to use BibJSON to store bibliographic
information in various places in Textus. At the bibliohack the other
week it became clear to me that a Textus instance should also be a
BibServer instance and that in order to make use of facetview and
friends we should expose an ElasticSearch endpoint which would return

Initially I was planning to embed the BibJSON into other objects
(Textus has a variety of data types, user annotations can carry
citations for example) but this would mean either re-writing the
search results from ElasticSearch for the BibServer compatible
endpoints or storing the bibliographic information in a distinct index
and referencing it, neither of which feel right.

So, instead of this I've inverted the model and am planning to store
BibJSON with an additional 'textus' property used to contain any
information that is Textus specific. For example, when a reference is
part of a user's reading list we'll store the user, the name of the
reading list and any justification for its membership given by the
user, for the information about a stored text we can hold the internal
text ID and link to the reader interface etc.

As far as I can see this latter approach would immediately give us
compatibility with the BibServer APIs as we would be returning lists
of BibJSON, albeit BibJSON with an unexpected extra property. My
question(s) is / are therefore: will this cause any issues to external
tools? What would happen if we took a set of enriched objects and
submitted them to bibsoup, would it just index the bibliographic data
part or would it store everything? Should I be writing a bit of
filtering code to strip out the Textus properties when exposing the
search endpoint externally?

Tom Oinn
+44 (0) 20 8123 5142 or Skype ID 'tomoinn'

More information about the openbiblio-dev mailing list