I'd like for us to meet on Thursday, September 14th, at 3pm PST to discuss
the type system for the sharing external information model between Chandler
and Cosmo. Morgen and Brian Moseley have both proposed using XSD, but I
think we need to narrow the field a little, since XSD is much broader than
what either the Chandler or Cosmo backends can actually accept at this
point in time. So, I don't field comfortable making the spec allow you to
just throw in there whatever types XSD allows. We should at least narrow
it down to the subset of XSD that each backend can comfortably support,
even if we use the XSD model for specifying types.
However, we could also just as easily use a very strict concrete typing
based on SQL types, or just list out what types and variations thereof we
will allow in the current version, and how we will communicate that type
information.
So the first goal of the meeting is to decide "what types we care about",
in the sense of both the specific types themselves, and what *distinctions*
between types are necessary. For example, the Chandler repository doesn't
care about how big a Text field is, but SQL databases usually do, and often
make a distinction between short text and long "memo" types at a smaller
size than one would usually care about in Chandler before switching to a
blob type.
Another similar distinction is numeric precision, since SQL databases tend
to use fixed decimal places to describe their numeric types, vs. the way
Python and Java effectively use numbers of bits.
So, we should establish what distinctions are critical, and then from there
decide whether to use an XSD subset, an SQL-like type/precision notation, a
fixed set of predefined types without any variation allowed, or something
else altogether.
Of course, if we can answer these questions via email before Thursday and
don't have to have a meeting, that's even better. :)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Open Source Applications Foundation "chandler-dev" mailing list
http://lists.osafoundation.org/mailman/listinfo/chandler-dev