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