geonetwork / core-geonetwork

GeoNetwork is a catalog application to manage spatially referenced resources. It provides powerful metadata editing and search functions as well as an interactive web map viewer. It is currently used in numerous Spatial Data Infrastructure initiatives across the world.
http://geonetwork-opensource.org/
GNU General Public License v2.0
412 stars 487 forks source link

Implementation of Spatial Scope/Priority Datasets codelists in GeoNetwork #3918

Open ghost opened 5 years ago

ghost commented 5 years ago

Bug Description When using description 'Example on how to use the GeoNetwork editor' (see: https://webgate.ec.europa.eu/fpfis/wikis/display/InspireMIG/Example+on+how+to+use+the+GeoNetwork+editor) in GeoNetwork (3.6.0.0) to fullfill technical implementation (see: https://webgate.ec.europa.eu/fpfis/wikis/display/InspireMIG/Spatial+scope+code+list) for tagging data sets with the Spatial scope code list from INSPIRE metadate code list register we discovered several problems:

  1. GeoNetwork Editor encodes the values of the codelist in metadata-xml using locally stored *.rdf file instead of using the link to INSPIRE Registry where official codelist is stored

XPath: /gmd:MD_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords[6]/gmd:MD_Keywords/gmd:thesaurusName/gmd:CI_Citation/gmd:identifier/gmd:MD_Identifier/gmd:code/gmx:Anchor/@xlink:href

  1. Metadata element attribute @xlink:href (../gmd:identifier/gmd:MD_Identifier/gmd:code/gmx:Anchor/@xlink:href) is encoded inside the gmx:Anchor element even though we are using the gco_CharacterString in Editor (“gear icon” button) for the encoding. Both encodings are supported in the technical implementation.

  2. Metadata element gmd:CI_DateTypeCode must have publication value inside the xml-tag according to technical implementation and Geonetwork doesn’t encode the value inside the xml-tag

These points lead to difference in XML Metadata encoding and the technical implementation description. (see attached images)

SpatialScopeInGeonetworkWithGMXAnchor.txt SpatialScopeInGeonetworkWithGCO.txt

Steps to Reproduce:

  1. Use GN 3.6.0.0
  2. Reproduce the description from https://webgate.ec.europa.eu/fpfis/wikis/display/InspireMIG/Example+on+how+to+use+the+GeoNetwork+editor
  3. Compare XML Metadata encoding from GN and technical implementation from https://webgate.ec.europa.eu/fpfis/wikis/display/InspireMIG/Spatial+scope+code+list

gmx:Anchor spatialScope_compare_gmxAnchor_Encoding_GeonetworkVSImplementationGuidance_190712

gco:CharacterString spatialScope_compare_gcoCharacterString_Encodings_GeonetworkVSImplementationGuidance_190712

fxprunayre commented 5 years ago

GeoNetwork Editor encodes the values of the codelist in metadata-xml using locally stored *.rdf file instead of using the link to INSPIRE Registry where official codelist is stored

You can "synchronize" your local thesaurus with Registry using https://github.com/geonetwork/core-geonetwork/pull/2741

Metadata element attribute @xLink:href (../gmd:identifier/gmd:MD_Identifier/gmd:code/gmx:Anchor/@xLink:href) is encoded inside the gmx:Anchor element even though we are using the gco_CharacterString in Editor (“gear icon” button) for the encoding. Both encodings are supported in the technical implementation.

“gear icon” was initially supposed to only control encoding of gmd:keywords. It also now have impact on the thesaurus title (see https://github.com/geonetwork/core-geonetwork/pull/3856). Identifier encoding is always the same whatever the option.

Metadata element gmd:CI_DateTypeCode must have publication value inside the xml-tag according to technical implementation and Geonetwork doesn’t encode the value inside the xml-tag

"Both the value of the codeList attribute (a URL that references a code list definition within a register or a code list catalogue) and the textual content of the ISO 19139 element are purely informative. The codeList value may e.g. point to the code list dictionary in the ISO 19139 repository at http://standards.iso.org/iso/19139/resources/codelist/, and if a text is provided, it may contain the translation of the code list value in the language of the metadata." so it looks like it is optional (and BTW it does not work for multilingual record so GeoNetwork choice was to not define the code list text node). Is it fine or the validator is really expecting a text value corresponding to the codeListValue attribute in the metadata main language ?

ghost commented 5 years ago

Thanks a lot for the answer.

We will try to synchronize codelists and validate metadata records in INSPIRE Validator. We will give you a feedback until the end of August.

ghost commented 5 years ago

Here is our feedback:

You can "synchronize" your local thesaurus with Registry using #2741

I tried to synchronize my local thesaurus using the description above directly in Geonetwork UI and I failed.
Is it possible to do it in Geonetwork UI or it can only be done in Backend?

Is it fine or the validator is really expecting a text value corresponding to the codeListValue attribute in the metadata main language ?

Metadata record in INSPIRE Validator against TG 1.3 is valid.

We discovered another issue regarding usage of thesaurus in Geonetwork-Editor. The issue can be found here: https://github.com/geonetwork/core-geonetwork/issues/3994

pvgenuchten commented 4 years ago

I think we need to split this issue in multiple issues.

pvgenuchten commented 4 years ago

another aspect to consider here is #4645