What's new? | Help | Directory | Sign in
Google
jangle
Just another generic library environment
  
  
  
  
    
Search
for
Updated Jan 01, 2008 by townxelliot
GeneralPrinciplesForSchemas  
General principles for Jangle schemas

...and ILS/LMS schemas more generally.

The Principles

Jangle schemas should be developed bearing the following principles in mind:

  1. They should be as generic as possible: likely to offer representations for all the data any library system could store.
  2. They should accommodate the reality that there is no way such generic schemas will be able to capture all the variability of real library system data. So the representations offered must be extensible via standard mechanisms.
  3. They should be expressible using an XML schema language (e.g. XML Schema or Relax-NG).

Given these principles, ideal formats for storage are those already in widespread use. For example, RDF is particularly appropriate because it is simple and extensible. Extensions of RDF to other widespread formats (e.g. vCard RDF) should be preferred over proprietary (e.g. Talis-specific) or vertical (e.g. NCIP) formats.

Library-specific formats should also be considered. But we want to keep the core schemas generic to the extent that they are usable outside the library domain.

Schemas we're working on

Issues

(These are implementation issues, rather than issues with the idea of using XML schemas.)

  1. Rails doesn't have class definitions for model classes - the schemas we're outlining here are going to very often be for models, e.g. borrower, loan, reservation, item. Do we just keep this informal (have an XML spec. which we code our Jangle models to); or do we find a way to extract model metadata from Jangle's "ideal" models (perhaps from migrations - though that seems bad); or use a different ORM like DataMapper which stores properties on classes; or something else. I suppose we want to stay with ActiveRecord for now, as it's integral to Rails - so perhaps we need a way to have "ideal" models which are extended in actual connectors, or which connectors convert their own model classes to. DesignByContract for Ruby? Not sure about that.

Sign in to add a comment