As a practical matter, its not hard to figure out how often the datasets come in, and use that as a heuristic on how often to crawl.
In principle, "Last Modified" HTTP header could tell you if the catalog has been modified, or perhaps "Expires" is better. The problem is that the server doesn't actually know what that should be, but perhaps we can figure out a way to add that. This would only be approximate, but I assume that would be good enough for your purposes?
Realtime data is challenging. For gridded data, the granularity is large enough that "Expires" is probably useful. For datasets like radar and surface obs, the answer is always "yes, it changed since last time you asked".
We are doing a project on ingesting THREDDS catalogs to OGC catalogs (Catalog Service for Web, or CSW). We find that we have to go through an entire THREDDS catalog to update an ingested CSW server, because we don't know if the THREDDS catalog has been modified before exhaust it.
There is a "date" element in the
threddsMetadataGroup. The element can be used to
identify the modified (or created, valid, issued, available,
etc)date/time of a individual and/or collection dataset. This
element is very useful not only at individual dataset level but also at
data collection level. For example, suppose a data collection A
contains another collection AA which contains another collection AAA
which contains datasets a,b,c,and d (i.e.,
A>AA>AAA>a,b,c,d). If the "modified" date stamp
is applied to all the dataset nodes, individual as well as collection, a
returned user would not need to follow the complete path to find out if a
new dataset is added/modified/etc in data collection AAA and/or another
other collections in the hierarchy.
However, it seems that this "date" element is not used widely, if any, at the data collection level. In fact, I randomly browsed some of the data paths in Unidata's motherlode catalog ( http://motherlode.ucar.edu:8080/thredds/catalog.html)and didn't find any "Last Modified" information until I got to the final dataset level.
I guess that the reason THREDDS catalog does not show modified date/time at collection level is that the catalog is not automatically updated when a new dataset is inserted into the database/file system connected to the catalog. Once a user browses down to the catalog, the server will scan the immediate child nodes to get all the available datasets/data collections. Thus, a user browsing down the hierarchy will always be presented the most currently available datasets although the catalog does not update itself upon new datasets being inserted. The disadvantage of the approach is that a user always needs to go to the bottom level to find out if any new datasets has been inserted. Similarly, in order to update our CSW catalog, our THREDDStoCSW ingestor will have to scan through an entire THREDDS catalog, which can be very large, such as the Unidata catalog.
Any comments/suggestions will be highly appreciated.
Wenli Yang George Mosaon University
=============================================================================== To unsubscribe thredds, visit: http://www.unidata.ucar.edu/mailing-list-delete-form.html ===============================================================================
NOTE: All email exchanges with Unidata User Support are recorded in the Unidata inquiry tracking system and then made publicly available through the web. If you do not want to have your interactions made available in this way, you must let us know in each email you send to us.