Skip to content

Rhaptos Software Development

Personal tools
You are here: Home » Developer Blog » Brent's Blog » Separating out Metadata

Separating out Metadata Separating out Metadata

Document Actions
Submitted by brentmh. on 2005-04-18 23:46. Deep CodeDevelopment
We'll soon be separating out metadata portion from CNXML documents. Read more about the how and the why.

Why?

As I mentioned in a reply to Chuck, we don't often talk about the motivation for this move, so I'll try to lay it out some of the reasons here:

  • To simplify editing: Depending on who you talk to, CNXML markup isn't all that bad but looking at the large block of XMLish metadata is intimidating if you aren't comfortable with it.  We have (hopefully) easy-to-use forms for metadata editing and we encourage (read: require) our authors to use those for changing metadata.  They get confused when they try to edit it in the XML and it doesn't work.
  • To allow for separate development: As long as both metadata and CNXML live in the same file, they must be validated together.   This pretty much requires lockstep development of both.   By separating the two we can allow each to proceed at its own rate.  We can even swap out metadata formats entirely and move to something like Dublin Core or IMS.

For people who want it as a single XML file we can stuff the metadata in for exporting and pull it apart again on import.

How?

I've outlined the migration as a two-step process.  First pulling the XML out of the user-visible side, and second the separate storage.  For the first-phase my plan was to remove the <metadata> tags upon module checkout.  I orginally thought about doing that with regular expressions the way we're currently doing our get/setMetadata functions.  But then I'd have to write a new expression for inserting the metadata back in during publication.   I didn't want to do that, and besides, there was a better way.  For our enhanced edit-in-place Adan and I had already created {add,delete,replace}Node methods that did  XPath manipulations on a document tree.  This seemed like a natural fit, and sure enough it works.  It only took me half a day or so to get it running and most of that was mainly due to me forgetting that you can't free removed namespace nodes until after the document has been reconciled. But that's a whole other story for a different day. 

Re: Separating out Metadata

Posted by cbearden at 2005-04-19 10:29
<p>Thanks for the clarification. It sounds like you anticipated my cavils. By the way, are you familiar with <a href="http://www.loc.gov/standards/mets/">METS</a>? It is a standard for encoding digital objects together with various sorts of metadata (administrative, structural, descriptive). It would provide a standards-based way of encoding modules (index.cnxml plus any other files) and even whole courses, with the structural metadata serving to preserve the intra-course relationships between modules. DSpace looks set to <a href="http://wiki.dspace.org/EndUserFaq#head-13669da8a3000f9b8cfb9046d4a796a924bd3050">use METS as a standard import/export format</a>. It probably would be overkill for simple modules, but then in that case it might also be simple to generate.

Re: Re: Separating out Metadata

Posted by cbearden at 2005-04-19 10:30
Well, poo! The comments don't understand HTML. And I forgot to close my paragraph element.
Developer Blog
« November 2008 »
Su Mo Tu We Th Fr Sa
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            
2008-11-10
13:39-13:39 Suggestion for live site slowness reports
Categories:
Content (55)
Copyright (0)
Deep Code (3)
Development (203)
Markup (22)
Metadata (1)
Printing (7)
Style (9)
Testing (2)
Usability (6)