metadata question

Ethan Davis edavis at unidata.ucar.edu
Thu May 18 11:53:54 MDT 2006


Hi Bruce,

Bruce Flynn wrote:
>
> Hi Ethan - I hope your prepared for this!
>
> Specifically, the metadata element that does not work with the TDS 
> HTML is <metadata 
> xlink:href="http://sands01.ssec.wisc.edu:8080/thredds/Shelves/7a75/4fd8/7a754fd85b39c6b6795936bbcd26955d/" 
> xlink:title="Parent Dataset" />.
>
> It fails with the error output found at 
> http://www.ssec.wisc.edu/~brucef when navigating to the dataset 
> containing the above metadata.  The above XML works if you change the 
> tag to documentation and place it in a metadata element.  ???
One problem is that your catalog is not valid according to the 
InvCatalog schema. The TDS is pretty lenient when reading catalogs so I 
don't think any of this is causing the problem you are seeing. But here 
are the details. Just a few changes fix it. At the catalog level, 
service elements must come before dataset elements. The datasetRoot 
element needs a location attribute instead of a dirLocation attribute 
(either is allowed in datasetScan but not in datasetRoot). Inside of 
datasets, access elements come after metadata and dataSize elements. 
Also, metadata elements have to come before dataset elements. I've 
attached a new version of your catalog that fixes these problems.

I think the main problem is that the resource you are linking to (looks 
like your TDS is down currently, so I haven't actually been able to look 
at it) appears to not be well formed. Here's the part of the error 
message that leads me to this conclusion:

    **Error: InvCatalogFactory.readOtherXML failed on
    http://sands01.ssec.wisc.edu:8080/thredds/Shelves/7a75/4fd8/7a754fd85b39c6b6795936bbcd26955d/

    Exception= org.xml.sax.SAXParseException The element type "meta"
    must be terminated by the matching end-tag "</meta>".

    ** failed to read thredds metadata at
    http://sands01.ssec.wisc.edu:8080/thredds/Shelves/7a75/4fd8/7a754fd85b39c6b6795936bbcd26955d/
    for datasetmichelle.tar


One other thing that might cause problems. It looks like the TDS HTML 
view only displays a link for the metadata xlink:href if that is the 
only metadata element. Sounds like a TDS bug, so we'll look into that.

Can you try the attached catalog and check for well-formed XML in the 
linked resource and see how well that works?
>
> What I am trying to accomplish is kinda hard to explain, but I'll give 
> it a shot...
>
> I have 2 parallel TDS representations for the same data. There is a 
> "Shelves" tree generated using datasetScan that is an exact recreation 
> of our datastore back-end on our XSAN.  The data-store is in a format 
> that is not user navigable, so for users to get to their data we 
> provide soft-links to something more "friendly," which we call the 
> "user links."  The XSAN back-end will never change, but the user links 
> might.  I have python scripts that generate TDS catalogs from the user 
> links that replicate the soft-linked user navigable access to the XSAN 
> back-end.
>
> So...  If a link to a particular dataset(ie. netcdf file) is 
> distributed from one user to another, that user may also be interested 
> in the related files in the parent dataset.  Therefore, there was a 
> requirement to have a link to the parent dataset containing related 
> files. Since the user links may change it made sense to provide that 
> link to the shelves tree, which is static.
>
> For example, the user links URL for the above metadata tag is 
> http://localhost:8080/thredds/dodsC/User_Links/Users/johnm/catalog.html, 
> which actually represents the same data.
>
> So, it seems unnatural to classify the link to a parent dataset as 
> documentation.
Well, I'm not sure I really understand but it sounds like you want to 
explicitly capture a parent/child relationship that the THREDDS catalogs 
being produced don't capture. The only way to capture this information 
would be to build a single THREDDS catalog with the parent/child 
relationships showing up as the hierarchical structure of the catalog. 
The reason we don't have a place for this kind of information outside of 
the hierarchical structure is because a catalog can be pointed to from 
multiple locations so there isn't necessarily a single parent to any 
given catalog.

Since there isn't an explicitly defined way of doing this in THREDDS 
catalogs and it sounds like you simply want this information displayed 
to the user rather than making this a standard, machine readable bit of 
information, I would suggest using the documentation element. (Here's my 
thinking on this ... Both documentation and metadata elements are simply 
providing additional information about the dataset. The difference is 
the intended audience: a human user, in which case the free-text and/or 
XHTML of the documentation element should be used; or a machine, in 
which case the structured information of the metadata element should be 
used.)

You could just stick some text and an HTML link into a documentation 
element:

<documentation>Other related datasets are available in this datasets <a 
href="???">parent collection</a>.</documentation>

or as we've been discussing, an xlink to another document.

Hope this all helps.

Ethan

-- 
Ethan R. Davis                                Telephone: (303) 497-8155
Software Engineer                             Fax:       (303) 497-8690
UCAR Unidata Program Center                   E-mail:    edavis at ucar.edu
P.O. Box 3000
Boulder, CO  80307-3000                       http://www.unidata.ucar.edu/
---------------------------------------------------------------------------

-------------- next part --------------
A non-text attachment was scrubbed...
Name: bruceCat2.xml
Type: text/xml
Size: 1965 bytes
Desc: not available
Url : http://mailman.unidata.ucar.edu/mailing_lists/archives/thredds/attachments/20060518/3c13dd20/attachment.xml 


More information about the Thredds mailing list