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.