ISO 19115#
Overview#
Metacatalog makes it possible to store metadata in ISO 19115 standard. Some of the required information for ISO 19115 will be the same for the whole metacatalog instance, or, is specific to your installation and use case. Below is a table of ISO 19115 code lists, which are implemented and how they translate into metacatalog.
ISO 19115 Fields#
ISO 19115, 19115-1, and 19115-2 define only a few mandatory (M) fields, but a long list of optional (O) and coditional (C) fields. In the table below you find a mapping of ISO names to metacatalog names. If the column Code List is filled, metacatalog makes use of published ISO 19115 CodeList values. In the section below you can find for every list, how the single values map into metacatalog.
MD_Metadata#
ISO field |
metacatalog |
CodeList or Table |
Cardinality |
description |
---|---|---|---|---|
fileIdentifier |
Entry.uuid |
[1] |
||
language |
|
ISO 639-2 values are allowed |
[1] |
metacatalog is not multi-language and therefore a common value should be used |
characterSet |
DataSource.encoding |
MD_CharacterSetCode |
[1] |
DataSource.encoding |
parentIdentifier |
EntryGroup.id if Entry.is_partial |
[0] or [1] |
Only for partial Entries a Parent Entry is mandatory. |
|
hierachyLevel |
|
MD_ScopeCode |
[1] |
All other values are not applicable for metacatalog. |
hierachyLevelName |
[0..*] |
Conditional: not applicable if |
||
contact |
Entry.author | Entry.contributors |
CI_ResponsibleParty, CI_RoleCode |
[1..*] |
In metacatalog, the first author is contact person. |
dateStamp |
Entry.lastUpdate |
ISO 19103 |
[1] |
either creation or last edit |
metadataStandardName |
|
[1] |
As of now ISO is the only standard used. More can be added here |
|
metadataStandardVersion |
|
[1] |
Not entirely sure about this |
|
locale |
|
ISO 19139 |
[0..*] |
Not sure about the format |
metadataLinkageURL |
[0..*] |
The specific installation of metacatalog has to define this. |
||
spatialRepresentationInfo |
MD_SpatialRepresentation |
[0..*] |
Recommended for INSPIRE topic ‘elevation’ |
|
referenceSystemInfo |
MD_ReferenceSystem |
[1] |
In INSPIRE [1..*] cardinality. EPSG:4326 for metadata |
|
metadataExtensionInfo |
MD_MetadataExtensionInformation |
[0..*] |
Details.value if Details.thesaurus_id not None |
|
identificationInfo |
MD_Identification |
[1..*] |
Many possible. Only the first occarance is used for INSPIRE |
|
contentInfo |
DataSourceType.name & Variable.name |
MD_ContentInformation |
[1..*] |
this does not map exactly, but is optional in ISO anyway |
distributionInfo |
MD_Distribution |
[1] |
INSPIRE requires distribution information. Has to be implemented by metacatalog admin. |
|
dataQualityInfo |
DQ_DataQuality |
[1..*] |
not yet implemended |
|
portrayalCatalogueInfo |
MD_PortrayalCatalogueReference |
[0..*] |
This has to be defined outside metacatalog. |
|
applicationSchemaInfo |
MD_ApplicationSchema |
[0] |
Not sure if metacatalog can implement this at all. |
MD_Indentification#
ISO field |
metacatalog |
CodeList or Table |
Cardinality |
description |
---|---|---|---|---|
citation |
Entry.citation |
CI_Citation |
[1] |
|
abstract |
Entry.abstract |
[1] |
The abstract may contain a details table (Entry.details_table(fmt=’markdown’)) |
|
purpose |
[0] |
The purpose goes into the abstract in metacatalog |
||
status |
MD_ProgressCode |
[0..1] |
not yet implemented. |
|
pointOfContact |
Entry.author |
CI_ResponsibleParty |
[1..*] |
In metacatalog, this is a double entry to contact. Filled by Entry.author |
resourceMaintenance |
MD_MaintenaceInformation |
[0..*] |
as of now, no planned implementation |
|
graphicOverview |
MD_BrowseGraphic |
[0..*] |
as of now, no planned implementation. |
|
descriptiveKeywords |
Keyword |
MD_Keywords |
[1..*] |
I have no idea, what the forced Keyword is… |
resourceSpecificUsage |
MD_Usage |
[0..*] |
as of now, no planned implementation |
|
resourceConstraints |
License |
MD_Constrains |
[1..*] |
only a few values are allowed within metacatalog |
aggregationInfo |
EntryGroup |
MD_AggregationInformation |
[0..*] |
only a few values are alled within metacatalog |
MD_DataIdentification#
ISO field |
metacatalog |
CodeList or Table |
Cardinality |
description |
---|---|---|---|---|
spatialRepresentationType |
|
MD_SpatialRepresentation_TypeCode |
[1..*] |
|
spatialResolution |
DataSource.spatial_scale |
MD_Resolution |
[0..*] |
if applicable (DataSource.spatial_scale can be None) |
language |
|
ISO 639-2 |
[1] |
metacatalog is as of now not multi-language |
characterSet |
|
MD_CharacterSetCode |
[1] |
it is recommended to only use UTF-8 encodings |
topicCategory |
Keyword.value |
MD_TopicCategoryCode |
[1..*] |
This may be mappable from Keywords |
environmentDescription |
Entry.abstract |
[0..1] |
If important, should go into the abstract |
|
extent |
SpatialScale.extent TemporalScale.extent |
Ex_Extent |
[1..*] |
not sure if temporal scale is supported by ISO |
supplementalInformation |
DataSource.args |
[0..1] |
This may not be helpful on export |
MD_BrowseGraphic#
Note
The MD_Identification.graphicOverview
is as of now not implemented in metacatalog.
Currently, no implementation is planned.
MD_Keywords#
ISO field |
metacatalog |
CodeList or Table |
Cardinality |
description |
---|---|---|---|---|
keyword |
Keyword.full_path |
[1..*] |
Keyword hierachies will always be separated by |
|
type |
|
MD_KeywordTypeCode |
[0..1] |
in metacatalog keywords are: |
thesaurusName |
|
CI_Citation |
[0..1] |
|
Note
To reference a thesaurus, the thesaurus name is needed.
Then, the url of the given Keyword is given as
thesaurusUrl. The system, which operates metacatalog
has to be able to create a valid CI_Citation
.
The thesaurusName.citedResponsibleParty is represented
by an organisationName given by thesaurus_organisation
and contactInfo, which is an OnlineResource of linkage
given as thesaurus_url.
MD_RepresentativeFraction#
Has only one field: denominator
, which is the ISO 19103 scale. Applies only to
raster sources in metacatalog. See MD_Resolution.
MD_Resolution#
Has only one of two fields. The resolution applies only to raster sources in metacatalog
and is either a MD_RepresentativeFraction (scale) or a ground distance stored in the
field distance
. If DataSource
has a
spatial scale, the SpatialScale.resolution
can be used to give the ground distance.
MD_Usage#
Note
Metacatalog does not store the usage information in extra fields, but they can be extracted from existing ISO fields, that are extended in metacatalog
ISO field |
metacatalog |
CodeList or Table |
Cardinality |
description |
---|---|---|---|---|
specificUsage |
Entry.abstract |
[1] |
This information is added to the abstract in metacatalog |
|
userContactInfo |
Entry.author |
[1] |
metacatalog defines the first author as a universal contact person |
MD_AggregateInformation#
ISO field |
metacatalog |
CodeList or Table |
Cardinality |
description |
---|---|---|---|---|
aggregateDataSetIdentifier |
Entry.associated_groups.entries.uuid |
MD_Identifier |
[1] |
can either implement the UUID or full MD_Identifier |
associationType |
EntryGroupType.name |
DS_AssociationTypeCode |
[1] |
not all types are mapped into metacatalog |
MD_Constraints#
ISO field |
metacatalog |
CodeList or Table |
Cardinality |
description |
---|---|---|---|---|
useLimitation |
License.full_text |
[1] |
This is redunant to meet INSPIRE |
Note
There is an onging debate about this field between INSPIRE and GDI-DE. At the moment the useLimitations are meant to describe use-cases where the data is not applicable. But it is a mandatory field and it is not possible to leave it blank. DGI-DE is duplication the useConstraints from MD_LegalConstraints into this field to satisfy ISO 19115 and INSPIRE.
MD_LegalConstraints#
ISO field |
metacatalog |
CodeList or Table |
Cardinality |
description |
---|---|---|---|---|
accessConstraints |
MD_RestrictionsCode |
[C..0] |
not mapped in metacatalog |
|
useConstraints |
|
MD_RestrictionsCode |
[1] |
note the warning below! |
otherConstraints |
License.full_text |
[1] |
note the warning below! |
Note
ISO 19115 makes the fields accessConstraints
, useConstraints
and otherConstraints
dependent on each other. otherConstraints
is mandatory and either accessConstraints
or
useConstraints
need at least a reference 'otherRestrictions'
as a value to reference
the field. All of them together are needed to set the legal framework of working with data.
GDI-DE is trying to unify this semantic und suggests to duplicate open data licenses into
all of these fields. They also have a suggestion how to store open data licenses (which
only applies to the german geodata infrastructure and is therefore not a part of metacatalog.)
Warning
If you implement metacatalog in your application, you have to make sure, that the license information is mapped into ISO 19115 accordingly. Other restrictions and use limitation do not apply as metacatalog is made for open data. If you wish to store private or restricted information, you will need a security, authorization and authentification middleware as metacatalog does not handle these issues.
MD_SecurityConstraints#
ISO field |
metacatalog |
CodeList or Table |
Cardinality |
description |
---|---|---|---|---|
classification |
|
MD_ClassificationCode |
[1] |
note the warning below |
Warning
Please also see MD_LegalConstraints. The metadata in metacatalog is always
'unclassified'
. If you wish to implement classified information, you need a
security middleware. However, ISO 19115 and INSPIRE define this field as
mandatory and you have to include it.
DQ_DataQuality#
ISO field |
metacatalog |
CodeList or Table |
Cardinality |
description |
---|---|---|---|---|
scope |
|
DQ_Scope |
[1] |
see note below |
report |
DQ_Element |
[1..*] |
not yet implemented |
|
lineage |
LI_Lineage |
[1..*] |
not yet implemented |
Note
The scope is always 'dataset'
for Entry
and 'series'
for EntryGroup
.
The DQ_Scope can then be filled automatically, as both entries do not need user-information
to fill the other DQ_Scope fields and are therefore not implemented into metacatalog.
Note
All related data-quality tables are not mapped into metacatalog as the implementation is still in discussion.
MD_MaintenaceInformation#
Note
Currently, there are no plans to implement MD_MaintenaceInformation
MD_SpatialRepresentation#
Note
This only applies to 'raster'
and 'vector'
data types, which can be derived from
a data source type.
Any further implementations are not planned.
MD_ReferenceSystem#
Note
Metacatalog stores all geographic information in EPS:4326, WGS84 and you can therefore
handle the reference system. If the data uses different reference systems, the DataSource
will be able to handle this information with the next revision.
Warning
Due to technical reasons, the DataSource can not yet handle CRS information. Please store only EPSG:4326 referenced data in metacatalog. This will be resolved with one of the future releases.
MD_ContentInformation#
Note
The MD_ContentInformation and all related entities are not yet implemented in metacatalog.
As metacatalog only uses a very limited amount of the defined values, DataSource
and
Variable
will be mappable to MD_ContentInformation in the future.
MD_PortrayalCatalogueReference#
Note
There are currently no plans to implement portayal information into metacatalog.
But these records would have a m:1
relationship to Entry
and can be
implemented outside metacatalog in a data-delivery middleware.
MD_Distribution#
Note
By the use of I/O extensions, almost any format and way of distributing data can be implemented into metacatalog. It is recommended to append distribution information on export filling the fields accordingly. Some of the fields can be determined by following metacatalog’s data types.
The distributor will always be the authority running the metacatalog installation (not the data owner!)
ISO field |
metacatalog |
CodeList or Table |
Cardinality |
description |
---|---|---|---|---|
testData |
[0] |
this is not mapped in metacatalog |
||
distributionFormat |
|
MD_Format |
[1] |
See note above. |
distributor |
MD_Distributor |
[1] |
metacatalog admin |
|
transferOptions |
MD_DigitalTransferOptions |
[0..*] |
Depending on the distribution system |
Note
If the DataSourceTypes
should be used for distribution, an CI_OnlineResource
with the DataSource.path
as linkage
can be automatically derived.
Note
All other entities related to distribution are not part of metacatalog and have to be added, specifying the ways how the data can be requested and who is responsible. The I/O Extentions might store some useful information.
MD_MetadataExtensionInformation#
ISO field |
metacatalog |
CodeList or Table |
Cardinality |
description |
---|---|---|---|---|
extendedRoleInformation |
nm_entries_details |
MD_ExtendedElementInformation |
[1..*] |
MD_ExtendedElementInformation#
Note
MD_ExtendedElementInformation can be realized by Details
that relate a
Thesaurus
with public URI.
ISO field |
metacatalog |
CodeList or Table |
Cardinality |
description |
---|---|---|---|---|
name |
Details.key |
[1] |
||
shortName |
Details.stem |
[0..1] |
can be omitted if |
|
domainCode |
[1] |
3-digit integer code. No idea for what. |
||
definition |
Detail.description |
[1] |
||
obligation |
MD_ObligationCode |
[0] |
||
condition |
[0..1] |
Can be omitted because |
||
dataType |
|
MD_DataTypeCode |
[1] |
|
maximumOccurence |
|
[1] |
A key may not be duplicated on the same |
|
domainValue |
|
[1] |
|
|
parentEntity |
|
[1..*] |
in metacatalog |
|
rule |
|
[1] |
|
|
rationale |
Detail.description |
[0..1] |
the description may contain a rationale |
|
source |
Entry.author |
[1] |
metacatalog specifies the author to be the source |
MD_ApplicationSchema#
Note
There are no plans to implement MD_ApplicationSchema.
Ex_Extent#
ISO field |
metacatalog |
CodeList or Table |
Cardinality |
description |
---|---|---|---|---|
description |
[0..1] |
Only one field of Ex_Extent can to be filled |
||
geographicElement |
EX_GeographicExtent |
[0..1] |
Only one field of Ex_Extent can to be filled |
|
temporalElement |
EX_TemporalExtent |
[0..1] |
Only one field of Ex_Extent can to be filled |
|
verticalElement |
EX_VerticalElement |
[0] |
verticalElements are not mapped in metacatalog |
EX_GeographicExtent#
The geographic extent is always given as bounding box in EPSG:4326, if applicable. Other values and objects defined in IOS 19115 are not supported by metacatalog.
EX_TemporalExtent#
ISO 19115 only requires a EX_TemporalExtent.extent
value, which has to be
a ISO 19108 time range. The TemporalScale
has a start
and a end
property and any instance of it can return an
ISO 19108 time range.
EX_VerticalExtent#
Note
EX_VerticalExtent cannot be mapped in metacatalog
CI_Citation#
ISO field |
metacatalog |
CodeList or Table |
Cardinality |
description |
---|---|---|---|---|
title |
Entry.title |
[1] |
||
alternateTitle |
[0..*] |
not available in metacatalog |
||
date |
Entry.publication |
[1] |
The CI_Date is always publication in metacatalog |
|
edition |
Entry.version |
[0..1] |
This might change in the future |
|
editionDate |
Entry.publication |
ISO 19103 |
[0..1] |
mandatory if edition is set. It is the publication of the new |
identifier |
[0] |
this does not apply to metacatalog |
||
citedResponsibleParty |
CI_ResponsibleParty |
[0..1] |
Not implemented, but could be filled by the metacatlog admin as CI_ResponsibleParty. |
|
presentationForm |
CI_PresentationFormCode |
[0] |
Not implemented in metacatalog. |
|
series |
EntryGroup.uuid |
CI_Series |
[0..1] |
only applicable for |
otherCitationDetails |
[0] |
not available in metacatalog |
||
collectiveTitle |
EntryGroup.title |
[0..1] |
only applicable for |
|
ISBN |
[0] |
not available |
||
ISSN |
[0] |
not available |
CI_ResponsibleParty#
Note
In metacatalog only two cases of using CI_ResponsibleParty are covered. Either it
is the first author of the dataset and can then be filled by Entry.author
, or it
is the authority running metacatalog and CI_ResponsibleParty can automatically be
filled on export.
Code-Lists#
Metacatalog mappings are based on the CodeList dictionaries published by NOAA. The following list gives you an idea, where and how the codes lists and the values are implemented.
https://www.ngdc.noaa.gov/wiki/index.php/ISO_19115_and_19115-2_CodeList_Dictionaries#CI_DateTypeCode
CI_DateTypeCode#
ISO |
metacatalog |
description |
---|---|---|
creation |
Entry.creation |
start-date of the data |
publication |
Entry.publication |
creation date of the Entry record |
revision |
/ |
we use ISO 19115-2 lastUpdate |
adopted |
n.a. |
not applicable |
deprecated |
/ |
not yet implemented |
distribution |
n.a. |
not applicable as metacatalog is a distribution system. Will be the same as |
expiry |
n.a. |
not applicable |
inForce |
n.a. |
not applicable |
lastRevision |
/ |
not yet implemented |
lastUpdate |
Entry.lastUpdate |
updates on every edit |
nextUpdate |
n.a. |
not applicable |
release |
n.a. |
metacatalog is intended for open data |
superseded |
/ |
not yet implemented |
unavailable |
n.a. |
not applicable |
validityBegins |
n.a. |
not applicable |
validityExpires |
n.a. |
not applicable |
CI_PresentationFormCode#
The definitions given in this list do not apply to environmental datasets. Depending on the metacatalog instance and the metadata stored, the CI_PresentationFormCode will apply to all data. If applicable it will be one of
mapDigital
modelDigital
tableDigital
physicalSample
Note
You will have to implement this _after_ metacatalog has exported the
Entry
information, if needed.
CI_RoleCode#
Note
The full CI_RoleCode Codelist is implemented exactly into metacatalog.PersonRole.
id |
name |
description |
---|---|---|
1 |
author |
the individual or organization whose name should appear first in the citation for the resource (for names that come after the first use co-author). while it is possible to have an author and principle investigator be the same individual or organization, author is not the same as nor synonymous with principle investigator. applicable mainly to documents, reports, memos, etc. |
2 |
custodian |
the individual or organization that has accountability and responsibility for the data and ensures appropriate care and maintenance of the resource. |
3 |
distributor |
the individual or organization that has accountability and responsibility for the data and ensures appropriate care and maintenance of the resource. |
4 |
originator |
the name of the individual or organization who is responsible for the data at the point when the data was first created. applicable for data sets that are an aggregation of two or more data sets or if the data set is the first instance of the signal having been converted into data. |
5 |
owner |
the individual or organization that has ownership of the resource. |
6 |
pointOfContact |
the individual or organization who is responsible for the initial triage of and answering questions related to the resource. |
7 |
principalInvestigator |
the individual or individuals who are the lead researchers for a grant (i.e. head of the laboratory, research group leader, etc.). if there are co-principal investigators then this field will repeat for each principle investigator. while it is possible to have a principal investigator and author be the same individual or organization, principal investigator is not the same nor synonymous with author. |
8 |
processor |
the name of the individual or organization who has processed the data in a manner such that the resource has been modified. |
9 |
publisher |
the individual or organization who prepares and issues the resource. |
10 |
resourceProvider |
the individual or organization that supplies or allocates the resource for another entity. |
11 |
sponsor |
the individual or organization who is providing sponsorship for the resource. |
12 |
user |
the individuals or organizations who are the intended consumers of the resource. |
13 |
coAuthor |
the individual(s) or organization(s) who name(s) should appear after the first name in a citation for the resource (use author to denote the first name in the citation). while it is possible to have a co-author and principal investigator/collaborator be the same individual or organization, co-author is no the same as nor synonymous with principle investigator or collaborator |
14 |
collaborator |
party who assists with the generation of the resource other than the principal investigator |
15 |
contributor |
the individuals or organizations whose contributions deserve recognition in the citation. contributor is mutually exclusive from author, co-author, principal investigator, and collaborator. use ISO MD_Identification credit field to identify individual or organizations that should be given acknowledgement only. |
16 |
editor |
the individual who has made a corrective or editorial change to the resource as part of a systematic revision process. |
17 |
funder |
the individual or organization which has provided all or part of the finances associated with the resource. |
18 |
mediator |
a class of entity that mediates access to the resource and for whom the resource is intended or useful |
19 |
rightsHolder |
he individual or organization who has ownership of the legal right to the resource. |
20 |
stakeholder |
an individual or organization who has an interest in the resource and/or is affected by or affects the actions of the resource |
DQ_EvaluationMethodTypeCode#
The DQ_EvaluationMethodTypeCode list is not yet implemented.
DS_AssociationTypeCode#
The EntryGroup
maps some of the
DS_AssociationTypeCode.
ISO |
metacatalog |
description |
---|---|---|
crossReference |
/ |
not implemented yet |
largerWorkCitation |
|
‘Citation’ might be misleading here. |
partOfSeamlessDatabase |
n.a. |
not sure if this applies to metacatalog |
source |
n.a. |
not applicable, as metacatalog does not store dependencies if the data is an image |
stereoMate |
n.a. |
not applicable |
collectiveTitle |
EntryGroupType.name==’Project’ |
applies if the Entries are grouped by Project name |
dependency |
|
|
isComposedOf |
|
|
revisionOf |
/ |
not yet implemented |
series |
n.a. |
not applicable. |
DS_InitiativeTypeCode#
The InitiativeTypeCode List does not apply to metacatalog. In cases you use a data platform around metacatalog, which can either return aggregated datasets or processing results or datasets that share a context, you have to implement this list to describe the type of dataset aggregation.
MD_CellGeometryCode#
The MD_CellGeometryCode List
is extended in metacatalog by the Entry.location <metacatalog.models.Entry
and Entry.geom <metacatalog.models.Entry
properties.
Note
Note that MD_CellGeometryCode List is describing grid cells, therefore this section only applies to raster datasources and is not yet implemented.
ISO |
metacatalog |
description |
---|---|---|
point |
|
location is always a point in metacatalog |
MD_CharacterSetCode#
The characterset of the metacatalog database is always the same as metacatalog
is not supporting multi-database installations. We recommend to use 'utf-8'
.
MD_ClassificationCode#
The MD_ClassificationCode List describes classified information. As metacatalog is designed for and dedicated to managing open data this list does not apply.
However a Entry
can be put into embargo for a
limited amount of time. This defaults to two years after 'publication'
date.
An Entry under embargo is still 'unclassified'
following
MD_ClassificationCode List
but just not visible in the system.
MD_CoverageContentTypeCode#
The MD_CoverageContentTypeCode List is not yet implemented.
MD_DatatypeCode#
The MD_DatatypeCode List is not implemented yet, but will be available as a lookup value for data types.
MD_DimensionNameTypeCode#
The MD_DimensionNameTypeCode List does not apply to metacatalog, as the data can be more generalized than geometric dimensions.
MD_GeometricObjectTypeCode#
The value is always 'point'
for Entry.location
MD_ImagingConditionCode#
The MD_ImagingConditionCode List
is not yet implemented, but will be available optinally, to be linked to
Detail
information.
MD_KeywordTypeCode#
The MD_KeywordTypeCode
is not yet implemented. Some of the keyword types can be used to specify the controlled
keywords implemented as Keyword
and some might
further specify Details
.
It will be decided with Version 0.2 of metacatalog how much of this information
will be reflected within metacatalog.