This chapter presents all of the Metadata module of Geotools, except for the
org.geotools.util package which was discussed in
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.
These classes are used as components of more complex geospatial
elements, most notably those in the referencing module.
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
All of the classes in the Geotools metadata module can be found in the
./modules/library/metadata/ directory of the Geotools
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
Geotools Metadata Module and related GeoAPI Packages
The ?metadata? Factory system
Formatting and writing classes
Simple numeric and geometric classes
Storage in a database
For Geotools use only
Discussed in the previous chapter.
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.
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
(email@example.com) to discuss the
work which could be done.