[DDI-users] A "home" for the DDI

ddi-users@icpsr.umich.edu ddi-users@icpsr.umich.edu
Mon, 18 Aug 2003 22:45:02 -0400


Quoting "Mark R. Diggory" <mdiggory@latte.harvard.edu>:

> I wish I could locate a private CVS service that was managed by someone 
> else. I currently maintain my own secure cvs service on my workstation 
> for several of my own projects, but I don't feel such a location could 
> be considered "stable". A good discussion might be "where to setup a 
> private CVS server?". I think the HMDC group might have an interest in 
> providing a private CVS here at HMDC unless this is something that ICPSR 
> would like to provide locally.

I'll ask around.

> I like this idea too.
> 
> In open source software development, much of this process would be 
> managed in a bugzilla or issue tracking system. It would appear there 
> are different timelines in the project for dealing with "bugs" vs 
> dealing with "feature requests". Obvious bugs require fixing almost 
> immediately in our case without much council involvement. The recent 
> codeBook "version" attribute problems that arose in the dtd and schemas 
> can attest to this necessity.

Yes, thanks, I forgot to mention that bug fixes should be dealt with using a 
different, faster process. 

...
> >> 2.) Embedding the DDI into other xml content and embedding other content
> >> into the DDI (such as OAI). This would not be able to maintain backward
> >> compatibility because DTD just doesn't support any thing near this
> >> capability.
> > 
> > 
> > This is something that requires major structural changes which would 
> > again necessitate the abandonment of backwards compatibility. Despite 
> > the X in XML, the DDI currently is not designed for extensibility. I'm 
> > not familiar with OAI schema, so I wouldn't know if they're designed for 
> > it. But if this were a council goal, then I'd suggest that XSD change 
> > and OAI embedding change be implemented simultaneously because these 
> > changes cannot be implemented without breaking backward compatibility.
> > 
> Again, this embedding is just a characteristic capability of XSD, its 
> just the capability of an XSD "Container" element, that you can place 
> any other content into that container element ( in OAI's approach, they 
> require it to carry a schema that can be validated against). From our 
> experience, there is no major modification to the contents XSD (the DDI 
> in this case) that needs occur to make it "embeddable" in OAI.
> 
> I think the issue of actually introducing this same container-like 
> functionality into the DDI, for example, with the DDI containing MARCXML 
> markup or Dublin Core XML markup, that would totally break any 
> compatibility. It would be impossible to maintain a comparable DTD if 
> such features were introduced. I'm sure there are other feature that I'm 
> not strongly familiar with that would have such requirements as well.

Let's think about this in a little more detail. If you use DDI as a wrapper, 
then you're right, you don't need to make structural changes; you can just use 
namespaces. But let me say that I don't think that the DDI should be used to 
wrap one big MARCXML or Dublin Core document. To put it another way, I don't 
think that the DDI should be used as some kind of envelope protocol the way 
that SOAP is or that TCP/IP is. My feeling is that an envelope type of 
protocol should be lightweight and singleminded. The DDI is just too big and 
clumsy to be the wrapper of a large object. Also, this kind of usage of the 
DDI does not offer any advantages to simply keeping the DDI and MARCXML or 
Dublic Core in separate documents but zipped together for easy transport. The 
value of the embedding has to come from some interaction between DDI and the 
other XML that's embedded in it.

The reason that DDI should not be used as a container/wrapper for MARCXML or 
DCXML is that they all have overlapping concerns. On the other hand, it's OK 
if DDI contains XML-FO or XHTML, because the concerns of DDI doesn't overlap 
the display concerns of XML-FO or XHTML (I'm ignoring the well-intentioned but 
misguided inclusion of formatting TEI tags). This separation of concerns is 
really the same principle underlying the 7 layers of the transport protocol -- 
each layer has its own concern so they can be independent.

So, in my opinion, if the DDI is to contain MARCXML or Dublic Core, then the 
external XML has to be broken up and stored in individual elements of the DDI. 
This would require structural changes because the concepts in MARCXML or 
Dublin Core aren't organized in the same way ( we're finding this out as the 
DDI is trying to harmonize itself with ISO1179. Many attributes match up but 
they're organized differently ). XSD offers the capability of namespaces, but 
in my opinion, mixing namespaces doesn't do any good unless the elements in 
the individual namespaces play nicely with each other.

On the other hand, the OAI seems to be a good candidate for a protocol used to 
wrap DDI, MARCXML, Dublin Core, etc., but I don't know if it's designed that 
way.