The IVOA in 2006: Assessment and Future Roadmap - Registries
Brian Thomas
thomas at astro.umd.edu
Fri Jun 9 07:38:08 PDT 2006
On Friday 09 June 2006 05:43, Paul Harrison wrote:
> Whilst I agree
> with Brian that the mapping approach between the data model and an
> underlying RDBMS structure is the right approach for established
> static data models, the registry is a slightly special case as it has
> always allowed the extensions to core model (a 'good thing' as it
> fosters innovation = don't have to wait an eternity for a standard to
> be published before being able to publish information about a new
> type of resource) - for this to happen the mapping technology needs
> to be dynamically able to cope with new objects,
Paul,
If I understand your point correctly here.. I would argue that an
XML document (mapped fully or partially onto an RDBMS) *can* cope
with data model which is 'extended' : e.g. an admixture of a group and
local model by namespacing the various nodes within it structure.
Take, for example, the following 'kosher' document which (for argument
sake) is 100% IVOA compliant:
<ivoa:document xmlns:ivoa="urn:ivoa" xmlns:orml="urn:orml">
<ivoa:node1 name="mynode_A"><orml:value dbId="test" dbTable="test" dbCol="col1"/></ivoa:node1>
<ivoa:node1 name="mynode_B"><orml:value dbId="test" dbTable="test" dbCol="col1"/></ivoa:node1>
</ivoa:document>
An XQuery to get data would look like:
declare namespace:ivoa="urn:ivoa";
for field in //ivoa:node1
where $field/@name='mynode_A'
return <result> { $field } </result>
Might return:
<result xmlns:ivoa="urn:ivoa">
<ivoa:node1 name="mynode_A"><ivoa:value>10 20 30 40</ivoa:value></ivoa:node1>
</result>
Which is comprised entirely of nodes from the group (IVOA) namespace. Consider what happens
when the document has embedded some local information, for example a document like:
<ivoa:document xmlns:ivoa="urn:ivoa" xmlns:orml="urn:orml">
<ivoa:node1 name="mynode_A"><orml:value dbId="test" dbTable="test" dbCol="col1"/></ivoa:node1>
<ivoa:node1 name="mynode_B"><orml:value dbId="test" dbTable="test" dbCol="col1"/></ivoa:node1>
<local:node2 name="mynode_A">33</local:node2>
</ivoa:document>
The prior query would return the same result as before (local stuff is ignored).
Now, getting to more complex cases, you may ask, what about adding local attributes to group namespaced
nodes? or perhaps adding local child nodes to group namespaced nodes? In this case, the local stuff may be
picked up, however, its namespacing should indicate that it is not part of the group namespace, and the parser
on the client end should be able to ignore it.
Regards,
=brian
More information about the registry
mailing list