[Chandler-dev] Re: Next steps: external information model
Phillip J. Eby
pje at telecommunity.com
Thu Sep 7 13:02:10 PDT 2006
At 12:05 PM 9/7/2006 -0700, Brian Moseley wrote:
>wanted to follow up on this with you and bring bobby and ted into the loop.
>
>we're going to have to assume that cosmo's code is never going to be
>able to keep up with chandler's evolution, let alone the evolution of
>third party parcels, so we're going to need some policy for handling
>things that we don't understand.
>
>to use the xml from
><http://wiki.osafoundation.org/bin/view/Projects/ExternalInformationModel>
>for examples:
>
>let's say cosmo doesn't understand the contact namespace. what do we
>do with the <cta:record> that we find in that record stream? we
>certainly don't want to lose the data. i think we could just store the
>record as a generic type name and set of namespaced string attributes,
>so that we could at least send back what chandler gave us, even if the
>web ui doesn't do anything with the data.
>
>also, do we need preserve type information? does cosmo need to know or
>care that <con:createdOn> is a timestamp? probably, since eventually
>the web ui will want to display it as such. but what about for third
>party namespaces that we don't know anything about?
>
>i'm tempted to rely on xml schemas to communicate type information.
>cosmo could look at the content item schema to determine that
><con:createdOn> is a timestamp and store the value as such. this would
>probably require us to package the schemas with cosmo and to require
>schema updates on the client end to be backwards compatible - or again
>for cosmo to have a reasonable way to cope with unexpected schema
>changes.
>
>do you see any problems with using xml schemas? we could alternatively
>encode type information right into the xml, but i don't like the
>verbosity and implied inefficiency.
If we have this kind of meta-information, I'd like to represent it in EIM
form, rather than having another format. It means that we don't need to
have multiple formats for the same information. An XML schema seems like
overkill, given that we are talking about essentially relational data here;
a simple 3-field record structure of the form (table, column, type)
suffices to encode almost all the meta-information for a transmission,
assuming that we have some reasonable vocabulary for "type". The other
piece of information that might be relevant is uniqueness and inter-table
constraints; with that information you could literally construct tables in
your database to store the exact EIM data. (Which would also leave open
the interesting possibility of having query APIs against it.)
Now, there's no reason you can't transform this kind of information into an
XML schema, but unless it gives some additional benefit vs. just slapping
together a few basic record types and an initial type vocabulary, I don't
see a reason to add the XML schema part.
To put it another way, both Cosmo and Chandler are already going to have to
have code to read, write, and understand EIM records, so why also add code
to read/write/understand an XML schema too? :) So we might as well
represent any schema information as some additional EIM records that just
have a hard-coded schema.
More information about the chandler-dev
mailing list