System: Metadata This chapter presents all of the Metadata module of Geotools, except for the org.geotools.util package which was discussed in . Introduction The Metadata module implements the metadata elements defined in the GeoAPI interfaces of the org.opengis.metadata package which are required by other elements of the ISO geospatial standards. The Metadata module also provides utility classes, internal resources, and the elements of the base ISO schema which were discussed in . This chapter is only relevant to those trying to understand the internals of the metadata elements. Because the current implementation is minimal, these classes can be understood just as well by looking directly at their Javadoc documentation. Geotools implements a geographic information system based on the standards defined by the International Organization for Standardization (ISO) in their 191xx series of standards. The ISO 19115 standard of that series defines the classes needed to associate metadata with geospatial elements. Geotools currently provides, in the Metadata package, only a minimal implementation of the ISO 19115 standard. This implementation is sufficient merely to allow the implementation of other standards in the series whose elements depend on the metadata elements. Notably, it is currently not possible to create a single object with the full metadata documentation for a data set. Usage These classes are used as components of more complex geospatial elements, most notably those in the referencing module. Warnings The Metadata implementation is incomplete The current implementation of these classes is minimal, sufficient only to implement more complex classes in other ISO standards. There are not, for example, the methods needed to aggregate these classes into a coherent document describing a gespatial data set. Instance Object Model Code Layout All of the classes in the Geotools metadata module can be found in the ./modules/library/metadata/ directory of the Geotools source code. The Geotools metadata module defines classes in several packages. The module includes the full org.geotools.util package which was discussed in . The module defines classes in the org.geotools.resources packages which should not be used by user code but is intended only for internal library use. Geotools Metadata Module and related GeoAPI Packages Packages Use GeoAPI Geotools org.geotools.factory The ?metadata? Factory system org.geotools.io Formatting and writing classes org.geotools.math Simple numeric and geometric classes org.opengis.metadata org.geotools.metadata.iso org.opengis.metadata.citation org.geotools.metadata.iso.citation org.opengis.metadata.constraint org.geotools.metadata.iso.constraint org.opengis.metadata.content org.geotools.metadata.iso.content org.opengis.metadata.distribution org.geotools.metadata.iso.distribution org.opengis.metadata.extent org.geotools.metadata.iso.extent org.opengis.metadata.identification org.geotools.metadata.iso.identification org.opengis.metadata.lineage org.geotools.metadata.iso.lineage org.opengis.metadata.maintenance org.geotools.metadata.iso.maintenance org.opengis.metadata.quality org.geotools.metadata.iso.quality org.opengis.metadata.spatial org.geotools.metadata.iso.spatial org.geotools.metadata.sql Storage in a database org.geotools.resources For Geotools use only org.geotools.util Discussed in the previous chapter.
Key Classes Key Classes Class Interface Creation Use
Run Through Resources The ISO 19115 standard "Metadata" describes the classes defined in the GeoAPI interfaces and defined in the Geotools package. That standard will be complemented by several standards which are still in development: the ISO 19115-2 "Metadata Part2: Extensions for imagery and gridded data" will be useful for remotely sensed data, ISO 19119 "Services" defines the service presentation of metadata, ISO 19139 "Metadata-Implementation" describes the use of XML to store metadata. The use of these classes is described in the other ISO standards such as the use by Referencing classes documented in ISO 19111 "Spatial Referencing by Coordinates." The topic of metadata is quite large, encompassing numerous issues in many domains. A quick introduction to these issues can be obtained from the Wikipedia Metadata and Geospatial metadata pages which are currently still simple pages but will hopefully become more complete with time. Several large scale efforts have been undertaken to develop coherent systems for metadata. Notable among these was the Federal Geographic Data Committee of the United States government which has developed an extensive and complex standard for metadata. That standard serves as a reference for discussion and development of metadata software. Many other groups deal with the issues of metadata. Social Change Online is researching effective ways to integrate distributed sources of data with disparate metadata definitions. The Geonetwork and MDWeb projects are both trying to develop software for users to define, create, and use metadata related to geospatial data. Practical Information Principal Classes Tutorial Reading More Extending The Metadata module currently serves the needs of the Geotools library so little work is currently being done on this module. Complex issues surround the design of metadata schema, the documentation of metadata, and the use of these metadata for search and retrieval of geospatial data. These issues include difficult questions of compatibility when data from several sources are aggregated for use. There remains a vast amount of work to be done resolving these issues conceptually even prior to implementing solutions. The Geotools Metadata module would benefit greatly from a systematic effort to use the existing classes to develop a coherent metadata system for geospatial applications. Such work would include developing methods to aggregate the existing classes to develop data structures with a complete metadata documentation of a data set, methods to validate those data structures, methods to output the data structures to a document, and routines to parse metadata files into the object structure. Anyone interested in extending the Geotools metadata module should send an email to the Geotools developer's list (geotools-devel@lists.sourceforge.net) to discuss the work which could be done.