table metadata and the registry
Ray Plante
rplante at poplar.ncsa.uiuc.edu
Wed May 9 10:52:28 PDT 2007
On Wed, 9 May 2007, Tony Linde wrote:
> Just one point I wanted to clarify: I sensed you were proposing the
> table/column retrieval method as 'extra' to the getCapability method. If
> not, no problem, discussion over. If so, can you explain why we'd need both?
The test question is this: suppose registry A retrieves metadata from a
service using get*() and that metadata includes table metadata. When
registry B harvests that record from registry B, will the record include
the table metadata? If the answer is yes, we have a problem.
We need to have a common understanding of how replication will work with
the introduction of a service method like get*(). Here's my take
(assuming a VOSI getRegistration()):
1. Publisher goes to a Publishing Registry A to register the service.
2. Instead of filling out a big form, she identifies it as a
VOSI-compliant service and provide the VOSI endpoint.
3. Registry A retrieves the record from the service using
getRegistration(). The registry now counts this resource among
those that it "manages".
4. Registry B harvests from Registry A, asking for the resources that
Registry A manages (via the OAI set "ivo_managed").
5. Registry A periodically returns to the service's VOSI endpoint to
see if the record has been updated. If so, it updates its record
accordingly.
6. Registry B again harvests from Registry A to get updates from the
last harvest time. RegB gets the updated record for the service.
As you can see, getRegistration() by itself does not address the question
of fine-grained metadata. The fine-grained information is intermixed with
the coarse-grained. Neither does getCapability() as Doug as recommends it
(returning only the capability element) in general for the same reasons,
but specifically because the table metadata are not even part of the
capability metadata.
Now VOSI has getRegistration() and getMetadata() in which the latter
return more (and let's say, fine-grained) metadata in VOResource format.
If Registry A wants that extra info, does it call getMetadata() instead?
If so, then we are back to the same problem: the table metadata will make
its way to Registry B. Furthermore, there is nothing that says that table
metadata should go in one or the other method--it's completely the choice
of the publisher!
Now rewind. Suppose the service provides a record that does not
explicitly include table metadata, but rather a pointer to it. Registry A
pulls the record over, and that is the record it manages, and that is the
record it sends to Registry B during harvesting. But Registry A also
wants the table metadata, so it resolves the pointer and ingests the
metadata. Furthermore, it inserts the table metadata into the records it
returns to users through the search interface. A is happy, B is happy.
IVOA harmony ;-)
Is there a way to make B happy with get*(). I'm open to suggestions.
cheers,
Ray
More information about the registry
mailing list