Search |
||
Mad Metadata PlanPosted by jive on July 15, 2005 at 4:21 PM PDT
The use of Extensible-Interface pattern for an origional take on the metadata problem plaguing the spatial world (see EOGEO for background). Thanks to those at OSG'05 for the inspiration. Now if only someone will pay me to solve this problem :-) A couple people have asked about my mad metadata plan (tm). Since it is a Friday, and other mad plans are flowing around the email lists I thought I should play.... Briefly:
Now in the XML world metadata is relatively easy:
In the object oriented world metadata has given us a little bit of grief:
As for specification we have a few:
want to play with (ISO 19115 and ISO 23950 (Z39.50) So here is the start of the mad metadata plan:
The solution is to use the *Extensible Interface* pattern... QWhat is the Extensible Interface Pattern? AKA:Extensible Object, IAdaptable (Eclipse), IResolve (udig) Intent:"Anticipate that an object's interface needs to be extended in the future. Extension Object lets you add interface to a class and lets clients query whether an object has a particular extension." Q:How is that done? Where Q:Why is that cool? Because of the part I did not tell you yet, the implementation of getExtention should be backed by a *Factory*, and not just any factory one that can be extended by a plug-in system. In geotools an example is the use of FactoryFinder and DataStoreFactory. This lets us teach an old object new tricks. This lets us accomplish something very cool, it lets us have our metadata Object *in the format it arrived in* (backed by a DOM, or a JDOM or by a cluster of Objects), and it gives us a method to call to ask for that data in an interface known to us. Better yet it lets the people capturing the information not have to worry about ISO19115 or ISO19119 or ebRIM, such mappings can be handled by someone else. What would these mappings look like? Well if it was a simple XML problem we would provide some of this with XPath expressions, if we use JXPath (the apache project) we can use XPath for both DOM and clusters of Objects/Collections (aka POJO). If we play our cards right we can make the mappings completely orthogonal to the metadata storage facility. Basically it should only matter that we know how to go from ISO19115 to DublinCore, not if we are using the geoapi ISO 19115 interfaces, or a XML document with the ISO19115 schema. Very cool. Okay a few more bits of the puzzle Q So what is an implementor to do?
Sounds good to me, our Metadata object should *be* a Feature, the FeatureType can capture the available *slots* as attributes. Usually these are a superset of those defined by DublinCore. Putting the bits together:
We get a system that can pass extra data through, can be used with OGC Filter, allows the use of our existing Metadata interfaces for ISO 19115, and can be taught new tricks. Jody »
Comments
Comments are listed in date ascending order (oldest first)
|
||
|
|