settling on an API

I sent an off-list message to a few people affiliated with OOo and
Zotero about moving forward on the style infrastructure. In short, we
need to figure out now how build out the number of CSL files and ensure
that it’s all easy to access, maintain, etc. I don’t want a situation
where different project all have different styles, and there’s no way
to rationalize them. Moreover, I think we owe it to users to make
things easy for them too.

Requirements============

  1. users should not have to manually manage style files at all; updates
    get handled transparently
  2. users must be able to easily find the style they need (I don’t care
    about 99% of styles, do don’t bother me with them)
  3. should scale easily to thousands of styles, and multiple projects

What I think makes sense is an API where:

  1. a user can specify the repositories, say in a config or preference
    parameter; e.g.:

    csl_repos = [ “http://abc.net/styles/”, “http://xyz.net/styles/” ]

Ideally there ought to be one, but I don’t think we can assume that as
a design limitation.

  1. a user can also specify fields of interest:

    csl_fields = [ :chemistry, :biology ]

This constrains the default styles it will look for. Perhaps software
like Zotero might offer auto-complete searching/selection of the
styles?

  1. perhaps we assume the repository has Atom feeds for each category?
    Not sure, this is starting to get fuzzy for me.

In any case, I think we need to figure this bit out. We do ultimately
need a web GUI for style creation, but it seems to me it makes sense to
start with the basics of a simple approach: even flat files plus Atom
feeds, and some conventions to exploit them.

Bruce