I’ve a feeling there may be more of these in here…

Pretty much all of the stuff contained below (and I expect, the stuff in future posts) is really new to me, so I thought I could probably do with somewhere to do braindumps in a [possibly futile] effort to help me clarify some thoughts on what we’re trying to do at the moment…

We’re building a service framework (we are?) around an RDF datastore to provide a generic metadata storage mechanism. We’ll probably front this with an Atom interface.

How will it work?…

RDF will be handled by Spiral, backed by MySql. We’ll implement a set of lightweight REST services to carry out CRUD operations on the business objects in the system. What I need to get my head around is where the generics stop and the specifics begin. I.e. it would be really useful to have a set of services which can be re-used to store, search, retrieve etc infinitely extensible metadata (of any schema) - hence the RDF backend. This could then be re-used all over the place in so many apps & services. On top of that we have some more specific domain objects which need to be modelled, i.e. Collections & Services (in the dc sense), WebInteractions etc etc. Obviously these are more specific to our particular application/domain. So I’m mentally drawing a line (not quite sure where that line is yet, and it will definitely move around) between generic data access and domain-specific stuff.

I think the generics will provide a query based interface to the RDF datastore - we will need to extend the Spiral resolver component to handle partial matches/wildcards etc (so that we can plug this in to our existing web app without losing any functionality). Also, we it would be nice to extend the Spiral query engine so it can convert triple patterns into Spiral Patterns, i.e. ?name maps to new Variable(”name”) etc.
It looks likely that the Atom publishing protocol is going to be really significant for us, as it details a REST based protocol for carrying out CRUD on stuff (I think, I need to immerse myself in it more fully right now). This is what Danny Ayers has to say about this.

The specifics will sit on top, or make use of the generics (it’d be nice if they were completely decoupled) and most likely provide CRUD functionality on the domain objects via a set of canned queries straight into the generics.

License

This work is published under a Creative Commons Attribution-Share Alike 2.5 License.