diff --git a/docs/manual/docs/user-guide/analyzing/data.md b/docs/manual/docs/user-guide/analyzing/data.md new file mode 100644 index 000000000000..f0b30bda6d92 --- /dev/null +++ b/docs/manual/docs/user-guide/analyzing/data.md @@ -0,0 +1,74 @@ +# Analyze and visualize data {#analyzing_data} + +## Data accessible using download services (WFS) + +All datasets described in metadata records and accessible through a download services (ie WFS) can be analyzed to improve search and data visualization. The catalog collect WFS features and index them. + +![](img/mechanism.png) + +Elasticsearch needs to be installed and configured (See [installing-index](installing-index.md)). + +Once collected, filtering is available in the map viewer for this layer. The filter interface provides faceting and export capabilities. The map viewer tries to connect to a WFS service by substituting WMS by WFS in the service URL. If a WFS service is responding with a feature type having the same name as the WMS, the filter panel provides the option to index the features. User needs to be identified to run the indexing task. + +![](img/layernotindexed.png) + +Once indexed, all users can access the filtering menu providing: + +- a full text search on all fields +- a control to display or not the heatmap +- facets on all fields (computing automatically range facet for numbers) +- table action display all values +- filter action apply the filters to the WMS layers using SLD + +![](img/filtering.png) + +Click on the table menu to display the attributes. Double click a row in the table to zoom to a feature. + +![](img/tableview.png) + +Spatial filters can also be applied. + +![](img/filteringlayer.png) + +## Feature type customization + +By default, the filter panel is generated from Elasticsearch index. But you customise it for a specific WFS Feature Type. + +The customisation is done by a JSON config inserted in the gmd:applicationProfile section of the online resource in the metadata. + +Here the options: + + { + "fields": [{ + "name": "PNT_PROF", + // non disponible actuellement + "type": "double", + "fq" : { + "facet.interval": "PNT_PROF_d", + "facet.interval.set": ["[0,10]", "(10,10000]"], + or + "facet.range": "PNT_PROF_d", + "facet.range.start": "0", + "facet.range.end": "10000", + "facet.range.gap": "300" + or + "facet.range": "PNT_PROF_d", + "facet.range.classes": "5" // Get min, max and compute gap on 5 classes + } + }, { + "name": "GRIDCODE" + }, { + "name": "LABEL", + "label" : {"fr": "monLabel", "en": "myLabel"} + }], + "tokenize": {"GRIDCODE": ",", "PARCELLE": "/"}, + "heatmap": true + } + +You can + +- restrict the fields used for filter +- specify your own ranges for numeric values +- set your label +- manage tokenized fields +- enable heatmap diff --git a/docs/manual/docs/user-guide/analyzing/img/filtering.png b/docs/manual/docs/user-guide/analyzing/img/filtering.png new file mode 100644 index 000000000000..27e39444dcb0 Binary files /dev/null and b/docs/manual/docs/user-guide/analyzing/img/filtering.png differ diff --git a/docs/manual/docs/user-guide/analyzing/img/filteringlayer.png b/docs/manual/docs/user-guide/analyzing/img/filteringlayer.png new file mode 100644 index 000000000000..dad7d97ba87b Binary files /dev/null and b/docs/manual/docs/user-guide/analyzing/img/filteringlayer.png differ diff --git a/docs/manual/docs/user-guide/analyzing/img/layernotindexed.png b/docs/manual/docs/user-guide/analyzing/img/layernotindexed.png new file mode 100644 index 000000000000..b986ae1a2638 Binary files /dev/null and b/docs/manual/docs/user-guide/analyzing/img/layernotindexed.png differ diff --git a/docs/manual/docs/user-guide/analyzing/img/mechanism.png b/docs/manual/docs/user-guide/analyzing/img/mechanism.png new file mode 100644 index 000000000000..111464c9c6c8 Binary files /dev/null and b/docs/manual/docs/user-guide/analyzing/img/mechanism.png differ diff --git a/docs/manual/docs/user-guide/analyzing/img/tableview.png b/docs/manual/docs/user-guide/analyzing/img/tableview.png new file mode 100644 index 000000000000..fbd14d480212 Binary files /dev/null and b/docs/manual/docs/user-guide/analyzing/img/tableview.png differ diff --git a/docs/manual/docs/user-guide/analyzing/index.md b/docs/manual/docs/user-guide/analyzing/index.md new file mode 100644 index 000000000000..cc0f9ad1415d --- /dev/null +++ b/docs/manual/docs/user-guide/analyzing/index.md @@ -0,0 +1,4 @@ +# Analyzing data {#analyzing} + +- [Metadata](metadata.md) +- [Data](data.md) diff --git a/docs/manual/docs/user-guide/analyzing/metadata.md b/docs/manual/docs/user-guide/analyzing/metadata.md new file mode 100644 index 000000000000..2ab3127cf937 --- /dev/null +++ b/docs/manual/docs/user-guide/analyzing/metadata.md @@ -0,0 +1,3 @@ +# Statistics on catalog content {#analyzing_metadata} + +The administration panel provides statistics on search and on records in the catalog. diff --git a/docs/manual/docs/user-guide/associating-resources/cite.md b/docs/manual/docs/user-guide/associating-resources/cite.md new file mode 100644 index 000000000000..515dab0ad188 --- /dev/null +++ b/docs/manual/docs/user-guide/associating-resources/cite.md @@ -0,0 +1,46 @@ +# Cite a resource {#cite} + +The catalogue can provide an automatic citation based on information provided in the metadata record. + +![](img/citation.png) + +The citation can be use to cite a dataset in publications. + +## Citation text + +The citation generated by default follows general conventions on how to cite a dataset but can be customized. + +The default is: * list of authors (and organisation) * publication year * title * list of publisher * DOI URL or landing page URL. + +These are the data needed to create DOI (see [doi](doi.md)). + +Customization of the citation can be done in `schemas/iso19115-3.2018/src/main/plugin/iso19115-3.2018/formatter/citation/common.xsl`. + +An additional text may be stored in an online resource description with protocol `WWW:LINK-1.0-http--publication-URL`. + +![](img/citation-with-addition.png) + +Example: + +## Configuration + +The citation can be displayed or not in the record view. Check the user interface configuration to customize it: + +![](img/citation-ui-config.png) + +## Format + +Citation can be provided in various formats: + +- HTML +- Plain text +- RIS +- BibTex + +## API + +The citation can be displayed in the default XSL formatter used for the full view using: + +The formatter producing the citation can be accessed directly using: + +To list available formats use: ? diff --git a/docs/manual/docs/user-guide/associating-resources/doi.md b/docs/manual/docs/user-guide/associating-resources/doi.md new file mode 100644 index 000000000000..3bf04c1c83e8 --- /dev/null +++ b/docs/manual/docs/user-guide/associating-resources/doi.md @@ -0,0 +1,123 @@ +# Digital Object Identifier (DOI) {#doi} + +## Configuration + +The catalogue support DOI creation using: + +- [DataCite API](https://support.datacite.org/docs/mds-api-guide). +- EU publication office API + +Configure the API access point in the `admin console > settings`: + +![](img/doi-admin-console.png) + +A record can be downloaded using the DataCite format from the API using: + +## Creating the DOI + +Once configured, DOI can be created using the interface. DOI is created on demand. It means that a user must ask for creation of a DOI. When created, the task is notified by email to the reviewer of the group (by default, can be configured for administrator only using the notification level of the task). + +![](img/doi-request-menu.png) + +The task is assigned to a specific user. An optional due date and comment can be defined: + +![](img/doi-request-popup.png) + +After submission of the task, the task owner is notified by email (if the mail server is configured, see admin console > settings). The task can then be resolved in the admin console > information > versioning section. + +If the configuration is missing or wrong, the error is reported: + +![](img/doi-config-wrong.png) + +For DOI creation, the task is a 2 steps actions: + +> - First check if all prerequisite are covered (below the record is not valid in DataCite format). + +The DataCite format requires some mandatory fields: + +> - Identifier (with mandatory type sub-property) +> - Creator (with optional given name, family name, name identifier and affiliation sub-properties) +> - Title (with optional type sub-properties) +> - Publisher +> - PublicationYear +> - ResourceType (with mandatory general type description subproperty) + +The mapping with ISO standards is the following: + + ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + Property ISO 19139 ISO 19115-3 + ----------------- ----------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------- + Identifier gmd:MD_Metadata/gmd:fileIdentifier/*/text() mdb:MD_Metadata/mdb:metadataIdentifier/*/mcc:code/*/text() + + Creator gmd:identificationInfo/*/gmd:pointOfContact with role 'pointOfContact' or 'custodian' mdb:identificationInfo/*/mri:pointOfContact with role 'pointOfContact' or 'custodian' + + Title gmd:identificationInfo/*/gmd:citation/*/gmd:title mdb:identificationInfo/*/mri:citation/*/cit:title + + Publisher gmd:distributorContact[1]/*/gmd:organisationName/gco:CharacterString mrd:distributorContact[1]/*/cit:party/*/cit:organisationName/gco:CharacterString + + PublicationYear gmd:identificationInfo/*/gmd:citation/*/gmd:date/*[gmd:dateType/*/@codeListValue = 'publication'] mdb:identificationInfo/*/mri:citation/*/cit:date/*[cit:dateType/*/@codeListValue = 'publication'] + + ResourceType gmd:hierarchyLevel/*/@codeListValue mdb:metadataScope/*/mdb:resourceScope/*/@codeListValue + ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +The mapping can be customized in: + +- ISO19139 `schemas/iso19139/src/main/plugin/iso19139/formatter/datacite/view.xsl` +- ISO19115-3.2018 `schemas/iso19139/src/main/plugin/iso19139/formatter/datacite/view.xsl` + +See for more details on the format. + +DataCite API return XSD validation error. + +![](img/doi-request-check.png) + +The catalogue also allow to apply DataCite validation in the editor: + +![](img/doi-validation.png) + +A DOI may already be assigned for a record: + +![](img/doi-exists.png) + +In such case the DOI can be updated. If the DOI is already assigned in a metadata record, editors can also update the DOI from the editor: + +![](img/doi-update-in-editor.png) + +After validation, create the DOI + +![](img/doi-request-check-ok.png) + +Once created, a link to the DOI and to the DataCite document is available: + +![](img/doi-created.png) + +The DOI is then added to the metadata record: + +![](img/doi-in-xml.png) + +## DOI API + +The REST API allows to access the DOI related operations: + +![](img/doi-api.png) + +The check preconditions API returns exception if one of the pre requisite is not met: + +> - DataCite API is not configured +> - Record is not public +> - Record already has a DOI +> - Record is not valid for DataCite (ie. XSD errors returned by DataCite XSD validation) + +![](img/doi-api-check.png) + +When a DOI is created, the response return the following details: + +![](img/doi-api-done.png) + +The DOI is added to the metadata record using the following encoding: + +![](img/doi-in-xml.png) + +## Examples + +- [Comment créer un DOI à partir de l'outil de catalogage Geonetwork, Annick Battais](https://sist19.sciencesconf.org/data/pages/SIST19_A_BATTAIS.pdf) diff --git a/docs/manual/docs/user-guide/associating-resources/img/addonlinesrc.png b/docs/manual/docs/user-guide/associating-resources/img/addonlinesrc.png new file mode 100644 index 000000000000..1d92c9d914db Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/addonlinesrc.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/addonlinesrcup.png b/docs/manual/docs/user-guide/associating-resources/img/addonlinesrcup.png new file mode 100644 index 000000000000..dfba69ce9e0d Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/addonlinesrcup.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/addonlinesrcwms.png b/docs/manual/docs/user-guide/associating-resources/img/addonlinesrcwms.png new file mode 100644 index 000000000000..4cfffa414f0e Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/addonlinesrcwms.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/addresources.png b/docs/manual/docs/user-guide/associating-resources/img/addresources.png new file mode 100644 index 000000000000..90138925c6a2 Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/addresources.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/atom-choose-dataset.png b/docs/manual/docs/user-guide/associating-resources/img/atom-choose-dataset.png new file mode 100644 index 000000000000..58d9fa34185f Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/atom-choose-dataset.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/atom-choose-feed.png b/docs/manual/docs/user-guide/associating-resources/img/atom-choose-feed.png new file mode 100644 index 000000000000..6be82deb2290 Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/atom-choose-feed.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/citation-ui-config.png b/docs/manual/docs/user-guide/associating-resources/img/citation-ui-config.png new file mode 100644 index 000000000000..33a811193b6d Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/citation-ui-config.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/citation-with-addition.png b/docs/manual/docs/user-guide/associating-resources/img/citation-with-addition.png new file mode 100644 index 000000000000..aa3442226963 Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/citation-with-addition.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/citation.png b/docs/manual/docs/user-guide/associating-resources/img/citation.png new file mode 100644 index 000000000000..cc3221459f12 Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/citation.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/dataset.png b/docs/manual/docs/user-guide/associating-resources/img/dataset.png new file mode 100644 index 000000000000..23997fe79610 Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/dataset.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/doi-admin-console.png b/docs/manual/docs/user-guide/associating-resources/img/doi-admin-console.png new file mode 100644 index 000000000000..f13c098ac171 Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/doi-admin-console.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/doi-api-check-already-exist.png b/docs/manual/docs/user-guide/associating-resources/img/doi-api-check-already-exist.png new file mode 100644 index 000000000000..27d6988fbf0f Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/doi-api-check-already-exist.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/doi-api-check.png b/docs/manual/docs/user-guide/associating-resources/img/doi-api-check.png new file mode 100644 index 000000000000..5a83293416e8 Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/doi-api-check.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/doi-api-done.png b/docs/manual/docs/user-guide/associating-resources/img/doi-api-done.png new file mode 100644 index 000000000000..99b10f1b73fb Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/doi-api-done.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/doi-api.png b/docs/manual/docs/user-guide/associating-resources/img/doi-api.png new file mode 100644 index 000000000000..04d08223cb98 Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/doi-api.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/doi-config-wrong.png b/docs/manual/docs/user-guide/associating-resources/img/doi-config-wrong.png new file mode 100644 index 000000000000..d17b189ce0c3 Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/doi-config-wrong.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/doi-created.png b/docs/manual/docs/user-guide/associating-resources/img/doi-created.png new file mode 100644 index 000000000000..4de9a6b7c368 Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/doi-created.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/doi-exists.png b/docs/manual/docs/user-guide/associating-resources/img/doi-exists.png new file mode 100644 index 000000000000..5d4931c2c64c Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/doi-exists.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/doi-in-xml.png b/docs/manual/docs/user-guide/associating-resources/img/doi-in-xml.png new file mode 100644 index 000000000000..0a36cfea8f27 Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/doi-in-xml.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/doi-request-check-ok.png b/docs/manual/docs/user-guide/associating-resources/img/doi-request-check-ok.png new file mode 100644 index 000000000000..d633f4f15490 Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/doi-request-check-ok.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/doi-request-check.png b/docs/manual/docs/user-guide/associating-resources/img/doi-request-check.png new file mode 100644 index 000000000000..85a5e2342c65 Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/doi-request-check.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/doi-request-menu.png b/docs/manual/docs/user-guide/associating-resources/img/doi-request-menu.png new file mode 100644 index 000000000000..e69c51684076 Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/doi-request-menu.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/doi-request-popup.png b/docs/manual/docs/user-guide/associating-resources/img/doi-request-popup.png new file mode 100644 index 000000000000..3c3078b22b59 Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/doi-request-popup.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/doi-tocheck.png b/docs/manual/docs/user-guide/associating-resources/img/doi-tocheck.png new file mode 100644 index 000000000000..50eacfb49858 Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/doi-tocheck.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/doi-update-in-editor.png b/docs/manual/docs/user-guide/associating-resources/img/doi-update-in-editor.png new file mode 100644 index 000000000000..02ec8648138b Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/doi-update-in-editor.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/doi-validation.png b/docs/manual/docs/user-guide/associating-resources/img/doi-validation.png new file mode 100644 index 000000000000..07319ab1f32a Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/doi-validation.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/feature.png b/docs/manual/docs/user-guide/associating-resources/img/feature.png new file mode 100644 index 000000000000..d773ef47143b Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/feature.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/filestore.png b/docs/manual/docs/user-guide/associating-resources/img/filestore.png new file mode 100644 index 000000000000..9524410c235c Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/filestore.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/link-remote-editor.png b/docs/manual/docs/user-guide/associating-resources/img/link-remote-editor.png new file mode 100644 index 000000000000..1083719d0389 Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/link-remote-editor.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/link-remote-sibling.png b/docs/manual/docs/user-guide/associating-resources/img/link-remote-sibling.png new file mode 100644 index 000000000000..4ac95486c087 Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/link-remote-sibling.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/link-remote-view.png b/docs/manual/docs/user-guide/associating-resources/img/link-remote-view.png new file mode 100644 index 000000000000..b83f578a5f77 Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/link-remote-view.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/link-remote.png b/docs/manual/docs/user-guide/associating-resources/img/link-remote.png new file mode 100644 index 000000000000..c78858732ef5 Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/link-remote.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/nav-series.png b/docs/manual/docs/user-guide/associating-resources/img/nav-series.png new file mode 100644 index 000000000000..f2267acf37d0 Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/nav-series.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/onlinesrc.png b/docs/manual/docs/user-guide/associating-resources/img/onlinesrc.png new file mode 100644 index 000000000000..23c37f09ad8f Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/onlinesrc.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/parent.png b/docs/manual/docs/user-guide/associating-resources/img/parent.png new file mode 100644 index 000000000000..28be6e5919c5 Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/parent.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/service.png b/docs/manual/docs/user-guide/associating-resources/img/service.png new file mode 100644 index 000000000000..a60ef12f2e34 Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/service.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/sources.png b/docs/manual/docs/user-guide/associating-resources/img/sources.png new file mode 100644 index 000000000000..1639ee5542f6 Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/sources.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/thumb-from-filestore.png b/docs/manual/docs/user-guide/associating-resources/img/thumb-from-filestore.png new file mode 100644 index 000000000000..1ef2f73291c5 Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/thumb-from-filestore.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/thumb-from-url.png b/docs/manual/docs/user-guide/associating-resources/img/thumb-from-url.png new file mode 100644 index 000000000000..e9bd58311bdd Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/thumb-from-url.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/thumb-in-editor.png b/docs/manual/docs/user-guide/associating-resources/img/thumb-in-editor.png new file mode 100644 index 000000000000..7138b3a80787 Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/thumb-in-editor.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/thumb-in-search-results.png b/docs/manual/docs/user-guide/associating-resources/img/thumb-in-search-results.png new file mode 100644 index 000000000000..14f17ee49571 Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/thumb-in-search-results.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/thumb.png b/docs/manual/docs/user-guide/associating-resources/img/thumb.png new file mode 100644 index 000000000000..f7c6d5342b11 Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/thumb.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/img/thumbprint.png b/docs/manual/docs/user-guide/associating-resources/img/thumbprint.png new file mode 100644 index 000000000000..7beea06630cd Binary files /dev/null and b/docs/manual/docs/user-guide/associating-resources/img/thumbprint.png differ diff --git a/docs/manual/docs/user-guide/associating-resources/index.md b/docs/manual/docs/user-guide/associating-resources/index.md new file mode 100644 index 000000000000..cae24ced6205 --- /dev/null +++ b/docs/manual/docs/user-guide/associating-resources/index.md @@ -0,0 +1,20 @@ +# Associating resources {#associating_resources} + +You can associate a record with different types of resources using the **Associated resources** panel. This topic describes how to associate resources. + +- To add or edit associated resources, open the editor, and click Associate Resources to view the wizard panel. + +![](img/onlinesrc.png) + +Use the wizard panel to create or delete associated resources. A list of currently attached resources grouped by types is also provided. + +- To add a new online resource, click on the top + caret. + +![](img/addresources.png) + +You can associate different types of resources: + +- [Linking Documents](linking-documents.md) +- [Linking Records](linking-records.md) +- [Doi](doi.md) +- [Cite](cite.md) diff --git a/docs/manual/docs/user-guide/associating-resources/linking-dataset-or-service.md b/docs/manual/docs/user-guide/associating-resources/linking-dataset-or-service.md new file mode 100644 index 000000000000..4fd977ccd6ac --- /dev/null +++ b/docs/manual/docs/user-guide/associating-resources/linking-dataset-or-service.md @@ -0,0 +1,23 @@ +# Linking a dataset with a service {#linking-dataset-or-service} + +Metadata on dataset can be associated to metadata on services. + +!!! info "Todo" + + Add more details on how/why/encoding + + +``` xml + +``` + +In a service metadata record, click the `Link to a dataset` button to open the record selector which list all datasets in the catalog. Optionally, the layer name may be define manually or from the list of the layers retrieved from the service (using the GetCapabilities). + +![](img/dataset.png) + +In a dataset metadata record, click the `Link to a service` button to open the record selector which list all services in the catalog. + +![](img/service.png) + +When confirming the association, both records will be affected by the change (depending on user privileges - ie. current user may not be allowed to modify the target record). diff --git a/docs/manual/docs/user-guide/associating-resources/linking-documents.md b/docs/manual/docs/user-guide/associating-resources/linking-documents.md new file mode 100644 index 000000000000..5b48726379c1 --- /dev/null +++ b/docs/manual/docs/user-guide/associating-resources/linking-documents.md @@ -0,0 +1,9 @@ +# Associating documents {#associating_resources_doc} + +You can associate a record with documents using a URL. + +A document could be an overview, a quality report, a website available in different formats (eg. png, jpg, pdf, html) on the web. + +- [Using Filestore](using-filestore.md) +- [Linking Thumbnail](linking-thumbnail.md) +- [Linking Online Resources](linking-online-resources.md) diff --git a/docs/manual/docs/user-guide/associating-resources/linking-feature-catalog.md b/docs/manual/docs/user-guide/associating-resources/linking-feature-catalog.md new file mode 100644 index 000000000000..e72775038194 --- /dev/null +++ b/docs/manual/docs/user-guide/associating-resources/linking-feature-catalog.md @@ -0,0 +1,17 @@ +# Describing attributes table in a feature Catalog {#linking-feature-catalog} + +A feature catalog describes the data model of the dataset with the list of tables, attributes, definitions, list of values, \... Feature catalogs could be described: + +- as a document (eg. PDF) and linked to the metadata record (see [linking-online-resources-doc](linking-online-resources-doc.md)) +- as a record and described using the ISO19110 standards. + +Click on `Link to a feature catalog` to open the record selector listing all feature catalog described in the catalog. Choose one and submit to associate the 2 documents. + +![](img/feature.png) + +In ISO19115-3, the feature catalog can also be described directly in the metadata record in the `content` section. + +!!! info "Todo" + + Add encoding + diff --git a/docs/manual/docs/user-guide/associating-resources/linking-online-resources.md b/docs/manual/docs/user-guide/associating-resources/linking-online-resources.md new file mode 100644 index 000000000000..9864e314b1a6 --- /dev/null +++ b/docs/manual/docs/user-guide/associating-resources/linking-online-resources.md @@ -0,0 +1,169 @@ +# Linking website, web services, \... using URL {#linking-online-resources} + +This section applies mainly to ISO19139 records and partially to Dublin Core (ie. only documents can be associated in Dublin Core) standards. + +## Linking a document {#linking-online-resources-doc} + +2 approaches can be used to link documents: + +- by providing a URL +- by uploading a document + +To add a new one, click on the + caret button then `Add an online resource` button or, if already one exists, just click on the title of the `Online resources`. + +![](img/addonlinesrc.png) + +To link a URL, set the following properties: + +- `Protocol` to describe the type of document attached (`Web address (URL)` is the default) +- `Linkage` to point to the target document. It can be any type of links like , , , \... +- `Name` is optional and provides a label for making an hyperlink +- `Description` is optional and provides more details about the link + +To upload a document, switch to the `Upload` tab and choose a document, or drag and drop it in the pop up. In that case, the protocol is hidden and is set to `WWW:DOWNLOAD`. + +![](img/addonlinesrcup.png) + +Depending on your needs, more specific links could be added and will be associated to different actions and display in the applications. + +## Linking a WMS layer {#linking-wms-layer} + +To be able to view a record on the map viewer, it may be relevant to add a reference to one or more WMS services publishing the dataset. An online resource is encoded using the following in ISO19139: + +``` xml + + + + https://download.data.grandlyon.com/wms/grandlyon + + + OGC:WMS + + + cad_cadastre.cadsubdivisionsection + + + Subdivision de section cadastrale (Plan cadastral informatisé du Grand Lyon)(OGC:WMS) + + + +``` + +To add a WMS layer: + +- choose the protocol `OGC:WMS Web Map Service`, +- set the URL of the service, +- then the wizard query the service to retrieve the list of layers +- choose one or more layer in the list or set it manually. + +![](img/addonlinesrcwms.png) + +## Linking a database table or a GIS file on the network {#linking-online-resources-georesource} + +To reference a GIS file or a database table, user can upload or link to a that resource (see [linking-online-resources-doc](linking-online-resources-doc.md)). The type of protocol depends on the type of resource associated: + +| Type of resource | Vector file uploaded (eg. zipped Shapefile) | +|------------------|-------------------------------------------------------------------------------------------------------------------------------------------------| +| URL | File URL created after upload on the catalog. eg. | +| Protocol | WWW:DOWNLOAD | +| Name | File name (readonly) | + +| Type of resource | Vector file on the network | +|------------------|--------------------------------------------------------------------| +| URL | File path. eg. | +| Protocol | or | +| Name | File description | + +| Type of resource | Vector (Table PostGIS) | +|------------------|------------------------------------------------------| +| URL | jdbc:postgresql://localhost:5432/login: | +| Protocol | DB:POSTGIS | +| Name | Table name | + +When having information about the database or file on the local network, it may be relevant to hide those informations for public users (see [restricting-information-to-metadata-sections](restricting-information-to-metadata-sections.md)). + +!!! info "Todo" + + Add doc & link to geopublisher + + +## Linking data using ATOM feeds {#linking-data-using-atom-feed} + +If your organisation provides ATOM feeds to facilitate access to the data, metadata records can link to these feeds. Users can link to a service feed in a service record and to a dataset feed in a dataset record. + +``` xml + + + + + http://www.broinspireservices.nl/atom/awp.atom + + + INSPIRE Atom + + + gdn.Aardwarmtepotentie + + + + +``` + +Once registered in the metadata, the ATOM feed will be displayed on the record view: + +![](img/atom-choose-feed.png) + +Users can choose a service, the list of datasets available are retrieved and the download links displayed to the user. A dataset feed can have one or more downloads: + +![](img/atom-choose-dataset.png) + +Examples: + +- [NGR National Georegister](https://www.nationaalgeoregister.nl/geonetwork/srv/dut/catalog.search#/search?any=atom&fast=index), [Statistics Netherlands Land Use 2015 ATOM](https://www.nationaalgeoregister.nl/geonetwork/srv/dut/catalog.search#/metadata/a657f732-e1b3-4638-9933-67cab10d9081) + +The catalog also provides the capability to produce ATOM feeds for services and datasets from metadata records. To enable this, check the ATOM API (see [opensearch-and-atom](opensearch-and-atom.md)). A GML dataset can be exposed using the following encoding in order to be published in a dataset ATOM feed: + +``` xml + + + + B + + + 428973180 + + + + + https://download.data.public.lu/resources/inspire-annex-i-theme-addresses-addresses/20191118-115245/ad.address.gml + + + WWW:DOWNLOAD-1.0-http--download + + + INSPIRE-Download-Atom + + + AD.Address.gml + + + + + + download + + + + + +``` + +Examples: + +- INSPIRE Portal of the Grand-Duchy of Luxembourg / [INSPIRE - Annex I Theme Addresses - Addresses](https://catalog.inspire.geoportail.lu/geonetwork/srv/fre/catalog.search#/metadata/F22B07FC-E961-4985-BB75-6A1548319C8A) + +Reference documents: + +- [INSPIRE technical guidelines for download services](http://inspire.ec.europa.eu/documents/technical-guidance-implementation-inspire-download-services). diff --git a/docs/manual/docs/user-guide/associating-resources/linking-others.md b/docs/manual/docs/user-guide/associating-resources/linking-others.md new file mode 100644 index 000000000000..e74fda978a64 --- /dev/null +++ b/docs/manual/docs/user-guide/associating-resources/linking-others.md @@ -0,0 +1,6 @@ +# Other types of resources (eg. sensor, publication) {#linking-others} + +!!! info "Todo" + + Add aggregates details + diff --git a/docs/manual/docs/user-guide/associating-resources/linking-parent.md b/docs/manual/docs/user-guide/associating-resources/linking-parent.md new file mode 100644 index 000000000000..492aa1435c5e --- /dev/null +++ b/docs/manual/docs/user-guide/associating-resources/linking-parent.md @@ -0,0 +1,27 @@ +# Grouping datasets in a series (ie. parent/child relation) {#linking-parent} + +In some situations, a dataset is part of a temporal or spatial collections of records which could share the same specification (eg. Land cover for different years). In order to group this set of records, a general description of the collection may be done in the parent metadata which can then be attached to each dataset of the series. + +- Corine Land Cover + +> - Corine Land Cover 2002 +> - Corine Land Cover 2012 +> - \... + +Parent/child relations can be set on ISO19139 and Dublin Core records. In ISO19139, the link to a parent record is encoded in the child record using the following: + +``` xml + + 78f93047-74f8-4419-ac3d-fc62e4b0477b + +``` + +Parent/Child relation in ISO19139 may also be encoded using aggregates (see [linking-others](linking-others.md)). + +When creating such relationship, users will be able to navigate between the records in the search and record view. + +![](img/nav-series.png) + +Click on `Link to parent` to access the panel providing a simple search to select the target parent metadata + +![](img/parent.png) diff --git a/docs/manual/docs/user-guide/associating-resources/linking-records.md b/docs/manual/docs/user-guide/associating-resources/linking-records.md new file mode 100644 index 000000000000..714d9b2d88c1 --- /dev/null +++ b/docs/manual/docs/user-guide/associating-resources/linking-records.md @@ -0,0 +1,8 @@ +# Associating another record {#associating_resources_record} + +- [Linking Parent](linking-parent.md) +- [Linking Source](linking-source.md) +- [Linking Dataset Or Service](linking-dataset-or-service.md) +- [Linking Feature Catalog](linking-feature-catalog.md) +- [Linking Others](linking-others.md) +- [Linking Remote Records](linking-remote-records.md) diff --git a/docs/manual/docs/user-guide/associating-resources/linking-remote-records.md b/docs/manual/docs/user-guide/associating-resources/linking-remote-records.md new file mode 100644 index 000000000000..631d19542ddf --- /dev/null +++ b/docs/manual/docs/user-guide/associating-resources/linking-remote-records.md @@ -0,0 +1,74 @@ +# Linking to a remote record {#linking-remote-record} + +## Adding the link + +While encoding a relation (ie. parent, source, feature catalogue, sibling, dataset, service), user has the possibility to point to a page describing the remote record. + +![](img/link-remote.png) + +Remote record can be linked to record in this catalog by pointing to an URL of the remote record. If the remote record is in a GeoNetwork catalog, the landing page of the record is recommended (eg. ) - which returns XML if the Accept header is set to application/xml. For GeoNode, the HTML page can work but the UUID will not be identified. The title will be the HTML title of the page. For others, XML document can be used (eg. API call or CSW GetRecordById request). + +For sibling, which allows to add multiple links in one call, the panel is modified to list links in a table mode. + +![](img/link-remote-sibling.png) + +\... instead of a simple list + +Once added, the remote records are identified by a specific icon: + +![](img/link-remote-editor.png) + +Same icon is used in view mode: + +![](img/link-remote-view.png) + +## XML Encoding + +Old implementation encodes link to other record as + +- uuidref + +``` xml + +``` + +- or gco:CharacterString + +``` xml +704c6337-aaad-47a9-b300-08f28c0e48e9<... +``` + +- or using attributes uuidref, xlink:href like for service/dataset links. + +When linking to a remote record, the editor tries to collect information about the remote record: + +- title +- UUID + +Currently is supported: + +- ISO19139 +- ISO19119 +- ISO19110 +- ISO19115-3 +- GeoNode HTML format + +At some point, it may be relevant to also support [schema.org](https://schema.org/) tags in HTML page or JSON+LD. Once remote record properties extracted, the link will be added as usual (same processes but with 2 extras optional parameters) with the following: + +``` xml + +``` + +## Standards supported + +Source document + +- ISO19139 +- ISO19115-3 implementation made in metadata101/iso19115-3.2018#81 + +Target document + +- internal record: Any standards supported by GeoNetwork +- remote record: ISO standards or HTML page (eg. GeoNode) diff --git a/docs/manual/docs/user-guide/associating-resources/linking-source.md b/docs/manual/docs/user-guide/associating-resources/linking-source.md new file mode 100644 index 000000000000..daef3c6bfbbc --- /dev/null +++ b/docs/manual/docs/user-guide/associating-resources/linking-source.md @@ -0,0 +1,5 @@ +# Referencing sources of a dataset {#linking-source} + +When a dataset is created from another or when a map is composed of datasets, editors could indicate this relationship in the quality section of the record (using standard ISO19139 or ISO19115-3) by adding sources. + +![](img/sources.png) diff --git a/docs/manual/docs/user-guide/associating-resources/linking-thumbnail.md b/docs/manual/docs/user-guide/associating-resources/linking-thumbnail.md new file mode 100644 index 000000000000..bf259302d584 --- /dev/null +++ b/docs/manual/docs/user-guide/associating-resources/linking-thumbnail.md @@ -0,0 +1,37 @@ +# Illustrating with an overview {#linking-thumbnail} + +To help the user identify a metadata record of interest, you can create a graphic overview (or thumbnail) in the form of an image and attach it to the metadata record. For example, if your metadata record describes some geographic dataset then the graphic overview could be an image of the map with legend produced by an OGC Web Map Service. + +You can associate one or more overviews with a record. + +Thumbnails are displayed in search results and metadata view: + +![](img/thumb-in-search-results.png) + +From the `Associated resources` panel, click on the `Add a document` button to open the `Link an online resource to the current metadata` wizard. Thumbnails can be added using 3 sources: + +- From a URL on the web +- From a file attached to the metadata +- From a file generated using a visualization service + +![](img/thumb.png) + +## Linking an overview with a URL + +When the overview is available as an image on the web, it could be directly linked to the metadata record. Add an optional description to describe the image: + +![](img/thumb-from-url.png) + +If the overview is not available, attache an image (png, gif, jpeg) within the filestore (see [associating_resources_filestore](associating_resources_filestore.md)) and click its name to set the URL: + +![](img/thumb-from-filestore.png) + +You can link as many images as you want. Images associated in this mode, should be publicly accessible on the web if you want the overviews to be displayed properly even if that metadata record get harvested by other catalogs. + +![](img/thumb-in-editor.png) + +## Generating a thumbnail using WMS layers {#linking-thumbnail-from-wms} + +If you have registered a WMS layer in the current metadata record (see [linking-wms-layer](linking-wms-layer.md)), a thumbnail can be generated using it on top of the base layer map. Choose the `Create thumbnail` tab and choose the area to be print on the thumbnail. The image created is added to the filestore. + +![](img/thumbprint.png) diff --git a/docs/manual/docs/user-guide/associating-resources/using-filestore.md b/docs/manual/docs/user-guide/associating-resources/using-filestore.md new file mode 100644 index 000000000000..9ccca31e7b31 --- /dev/null +++ b/docs/manual/docs/user-guide/associating-resources/using-filestore.md @@ -0,0 +1,28 @@ +# Uploading attachments {#associating_resources_filestore} + +!!! info "Version Added" + + 3.2 + + +If documents are not available, editors can upload attachments to a metadata record. The document is added to the filestore. The filestore can contains any kind of files. + +![](img/filestore.png) + +To upload a file, click the button and choose a file or drag&drop a file on the button. Files are stored in a folder in the data directory (see [customizing-data-directory](customizing-data-directory.md)). There is one folder per metadata containing: + +- `public` folder with files accessible to all users +- `private` folder with files accessible to identified user with download privilege (see [managing-privileges](managing-privileges.md)) + +From the filestore: + +- click the file name to set the URL for the current document to attach +- click the eye icon to view the document +- click the locker to change the document visibility +- click the cross to remove the file. + +A file uploaded in this way will be exported in the metadata export file (MEF). Therefore, its URL will not be automatically added to the metadata. The URL is added when attaching the document to a specific element in the metadata (eg. overview, quality report, legend). + +## Filestore configuration + +By default, the maximum file size is set to 100Mb. This limit is set in `/services/src/main/resources/config-spring-geonetwork.xml` with the parameter `maxUploadSize`. diff --git a/docs/manual/docs/user-guide/describing-information/creating-metadata.md b/docs/manual/docs/user-guide/describing-information/creating-metadata.md new file mode 100644 index 000000000000..b976d4c90ffb --- /dev/null +++ b/docs/manual/docs/user-guide/describing-information/creating-metadata.md @@ -0,0 +1,27 @@ +# Creating a new record {#creating-metadata} + +This topic guides you through the process of adding new metadata records with associated data and/or services into the catalog. + +## Before you begin + +To add or edit metadata, the user: + +- Must have an `editor` profile or higher. +- Should be a member of a group you want to add information for. + +Contact your administrator if you don't have the correct profile. + +1. From the home page, go to the *contribute* section or directly click on `add new record` menu. + +![](img/add-new-record.png) + +2. From the metadata template list, select a template (see [creating-templates](creating-templates.md)), choose a group from the dropdown and click *Create*. + +![](img/creating-metadata.png) + +Note: If only one group is defined in the catalog, the default group is selected. + +Next steps: + +- Complete the fields provided by default in the template and probably +- Create an image of your data to illustrate it in the search results. diff --git a/docs/manual/docs/user-guide/describing-information/deleting-metadata.md b/docs/manual/docs/user-guide/describing-information/deleting-metadata.md new file mode 100644 index 000000000000..b3f5ee3a16e2 --- /dev/null +++ b/docs/manual/docs/user-guide/describing-information/deleting-metadata.md @@ -0,0 +1,14 @@ +# Deleting a record + +User must have editing privileges to be able to remove a record. This topic describes the various ways to delete a record. + +There are different ways to remove a record: + +- In the record view, click the `delete` menu +- From the search results, select on or more records and select `delete` in the `actions on selection` menu +- In the `contribute` section click the `delete` button for a record. + +!!! note + + If a metadata originates from a harvester, the metadata is automatically removed when the metadata in the harvested system is removed or the harvester itself is removed. The record is re-inserted on the next harvester run. + diff --git a/docs/manual/docs/user-guide/describing-information/editing-metadata.md b/docs/manual/docs/user-guide/describing-information/editing-metadata.md new file mode 100644 index 000000000000..cd22ac73ce6e --- /dev/null +++ b/docs/manual/docs/user-guide/describing-information/editing-metadata.md @@ -0,0 +1,54 @@ +# Editing metadata + +This topic describes how to use the metadata editor. + +## Using the editor toolbar + +The top tool bar provides the main editor actions: + +![](img/editor-toolbar.png) + +From left to right: + +- Set metadata categories +- Set metadata group +- Advanced features (eg. versioning) +- `Validate` to run metadata validation +- `Cancel` to cancel all changes made since the beginning of the editing session +- `Save & Close` to save and close the editor +- `Save` to save the metadata or the template. The drowdown also allows to set if the edits are minor or not (ie. the change date of the metadata will not be updated if case of minor edits). +- Change view mode for the editor form, enable tooltips or switch to advanced editor mode + +## Navigating the form + +To describe the resource, an editor can use the form, which provides different views. By default the editor provides: + +- a `simple view` displaying all fields from the metadata +- a `full view` based on the metadata standard and providing access to all descriptors from the standards +- an `XML view` displaying the record as an XML document + +To switch from one view to another, use the following menu: + +![](img/view-mode.png) + +Once the view is selected, the editor can browse the list of fields to populate. He can also use the scroll-spy on the lower right corner to quickly access a section. + +![](img/scoll-spy.png) + +The scroll-spy highlights the visible sections, helps user to return to the top of the form and can be minimized if needed. + +## Populating fields + +!!! info "Todo" + + Add details about add/remove/directory controls + + +!!! info "Todo" + + Add details about directory / thesaurus + + +Depending on the view configuration (see [creating-custom-editor](creating-custom-editor.md)), editors can reorder elements using up and down controls. + +![](img/editor-control-updown.png) diff --git a/docs/manual/docs/user-guide/describing-information/img/add-new-record.png b/docs/manual/docs/user-guide/describing-information/img/add-new-record.png new file mode 100644 index 000000000000..fb90241a04ea Binary files /dev/null and b/docs/manual/docs/user-guide/describing-information/img/add-new-record.png differ diff --git a/docs/manual/docs/user-guide/describing-information/img/creating-metadata.png b/docs/manual/docs/user-guide/describing-information/img/creating-metadata.png new file mode 100644 index 000000000000..ea9733fb912b Binary files /dev/null and b/docs/manual/docs/user-guide/describing-information/img/creating-metadata.png differ diff --git a/docs/manual/docs/user-guide/describing-information/img/editor-contact-flatmode.png b/docs/manual/docs/user-guide/describing-information/img/editor-contact-flatmode.png new file mode 100644 index 000000000000..35e6c3f3081e Binary files /dev/null and b/docs/manual/docs/user-guide/describing-information/img/editor-contact-flatmode.png differ diff --git a/docs/manual/docs/user-guide/describing-information/img/editor-contact-nonflatmode.png b/docs/manual/docs/user-guide/describing-information/img/editor-contact-nonflatmode.png new file mode 100644 index 000000000000..a4642630fec9 Binary files /dev/null and b/docs/manual/docs/user-guide/describing-information/img/editor-contact-nonflatmode.png differ diff --git a/docs/manual/docs/user-guide/describing-information/img/editor-control-updown.png b/docs/manual/docs/user-guide/describing-information/img/editor-control-updown.png new file mode 100644 index 000000000000..e905c9cc5e70 Binary files /dev/null and b/docs/manual/docs/user-guide/describing-information/img/editor-control-updown.png differ diff --git a/docs/manual/docs/user-guide/describing-information/img/editor-tab-switcher.png b/docs/manual/docs/user-guide/describing-information/img/editor-tab-switcher.png new file mode 100644 index 000000000000..eea173ee729e Binary files /dev/null and b/docs/manual/docs/user-guide/describing-information/img/editor-tab-switcher.png differ diff --git a/docs/manual/docs/user-guide/describing-information/img/editor-toolbar.png b/docs/manual/docs/user-guide/describing-information/img/editor-toolbar.png new file mode 100644 index 000000000000..bba46c8095e7 Binary files /dev/null and b/docs/manual/docs/user-guide/describing-information/img/editor-toolbar.png differ diff --git a/docs/manual/docs/user-guide/describing-information/img/import-form.png b/docs/manual/docs/user-guide/describing-information/img/import-form.png new file mode 100644 index 000000000000..6e8a8fd05616 Binary files /dev/null and b/docs/manual/docs/user-guide/describing-information/img/import-form.png differ diff --git a/docs/manual/docs/user-guide/describing-information/img/import-record-button.png b/docs/manual/docs/user-guide/describing-information/img/import-record-button.png new file mode 100644 index 000000000000..31148f6be9f5 Binary files /dev/null and b/docs/manual/docs/user-guide/describing-information/img/import-record-button.png differ diff --git a/docs/manual/docs/user-guide/describing-information/img/import-template.png b/docs/manual/docs/user-guide/describing-information/img/import-template.png new file mode 100644 index 000000000000..2e3d3c0f71f9 Binary files /dev/null and b/docs/manual/docs/user-guide/describing-information/img/import-template.png differ diff --git a/docs/manual/docs/user-guide/describing-information/img/inspire-bbox-2-decimals.png b/docs/manual/docs/user-guide/describing-information/img/inspire-bbox-2-decimals.png new file mode 100644 index 000000000000..67f3c6ca4072 Binary files /dev/null and b/docs/manual/docs/user-guide/describing-information/img/inspire-bbox-2-decimals.png differ diff --git a/docs/manual/docs/user-guide/describing-information/img/inspire-contact.png b/docs/manual/docs/user-guide/describing-information/img/inspire-contact.png new file mode 100644 index 000000000000..5022f33f4b8e Binary files /dev/null and b/docs/manual/docs/user-guide/describing-information/img/inspire-contact.png differ diff --git a/docs/manual/docs/user-guide/describing-information/img/inspire-crs.png b/docs/manual/docs/user-guide/describing-information/img/inspire-crs.png new file mode 100644 index 000000000000..ded343c2e1b6 Binary files /dev/null and b/docs/manual/docs/user-guide/describing-information/img/inspire-crs.png differ diff --git a/docs/manual/docs/user-guide/describing-information/img/inspire-keyword-encoding.png b/docs/manual/docs/user-guide/describing-information/img/inspire-keyword-encoding.png new file mode 100644 index 000000000000..74eea77e92f1 Binary files /dev/null and b/docs/manual/docs/user-guide/describing-information/img/inspire-keyword-encoding.png differ diff --git a/docs/manual/docs/user-guide/describing-information/img/inspire-language.png b/docs/manual/docs/user-guide/describing-information/img/inspire-language.png new file mode 100644 index 000000000000..f03881cfab79 Binary files /dev/null and b/docs/manual/docs/user-guide/describing-information/img/inspire-language.png differ diff --git a/docs/manual/docs/user-guide/describing-information/img/inspire-resource-constraint.png b/docs/manual/docs/user-guide/describing-information/img/inspire-resource-constraint.png new file mode 100644 index 000000000000..25fd7ef8edfa Binary files /dev/null and b/docs/manual/docs/user-guide/describing-information/img/inspire-resource-constraint.png differ diff --git a/docs/manual/docs/user-guide/describing-information/img/inspire-temporal-period.png b/docs/manual/docs/user-guide/describing-information/img/inspire-temporal-period.png new file mode 100644 index 000000000000..360bdb9e24b4 Binary files /dev/null and b/docs/manual/docs/user-guide/describing-information/img/inspire-temporal-period.png differ diff --git a/docs/manual/docs/user-guide/describing-information/img/inspire-temporal-ref.png b/docs/manual/docs/user-guide/describing-information/img/inspire-temporal-ref.png new file mode 100644 index 000000000000..442eba66e023 Binary files /dev/null and b/docs/manual/docs/user-guide/describing-information/img/inspire-temporal-ref.png differ diff --git a/docs/manual/docs/user-guide/describing-information/img/inspire-thesaurus-selection.png b/docs/manual/docs/user-guide/describing-information/img/inspire-thesaurus-selection.png new file mode 100644 index 000000000000..9bbcb78f672c Binary files /dev/null and b/docs/manual/docs/user-guide/describing-information/img/inspire-thesaurus-selection.png differ diff --git a/docs/manual/docs/user-guide/describing-information/img/inspire-validation-pass.png b/docs/manual/docs/user-guide/describing-information/img/inspire-validation-pass.png new file mode 100644 index 000000000000..53a53ae6721f Binary files /dev/null and b/docs/manual/docs/user-guide/describing-information/img/inspire-validation-pass.png differ diff --git a/docs/manual/docs/user-guide/describing-information/img/multilingual-editing.png b/docs/manual/docs/user-guide/describing-information/img/multilingual-editing.png new file mode 100644 index 000000000000..a5d3fb782e51 Binary files /dev/null and b/docs/manual/docs/user-guide/describing-information/img/multilingual-editing.png differ diff --git a/docs/manual/docs/user-guide/describing-information/img/save-as-templates.png b/docs/manual/docs/user-guide/describing-information/img/save-as-templates.png new file mode 100644 index 000000000000..c9d9c9c50537 Binary files /dev/null and b/docs/manual/docs/user-guide/describing-information/img/save-as-templates.png differ diff --git a/docs/manual/docs/user-guide/describing-information/img/scoll-spy.png b/docs/manual/docs/user-guide/describing-information/img/scoll-spy.png new file mode 100644 index 000000000000..ada4f112ff3f Binary files /dev/null and b/docs/manual/docs/user-guide/describing-information/img/scoll-spy.png differ diff --git a/docs/manual/docs/user-guide/describing-information/img/table-fields.png b/docs/manual/docs/user-guide/describing-information/img/table-fields.png new file mode 100644 index 000000000000..a3d60d6a645a Binary files /dev/null and b/docs/manual/docs/user-guide/describing-information/img/table-fields.png differ diff --git a/docs/manual/docs/user-guide/describing-information/img/view-mode.png b/docs/manual/docs/user-guide/describing-information/img/view-mode.png new file mode 100644 index 000000000000..56a60506d82a Binary files /dev/null and b/docs/manual/docs/user-guide/describing-information/img/view-mode.png differ diff --git a/docs/manual/docs/user-guide/describing-information/importing-metadata.md b/docs/manual/docs/user-guide/describing-information/importing-metadata.md new file mode 100644 index 000000000000..8e0155923760 --- /dev/null +++ b/docs/manual/docs/user-guide/describing-information/importing-metadata.md @@ -0,0 +1,47 @@ +# Importing a new record {#import1} + +An editor can import metadata in the catalog file in different formats: XML, MEF or ZIP (see [mef_format](mef_format.md)). + +## Before you begin + +The user should have an `editor` profile to access metadata. + +1. Go to the contribute page and select `Import new records`. + +![](img/import-record-button.png) + +Using the import new records page, you can: + +- choose `Upload a file from your computer` and choose one XML or MEF file to load +- choose `Copy/Paste` and copy the XML document in the textarea +- choose `Import a set of files from a folder on the server` and set the path of the folder in the server + +To import multiple file at a time, use the MEF format or the import from server options. + +2. After you have defined the type of import, configure the other import settings: + +![](img/import-form.png) + +- `Type of file`: when uploading or loading file from the server, define the type of file to load. It could be XML for importing XML document or MEF (equivalent to ZIP) for importing MEF format. +- `Type of record`: + +> - Use `Metadata` when loading a normal metadata record +> - Use `Template` when the loaded metadata record will be used as a template. + +- `Record identifier processing` determines how to handle potential clashes between the UUID of the record loaded and UUIDs of metadata records already present in the catalog. 3 strategies are available: + +> - `None`: the UUID of the record loaded is left unchanged. If a metadata record with the same UUID is already present in the catalog, an error message is returned. +> - `Overwrite metadata with same UUID`: any existing metadata record in the catalog having the same UUID as the loaded record will be updated. +> - `Generate UUID for inserted metadata`: a new UUID is affected to the loaded record. + +- `Apply XSLT conversion` allows to transform the record loaded using an XSLT stylesheet. A list of predefined transformations is provided. The selected transformation should be compatible with the standard of the loaded record (see [customizing-xslt-conversion](customizing-xslt-conversion.md)). +- `Validate` trigger the validation of the record before loading it. In case of error the record is rejected and an error reported. +- `Assign to current catalog` assign the current catalog as origin for the record, in case the MEF file indicate another source. +- `Assign to Group` define the group of the loaded record. +- `Assign to Category` define a local category to assign to the loaded record. + +3\. Click `import` to trigger the import. After processing, a summary is provided with the following details: + +- the total count of imported metadata +- errors messages +- if only one record is imported, a link to that record is provided. diff --git a/docs/manual/docs/user-guide/describing-information/index.md b/docs/manual/docs/user-guide/describing-information/index.md new file mode 100644 index 000000000000..54ba26065b29 --- /dev/null +++ b/docs/manual/docs/user-guide/describing-information/index.md @@ -0,0 +1,29 @@ +# Describing information + +This section describes how to catalog resources. First, user needs to choose a standard to use. In general, the following rules apply: + +- [Dublin core](http://dublincore.org/) usually used for opendata portal, referencing publication, report, \... +- [ISO 19115/119/139](http://www.iso.org/iso/en/home/store/catalogue_tc/catalogue_detail.htm?csnumber=32557) used for spatial resources (eg. datasets, services, maps) +- [ISO 19110](http://www.iso.org/iso/en/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=39965) used for feature attribute table + +The editor form provides uploading of data, graphics, documents, pdf files and any other content type. It supports among other: + +- full standard support +- multilingual metadata editing, +- validation system, +- suggestion system to improve metadata quality +- geopublication of layers to publish geodata layers in OGC services (eg. GeoServer) + +!!! info "Todo" + + Add links to corresponding section + + +- [Managing Templates](managing-templates.md) +- [Creating Metadata](creating-metadata.md) +- [Importing Metadata](importing-metadata.md) +- [Editing Metadata](editing-metadata.md) +- [Deleting Metadata](deleting-metadata.md) +- [Multilingual Editing](multilingual-editing.md) + +* [Inspire Editing](inspire-editing.md) to their informations and tasks. diff --git a/docs/manual/docs/user-guide/describing-information/inspire-editing.md b/docs/manual/docs/user-guide/describing-information/inspire-editing.md new file mode 100644 index 000000000000..e2a7a7be5c77 --- /dev/null +++ b/docs/manual/docs/user-guide/describing-information/inspire-editing.md @@ -0,0 +1,1225 @@ +# Describing resources for the INSPIRE directive {#inspire-editing} + +When describing information in the scope of the INSPIRE Directive, editors must follows the [Technical Guidance for the implementation of INSPIRE dataset and service metadata based on ISO/TS 19139:2007 (INSPIRE TG2)](https://inspire.ec.europa.eu/id/document/tg/metadata-iso19139). + +To follow the technical guideline, the catalogue administrator has to setup INSPIRE configuration for the catalogue (see [inspire-configuration](inspire-configuration.md)) + +## Metadata information + +File identifier is automatically set by the catalogue. The metadata last update date is also set every time editor save the record. + +## Languages + +The metadata language is mandatory. This information usually does not change in records part of the same catalogue. So it is recommended to properly set the value in the template used. The language code is a 3 letter code from the list of [official languages of the European Union](http://ec.europa.eu/languages/policy/linguistic-diversity/official-languages-eu_en.htm). A record can be multilingual (see [multilingual-editing](multilingual-editing.md)). + +The resource language is also mandatory and follow the same rule. The catalogue provides a list of languages to easily choose the language code. + +![image](img/inspire-language.png) + +In your template, set the character encoding to simplify editing. The value is in general similar in most of the records. `utf8` can be a good default value. + +## Contact information + +The minimum information to set for contact are an organisation name and an email. At least one point of contact for the resource and one for the metadata is required. + +![image](img/inspire-contact.png) + +## Categorizing with keywords + +Once the configuration done, editors will be able to add keywords for: + +- INSPIRE themes (mandatory) +- Spatial scope (optional) +- Priority datasets (optional) +- GEMET keywords (optional) + +![image](img/inspire-thesaurus-selection.png) + +When adding keyword, the catalogue propose to configure how to encode the value in the XML document. By default, text encoding is used: + +![image](img/inspire-keyword-encoding.png) + +This means that a `gco:CharacterString` is used to encode the value: + +``` xml + + + + Installations agricoles et aquacoles + + + + + + + + GEMET - INSPIRE themes, version 1.0 + +``` + +The INSPIRE TG2 recommend to use an anchor. To use this, editor can choose the `anchor` type: + +``` xml + + + + Installations agricoles et aquacoles + + + + + + + + GEMET - INSPIRE themes, version 1.0 + +``` + +The encoding is preserved once set and it can be different from one record to another. It can be forced globally in the editor by setting the `transformations` parameter for this thesaurus: + +``` xml + + + +``` + +Keywords can also be encoded in multilingual mode: + +``` xml + + + + Nationales + + + Nationales + + + National + + + + + + + + + + Spatial scope + + + + + + +``` + +Therefore multilingual support for the thesaurus title is not available for now. + +## Temporal references + +At least one date is required. It can be a creation, publication or revision date: + +![image](img/inspire-temporal-ref.png) + +and can also be a more detailed description of the temporal coverage of the data eg. for a period from 1st January 2019 to now: + +![image](img/inspire-temporal-period.png) + +## Resource constraints + +Resource constraints should be set from the [Limitation on public access](http://inspire.ec.europa.eu/metadata-codelist/LimitationsOnPublicAccess) codelist: + +![image](img/inspire-resource-constraint.png) + +XML encoding is the following: + +``` xml + + + + + + + No limitations to public access + + + +``` + +## Resource extent + +A minimal containing geographic bounding box of the data set or data set series shall be described. The map component allows to easily define the bounding box of the dataset. Multiple bounding box can be defined if needed. + +On the coordinate of the bounding box, the INSPIRE validator may report errors due to missing decimals. Open the affected record with the editor and saving it should solve the issue. Even if the north coordinate is 50.8°, it will be encoded as 50.80° to comply with the validation rule. + +![image](img/inspire-bbox-2-decimals.png) + +``` xml + + + 50.80 + +``` + +## Coordinate system + +Coordinate system using URI like . For example: + +``` xml + + + + + + http://www.opengis.net/def/crs/EPSG/0/3035 + + + + + + + + + + + EPSG:4326 + + + + + +``` + +Editor can choose a CRS from the suggestion list: + +![image](img/inspire-crs.png) + +If this value is similar to most of the catalogue's records, it is recommended to set it in the base template. + +## Data quality + +The degree of conformity of the described resource with an INSPIRE Implementing Rule, specification document or Conformance Class, shall be given. + +``` xml + + + + + + + + + + + + + + + + + COMMISSION REGULATION (EU) No 1089/2010 of 23 November 2010 implementing Directive 2007/2/EC of the European Parliament and of the Council as regards interoperability of spatial data sets and services + + + + + 2010-12-08 + + + + + + + + + + Voir la spécification référencée + + + + + + +``` + +## Metadata on data sets and series + +Editors must set: + +- the resource type in the hierarchy level +- a unique resource identifier in the citation section +- a spatial representation type +- a spatial resolution +- a topic category +- at least one URL to download or to get more information about the resource in the distribution section and a distribution format +- a lineage in the data quality section + +## Validating + +During editing, user can trigger validation using the [commonly agreed validator](http://inspire.ec.europa.eu/validator/). The catalogue will send the record the validator and display a link to the report once done: + +![image](img/inspire-validation-pass.png) + +## Testing with a valid template + +Below is a valid template that can be used to start with: + +``` xml + + + + 48c6f2bb-4828-46eb-a2cc-d5bcb94340dc + + + + + + + + + + + + + + Organisation + + + + + + + mail@organisation.org + + + + + + + + + + + + + 2019-09-20T15:52:19 + + + ISO 19115 + + + 2003/Cor 1:2006 + + + + + + + http://www.opengis.net/def/crs/EPSG/0/3035 + + + + + + + + + + + INSPIRE - TG2 - Template + + + + + 2019-10-01 + + + + + + + + + + + 48c6f2bb-4828-46eb-a2cc-d5bcb94340dc + + + https://registry.organisation.fr/datasets + + + + + + + Abstract + + + + + + + + + Organisation + + + + + + + mail@organisation.org + + + + + + + + + + + + + + + + + + + + + + Protected sites + + + + + + + + GEMET - INSPIRE themes, version 1.0 + + + + + 2008-06-01 + + + + + + + + + + + geonetwork.thesaurus.external.theme.httpinspireeceuropaeutheme-theme + + + + + + + + + + + Agglomerations – industrial noise exposure delineation - night (Noise Directive) + + + Agglomerations - industrial noise exposure delineation day-evening-night (Noise Directive) + + + + + + + + INSPIRE priority data set + + + + + 2018-04-04 + + + + + + + + + + geonetwork.thesaurus.external.theme.httpinspireeceuropaeumetadatacodelistPriorityDataset-PriorityDataset + + + + + + + + + + + Regional + + + + + + + + Spatial scope + + + + + 2019-05-22 + + + + + + + + + + geonetwork.thesaurus.external.theme.httpinspireeceuropaeumetadatacodelistSpatialScope-SpatialScope + + + + + + + + + + + + + + No + limitations to public access + + + + + + + + Conditions d'accès et d'utilisation + + + + + + Description des autres contraintes (eg. CGI, Licence) + + + + + + + + + + + + + 25000 + + + + + + + + + + + + + + biota + + + environment + + + + + + + 2.78 + + + 6.41 + + + 49.46 + + + 50.85 + + + + + + + + + + + + + ESRI Shapefile + + + 1.0 + + + + + + + + + https://geoservices.wallonie.be/inspire/atom/PS_Service.xml + + + atom:feed + + + Service de téléchargement ATOM Feed - Inspire + + + Ce service de téléchargement ATOM Feed permet de télécharger la série de couches de + données conforme au thème INSPIRE "Sites protégés". Cliquez sur le lien correspondant aux couches de + données Natura 2000 pour télécharger les informations relatives à ce mécanisme de désignation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + COMMISSION REGULATION (EU) No 1089/2010 of 23 November 2010 implementing Directive 2007/2/EC of the European Parliament and of the Council as regards interoperability of spatial data sets and services + + + + + 2010-12-08 + + + publication + + + + + + + + Voir la spécification référencée + + + + + + + + + + + Généalogie du jeu de données + + + + + + +``` + +It is also possible to use the [latest ISO standard ISO19115-3:2018](https://github.com/metadata101/iso19115-3.2018) to encode INSPIRE dataset. In such case, the record is converted back to ISO19139 before validation. This approach allows to benefit from the improvements provided by the standard and keep conformity to INSPIRE requirements. + +``` xml + + + + + 6d50311c-3ffd-4c09-aa0b-fe9ab1bb93fa + + + urn:uuid + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Organisation + + + + + + + mail@organisation.org + + + + + + + + + + + + + 2019-10-07T13:35:35 + + + + + + + + + + 2019-09-20T15:52:19 + + + creation + + + + + + + ISO 19115 + + + 2003/Cor 1:2006 + + + + + + + http://localhost:8080/geonetwork/srv/eng//metadata/6d50311c-3ffd-4c09-aa0b-fe9ab1bb93fa + + + + + + + + + + + + http://www.opengis.net/def/crs/EPSG/0/3035 + + + + + + + + + + + INSPIRE - TG2 - Template + + + + + 2019-10-01 + + + + + + + + + + 48c6f2bb-4828-46eb-a2cc-d5bcb94340dc + + + https://registry.organisation.fr/datasets + + + + + + + Description du jeu de données + + + + + + + + + + + + + Organisation + + + + + + + mail@organisation.org + + + + + + + + + + + + + + + + + + 25000 + + + + + + + biota + + + environment + + + + + + + 2.78 + + + 6.41 + + + 49.46 + + + 50.85 + + + + + + + + + + + + + + + + Protected sites + + + + + + + + GEMET - INSPIRE themes, version 1.0 + + + + + 2008-06-01 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GEMET themes + + + + + 2009-09-22 + + + + + + + + + + + + + + + + + + + + + Natura 2000 sites (Birds Directive) + + + + + + + + INSPIRE priority data set + + + + + 2018-04-24 + + + + + + + + + + + + + + + + + + + + + + + + No + limitations to public access + + + + + + + Conditions d'accès et d'utilisation + + + + + + Description des autres contraintes (eg. CGI, Licence) + + + + + + + + + + + + + + + + + + + + + + + ESRI Shapefile + + + + 1.0 + + + + + + + + + + + https://geoservices.wallonie.be/inspire/atom/PS_Service.xml + + + atom:feed + + + Service de téléchargement ATOM Feed - Inspire + + + Ce service de téléchargement ATOM Feed permet de télécharger la série de couches de + données conforme au thème INSPIRE "Sites protégés". Cliquez sur le lien correspondant aux couches de + données Natura 2000 pour télécharger les informations relatives à ce mécanisme de désignation. + + + + + + + + + + + + + + + + + + + + + + + + + + + COMMISSION REGULATION (EU) No 1089/2010 of 23 November 2010 implementing Directive 2007/2/EC of the European Parliament and of the Council as regards interoperability of spatial data sets and services + + + + + 2010-12-08 + + + + + + + + + + Voir la spécification référencée + + + + + + + + + + + + Généalogie du jeu de données + + + + + + + + + + + +``` + +# Migrating from Technical guidance version 1.3 to version 2.0 + +[Technical Guidance for the implementation of INSPIRE dataset and service metadata based on ISO/TS 19139:2007 (INSPIRE TG2)](https://inspire.ec.europa.eu/id/document/tg/metadata-iso19139) is the latest version that Member States should follow for all resources in the scope of the INSPIRE directive. + +To facilitate migration from previous technical guideline version 1.3, an XSLT conversion process can be applied to metadata records (see ). The process is provided as an example and can be adapted based on your encoding rules. + +Below is a list of examples for ISO19139, ISO19115-3 or ISO19139 national profiles conversion, that can also be used as examples: + +- EEA +- BRGM +- Metawal +- Netherland +- Sweden + +See [batchupdate_xsl](batchupdate_xsl.md) to preview or apply the process. diff --git a/docs/manual/docs/user-guide/describing-information/managing-templates.md b/docs/manual/docs/user-guide/describing-information/managing-templates.md new file mode 100644 index 000000000000..899627072482 --- /dev/null +++ b/docs/manual/docs/user-guide/describing-information/managing-templates.md @@ -0,0 +1,55 @@ +# Managing templates {#creating-templates} + +Templates are metadata records that you can use for describing new resources. This topic describes how to load and manage templates. + +## Creating and managing templates + +You can: + +- Manage templates in the catalog the same way as metadata records, with a special 'template'-tag. +- Create, update and remove templates using the `contribute` section. +- Convert metadata records to templates and vice versa at any time from the metadata editor using the `save as template` button. + +![](img/save-as-templates.png) + +You can assign templates to limited groups, so only these groups can use the template in their work process (See [managing-privileges](managing-privileges.md)). + +## Loading default templates + +The `Metadata and Templates` page in the Administration page displays all available standards. + +![](../../install-guide/img/metadata-and-templates.png) + +If you have provided these in the schema plugin, using this page, users can: + +- load default samples +- load default templates + +**Note**: You have to be logged in as an administrator to access this page and function. + +![](../../install-guide/img/templates.png) + +## Importing templates + +An alternate way of loading templates is to use the metadata import page where you can import XML files and selecting the type of record: `template`. + +![](img/import-template.png) + +## Creating your own templates + +Each standard provides default samples, but you can build your own template to make editing task as easy as possible depending on: + +- the type of resources to describe (eg. template for paper maps) +- the structure of your organization (eg. defining templates per services) +- the type of usage of the metadata (eg. public use, internal use, data quality) +- the type of users + +In a template, you should: + +- set as many default values as you can (eg. define default contact) +- create elements that your encoding guideline recommend (to not spend time on searching elements in the advanced view) +- provide instructions + +The main goal is to guide editor work without requiring too much knowledge of the standard use. + +For further customization, you could improve the schema plugin by defining custom documentation, recommended values, \... (see [implementing-a-schema-plugin](implementing-a-schema-plugin.md)) or creating custom view (see [creating-custom-editor](creating-custom-editor.md)). diff --git a/docs/manual/docs/user-guide/describing-information/multilingual-editing.md b/docs/manual/docs/user-guide/describing-information/multilingual-editing.md new file mode 100644 index 000000000000..d95a93292cc9 --- /dev/null +++ b/docs/manual/docs/user-guide/describing-information/multilingual-editing.md @@ -0,0 +1,24 @@ +# Multilingual editing + +A few standards support multilingual metadata (eg. ISO19139, ISO19115-1). A default template is provided for ISO19139 but the user can add translation to an existing record. + +To declare a new language in a metadata record: + +1. Check the main language defined in the metadata section. +2. Add one or more languages in the other language in the metadata section. + +3\. Once this is completed, the editor form provides one field per languages declared. There are 2 types of layouts: + +- One field per language displayed one below the others (eg. default mode for title) to view all available translations +- One field per language with the list of language to switch between language. + +![](img/multilingual-editing.png) + +## Switching layout modes + +To switch from one mode to another layout, use the `all` link. + +- When loading the editor, the selected language is the user interface language used if the language is defined in the current record. +- When viewing the record, if a translation exists in the user interface language, this translation is used; if not, the main metadata language is used. + +Note: This behaviour also applies to multilingual ISO19139 records requested in dublin core from the CSW services. diff --git a/docs/manual/docs/user-guide/export/img/export.png b/docs/manual/docs/user-guide/export/img/export.png new file mode 100644 index 000000000000..a59b1892be2c Binary files /dev/null and b/docs/manual/docs/user-guide/export/img/export.png differ diff --git a/docs/manual/docs/user-guide/export/index.md b/docs/manual/docs/user-guide/export/index.md new file mode 100644 index 000000000000..176b0f7c66f6 --- /dev/null +++ b/docs/manual/docs/user-guide/export/index.md @@ -0,0 +1,99 @@ +# Exporting records {#export} + +GeoNetwork has three different export options to export metadata. They operate on selected sets of metadata from the search results. As such they are accessible from the "actions on selection" menu as shown in the following example: + +![](img/export.png) + +## Export as a ZIP archive + +When a selected set of metadata records is exported as a ZIP archive, each metadata record is inserted in the ZIP archive as a directory containing the metadata, any data uploaded with the metadata record and the thumbnails. This type of ZIP archive is the MEF (Metadata Exchange Format) Version 2.0. You can find more details of MEF V2 in the GeoNetwork Developers Manual. + +## Export as a CSV file + +When a selected set of metadata records is exported as a CSV/TXT file, the following process takes place for each metadata record: + +- a brief summary of some of the elements from each selected metadata record is generated by applying the brief template from the metadata schema. The main folder of the different available schema is `GEONETWORK_DATA_DIR/config/schema_plugins/`. In particular, for an iso19115-3.2018 it is located here: `GEONETWORK_DATA_DIR/config/schema_plugins/iso19115-3.2018/layout/tpl-csv.xsl` +- the elements common to the brief summary elements for all metadata records are extracted (as they may differ according to the metadata schema) +- a title record with comma separated element names is created +- the content of each element is laid out in comma separated form. Where there is more than one child element in the brief element (eg. for geoBox), the content from each child element is separated using '###'. + +An example of an ISO metadata record in CSV format is shown as follows: + + "schema","uuid","id","title","metadatacreationdate","geoBox" + + "iso19115-3.2018","27b5f8b8-053a-11ea-aa46-02000a08f492","1312","S2A_MSIL1C_20161218T102432_N0204_R065_T32TMS_20161218T102606","2019-11-12T10:49:52,"7.691141905380134###9.128266945124432###45.958258688896564###46.95363733424615" + +It is possible to override the brief summary of metadata elements by creating a special template in the presentation XSLT of the metadata schema. As an example of how to do this, we will override the brief summary for the iso19115-3.2018 schema and replace it with other possible useful information. + +In the case of iso19115-3.2018 there are the two files to be modified: + +1. geonetwork/WEB-INF/data/config/schema_plugins/iso19115-3.2018/layout/tpl-csv.xsl +2. geonetwork/xslt/services/csv/csv-search.xsl + +For example, to export the following elements: + +`"uuid","title","cloud_coverage_percentage","category","date-creation"` + +in the first file, it is necessary to proceed as in the following: + +- to comment the elements `id, title, abstract` except + +```{=html} + +``` + + + + +- to add a similar line in between the abstract and category elements: + +```{=html} + +``` + myfieldvalue + +For example: + + + <xsl:copy-of select="mdb:identificationInfo/*/mri:citation/*/cit:title"/> + + + + + + + + +About cloud coverage percentage, in particular, please remember to add the namespace if missing: + +`xmlns:mrc="http://standards.iso.org/iso/19115/-3/mrc/2.0"` + +If not interested in other information, please comment all other lines except: + + + +because it is used to sort results by schema. + +About the second file, *csv-search.xsl*, to avoid printing automatically the 3 columns: + +`"schema","uuid","id",` + +you have to comment the following lines: + + "schema" + + "uuid" + + "id" + + +and + + + +These changes will create the desired output: + + "uuid","title","cloud_coverage_percentage","category","date-creation" + "c94da70e-066e-11ea-aa22-02000a08f492","S2A_MSIL1C_20180320T101021_N0206_R022_T33TUM_20180320T122057","36.0368","dataset","2018-03-20T12:20:57", diff --git a/docs/manual/docs/user-guide/harvesting/harvesting-csw.md b/docs/manual/docs/user-guide/harvesting/harvesting-csw.md new file mode 100644 index 000000000000..12be37f58ac7 --- /dev/null +++ b/docs/manual/docs/user-guide/harvesting/harvesting-csw.md @@ -0,0 +1,28 @@ +# Harvesting CSW services + +This harvester will connect to a remote CSW server and retrieve metadata records that match the query parameters specified. + +## Adding a CSW harvester + +The figure above shows the options available: + +- **Site** - Options about the remote site. + + > - *Name* - This is a short description of the remote site. It will be shown in the harvesting main page as the name for this instance of the CSW harvester. + > - *Service URL* - The URL of the capabilities document of the CSW server to be harvested. eg. . This document is used to discover the location of the services to call to query and retrieve metadata. + > - *Icon* - An icon to assign to harvested metadata. The icon will be used when showing harvested metadata records in the search results. + > - *Use account* - Account credentials for basic HTTP authentication on the CSW server. + +- **Search criteria** - Using the Add button, you can add several search criteria. You can query only the fields recognised by the CSW protocol. + +- **Options** - Scheduling options. + +- **Options** - Specific harvesting options for this harvester. + + > - *Validate* - If checked, the metadata will be validated after retrieval. If the validation does not pass, the metadata will be skipped. + +- **Privileges** - Assign privileges to harvested metadata. + +- **Categories** + +## Notes diff --git a/docs/manual/docs/user-guide/harvesting/harvesting-filesystem.md b/docs/manual/docs/user-guide/harvesting/harvesting-filesystem.md new file mode 100644 index 000000000000..9565ff8b42ef --- /dev/null +++ b/docs/manual/docs/user-guide/harvesting/harvesting-filesystem.md @@ -0,0 +1,30 @@ +# Local File System Harvesting {#localfilesystem_harvester} + +This harvester will harvest metadata as XML files from a filesystem available on the machine running the GeoNetwork server. + +## Adding a Local File System harvester + +The figure above shows the options available: + +- **Site** - Options about the remote site. + + > - *Name* - This is a short description of the filesystem harvester. It will be shown in the harvesting main page as the name for this instance of the Local Filesystem harvester. + > - *Directory* - The path name of the directory containing the metadata (as XML files) to be harvested. + > - *Recurse* - If checked and the *Directory* path contains other directories, then the harvester will traverse the entire file system tree in that directory and add all metadata files found. + > - *Keep local if deleted at source* - If checked then metadata records that have already been harvested will be kept even if they have been deleted from the *Directory* specified. + > - *Icon* - An icon to assign to harvested metadata. The icon will be used when showing harvested metadata records in the search results. + +- **Options** - Scheduling options. + +- **Harvested Content** - Options that are applied to harvested content. + + - *Apply this XSLT to harvested records* - Choose an XSLT here that will convert harvested records to a different format. + - *Validate* - If checked, the metadata will be validated after retrieval. If the validation does not pass, the metadata will be skipped. + +- **Privileges** - Assign privileges to harvested metadata. + +- **Categories** + +## Notes + +> - in order to be successfully harvested, metadata records retrieved from the file system must match a metadata schema in the local GeoNetwork instance diff --git a/docs/manual/docs/user-guide/harvesting/harvesting-geonetwork.md b/docs/manual/docs/user-guide/harvesting/harvesting-geonetwork.md new file mode 100644 index 000000000000..b3bbff7fb440 --- /dev/null +++ b/docs/manual/docs/user-guide/harvesting/harvesting-geonetwork.md @@ -0,0 +1,3 @@ +# GeoNetwork 2.0 Harvester {#gn2_harvester} + +GeoNetwork 2.1 introduced a new powerful harvesting engine which is not compatible with GeoNetwork version 2.0 based catalogues. Old 2.0 servers can still harvest from 2.1 servers but harvesting metadata from a v2.0 server requires this harvesting type. Due to the fact that GeoNetwork 2.0 was released more than 5 years ago, this harvesting type is deprecated. diff --git a/docs/manual/docs/user-guide/harvesting/harvesting-geoportal.md b/docs/manual/docs/user-guide/harvesting/harvesting-geoportal.md new file mode 100644 index 000000000000..56e08c5d2c80 --- /dev/null +++ b/docs/manual/docs/user-guide/harvesting/harvesting-geoportal.md @@ -0,0 +1,36 @@ +# GeoPortal REST Harvesting {#geoportal_rest_harvester} + +This harvester will connect to a remote GeoPortal version 9.3.x or 10.x server and retrieve metadata records that match the query parameters specified using the GeoPortal REST API. + +## Adding a GeoPortal REST harvester + +The figure above shows the options available: + +- **Site** - Options about the remote site. + + > - *Name* - This is a short description of the remote site. It will be shown in the harvesting main page as the name for this instance of the GeoPortal REST harvester. + > - *Base URL* - The base URL of the GeoPortal server to be harvested. eg. . The harvester will add the additional path required to access the REST services on the GeoPortal server. + > - *Icon* - An icon to assign to harvested metadata. The icon will be used when showing harvested metadata records in the search results. + +- **Search criteria** - Using the Add button, you can add several search criteria. You can query any field on the GeoPortal server using the Lucene query syntax described at . + +- **Options** - Scheduling options. + +- **Harvested Content** - Options that are applied to harvested content. + + - *Apply this XSLT to harvested records* - Choose an XSLT here that will convert harvested records to a different format. See notes section below for typical usage. + - *Validate* - If checked, the metadata will be validated after retrieval. If the validation does not pass, the metadata will be skipped. + +- **Privileges** - Assign privileges to harvested metadata. + +- **Categories** + +## Notes + +- this harvester uses two REST services from the GeoPortal API: + +> - `rest/find/document` with searchText parameter to return an RSS listing of metadata records that meet the search criteria (maximum 100000) +> - `rest/document` with id parameter from each result returned in the RSS listing + +- this harvester has been tested with GeoPortal 9.3.x and 10.x. It can be used in preference to the CSW harvester if there are issues with the handling of the OGC standards etc. +- typically ISO19115 metadata produced by the Geoportal software will not have a 'gmd' prefix for the namespace `http://www.isotc211.org/2005/gmd`. GeoNetwork XSLTs will not have any trouble understanding this metadata but will not be able to map titles and codelists in the viewer/editor. To fix this problem, please select the ``Add-gmd-prefix`` XSLT for the *Apply this XSLT to harvested records* in the **Harvested Content** set of options described earlier diff --git a/docs/manual/docs/user-guide/harvesting/harvesting-oaipmh.md b/docs/manual/docs/user-guide/harvesting/harvesting-oaipmh.md new file mode 100644 index 000000000000..b99100ee37b5 --- /dev/null +++ b/docs/manual/docs/user-guide/harvesting/harvesting-oaipmh.md @@ -0,0 +1,36 @@ +# OAIPMH Harvesting {#oaipmh_harvester} + +This is a harvesting protocol that is widely used among libraries. GeoNetwork implements version 2.0 of the protocol. + +## Adding an OAI-PMH harvester + +An OAI-PMH server implements a harvesting protocol that GeoNetwork, acting as a client, can use to harvest metadata. + +Configuration options: + +- **Site** - Options describing the remote site. + - *Name* - This is a short description of the remote site. It will be shown in the harvesting main page as the name for this instance of the OAIPMH harvester. + - *URL* - The URL of the OAI-PMH server from which metadata will be harvested. + - *Icon* - An icon to assign to harvested metadata. The icon will be used when showing search results. + - *Use account* - Account credentials for basic HTTP authentication on the OAIPMH server. +- **Search criteria** - This allows you to select metadata records for harvest based on certain criteria: + - *From* - You can provide a start date here. Any metadata whose last change date is equal to or greater than this date will be harvested. To add or edit a value for this field you need to use the icon alongside the text box. This field is optional so if you don't provide a start date the constraint is dropped. Use the icon to clear the field. + - *Until* - Functions in the same way as the *From* parameter but adds an end constraint to the last change date search. Any metadata whose last change data is less than or equal to this data will be harvested. + - *Set* - An OAI-PMH server classifies metadata into sets (like categories in GeoNetwork). You can request all metadata records that belong to a set (and any of its subsets) by specifying the name of that set here. + - *Prefix* - 'Prefix' means metadata format. The oai_dc prefix must be supported by all OAI-PMH compliant servers. + - You can use the Add button to add more than one Search Criteria set. Search Criteria sets can be removed by clicking on the small cross at the top left of the set. + +!!! note + + the 'OAI provider sets' drop down next to the *Set* text box and the 'OAI provider prefixes' drop down next to the *Prefix* textbox are initially blank. After specifying the connection URL, you can press the **Retrieve Info** button, which will connect to the remote OAI-PMH server, retrieve all supported sets and prefixes and fill the drop downs with these values. Selecting a value from either of these drop downs will fill the appropriate text box with the selected value. + + +- **Options** - Scheduling Options. +- **Privileges** +- **Categories** + +## Notes + +- if you request the oai_dc output format, GeoNetwork will convert it to Dublin Core format. +- when you edit a previously created OAIPMH harvester instance, both the *set* and *prefix* drop down lists will be empty. You have to press the retrieve info button again to connect to the remote server and retrieve set and prefix information. +- the id of the remote server must be a UUID. If not, metadata can be harvested but during hierarchical propagation id clashes could corrupt harvested metadata. diff --git a/docs/manual/docs/user-guide/harvesting/harvesting-ogcwxs.md b/docs/manual/docs/user-guide/harvesting/harvesting-ogcwxs.md new file mode 100644 index 000000000000..a2914bf00506 --- /dev/null +++ b/docs/manual/docs/user-guide/harvesting/harvesting-ogcwxs.md @@ -0,0 +1,42 @@ +# Harvesting OGC Services {#ogcwxs_harvester} + +An OGC service implements a GetCapabilities operation that GeoNetwork, acting as a client, can use to produce metadata for the service (ISO19119) and resources delivered by the service (ISO19115/19139). This harvester supports the following OGC services and versions: + +> - Web Map Service (WMS) - versions 1.0.0, 1.1.1, 1.3.0 +> - Web Feature Service (WFS) - versions 1.0.0 and 1.1.0 +> - Web Coverage Service (WCS) - version 1.0.0 +> - Web Processing Service (WPS) - version 0.4.0 and 1.0.0 +> - Catalogue Services for the Web (CSW) - version 2.0.2 +> - Sensor Observation Service (SOS) - version 1.0.0 + +## Adding an OGC Service Harvester + +Configuration options: + +- **Site** + + > - *Name* - The name of the catalogue and will be one of the search criteria. + > - *Type* - The type of OGC service indicates if the harvester has to query for a specific kind of service. Supported type are WMS (1.0.0, 1.1.1, 1.3.0), WFS (1.0.0 and 1.1.0), WCS (1.0.0), WPS (0.4.0 and 1.0.0), CSW (2.0.2) and SOS (1.0.0). + > - *Service URL* - The service URL is the URL of the service to contact (without parameters like "REQUEST=GetCapabilities", "VERSION=", \...). It has to be a valid URL like . + > - *Metadata language* - Required field that will define the language of the metadata. It should be the language used by the OGC web service administrator. + > - *ISO topic category* - Used to populate the topic category element in the metadata. It is recommended to choose one as the topic category is mandatory for the ISO19115/19139 standard if the hierarchical level is "datasets". + > - *Type of import* - By default, the harvester produces one service metadata record. Check boxes in this group determine the other metadata that will be produced. + > - *Create metadata for layer elements using GetCapabilities information*: Checking this option means that the harvester will loop over datasets served by the service as described in the GetCapabilities document. + > - *Create metadata for layer elements using MetadataURL attributes*: Checkthis option means that the harvester will generate metadata from an XML document referenced in the MetadataUrl attribute of the dataset in the GetCapabilities document. If the document referred to by this attribute is not valid (eg. unknown schema, bad XML format), the GetCapabilities document is used as per the previous option. + > - *Create thumbnails for WMS layers*: If harvesting from an OGC WMS, then checking this options means that thumbnails will be created during harvesting. + > - *Target schema* - The metadata schema of the dataset metadata records that will be created by this harvester. + > - *Icon* - The default icon displayed as attribution logo for metadata created by this harvester. + +- **Options** - Scheduling Options. + +- **Privileges** + +- **Category for service** - Metadata for the harvested service is assigned to the category selected in this option (eg. "interactive resources"). + +- **Category for datasets** - Metadata for the harvested datasets is assigned to the category selected in this option (eg. "datasets"). + +## Notes + +- every time the harvester runs, it will remove previously harvested records and create new records. GeoNetwork will generate the uuid for all metadata (both service and datasets). The exception to this rule is dataset metadata created using the MetadataUrl tag is in the GetCapabilities document, in that case, the uuid of the remote XML document is used instead +- thumbnails can only be generated when harvesting an OGC Web Map Service (WMS). The WMS should support the WGS84 projection +- the chosen *Target schema* must have the support XSLTs which are used by the harvester to convert the GetCapabilities statement to metadata records from that schema. If in doubt, use iso19139. diff --git a/docs/manual/docs/user-guide/harvesting/harvesting-sde.md b/docs/manual/docs/user-guide/harvesting/harvesting-sde.md new file mode 100644 index 000000000000..4f74ce6d59cf --- /dev/null +++ b/docs/manual/docs/user-guide/harvesting/harvesting-sde.md @@ -0,0 +1,60 @@ +# Harvesting an ARCSDE Node {#sde_harvester} + +This is a harvesting protocol for metadata stored in an ArcSDE installation. + +## Adding an ArcSDE harvester + +The harvester identifies the ESRI metadata format: ESRI ISO, ESRI FGDC to apply the required xslts to transform metadata to ISO19139. Configuration options: + +- **Identification** + + > - *Name* - This is a short description of the node. It will be shown in the harvesting main page. + > - *Group* - User admin of this group and catalog administrator can manage this node. + > - *Harvester user* - User that owns the harvested metadata. + +- **Schedule** - Schedule configuration to execute the harvester. + +- **Configuration for protocol ArcSDE** + + > - *Server* - ArcSde server IP address or name. + > + > - *Port* - ArcSde service port (typically 5151) or ArcSde database port, depending on the connection type selected, see below the *Connection type* section. + > + > - *Database name* - ArcSDE instance name (typically esri_sde). + > + > - *ArcSde version* - ArcSde version to harvest. The data model used by ArcSde is different depending on the ArcSde version. + > + > - + > + > *Connection type*. + > + > : - *ArcSde service* - Uses the ArcSde service to retrieve the metadata. + > + > > ArcSDE Java API libraries need to be installed by the user in GeoNetwork (folder INSTALL_DIR_GEONETWORK/WEB-INF/lib), as these are proprietary libraries not distributed with GeoNetwork. + > > + > > The following jars are required: + > > + > > > - jpe_sdk.jar + > > > - jsde_sdk.jar + > > + > > dummy-api-XXX.jar must be removed from INSTALL_DIR/web/geonetwork/WEB-INF/lib + > + > - *Database direct connection* - Uses a database connection (JDBC) to retrieve the metadata. With + > + > > Postgres JDBC drivers are distributed with GeoNetwork, but not for Oracle or SqlServer. + > + > - *Database type* - ArcSde database type: Oracle, Postgres, SqlServer. Only available if connection type is configured to *Database direct connection*. + > + > - *Username* - Username to connect to ArcSDE server. + > + > - *Password* - Password of the ArcSDE user. + +- **Advanced options for protocol arcsde** + + > - *Validate records before import* - Defines the criteria to reject metadata that is invalid according to XSD and schematron rules. + > + > > - Accept all metadata without validation. + > > - Accept metadata that are XSD valid. + > > - Accept metadata that are XSD and schematron valid. + +- **Privileges** - Assign privileges to harvested metadata. diff --git a/docs/manual/docs/user-guide/harvesting/harvesting-simpleurl.md b/docs/manual/docs/user-guide/harvesting/harvesting-simpleurl.md new file mode 100644 index 000000000000..d63118347658 --- /dev/null +++ b/docs/manual/docs/user-guide/harvesting/harvesting-simpleurl.md @@ -0,0 +1,47 @@ +# Simple URL harvesting (opendata) {#harvesting-simpleurl-services} + +This harvester connects to a remote server via a simple URL to retrieve metadata records. This allows harvesting opendata catalogs such as opendatasoft, ESRI, DKAN and more. + +## Adding a simple URL harvester + +- **Site** - Options about the remote site. + + > - *Name* - This is a short description of the remote site. It will be shown in the harvesting main page as the name for this instance of the harvester. + > - *Service URL* - The URL of the server to be harvested. This can include pagination params like `?start=0&rows=20` + > - *loopElement* - Propery/element containing a list of the record entries. (Indicated as an absolute path from the document root.) eg. `/datasets` + > - *numberOfRecordPath* : Property indicating the total count of record entries. (Indicated as an absolute path from the document root.) eg. `/nhits` + > - *recordIdPath* : Property containing the record id. eg. `datasetid` + > - *pageFromParam* : Property indicating the first record item on the current "page" eg. `start` + > - *pageSizeParam* : Property indicating the number of records containned in the current "page" eg. `rows` + > - *toISOConversion* : Name of the conversion schema to use, which must be available as XSL on the GN instance. eg. `OPENDATASOFT-to-ISO19115-3-2018` + > + > Note: GN looks for schemas by name in . These schemas might internally include schemas from other locations like . To indicate the `fromJsonOpenDataSoft` schema for example, from the latter location directly in the admin UI the following syntax can be used: `schema:iso19115-3.2018:convert/fromJsonOpenDataSoft`. + > + > **Sample configuration for opendatasoft** + > + > - *loopElement* - `/datasets` + > - *numberOfRecordPath* : `/nhits` + > - *recordIdPath* : `datasetid` + > - *pageFromParam* : `start` + > - *pageSizeParam* : `rows` + > - *toISOConversion* : `OPENDATASOFT-to-ISO19115-3-2018` + > + > **Sample configuration for ESRI** + > + > - *loopElement* - `/dataset` + > - *numberOfRecordPath* : `/result/count` + > - *recordIdPath* : `landingPage` + > - *pageFromParam* : `start` + > - *pageSizeParam* : `rows` + > - *toISOConversion* : `ESRIDCAT-to-ISO19115-3-2018` + > + > **Sample configuration for DKAN** + > + > - *loopElement* - `/result/0` + > - *numberOfRecordPath* : `/result/count` + > - *recordIdPath* : `id` + > - *pageFromParam* : `start` + > - *pageSizeParam* : `rows` + > - *toISOConversion* : `DKAN-to-ISO19115-3-2018` + +- **Privileges** - Assign privileges to harvested metadata. diff --git a/docs/manual/docs/user-guide/harvesting/harvesting-thredds.md b/docs/manual/docs/user-guide/harvesting/harvesting-thredds.md new file mode 100644 index 000000000000..9968df503076 --- /dev/null +++ b/docs/manual/docs/user-guide/harvesting/harvesting-thredds.md @@ -0,0 +1,104 @@ +# THREDDS Harvesting {#thredds_harvester} + +THREDDS catalogs describe inventories of datasets. They are organised in a hierarchical manner, listing descriptive information and access methods for each dataset. They typically catalog netCDF datasets but are not restricted to these types of files. This harvesting type crawls through a THREDDS catalog harvesting metadata for datasets and services described in it or in referenced netCDF datasets. This harvesting type can extract fragments of metadata from the THREDDS catalog, allowing the user to link or copy these fragments into a template to create metadata records. + +## Adding a THREDDS Catalog Harvester + +The available options are: + +- **Site** + + > - *Name* - This is a short description of the THREDDS catalog. It will be shown in the harvesting main page as the name of this THREDDS harvester instance. + > + > - *Catalog URL* - The remote URL of the THREDDS Catalog from which metadata will be harvested. This must be the xml version of the catalog (i.e. ending with .xml). The harvester will crawl through all datasets and services defined in this catalog creating metadata for them as specified by the options described further below. + > + > - *Metadata language* - Use this option to specify the language of the metadata to be harvested. + > + > - *ISO topic category* - Use this option to specify the ISO topic category of service metadata. + > + > - *Create ISO19119 metadata for all services in catalog* - Select this option to generate iso19119 metadata for services defined in the THREDDS catalog (eg. OpenDAP, OGC WCS, ftp) and for the THREDDS catalog itself. + > + > - *Create metadata for Collection datasets* - Select this option to generate metadata for each collection dataset (THREDDS dataset containing other datasets). Creation of metadata can be customised using options that are displayed when this option is selected as described further below. + > + > - *Create metadata for Atomic datasets* - Select this option to generate metadata for each atomic dataset (THREDDS dataset not containing other datasets -- for example cataloguing a netCDF dataset). Creation of metadata can be customised using options that are displayed when this option is selected as described further below. + > + > > - *Ignore harvesting attribute* - Select this option to harvest metadata for selected datasets regardless of the harvest attribute for the dataset in the THREDDS catalog. If this option is not selected, metadata will only be created for datasets that have a harvest attribute set to true. + > > + > > - *Extract DIF metadata elements and create ISO metadata* - Select this option to generate ISO metadata for datasets in the THREDDS catalog that have DIF metadata elements. When this option is selected a list of schemas is shown that have a DIFToISO.xsl stylesheet available (see for example `GEONETWORK_DATA_DIR/config/schema_plugins/iso19139/convert/DIFToISO.xsl`). Metadata is generated by reading the DIF metadata items in the THREDDS into a DIF format metadata record and then converting that DIF record to ISO using the DIFToISO stylesheet. + > > + > > - *Extract Unidata dataset discovery metadata using fragments* - Select this option when the metadata in your THREDDS or netCDF/ncml datasets follows Unidata dataset discovery conventions (see ). You will need to write your own stylesheets to extract this metadata as fragments and define a template to combine with the fragments. When this option is selected the following additional options will be shown: + > > + > > > - *Select schema for output metadata records* - choose the ISO metadata schema or profile for the harvested metadata records. Note: only the schemas that have THREDDS fragment stylesheets will be displayed in the list (see the next option for the location of these stylesheets). + > > > - *Stylesheet to create metadata fragments* - Select a stylesheet to use to convert metadata for the dataset (THREDDS metadata and netCDF ncml where applicable) into metadata fragments. These stylesheets can be found in the directory convert/ThreddsToFragments in the schema directory eg. for iso19139 this would be `GEONETWORK_DATA_DIR/config/schema_plugins/iso19139/convert/ThreddsToFragments`. + > > > - *Create subtemplates for fragments and XLink them into template* - Select this option to create a subtemplate (=metadata fragment stored in GeoNetwork catalog) for each metadata fragment generated. + > > > - *Template to combine with fragments* - Select a template that will be filled in with the metadata fragments generated for each dataset. The generated metadata fragments are used to replace referenced elements in the templates with an xlink to a subtemplate if the *Create subtemplates* option is checked. If *Create subtemplates* is not checked, then the fragments are simply copied into the template metadata record. + > > > - For Atomic Datasets , one additional option is provided *Harvest new or modified datasets only*. If this option is checked only datasets that have been modified or didn't exist when the harvester was last run will be harvested. + > + > - *Create Thumbnails* - Select this option to create thumbnails for WMS layers in referenced WMS services + > + > - *Icon* - An icon to assign to harvested metadata. The icon will be used when showing search results. + +- **Options** - Scheduling Options. + +- **Privileges** + +- **Category for Service** - Select the category to assign to the ISO19119 service records for the THREDDS services. + +- **Category for Datasets** - Select the category to assign the generated metadata records (and any subtemplates) to. + +At the bottom of the page there are the following buttons: + +- **Back** - Go back to the main harvesting page. The harvesting definition is not added. +- **Save** - Saves this harvester definition creating a new harvesting instance. After the save operation has completed, the main harvesting page will be displayed. + +## More about harvesting THREDDS DIF metadata elements with the THREDDS Harvester + +THREDDS catalogs can include elements from the DIF metadata standard. The Unidata netcdf-java library provides a DIFWriter process that can create a DIF metadata record from these elements. GeoNetwork has a DIFToISO stylesheet to transform these DIF records to ISO. + +## More about harvesting Unidata dataset discovery metadata with the THREDDS Harvester + +The options described above for the *Extract Unidata dataset discovery metadata using fragments* (see for more details of these conventions) invoke the following process for each collection dataset or atomic dataset in the THREDDS catalog: + +1. The harvester bundles up the catalog URI, a generated uuid, the THREDDS metadata for the dataset (generated using the catalog subset web service) and the ncml for netCDF datasets into a single xml document. An example is shown below. +2. This document is then transformed using the specified stylesheet (see *Stylesheet* option above) to obtain a metadata fragments document. +3. The metadata fragment harvester is then called to create subtemplates and/or metadata for the each dataset as requested + +## Example + +DIF Metadata elements on datasets in THREDDS catalogs are not as widely used as metadata elements that follow the Unidata dataset discovery metadata conventions. This example will show how to harvest metadata elements that follow the Unidata data discovery conventions (see ). + +Two reference stylesheets are provided as examples of how to harvest metadata fragments from a THREDDS catalog. One of these stylesheets, thredds-metadata.xsl, is for generating iso19139 metadata fragments from THREDDS metadata following Unidata dataset discovery conventions. The other stylesheet, netcdf-attributes.xsl, is for generating iso19139 fragments from netCDF datasets following Unidata dataset discovery conventions. These stylesheets are designed for use with the 'HARVESTING TEMPLATE -- THREDDS -- DATA DISCOVERY' template and can be found in the schema 'convert' directory eg. for ISO19139 this is `GEONETWORK_DATA_DIR/config/schema_plugins/iso19139/convert/ThreddsToFragments`. + +A sample template 'HARVESTING TEMPLATE -- THREDDS -- DATA DISCOVERY' has been provided for use with the stylesheets described above for the iso19139 metadata schema. This template is in the schema 'templates' directory eg. for ISO19139, this is `GEONETWORK_DATA_DIR/config/schema_plugins/iso19139/templates/thredds-harvester-unidata-data-discovery.xml`. *Before* attempting to run this example, you should make sure that this template and others from the iso19139 schema have been loaded into GeoNetwork using the 'Add templates' function in the Administration menu. + +We'll now give an example of how to set up a harvester and harvest THREDDS metadata from one of the public unidata motherlode catalogs at . If you were to paste this URL into your browser, you would see the XML representation of this THREDDS catalog. This is the document that is read and converted into metadata by the THREDDS harvester. + +In GeoNetwork, go into the Administration menu, choose Harvesting Management as described earlier. Add a THREDDS Catalog harvester. Fill out the harvesting management form. + +The first thing to notice is that the *Service URL* should be . Make sure that you use the xml version of the catalog. If you use an html version, you will not be able to harvest any metadata. + +Now because this unidata motherload THREDDS catalog has lots of file level datasets (many thousands in fact), we will only harvest collection metadata. To do this you should check *Create metadata for Collection Datasets* and ignore the atomic datasets. + +Next, because the metadata in this catalog follows Unidata data discovery conventions, so we will choose *Extract Unidata dataset discovery metadata using fragments*. + +Next, we will check *Ignore harvesting attribute*. We do this because datasets in the THREDDS catalog can have an attribute indicating whether the dataset should be harvested or not. Since none of the datasets in this catalog have the harvesting attribute, we will ignore it. If we didn't check this box, all the datasets would be skipped. + +Next we will select the metadata schema that the harvested metadata will be written out in. We will choose *iso19139* here because this is the schema for which we have stylesheets that will convert THREDDS metadata to fragments of iso19139 metadata and a template into which these fragments of metadata can be copied or linked. After choosing *iso19139*, choices will appear that show these stylesheets and templates. + +The first choice is the stylesheet that will create iso19139 metadata fragments. Because we are interested in the thredds metadata elements in the THREDDS catalog, we will choose the *(iso19139) thredds-metadata* (located in `GEONETWORK_DATA_DIR/config/schema_plugins/iso19139/convert/ThreddsToFragments`) to convert these elements to iso19139 metadata fragments. + +For the purposes of this demonstration, we will *not* check *Create subtemplates for fragments (xlinks\...)*. This means that the fragments of metadata created by the stylesheet will be copied directly into the metadata template. They will not be able to be reused (eg. shared between different metadata records). See the earlier section on metadata fragments if you are not sure what this means. + +Finally, we will choose *HARVESTING TEMPLATE - THREDDS - UNIDATA DISCOVERY* as the template metadata record that will be combined with the metadata fragments to create the output records. This template will have been loaded into GeoNetwork from `GEONETWORK_DATA_DIR/config/schema_plugins/iso19139/templates/thredds-harvester-unidata-data-discovery.xml` through the Add Templates function in the Administration interface. This template could be filled out with metadata common to all records before the harvester is run. The process by which the template is used to create metadata records is as follows: + +> 1. For each dataset in the THREDDS catalog, the template will be copied to create a new iso19139 metadata record +> 2. Each fragment of metadata harvested from a THREDDS dataset will be copied into the new iso19139 metadata record by matching an identifier in the template with an identifier in the fragment (this match is created by the developer of the template and the stylesheet). +> 3. The new record is then inserted into the GeoNetwork metadata catalog and the record content is indexed in Lucene for searching. + +You can then fill out the remainder of the form according to how often you want the harvested metadata to be updated, what categories will be assigned to the created metadata record, which icon will be displayed with the metadata records in the search results and what the privileges on the created metadata records will be. + +Save the harvester screen. Then from the harvesting management screen, check the box beside the newly created harvester, *Activate* it and then *Run* it. After a few moments (depending on your internet connection and machine) you should click on *Refresh*. If your harvest has been successful you should see a results panel appear something like the one shown in the following screenshot. + +Notice that there were 48 metadata records created for the 48 collection level datasets in this THREDDS catalog. Each metadata record was formed by duplicating the metadata template and then copying 13 fragments of metadata into it - hence the total of 624 fragments harvested. + +An example of one of the collection level metadata records created by the harvester in this example and rendered by GeoNetwork is shown below. diff --git a/docs/manual/docs/user-guide/harvesting/harvesting-webdav.md b/docs/manual/docs/user-guide/harvesting/harvesting-webdav.md new file mode 100644 index 000000000000..c4c38b7daa30 --- /dev/null +++ b/docs/manual/docs/user-guide/harvesting/harvesting-webdav.md @@ -0,0 +1,28 @@ +# WEBDAV Harvesting {#webdav_harvester} + +This harvesting type uses the WebDAV (Distributed Authoring and Versioning) protocol or the WAF (web accessible folder) protocol to harvest metadata from a web server. It can be useful to users that want to publish their metadata through a web server that offers a DAV interface. The protocol permits retrieval of the contents of a web page (a list of files) along with the change date. + +## Adding a WebDAV harvester + +- **Site** - Options about the remote site. + + > - *Subtype* - Select WebDAV or WAF according to the type of server being harvested. + > - *Name* - This is a short description of the remote site. It will be shown in the harvesting main page as the name for this instance of the WebDAV harvester. + > - *URL* - The remote URL from which metadata will be harvested. Each file found that ends with .xml is assumed to be a metadata record. + > - *Icon* - An icon to assign to harvested metadata. The icon will be used when showing search results. + > - *Use account* - Account credentials for basic HTTP authentication on the WebDAV/WAF server. + +- **Options** - Scheduling options. + +- **Options** - Specific harvesting options for this harvester. + + > - *Validate* - If checked, the metadata will be validated after retrieval. If the validation does not pass, the metadata will be skipped. + > - *Recurse* - When the harvesting engine will find folders, it will recursively descend into them. + +- **Privileges** - Assign privileges to harvested metadata. + +- **Categories** + +## Notes + +- The same metadata could be harvested several times by different instances of the WebDAV harvester. This is not good practise because copies of the same metadata record will have a different UUID. diff --git a/docs/manual/docs/user-guide/harvesting/harvesting-wfs-features.md b/docs/manual/docs/user-guide/harvesting/harvesting-wfs-features.md new file mode 100644 index 000000000000..7af6ac477d1e --- /dev/null +++ b/docs/manual/docs/user-guide/harvesting/harvesting-wfs-features.md @@ -0,0 +1,125 @@ +# WFS GetFeature Harvesting {#getfeature_harvester} + +Metadata can be present in the tables of a relational databases, which are commonly used by many organisations. Putting an OGC Web Feature Service (WFS) over a relational database will allow metadata to be extracted via standard query mechanisms. This harvesting type allows the user to specify a GetFeature query and map information from the features to fragments of metadata that can be linked or copied into a template to create metadata records. + +## Adding an OGC WFS GetFeature Harvester + +An OGC web feature service (WFS) implements a GetFeature query operation that returns data in the form of features (usually rows from related tables in a relational database). GeoNetwork, acting as a client, can read the GetFeature response and apply a user-supplied XSLT stylesheet to produce metadata fragments that can be linked or copied into a user-supplied template to build metadata records. + +The available options are: + +- **Site** + +> - *Name* - This is a short description of the harvester. It will be shown in the harvesting main page as the name for this WFS GetFeature harvester. +> +> - *Service URL* - The bare URL of the WFS service (no OGC params required) +> +> - *Metadata language* - The language that will be used in the metadata records created by the harvester +> +> - *OGC WFS GetFeature Query* - The OGC WFS GetFeature query used to extract features from the WFS. +> +> - *Schema for output metadata records* - choose the metadata schema or profile for the harvested metadata records. Note: only the schemas that have WFS fragment stylesheets will be displayed in the list (see the next option for the location of these stylesheets). +> +> > - *Stylesheet to create fragments* - User-supplied stylesheet that transforms the GetFeature response to a metadata fragments document (see below for the format of that document). Stylesheets exist in the WFSToFragments directory which is in the convert directory of the selected output schema. eg. for the iso19139 schema, this directory is `GEONETWORK_DATA_DIR/config/schema_plugins/iso19139/convert/WFSToFragments`. +> > - *Save large response to disk* - Check this box if you expect the WFS GetFeature response to be large (eg. greater than 10MB). If checked, the GetFeature response will be saved to disk in a temporary file. Each feature will then be extracted from the temporary file and used to create the fragments and metadata records. If not checked, the response will be held in RAM. +> > - *Create subtemplates* - Check this box if you want the harvested metadata fragments to be saved as subtemplates in the metadata catalog and xlink'd into the metadata template (see next option). If not checked, the fragments will be copied into the metadata template. +> > - *Template to use to build metadata using fragments* - Choose the metadata template that will be combined with the harvested metadata fragments to create metadata records. This is a standard GeoNetwork metadata template record. +> +> - *Category for records built with linked fragments* - Choose the metadata template that will be combined with the harvested metadata fragments to create metadata records. This is a standard GeoNetwork metadata template record. + +- **Options** +- **Privileges** +- **Category for subtemplates** - When fragments are saved to GeoNetwork as subtemplates they will be assigned to the category selected here. + +## More about turning the GetFeature Response into metadata fragments + +Within the root element there can be zero to many elements. When generating metadata, each record element will result in the generation of one metadata document, otherwise, the element is used to group metadata fragments as required only (e.g. fragments generated for a dataset or feature). + +Within a element there can be zero to many elements and zero to many elements. A element can itself contain zero to many elements. Ordering of elements and elements within a or element is not important. + + elements contain individual xml fragments. The content of the can be any xml element from a supported GeoNetwork schema with the proviso that the element must contain enough relevant metadata to allow the target schema to be identified (i.e. distinguishing namespaces). + + elements have significance during metadata generation only. They are used to group zero or more fragments for insertion into or creation of links in a copy of the metadata template used to generate the metadata. Where the element contains no elements, the referenced element in the template copy will be removed, otherwise it will be replaced with the contents of the fragment. + +Valid attributes on these elements and their function is as follows: + +| Element | Attribute | Description | +|------------------|-----------|--------------------------------------------------------------------------------------------------------------| +| Record | Uuid | Uuid of the generated metadata record (optional - one will be assigned by the harvester otherwise) | +| Fragment | Id | Id of element in metadata template to replace/link from. Ignored when fragment is within a replacementGroup. | +| | Uuid | Uuid to use for generated subtemplate (used to link to this subtemplate from metadata) | +| | Title | Title of fragment -- used as title of xlink | +| ReplacementGroup | Id | Id of element in metadata template to delete, replace or link from to contained fragments | + +Finally, two examples of how to harvest metadata from the Features of an OGC WFS harvester can be given using stylesheets and templates supplied with GeoNetwork. + +## Bundled GeoServer Boundaries Harvest example + +This example assumes that you have installed the bundled GeoServer that comes with GeoNetwork. The end result of this example will be 251 ISO19139 metadata records that link in 1506 fragments (6 per record) created from a GetFeature response on the boundaries shapefile in the GeoServer instance supplied with GeoNetwork. The records created contain metadata about the countries of the world. + +The procedure to follow is: + +- From the Administration->System Configuration menu, enable the XLink Resolver and *Save* the configuration to the database. +- Add an *OGC WFS GetFeature response* harvester from the Administration->Harvesting menu. +- Give it a *Name* (eg. gboundaries) and enter the URL of the wfs service from the bundled geoserver (eg. ) in the *Service URL* field. +- We'll use a simple GetFeature query to select all countries from the boundaries shapefile behind the WFS. The XML for such a query (which is to be entered in the *GetFeature Query* textarea) is: + +```{=html} + +``` + + + + + + +- Choose an output schema - we'll choose *iso19139* as this schema has the example stylesheets and templates we need for this example. Notice that after this option is chosen the following options become visible and we'll take the following actions: + + > - Choose the supplied 'geoserver_boundary_fragments' stylesheet to extract fragments from the GetFeature response in the *Stylesheet to use to create fragments* pull-down list. This stylesheet can be found in `GEONETWORK_DATA_DIR/config/schema_plugins/iso19139/convert/WFSToFragments`. + > - Select the supplied 'Geoserver WFS Fragments Country Boundaries Test Template' template from the *Template to use to build metadata using fragments* pull-down list. This template can be found in `GEONETWORK_DATA_DIR/config/schema_plugins/iso19139/templates/geoserver_fragment_tester.xml`. + +- Choose a category for the records created by the harvester, check the *One run only* box, add some privileges (simplest is to let All users have View rights). At this stage your harvester entry form should look like the following screenshot. + +- *Save* the harvester entry form. + +- You will be returned to the harvester operations menu where you can *Activate* the harvester and then *Run* it. + +The results page shows that there were 1506 fragments of metadata harvested from the WFS GetFeature response. They were saved to the GeoNetwork database as subtemplates and linked into the metadata template to form 251 new metadata records. + +## Deegree Version 2.x Philosopher Database example + +This example assumes that you have downloaded Deegree version 2.x and loaded the Philosopher example database. The end result of this example will be 7 ISO19139 metadata records that link in 42 fragments (6 per record) created from the GetFeature response from your deegree installation. The records contain metadata about 7 famous philosophers. + +The procedure to follow is: + +- From the Administration->System Configuration menu, enable the XLink Resolver and *Save* the configuration to the database. +- Add an *OGC WFS GetFeature response* harvester from the Administration->Harvesting menu. +- Give it a *Name* (eg. deegree22-philosopher-test) and enter the URL of your deegree 2.2 installation in the *Service URL* field. +- We'll use a simple GetFeature query to select all philosophers from the database under the WFS. The XML for such a query (which is to be entered in the *GetFeature Query* textarea) is: + +```{=html} + +``` + + + + + + + +- Choose an output schema - we'll choose *iso19139* as this schema has the example stylesheets and templates we need for this example. Notice that after this option is chosen the following options become visible and we'll take the following actions: + + > - Choose the supplied 'deegree2_philosopher_fragments' stylesheet to extract fragments from the GetFeature response in the *Stylesheet to use to create fragments* pull-down list. This stylesheet can be found in `GEONETWORK_DATA_DIR/config/schema_plugins/iso19139/convert/WFSToFragments`. + > - Select the supplied 'Deegree 22 WFS Fragments Philosopher Database Test Template' template from the *Template to use to build metadata using fragments* pull-down list. This template can be found in `GEONETWORK_DATA_DIR/config/schema_plugins/iso19139/templates/deegree_fragment_tester.xml`. + +- Choose a category for the records created by the harvester, check the *One run only* box, add some privileges (simplest is to let All users have View rights). At this stage your harvester entry form should look like the following screenshot. + +- *Save* the harvester entry form. + +- You will be returned to the harvester operations menu where you can *Activate* the harvester and then *Run* it. + +After the harvester has been run you should see a results screen that looks something like the following screenshot. + +The results page shows that there were 42 fragments of metadata harvested from the WFS GetFeature response. They were saved to the GeoNetwork database as subtemplates and linked into the metadata template to form 7 new metadata records. diff --git a/docs/manual/docs/user-guide/harvesting/harvesting-z3950.md b/docs/manual/docs/user-guide/harvesting/harvesting-z3950.md new file mode 100644 index 000000000000..debf46c5be97 --- /dev/null +++ b/docs/manual/docs/user-guide/harvesting/harvesting-z3950.md @@ -0,0 +1,109 @@ +# Z3950 Harvesting {#z3950_harvester} + +Z3950 is a remote search and harvesting protocol that is commonly used to permit search and harvest of metadata. Although the protocol is often used for library catalogs, significant geospatial metadata catalogs can also be searched using Z3950 (eg. the metadata collections of the Australian Government agencies that participate in the Australian Spatial Data Directory - ASDD). This harvester allows the user to specify a Z3950 query and retrieve metadata records from one or more Z3950 servers. + +## Adding a Z3950 Harvester + +The available options are: + +- **Site** + + > - *Name* - A short description of this Z3950 harvester. It will be shown in the harvesting main page using this name. + > - *Z3950 Server(s)* - These are the Z3950 servers that will be searched. You can select one or more of these servers. + > - *Z3950 Query* - Specify the Z3950 query to use when searching the selected Z3950 servers. At present this field is known to support the Prefix Query Format (also known as Prefix Query Notation) which is described at this URL: . See below for more information and some simple examples. + > - *Icon* - An icon to assign to harvested metadata. The icon will be used when showing search results. + +- **Options** - Scheduling options. + +- **Harvested Content** + + > - *Apply this XSLT to harvested records* - Choose an XSLT here that will convert harvested records to a different format. + > - *Validate* - If checked, records that do not/cannot be validated will be rejected. + +- **Privileges** + +- **Categories** + +!!! note + + this harvester automatically creates a new Category named after each of the Z3950 servers that return records. Records that are returned by a server are assigned to the category named after that server. + + +## More about PQF Z3950 Queries + +PQF is a rather arcane query language. It is based around the idea of attributes and attribute sets. The most common attribute set used for geospatial metadata in Z3950 servers is the GEO attribute set (which is an extension of the BIB-1 and GILS attribute sets - see ). So all PQF queries to geospatial metadata Z3950 servers should start off with \@attrset geo. + +The most useful attribute types in the GEO attribute set are as follows: + +| \@attr number | Meaning | Description | +|---------------|------------|--------------------------------------------------| +| 1 | Use | What field to search | +| 2 | Relation | How to compare the term specified | +| 4 | Structure | What type is the term? eg. date, numeric, phrase | +| 5 | Truncation | How to truncate eg. right | + +In GeoNetwork the numeric values that can be specified for `@attr 1` map to the lucene index field names as follows: + ++----------------------+-------------------------------+-------------------------------------------------------------------------------------------------------------+ +| \@attr 1= | Lucene index field | ISO19139 element | ++======================+===============================+=============================================================================================================+ +| 1016 | any | All text from all metadata elements | ++----------------------+-------------------------------+-------------------------------------------------------------------------------------------------------------+ +| 4 | title, altTitle | gmd:identificationInfo//gmd:citation//gmd:title/gco:CharacterString | ++----------------------+-------------------------------+-------------------------------------------------------------------------------------------------------------+ +| 62 | abstract | gmd:identificationInfo//gmd:abstract/gco:CharacterString | ++----------------------+-------------------------------+-------------------------------------------------------------------------------------------------------------+ +| 1012 | _changeDate | Not a metadata element (maintained by GeoNetwork) | ++----------------------+-------------------------------+-------------------------------------------------------------------------------------------------------------+ +| 30 | createDate | gmd:MD_Metadata/gmd:dateStamp/gco:Date | ++----------------------+-------------------------------+-------------------------------------------------------------------------------------------------------------+ +| 31 | publicationDate | > gmd:identificationInfo//gmd:citation//gmd:date/gmd:='publication' | ++----------------------+-------------------------------+-------------------------------------------------------------------------------------------------------------+ +| 2072 | tempExtentBegin | > gmd:identificationInfo//gmd:extent//gmd:temporalElement//gml:begin(Position) | ++----------------------+-------------------------------+-------------------------------------------------------------------------------------------------------------+ +| 2073 | tempExtentEnd | > gmd:identificationInfo//gmd:extent//gmd:temporalElement//gml:end(Position) | ++----------------------+-------------------------------+-------------------------------------------------------------------------------------------------------------+ +| 2012 | fileId | gmd:MD_Metadata/gmd:fileIdentifier/* | ++----------------------+-------------------------------+-------------------------------------------------------------------------------------------------------------+ +| 12 | identifier | gmd:identificationInfo//gmd:citation//gmd:identifier//gmd:code/* | ++----------------------+-------------------------------+-------------------------------------------------------------------------------------------------------------+ +| 21,29,2002,3121,3122 | keyword | gmd:identificationInfo//gmd:keyword/* | ++----------------------+-------------------------------+-------------------------------------------------------------------------------------------------------------+ +| 2060 | northBL,eastBL,southBL,westBL | gmd:identificationInfo//gmd:extent//gmd:EX_GeographicBoundingBox/gmd:westBoundLongitude*/gco:Decimal (etc) | ++----------------------+-------------------------------+-------------------------------------------------------------------------------------------------------------+ + +Note that this is not a complete set of the mappings between Z3950 GEO attribute set and the GeoNetwork lucene index field names for ISO19139. Check out INSTALL_DIR/web/geonetwork/xml/search/z3950Server.xsl and INSTALL_DIR/web/geonetwork/xml/schemas/iso19139/index-fields.xsl for more details and annexe A of the GEO attribute set for Z3950 at for more details. + +Common values for the relation attribute (`@attr=2`): + +| \@attr 2= | Description | +|-----------|--------------------------| +| 1 | Less than | +| 2 | Less than or equal to | +| 3 | Equals | +| 4 | Greater than or equal to | +| 5 | Greater than | +| 6 | Not equal to | +| 7 | Overlaps | +| 8 | Fully enclosed within | +| 9 | Encloses | +| 10 | Fully outside of | + +So a simple query to get all metadata records that have the word 'the' in any field would be: + +`@attrset geo @attr 1=1016 the` + +- `@attr 1=1016` means that we are doing a search on any field in the metadata record + +A more sophisticated search on a bounding box might be formulated as: + +`@attrset geo @attr 1=2060 @attr 4=201 @attr 2=7 "-36.8262 142.6465 -44.3848 151.2598` + +- `@attr 1=2060` means that we are doing a bounding box search +- `@attr 4=201` means that the query contains coordinate strings +- `@attr 2=7` means that we are searching for records whose bounding box overlaps the query box specified at the end of the query + +## Notes + +- Z3950 servers must be configured for GeoNetwork in `INSTALL_DIR/web/geonetwork/WEB-INF/classes/JZKitConfig.xml.tem` +- every time the harvester runs, it will remove previously harvested records and create new ones. diff --git a/docs/manual/docs/user-guide/harvesting/index.md b/docs/manual/docs/user-guide/harvesting/index.md new file mode 100644 index 000000000000..a714d4de4863 --- /dev/null +++ b/docs/manual/docs/user-guide/harvesting/index.md @@ -0,0 +1,208 @@ +# Harvesting + +Data discovery gets more interesting once multiple catalogs and services share their resources. + +Harvesting is the process of ingesting metadata from remote sources and storing it locally in the catalog for fast searching. It is a scheduled process, so local copy and remote metadata are kept aligned. + +The following sources can be harvested: + +- [Harvesting Geonetwork](harvesting-geonetwork.md) +- [Harvesting Csw](harvesting-csw.md) +- [Harvesting Ogcwxs](harvesting-ogcwxs.md) +- [Harvesting Simpleurl](harvesting-simpleurl.md) +- [Harvesting Filesystem](harvesting-filesystem.md) +- [Harvesting Webdav](harvesting-webdav.md) +- [Harvesting Oaipmh](harvesting-oaipmh.md) +- [Harvesting Sde](harvesting-sde.md) +- [Harvesting Geoportal](harvesting-geoportal.md) +- [Harvesting Thredds](harvesting-thredds.md) +- [Harvesting Wfs Features](harvesting-wfs-features.md) + +* [Harvesting Z3950](harvesting-z3950.md) \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-- + +The harvesting mechanism relies on the concept of a `universally unique identifier (UUID)`. This is a special id because it is not only unique locally to the node that generated it but it is globally unique. It is a combination of : + +- the network interface MAC address, +- the current date/time +- and a random number. + +For every new record, a UUID is generated and assigned to it. + +Another important concept behind the harvesting is the `last change date`. Every time you change a metadata record, the last change date is updated. Just storing this parameter and comparing it with a new one allows any system to find out if the metadata record has been modified since last update. + +These two concepts allow catalogs to fetch remote metadata, check if it has been updated and remove it locally if it has been removed remotely. UUIDs also allowed cross catalog harvesting in case B harvests from C and A harvests from B. + +## Harvesting life cycle + +When a harvester is created, there is no harvested metadata. During the first run, all remote matching metadata are retrieved and stored locally. For some harvesters, after the first run, only metadata that has changed will be retrieved. + +Harvested metadata are (by default) not editable for the following reasons: + +1. The harvesting is periodic so any local change to harvested metadata will be lost during the next run. +2. The change date may be used to keep track of changes so if the metadata gets changed, the harvesting mechanism may be compromised. + +Metadata properties (like categories, privileges etc\...) on harvested metadata records can be updated but will be updated on next run. + +!!! note + + if you really want to edit harvested metadata records and aren't worried by the possible issues described above, there is now a configuration setting which will permit this. See [editing_harvested_records](editing_harvested_records.md) for more details. + + Another option would be to assign the harvested records to the local catalog and then modify them. For the time being, no interface allows to change record's source catalog. + + +The harvesting process goes on until one of the following situations arises: + +1. An administrator stops (deactivates) the harvester. +2. An exception arises. In this case the harvester is automatically stopped. + +When a harvester is removed, all metadata records associated with that harvester are removed. + +## Multiple harvesting and hierarchies + +Catalogues that use UUIDs to identify metadata records (eg. GeoNetwork) can be harvested several times without having to take care about metadata overlap. + +As an example, consider the GeoNetwork harvesting type which allows one GeoNetwork node to harvest metadata records from another GeoNetwork node and the following scenario: + +1. Node (A) has created metadata (a) +2. Node (B) harvests (a) from (A) +3. Node (C) harvests (a) from (B) +4. Node (D) harvests from both (A), (B) and (C) + +In this scenario, Node (D) will get the same metadata (a) from all 3 nodes (A), (B), (C). The metadata will flow to (D) following 3 different paths but thanks to its UUID only one copy will be stored. When (a) is changed in (A), a new version will flow to (D) but, thanks to the change date, the copy in (D) will be updated with the most recent version. + +## Harvesting Fragments of Metadata to support re-use {#harvesting_fragments} + +All the harvesters except for the THREDDS and OGC WFS GetFeature harvester create a complete metadata record that is inserted into or replaces an existing record in the catalog. However, it's often the case that: + +- the metadata harvested from an external source is really only one or more fragments of the metadata required to describe a resource such as a dataset +- you might want to combine harvested fragments of metadata with manually entered or static metadata in a single record +- a fragment of metadata harvested from an external source may be required in more than one metadata record + +For example, you may only be interested in harvesting the geographic extent and/or contact information from an external source and manually entering or maintaining the remainder of the content in the metadata record. You may also be interested in re-using the contact information for a person or organisation in more than one metadata record. + +To support this capability, both the WFS GetFeature Harvester and the THREDDS harvester, allow fragments of metadata to be harvested and linked or copied into a template record to create metadata records. Fragments that are saved into the GeoNetwork database are called subtemplates and can be used in more than one metadata record. + +As shown above, an example of a metadata fragment is the gmd:contactInfo element of an iso19139 document. This element contains contact details for an individual or an organisation. If a fragment is stored in the GeoNetwork database as a subtemplate for a given person or organisation, then this fragment can be referenced in metadata records where this organisation or individual is specified using an XML linking mechanism called XLink. + +## HTTPS support + +Harvesting between GeoNetwork nodes may require the HTTPS protocol. If harvesting from an https GeoNetwork URL, the server will need to have a trusted certificate available in a JVM keystore accessible to the GeoNetwork node running the harvest. + +If you don't have a trusted certificate in the JVM keystore being used by GeoNetwork, the harvester may issue an exception like this when you try to harvest from the https GeoNetwork: + + javax.net.ssl.SSLHandshakeException: + sun.security.validator.ValidatorException: PKIX path building failed: + sun.security.provider.certpath.SunCertPathBuilderException: + unable to find valid certification path to requested target + + Caused by: sun.security.validator.ValidatorException: + PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: + unable to find valid certification path to requested target + + Caused by: sun.security.provider.certpath.SunCertPathBuilderException: + unable to find valid certification path to requested target + +The server certificate for the GeoNetwork server being harvested needs to be added to the JVM keystore with [keytool](http://docs.oracle.com/javase/6/docs/technotes/tools/solaris/keytool.html) in order to be trusted. + +An alternative way to add the certificate is to use a script like: + + ## JAVA SSL Certificate import script + ## Based on original MacOs script by LouiSe@louise.hu : http://louise.hu + ## + ## Usage: ./ssl_key_import.sh + ## + ## Example: ./ssl_key_import.sh mail.google.com 443 (to read certificate from https://mail.google.com) + + ## Compile and start + javac InstallCert.java + java InstallCert $1:$2 + + ## Copy new cert into local JAVA keystore + echo "Please, enter administrator password:" + sudo cp jssecacerts $JAVA_HOME/jre/lib/security/jssecacerts + # Comment previous line and uncomment next one for MacOs + #sudo cp jssecacerts /Library/Java/Home/lib/security/ + +To use the script, the Java compiler must be installed and the file [InstallCert.java](http://code.google.com/p/java-use-examples/source/browse/trunk/src/com/aw/ad/util/InstallCert.java), must be downloaded and placed in the same directory as the script. + +The script will add the certificate to the JVM keystore, if you run it as follows:: + + $ ./ssl_key_import.sh https_server_name 443 + +## The main page + +To access the harvesting main page you have to be logged in as an administrator. From the administration page, select the harvest shortcut. The harvesting main page will then be displayed. + +The page shows a list of the currently defined harvesters and a set of buttons for management functions. The meaning of each column in the list of harvesters is as follows: + +1. *Select* Check box to select one or more harvesters. The selected harvesters will be affected by the first row of buttons (activate, deactivate, run, remove). For example, if you select three harvesters and press the Remove button, they will all be removed. +2. *Name* This is the harvester name provided by the administrator. +3. *Type* The harvester type (eg. GeoNetwork, WebDAV etc\...). +4. *Status* An icon showing current status. See [admin_harvesting_status](admin_harvesting_status.md) for the different icons and status descriptions. +5. *Errors* An icon showing the result of the last harvesting run, which could have succeeded or not. See [admin_harvesting_status](admin_harvesting_status.md) for the different icons and error descriptions. Hovering the cursor over the icon will show detailed information about the last harvesting run. +6. *Run at* and *Every*: Scheduling of harvester runs. Essentially the time of the day + how many hours between repeats and on which days the harvester will run. +7. *Last run* The date, in ISO 8601 format, of the most recent harvesting run. +8. *Operation* A list of buttons/links to operations on a harvester. + +> - Selecting *Edit* will allow you to change the parameters for a harvester. +> - Selecting *Clone* will allow you to create a clone of this harvester and start editing the details of the clone. +> - Selecting *History* will allow you to view/change the harvesting history for a harvester - see [harvest_history](harvest_history.md). + +At the bottom of the list of harvesters are two rows of buttons. The first row contains buttons that can operate on a selected set of harvesters. You can select the harvesters you want to operate on using the check box in the Select column and then press one of these buttons. When the button finishes its action, the check boxes are cleared. Here is the meaning of each button: + +1. *Activate* When a new harvester is created, the status is *inactive*. Use this button to make it *active* and start the harvester(s) according to the schedule it has/they have been configured to use. +2. *Deactivate* Stops the harvester(s). Note: this does not mean that currently running harvest(s) will be stopped. Instead, it means that the harvester(s) will not be scheduled to run again. +3. *Run* Start the selected harvesters immediately. This is useful for testing harvester setups. +4. *Remove* Remove all currently selected harvesters. A dialogue will ask the user to confirm the action. + +The second row contains general purpose buttons. Here is the meaning of each button: + +1. *Back* Simply returns to the main administration page. +2. *Add* This button creates a new harvester. +3. *Refresh* Refreshes the current list of harvesters from the server. This can be useful to see if the harvesting list has been altered by someone else or to get the status of any running harvesters. +4. *History* Show the harvesting history of all harvesters. See [harvest_history](harvest_history.md) for more details. + +## Harvesting Status and Error Icons {#admin_harvesting_status} + +## Harvesting result tips + +When a harvester runs and completes, a tool tip showing detailed information about the harvesting process is shown in the **Errors** column for the harvester. If the harvester succeeded then hovering the cursor over the tool tip will show a table, with some rows labelled as follows: + +- **Total** - This is the total number of metadata found remotely. Metadata with the same id are considered as one. +- **Added** - Number of metadata added to the system because they were not present locally. +- **Removed** - Number of metadata that have been removed locally because they are not present in the remote server anymore. +- **Updated** - Number of metadata that are present locally but that needed to be updated because their last change date was different from the remote one. +- **Unchanged** - Local metadata left unchanged. Their remote last change date did not change. +- **Unknown schema** - Number of skipped metadata because their format was not recognised by GeoNetwork. +- **Unretrievable** - Number of metadata that were ready to be retrieved from the remote server but for some reason there was an exception during the data transfer process. +- **Bad Format** - Number of skipped metadata because they did not have a valid XML representation. +- **Does not validate** - Number of metadata which did not validate against their schema. These metadata were harvested with success but skipped due to the validation process. Usually, there is an option to force validation: if you want to harvest these metadata anyway, simply turn/leave it off. +- **Thumbnails/Thumbnails failed** - Number of metadata thumbnail images added/that could not be added due to some failure. +- **Metadata URL attribute used** - Number of layers/featuretypes/coverages that had a metadata URL that could be used to link to a metadata record (OGC Service Harvester only). +- **Services added** - Number of ISO19119 service records created and added to the catalogue (for THREDDS catalog harvesting only). +- **Collections added** - Number of collection dataset records added to the catalogue (for THREDDS catalog harvesting only). +- **Atomics added** - Number of atomic dataset records added to the catalogue (for THREDDS catalog harvesting only). +- **Subtemplates added** - Number of subtemplates (= fragment visible in the catalog) added to the metadata catalog. +- **Subtemplates removed** - Number of subtemplates (= fragment visible in the catalog) removed from the metadata catalog. +- **Fragments w/Unknown schema** - Number of fragments which have an unknown metadata schema. +- **Fragments returned** - Number of fragments returned by the harvester. +- **Fragments matched** - Number of fragments that had identifiers that in the template used by the harvester. +- **Existing datasets** - Number of metadata records for datasets that existed when the THREDDS harvester was run. +- **Records built** - Number of records built by the harvester from the template and fragments. +- **Could not insert** - Number of records that the harvester could not insert into the catalog (usually because the record was already present eg. in the Z3950 harvester this can occur if the same record is harvested from different servers). + +## Adding new harvesters + +The Add button in the main page allows you to add new harvesters. A drop down list is then shown with all the available harvester protocols. + +You can choose the type of harvest you intend to perform and press *Add* to begin the process of adding the harvester. The supported harvesters and details of what to do next are in the following sections: + +## Harvest History {#harvest_history} + +Each time a harvester is run, it generates a status report of what was harvested and/or what went wrong (eg. exception report). These reports are stored in a table in the database used by GeoNetwork. The entire harvesting history for all harvesters can be recalled using the History button on the Harvesting Management page. The harvest history for an individual harvester can also be recalled using the History link in the Operations for that harvester. + +Once the harvest history has been displayed it is possible to: + +- expand the detail of any exceptions +- sort the history by harvest date (or in the case of the history of all harvesters, by harvester name) +- delete any history entry or the entire history diff --git a/docs/manual/docs/user-guide/map/img/Icon_AddNewLayer.png b/docs/manual/docs/user-guide/map/img/Icon_AddNewLayer.png new file mode 100644 index 000000000000..42e4c45661dd Binary files /dev/null and b/docs/manual/docs/user-guide/map/img/Icon_AddNewLayer.png differ diff --git a/docs/manual/docs/user-guide/map/img/Icon_ManageLayer.png b/docs/manual/docs/user-guide/map/img/Icon_ManageLayer.png new file mode 100644 index 000000000000..35053ef453e2 Binary files /dev/null and b/docs/manual/docs/user-guide/map/img/Icon_ManageLayer.png differ diff --git a/docs/manual/docs/user-guide/map/img/Icon_ProjectionSwitcher.png b/docs/manual/docs/user-guide/map/img/Icon_ProjectionSwitcher.png new file mode 100644 index 000000000000..7ebaccd77c21 Binary files /dev/null and b/docs/manual/docs/user-guide/map/img/Icon_ProjectionSwitcher.png differ diff --git a/docs/manual/docs/user-guide/map/img/OWSContext.png b/docs/manual/docs/user-guide/map/img/OWSContext.png new file mode 100644 index 000000000000..c409a3876885 Binary files /dev/null and b/docs/manual/docs/user-guide/map/img/OWSContext.png differ diff --git a/docs/manual/docs/user-guide/map/img/addLayers.png b/docs/manual/docs/user-guide/map/img/addLayers.png new file mode 100644 index 000000000000..f89a2752d573 Binary files /dev/null and b/docs/manual/docs/user-guide/map/img/addLayers.png differ diff --git a/docs/manual/docs/user-guide/map/index.md b/docs/manual/docs/user-guide/map/index.md new file mode 100644 index 000000000000..3816c5274c89 --- /dev/null +++ b/docs/manual/docs/user-guide/map/index.md @@ -0,0 +1,50 @@ +# Maps and dataset visualisation {#map-viewer-as-user} + +You can use the map components in GeoNetwork in following ways: + +- The map viewer provides a way for users to interactively assess the relevance of a resource discovered in the catalog. +- GeoNetwork can be used as a mapping application to create maps that can be printed or shared with others. You can also register the maps as assets in the catalogue. + +!!! note + + Instead of using the embedded map viewer, GeoNetwork can use an external map viewer (for example an existing WebGIS framework in your organisation). An administrator can configure GeoNetwork to connect it to an external web map application. For such configurations, all map interaction is delegated to the external application. See [user-interface-config-mappage](user-interface-config-mappage.md). + + +## Map viewer + +You can open the map viewer from a metadata details view using the 'add to map' button or directly from the map tab. A list of tools display in the right toolbar. Hover over the tools to display a tooltip explaining their meaning. The tools that are available are configured by the administrator, see [user-interface-config-mappage](user-interface-config-mappage.md). + +Tools for using the Map are arranged in two groups in the right-hand side of the map. The top group looks like this: + +| **Tool** | **Description** | +|------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Add Layer | You can search the catalog, add layers from web services, or kml. It is possible to add directly WMS, WFS or WMTS layers by entering the endpoint and selecting the layer from the capabilities response. | +| Manage Layer | Manage layers or Change the background map. | +| Projection switcher | Allows you to set alternative projections. | +| Filter layers | Used to filter features shown on the map on various attributes. As an administrator make sure the filtering is correctly set up before adding this tool to the map.. | +| Web Processing Service | You can enter a WPS link and see what processes the service offers. | +| Manage the Map | Setting the map back to default settings, loading a new map definition, downloading the current map, or saving the map configuration as a record in the catalog.. | +| Print | A pdf of the current map will be generated, to be downloaded and send to a printer. | +| Synchronise | Layers with the small map on the Search tab. Changes on the map are duplicated on the small map and vice versa. | +| Measure distances | Measure distances and surfaces in the map. | +| Draw annotations | Annotations can be printed or exported as GeoJSON. | + +Additionally there is a *geographic search* tool in the top left. + +The map viewer supports *Featureinfo*, to retrieve information by clicking on a location in the map. + +![](img/addLayers.png){width="300px"} + +## Storing and sharing maps + +A map consists of a background layer and a number of thematic overlays. A format to combine layers, projection and bounds (area of interest) has been adopted by OGC as the OWS Context standard. Besides GeoNetwork there are a number of other applications supporting this standard. + +GeoNetwork uses OWSContext to store, share and load maps: + +- Export a context to a local file, to restore the map later or share by email. +- The administrator can introduce a context file as default configuration for the catalog. +- Open a local context file by dragging it on to the map viewer (or open from context menu). +- Register a context as asset in the catalogue, the context itself will be added as attachment. +- Records that have an OWS context file attached will display a button to open the context file. + +![](img/OWSContext.png){width="300px"} diff --git a/docs/manual/docs/user-guide/publishing/img/dotransfer.png b/docs/manual/docs/user-guide/publishing/img/dotransfer.png new file mode 100644 index 000000000000..acb9e086819d Binary files /dev/null and b/docs/manual/docs/user-guide/publishing/img/dotransfer.png differ diff --git a/docs/manual/docs/user-guide/publishing/img/set-selection-privileges.png b/docs/manual/docs/user-guide/publishing/img/set-selection-privileges.png new file mode 100644 index 000000000000..3a543a29c9f3 Binary files /dev/null and b/docs/manual/docs/user-guide/publishing/img/set-selection-privileges.png differ diff --git a/docs/manual/docs/user-guide/publishing/img/transfer.png b/docs/manual/docs/user-guide/publishing/img/transfer.png new file mode 100644 index 000000000000..ab05c9a1545f Binary files /dev/null and b/docs/manual/docs/user-guide/publishing/img/transfer.png differ diff --git a/docs/manual/docs/user-guide/publishing/index.md b/docs/manual/docs/user-guide/publishing/index.md new file mode 100644 index 000000000000..7840274edf3d --- /dev/null +++ b/docs/manual/docs/user-guide/publishing/index.md @@ -0,0 +1,5 @@ +# Publishing + +- [Managing Privileges](managing-privileges.md) +- [Restricting Information To Metadata Sections](restricting-information-to-metadata-sections.md) +- [Transferring Privileges](transferring-privileges.md) diff --git a/docs/manual/docs/user-guide/publishing/managing-privileges.md b/docs/manual/docs/user-guide/publishing/managing-privileges.md new file mode 100644 index 000000000000..277a35ba93f3 --- /dev/null +++ b/docs/manual/docs/user-guide/publishing/managing-privileges.md @@ -0,0 +1,89 @@ +# Managing privileges + +To manage privileges to your metadata record and any attached data, you will need to identify User Groups and the privileges you want to assign to users in these groups. eg. Viewing the metadata, downloading the data attached to the record, etc. + +For example, you can specify that the metadata and related services are visible to all (Internet users) or just to internal users only (Intranet). Privileges are assigned on a per group basis. Depending on the user profile (Guest, Registered User, Editor, Admin etc.) access to these functions may differ on a per user basis. + +## Assigning privileges + +To assign privileges, follow these steps: + +1. Find your metadata record using the search option. Whether you have multiple or single results from the search, on top of the individual record or next to the record you will always see a row of buttons including a Privileges button. +2. Click the Privileges button. A drop down menu appears. You can assign certain privileges to specific groups using checkboxes. +3. Click the small box next to the privilege to place or remove a checkmark. The Set All and Clear All buttons allow you to place and remove the checkmarks all at once. + +Below is a brief description for each privilege to help you identify which ones you should assign to which group(s). + +**Publish**: Users in the specified group/s are able to view the metadata eg. if it matches search criteria entered by such a user. + +**Download**: Users in the specified group/s are able to download the data. + +**Interactive Map**: Users in the specified group/s are able to get an interactive map. The interactive map has to be created separately using a Web Map Server such as GeoServer, which is distributed with GeoNetwork. + +**Featured**: When randomly selected by GeoNetwork, the metadata record can appear in the `ed` section of the GeoNetwork home page. + +**Notify**: Users in the specified group receive notification if data attached to the metadata record is downloaded. + +Review and make sure that you understand [user_profiles](user_profiles.md) in the User and Group Administration section of this manual. + +!!! note + + A public metadata record is a metadata record that has the view privilege for the group named "All". + + +The following rules apply to Viewing and Editing permissions on a metadata record: + +## Viewing + +An *administrator* can view any metadata. + +A *content reviewer* can view a metadata if: + +- The metadata is public or +- The metadata is part of a group that the user is a member of. + +A *user administrator* or an *editor* can view: + +- All metadata that has the view privilege selected for one of the groups they are a member of. +- All metadata created by them. + +A *registered user* can view: + +- All metadata that has the view privilege selected for one of the groups they are a member of. + +Any user (logged in or not) can view the public metadata. + +## Editing + +An *administrator* can edit any metadata. + +A *reviewer* can edit a metadata if: + +- The metadata owner is member of one of the groups assigned to the reviewer. +- They are the metadata owner. + +A *User Administrator* or an *Editor* can only edit metadata they created. + +# Setting Privileges + +## Setting Privileges on a metadata record + +A button to access the Privileges page for a metadata record displays in the search results or when you are viewing the record for: + +- All Administrators +- All Reviewers that are member of one of the groups assigned to the metadata owner. +- The Owner of the metadata + +Only Administrators and Reviewers can edit privileges for the All and Intranet groups. + +## Setting Privileges on a selected set of metadata records + +You can set privileges on a selected set of records in the search results using the "actions on selected set" menu. + +![](img/set-selection-privileges.png) + +The following rules apply: + +- the groups are those that the user belongs to +- the privileges specified will only be applied to records that the user has ownership or administration rights on - any other records will be skipped +- the current records privileges will be reset and replaced by the selected privilege diff --git a/docs/manual/docs/user-guide/publishing/restricting-information-to-metadata-sections.md b/docs/manual/docs/user-guide/publishing/restricting-information-to-metadata-sections.md new file mode 100644 index 000000000000..154195ec256b --- /dev/null +++ b/docs/manual/docs/user-guide/publishing/restricting-information-to-metadata-sections.md @@ -0,0 +1 @@ +# Restricting information to metadata sections diff --git a/docs/manual/docs/user-guide/publishing/transferring-privileges.md b/docs/manual/docs/user-guide/publishing/transferring-privileges.md new file mode 100644 index 000000000000..5a8e864d073e --- /dev/null +++ b/docs/manual/docs/user-guide/publishing/transferring-privileges.md @@ -0,0 +1,33 @@ +# Transferring privileges + +## Transfer Ownership + +When you need to transfer metadata ownership from one user to another for all or specific metadata records, use the *Transfer Ownership* option. + +![](img/transfer.png) + +How to open the Transfer Ownership page* + +1. From the "actions on selected set" in the search, the Portal displays the following panel. + +
+img/dotransfer.png +
The Transfer Ownership panel
+
+ +- + + **Select New Owner** + + : Select a user in this auto-complete. + + !!! note + + The drop down is filled with all Editors visible to you. If you are not an Administrator, you will view only a subset of all Editors. + + +- + + **Select group** + + : Select one of the groups this user is a member of. Privileges to groups All and Intranet are not transferable. diff --git a/docs/manual/docs/user-guide/tag-information/img/tag-category.png b/docs/manual/docs/user-guide/tag-information/img/tag-category.png new file mode 100644 index 000000000000..7a13777ae463 Binary files /dev/null and b/docs/manual/docs/user-guide/tag-information/img/tag-category.png differ diff --git a/docs/manual/docs/user-guide/tag-information/img/tag-selection-category.png b/docs/manual/docs/user-guide/tag-information/img/tag-selection-category.png new file mode 100644 index 000000000000..a091a5cf7845 Binary files /dev/null and b/docs/manual/docs/user-guide/tag-information/img/tag-selection-category.png differ diff --git a/docs/manual/docs/user-guide/tag-information/index.md b/docs/manual/docs/user-guide/tag-information/index.md new file mode 100644 index 000000000000..d3fb921d0a8f --- /dev/null +++ b/docs/manual/docs/user-guide/tag-information/index.md @@ -0,0 +1,4 @@ +# Classify information {#tag-information} + +- [Tagging With Categories](tagging-with-categories.md) +- [Tagging With Keywords](tagging-with-keywords.md) diff --git a/docs/manual/docs/user-guide/tag-information/tagging-with-categories.md b/docs/manual/docs/user-guide/tag-information/tagging-with-categories.md new file mode 100644 index 000000000000..1e43202a6863 --- /dev/null +++ b/docs/manual/docs/user-guide/tag-information/tagging-with-categories.md @@ -0,0 +1,15 @@ +# Tagging with categories + +A catalog can define a set of categories that can be used to classify metadata records for easy searching or management purposes (see [managing-categories](managing-categories.md)). Categories are added to the metadata records itself and cannot be exported when the record is harvested (eg. when using CSW protocol). If the category needs to be propagated with the metadata, use other harvesting protocols (eg. GeoNetwork) or use keywords (see [tagging-with-keywords](tagging-with-keywords.md)). + +There are two ways to assign categories to a metadata record: + +- Search records, select one or more record and choose the `Update categories` on the selection. +- Using the tag selection category, you can either replace categories or add new ones. + +![](img/tag-selection-category.png) + +- Search the metadata record, open the editor and click on the `Categories` button. A drop down menu will appear. +- Using the Change metadata categories dropdown, to assign one or more categories, select relevant checkboxes. + +![](img/tag-category.png) diff --git a/docs/manual/docs/user-guide/tag-information/tagging-with-keywords.md b/docs/manual/docs/user-guide/tag-information/tagging-with-keywords.md new file mode 100644 index 000000000000..aab492ed5228 --- /dev/null +++ b/docs/manual/docs/user-guide/tag-information/tagging-with-keywords.md @@ -0,0 +1 @@ +# Tagging with keywords diff --git a/docs/manual/docs/user-guide/workflow/batchediting.md b/docs/manual/docs/user-guide/workflow/batchediting.md new file mode 100644 index 000000000000..c0c365ac9bb0 --- /dev/null +++ b/docs/manual/docs/user-guide/workflow/batchediting.md @@ -0,0 +1,184 @@ +# Updating a set of records {#batchediting} + +From the editor board, editors can do batch editing on multiple records. + +![](img/batch-editing-menu.png) + +Batch editing consists of 3 steps: + +> - Choose a set of records +> - Define edits +> - Apply changes + +## Defining edits + +**Warning: You can break things here. When defining xpath and using delete or replace mode, be sure to test on a single record before applying changes to a lot of records. If needed, back up your record first.** + +Changes are defined on a per standard basis. A set of default fields to edit is available (and can be extended in the `config-editor.xml` file of the standard). + +![](img/batch-editing-iso19139fields.png) + +An advanced mode is also available to define custom edits. The advanced mode consists of: + +- an optional title +- a type of update (`gn_add`, `gn_create`, `gn_replace`, `gn_delete`) +- a mandatory XPath to point to the element(s) to update. The XPath may contain a filter expression. +- a value, which could be an XML snippet or a text string if the mode is not `delete`. + +![](img/batch-editing-advancedmode.png) + +To add an element, eg. add a new keyword section in first position: + +``` json +[{ + "xpath": "/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords[1]", + "value": "Waste water" +}] +``` + +To remove an element, eg. remove all online resource having a protocol `OGC:WMS`: + +``` json +[{ + "xpath": ".//gmd:onLine[*/gmd:protocol/*/text() = 'OGC:WMS']", + "value":"" +}] +``` + +To replace an element, eg. replacing a keyword value: + +``` json +[{ + "xpath":".//gmd:keyword/gco:CharacterString[text() = 'wastewater']", + "value":"Waste water" +}] +``` + +![](img/batch-editing-replace.png) + +## Applying changes + +When applying changes, user privileges apply, so if the user cannot edit a selected record, batch edits will not be applied to that record. + +The batch edit report explains how many records were processed: + +![](img/batch-editing-report.png) + +Batch editing can also be applied using the [API](%7Cdemo_url%7C/doc/api/index.html#/records/batchEdit) + +## Examples + +### Add a new keyword sections in identification + +- Mode: Add + +- XPath (the parent element of the XML snippet to add). The XML is inserted in the position defined in the XSD. + + ``` xslt + .//srv:SV_ServiceIdentification + ``` + +- XML + + ``` xml + + + + Service d’accès aux cartes + + + + ``` + +### Replace a keyword section encoded using a CharacterString to an Anchor + +- Mode: Replace + +- XPath (the parent element of the XML snippet to insert) + + ``` xslt + .//mri:descriptiveKeywords[*/mri:keyword/gco:CharacterString/text() = 'infoMapAccessService'] + ``` + +- XML + + ``` xml + + + Service d’accès aux cartes + + + + + + + + Classification of spatial data services + + + + + 2008-12-03 + + + + + + + + + + geonetwork.thesaurus.external.theme.httpinspireeceuropaeumetadatacodelistSpatialDataServiceCategory-SpatialDataServiceCategory + + + + + + + ``` + +### Remove a keyword block + +- Mode: Remove + +- XPath (the second descriptiveKeywords block corresponding to a thesaurus 'Champ géographique') + + ``` xslt + (.//mri:descriptiveKeywords + [*/mri:thesaurusName/*/cit:title/gcx:Anchor = 'Champ géographique'])[2] + ``` + +- XML (N/A) + +### Remove a keyword + +- Mode: Remove + +- XPath (All keyword with value 'IDP_reference') + + ``` xslt + .//gmd:keyword[*/text() = 'IDP_reference'] + ``` + +- XML (N/A) + +### Remove associatedResource with a type partOfSeamlessDatabase only if it is a serie + +- Mode: Remove + +- XPath + + ``` xslt + .[mdb:metadataScope/*/mdb:resourceScope/*/@codeListValue = 'series']//mri:associatedResource[*/mri:associationType/*/@codeListValue = "partOfSeamlessDatabase"] + ``` + +- XML (N/A) diff --git a/docs/manual/docs/user-guide/workflow/batchupdate-from-admin.md b/docs/manual/docs/user-guide/workflow/batchupdate-from-admin.md new file mode 100644 index 000000000000..2230cf401898 --- /dev/null +++ b/docs/manual/docs/user-guide/workflow/batchupdate-from-admin.md @@ -0,0 +1,73 @@ +# Updating a set of records from the admin console {#batchupdate_from_admin} + +In some circumstances, users may want to update a set of records. Administrator users can, from the `admin console`, open the `tools`, `Batch process` page. + +From this page, user can: + +- Select a set of records by running a search and selecting records to modify + +![](img/batch-search-and-select.png) + +- Choose a process from the list + +![](img/batch-choose-a-process.png) + +!!! info "See Also" + + New process can be added. See [batch-process-add](batch-process-add.md). + + +- Define process parameters (if any) +- Run the process and follow the progress. + +Process can only be applied to records that current user can edit. If not, then the non editable record is ignored and the process continue. The report contains the following information: + +- Number of records to process +- Number of records affected by the process +- Number of records unchanged (for search and replace process) +- Number of records for which the process was not found (process depends on the standard, and may not exists depending on the standard). +- Number of records that current user can't edit + +![](img/batch-report.png) + +Before running a process, it is recommended to make a backup of all metadata records to be updated in case something goes wrong with the process. + +!!! info "Todo" + + Document other processes + + +## Search and replace + +This process search values in elements and replace by other values. It supports ISO19139 and Dublin Core records. The configuration is the following: + +![](img/batch-search-and-replace-configuration.png) + +- Select a package (ISO19139 or Dublin Core) +- Choose an element from that package to replace (the one preconfigured is about contact but can be extended - see below) +- Define the search value +- Define the replacement +- Click `Add replacement` + +Multiple replacements can be configured and added. Once the configuration done, user can save the configuration by clicking `Download configuration`. The configuration is downloaded as JSON format and can be updated and reloaded later by copy/paste in the replacement configuration textarea and by clicking `Load configuration`. + +Sample configuration: + +``` json +[{ + "package":"iso19139", + "element":"iso19139\\..*\\.individualName", + "searchval":"John", + "replaceval":"Pierre" + }] +``` + +In the configuration, the `element` define the target element in the metadata record. It starts with the schema identifier and then define a path to the element. This is a regular expression and could use `.*` for matching all elements wherever in the document. To match a more specific element, user can defined complete path like `iso19139\\.contact\\.individualName` to match only the metadata contact individual name. + +The `searchval` is also a [regular expression](http://www.regular-expressions.info/tutorial.html). It could be simple text or more advanced expression. For example with catching groups, searching for `(.*)` and replacing by `Mr $1` will replace `John` by `Mr John`. + +The last parameter is the vacuum mode defining what to do with empty elements: + +![](img/batch-search-and-replace-vacuum.png) + +After the configuration done, user can preview the changes by clicking the `Test` button and then apply the changes with `Run` diff --git a/docs/manual/docs/user-guide/workflow/batchupdate-xsl.md b/docs/manual/docs/user-guide/workflow/batchupdate-xsl.md new file mode 100644 index 000000000000..cf6e6e146bc7 --- /dev/null +++ b/docs/manual/docs/user-guide/workflow/batchupdate-xsl.md @@ -0,0 +1,164 @@ +# Updating a set of records using XSLT {#batchupdate_xsl} + +## Applying changes {#batch-process-apply} + +Administrator user can use the catalog API to update a set of records with an XSLT transformation. The steps are the following: + +- Sign in as admin user +- Search records to be updated using the `q` service eg. select all templates in a specific standard: +- Select all records matching the search with +- Trigger the process with +- Check the progress report with + +At the end of the process, a summary describes: + +- Number of records to process +- Number of records to processed +- Number of records not found (in case one record gets deleted since the selection) +- Number of records with errors +- Number of records with process not defined in its standard +- Number of records that current user can't edit + +A process can also be applied to one metadata record using the `md.processing` service. eg. + +Parameters are: + +- uuid or id: the metadata UUID or the metadata internal identifier +- process: The process identifier +- add other extra parameters depending on the process (see below). + +## Adding batch process {#batch-process-add} + +### Creating the processing file + +Batch process are defined on a per schema basis. To check the list of available process for a standard check the `/config/schemaPlugins//process` folder. + +The `process` folder contains a set of XSLT. The name of the XSLT file without extension is used to trigger the process. For example, if using `md.processing.batch?process=my-custom-process`, the process XSLT MUST be named `my-custom-process.xsl`. + +### Processing the XML of the record + +The XSLT process will be applied to each metadata record in the selection. Each document will have as root element the metadata XML document with the `geonet:info` element. The `geonet:info` element contains metadata about the metadata. This element MUST be removed by the process to not alter the record when saved in the database. + +``` xml + + ... + + 73481 + bb151890-2da5-4cfb-8659-7839e7138be7 + iso19139 + 2015-12-23T17:05:36 + 2015-12-23T18:07:40 + 2cc603e1-981c-41a2-a183-39429c7dcc49 + 1 + true + true + false + true + true + true + true + true + true + + +``` + +### Adding parameters + +The XSLT process can retrieve parameters which may be provided in the URL using `xsl:param`. For example, if using `md.processing.batch?process=my-custom-process&myParameter=test`. + +``` xml + + + + +``` + +In this example, `xsl:param` will be accessible as a variable using `$myParameter` and it will have an empty value if not set by the URL parameter. To check that a parameter is properly set, use `xsl:message` to output information to the log file. + +``` xml + +myParameter: +``` + +The XSLT process also have access to catalog parameters: + +- guiLang: Current UI language +- baseUrl: The service base URL (eg `http://localhost:8080/geonetwork`) +- catalogUrl: The catalog URL (eg `http://localhost:8080/geonetwork/srv/eng`) +- nodeId: The node identifier (default `srv`) + +To use one of those parameters in the process, use `xsl:param`: + +``` xml + +``` + +### Making a copy is a minimum + +A process MUST at least do: + +- a copy of everything +- remove geonet:info metadata + +``` xml + + + + + + + + + + + + + +``` + +Then customize the process to update the metadata record. + +### Processing examples + +See `schemas/iso19139/src/main/plugin/iso19139/process` for examples. + +On top of the minimum that the process MUST do, the process can define additional actions using new templates: + +- Removing an element. Eg. removing all report about DQ_TopologicalConsistency: + +``` xml + +``` + +Set priority to 2 in order for your template to take priority over the main template making the copy of everything. + +## Registering a process as a suggestion {#customizing-xslt-suggestion} + +See [metadata_suggestion](metadata_suggestion.md). + +## Registering a process as an editor action {#xslt-in-editor} + +An XSLT process can be used in the editor to trigger specific actions. For example, the INSPIRE view display a button to add a resource identifier if none defined ending by the metadata identifier. + +``` xml + +``` + +See ref:``creating-custom-editor``. + +## Adding XSLT conversion for import {#customizing-xslt-conversion} + +Add XSL transformations to `web/geonetwork/xsl/conversion/import` folder in order to provide new import options to the user. Files can be added to this folder without restarting the application. diff --git a/docs/manual/docs/user-guide/workflow/batchupdate.md b/docs/manual/docs/user-guide/workflow/batchupdate.md new file mode 100644 index 000000000000..15ecf3f38b00 --- /dev/null +++ b/docs/manual/docs/user-guide/workflow/batchupdate.md @@ -0,0 +1,7 @@ +# Updating a set of records {#batchupdate} + +In some circumstances, users may want to update a set of records. The catalog provides 2 options for that: + +- [Batchediting](batchediting.md) +- [Batchupdate From Admin](batchupdate-from-admin.md) +- [Batchupdate Xsl](batchupdate-xsl.md) diff --git a/docs/manual/docs/user-guide/workflow/geopublication.md b/docs/manual/docs/user-guide/workflow/geopublication.md new file mode 100644 index 000000000000..b300674e97a2 --- /dev/null +++ b/docs/manual/docs/user-guide/workflow/geopublication.md @@ -0,0 +1,39 @@ +# Publishing GIS data in a map server {#geopublication-usage} + +This topic describes how to publish GIS data in a map server. + +## Before you begin + +- The catalog administrator needs to configure connection to map servers in the administration interface (see [map-server-configuration](map-server-configuration.md)). +- The editors reference GIS files or spatial database tables in the metadata record (see [linking-online-resources-georesource](linking-online-resources-georesource.md)). + +To publish data from the metadata editor in a remote map server: + +#\. When a spatial resource is detected and one or more map servers are configured, the geopublication wizard is available in the metadata editor. + +![](img/geopublication-wizard.png) + +#\. Choose a resource from the list to display the wizard. The wizard display the list of map servers available: + +![](img/geopublication-wizard-serverlist.png) + +#\. Choose the server you want to publish the data in. When selected, the catalog will check if the dataset is already published. + +If found, it is added to the map. .. figure:: img/geopublication-wizard-open.png + +If not, a status message indicates that the dataset is not available. + +![](img/geopublication-wizard-notavailable.png) + +1. From the menu, control the publication process: + +![](img/geopublication-wizard-menu.png) + +- Click the `check` button to verify that the dataset is already published in the selected map server. +- Click the `publish` button to register the data on the selected map server. +- Click the `unpublish` button to unregister the data on the selected map server. +- Click the `link service to metadata` button to add links to the OGC service in the current metadata record for the published layer. + +## Next steps + +Once you have registered a WMS layer in a metadata record, you can generate an overview using the service (see [linking-thumbnail-from-wms](linking-thumbnail-from-wms.md)). diff --git a/docs/manual/docs/user-guide/workflow/img/approve-metadata.png b/docs/manual/docs/user-guide/workflow/img/approve-metadata.png new file mode 100644 index 000000000000..2282726cb9d2 Binary files /dev/null and b/docs/manual/docs/user-guide/workflow/img/approve-metadata.png differ diff --git a/docs/manual/docs/user-guide/workflow/img/batch-choose-a-process.png b/docs/manual/docs/user-guide/workflow/img/batch-choose-a-process.png new file mode 100644 index 000000000000..142f14b679da Binary files /dev/null and b/docs/manual/docs/user-guide/workflow/img/batch-choose-a-process.png differ diff --git a/docs/manual/docs/user-guide/workflow/img/batch-editing-advancedmode.png b/docs/manual/docs/user-guide/workflow/img/batch-editing-advancedmode.png new file mode 100644 index 000000000000..03a2e0000bd7 Binary files /dev/null and b/docs/manual/docs/user-guide/workflow/img/batch-editing-advancedmode.png differ diff --git a/docs/manual/docs/user-guide/workflow/img/batch-editing-iso19139fields.png b/docs/manual/docs/user-guide/workflow/img/batch-editing-iso19139fields.png new file mode 100644 index 000000000000..0e0da7d6d27f Binary files /dev/null and b/docs/manual/docs/user-guide/workflow/img/batch-editing-iso19139fields.png differ diff --git a/docs/manual/docs/user-guide/workflow/img/batch-editing-menu.png b/docs/manual/docs/user-guide/workflow/img/batch-editing-menu.png new file mode 100644 index 000000000000..2697c3546086 Binary files /dev/null and b/docs/manual/docs/user-guide/workflow/img/batch-editing-menu.png differ diff --git a/docs/manual/docs/user-guide/workflow/img/batch-editing-replace.png b/docs/manual/docs/user-guide/workflow/img/batch-editing-replace.png new file mode 100644 index 000000000000..ccb3a1e50d71 Binary files /dev/null and b/docs/manual/docs/user-guide/workflow/img/batch-editing-replace.png differ diff --git a/docs/manual/docs/user-guide/workflow/img/batch-editing-report.png b/docs/manual/docs/user-guide/workflow/img/batch-editing-report.png new file mode 100644 index 000000000000..d643bff5afb6 Binary files /dev/null and b/docs/manual/docs/user-guide/workflow/img/batch-editing-report.png differ diff --git a/docs/manual/docs/user-guide/workflow/img/batch-report.png b/docs/manual/docs/user-guide/workflow/img/batch-report.png new file mode 100644 index 000000000000..2513b3e64ce0 Binary files /dev/null and b/docs/manual/docs/user-guide/workflow/img/batch-report.png differ diff --git a/docs/manual/docs/user-guide/workflow/img/batch-search-and-replace-configuration.png b/docs/manual/docs/user-guide/workflow/img/batch-search-and-replace-configuration.png new file mode 100644 index 000000000000..116cc4d34ea0 Binary files /dev/null and b/docs/manual/docs/user-guide/workflow/img/batch-search-and-replace-configuration.png differ diff --git a/docs/manual/docs/user-guide/workflow/img/batch-search-and-replace-vacuum.png b/docs/manual/docs/user-guide/workflow/img/batch-search-and-replace-vacuum.png new file mode 100644 index 000000000000..dec4b168a52f Binary files /dev/null and b/docs/manual/docs/user-guide/workflow/img/batch-search-and-replace-vacuum.png differ diff --git a/docs/manual/docs/user-guide/workflow/img/batch-search-and-select.png b/docs/manual/docs/user-guide/workflow/img/batch-search-and-select.png new file mode 100644 index 000000000000..8c98fe91766c Binary files /dev/null and b/docs/manual/docs/user-guide/workflow/img/batch-search-and-select.png differ diff --git a/docs/manual/docs/user-guide/workflow/img/geopublication-wizard-menu.png b/docs/manual/docs/user-guide/workflow/img/geopublication-wizard-menu.png new file mode 100644 index 000000000000..ee41814003d6 Binary files /dev/null and b/docs/manual/docs/user-guide/workflow/img/geopublication-wizard-menu.png differ diff --git a/docs/manual/docs/user-guide/workflow/img/geopublication-wizard-notavailable.png b/docs/manual/docs/user-guide/workflow/img/geopublication-wizard-notavailable.png new file mode 100644 index 000000000000..88fbc7735818 Binary files /dev/null and b/docs/manual/docs/user-guide/workflow/img/geopublication-wizard-notavailable.png differ diff --git a/docs/manual/docs/user-guide/workflow/img/geopublication-wizard-open.png b/docs/manual/docs/user-guide/workflow/img/geopublication-wizard-open.png new file mode 100644 index 000000000000..7b9d1b414b37 Binary files /dev/null and b/docs/manual/docs/user-guide/workflow/img/geopublication-wizard-open.png differ diff --git a/docs/manual/docs/user-guide/workflow/img/geopublication-wizard-serverlist.png b/docs/manual/docs/user-guide/workflow/img/geopublication-wizard-serverlist.png new file mode 100644 index 000000000000..0a1f6e603f25 Binary files /dev/null and b/docs/manual/docs/user-guide/workflow/img/geopublication-wizard-serverlist.png differ diff --git a/docs/manual/docs/user-guide/workflow/img/geopublication-wizard.png b/docs/manual/docs/user-guide/workflow/img/geopublication-wizard.png new file mode 100644 index 000000000000..f8207549f637 Binary files /dev/null and b/docs/manual/docs/user-guide/workflow/img/geopublication-wizard.png differ diff --git a/docs/manual/docs/user-guide/workflow/img/keywords-concatenated.png b/docs/manual/docs/user-guide/workflow/img/keywords-concatenated.png new file mode 100644 index 000000000000..1b2376cd6db4 Binary files /dev/null and b/docs/manual/docs/user-guide/workflow/img/keywords-concatenated.png differ diff --git a/docs/manual/docs/user-guide/workflow/img/keywords-exploded.png b/docs/manual/docs/user-guide/workflow/img/keywords-exploded.png new file mode 100644 index 000000000000..a3345a01f075 Binary files /dev/null and b/docs/manual/docs/user-guide/workflow/img/keywords-exploded.png differ diff --git a/docs/manual/docs/user-guide/workflow/img/submit-for-review.png b/docs/manual/docs/user-guide/workflow/img/submit-for-review.png new file mode 100644 index 000000000000..ab3a2417f93d Binary files /dev/null and b/docs/manual/docs/user-guide/workflow/img/submit-for-review.png differ diff --git a/docs/manual/docs/user-guide/workflow/img/suggestion-results.png b/docs/manual/docs/user-guide/workflow/img/suggestion-results.png new file mode 100644 index 000000000000..c9fb59211128 Binary files /dev/null and b/docs/manual/docs/user-guide/workflow/img/suggestion-results.png differ diff --git a/docs/manual/docs/user-guide/workflow/img/suggestion-wizard.png b/docs/manual/docs/user-guide/workflow/img/suggestion-wizard.png new file mode 100644 index 000000000000..15403383ec72 Binary files /dev/null and b/docs/manual/docs/user-guide/workflow/img/suggestion-wizard.png differ diff --git a/docs/manual/docs/user-guide/workflow/img/validation-details.png b/docs/manual/docs/user-guide/workflow/img/validation-details.png new file mode 100644 index 000000000000..684047541260 Binary files /dev/null and b/docs/manual/docs/user-guide/workflow/img/validation-details.png differ diff --git a/docs/manual/docs/user-guide/workflow/img/validation-inline.png b/docs/manual/docs/user-guide/workflow/img/validation-inline.png new file mode 100644 index 000000000000..c631a0b2cace Binary files /dev/null and b/docs/manual/docs/user-guide/workflow/img/validation-inline.png differ diff --git a/docs/manual/docs/user-guide/workflow/img/validation-status.png b/docs/manual/docs/user-guide/workflow/img/validation-status.png new file mode 100644 index 000000000000..fb409a59ebca Binary files /dev/null and b/docs/manual/docs/user-guide/workflow/img/validation-status.png differ diff --git a/docs/manual/docs/user-guide/workflow/img/validation.png b/docs/manual/docs/user-guide/workflow/img/validation.png new file mode 100644 index 000000000000..fbbaf2c55253 Binary files /dev/null and b/docs/manual/docs/user-guide/workflow/img/validation.png differ diff --git a/docs/manual/docs/user-guide/workflow/img/workflow-enable.png b/docs/manual/docs/user-guide/workflow/img/workflow-enable.png new file mode 100644 index 000000000000..a4fcd21df41a Binary files /dev/null and b/docs/manual/docs/user-guide/workflow/img/workflow-enable.png differ diff --git a/docs/manual/docs/user-guide/workflow/img/workflow-update-status-popup.png b/docs/manual/docs/user-guide/workflow/img/workflow-update-status-popup.png new file mode 100644 index 000000000000..8b95adf02afa Binary files /dev/null and b/docs/manual/docs/user-guide/workflow/img/workflow-update-status-popup.png differ diff --git a/docs/manual/docs/user-guide/workflow/img/workflow-update-status.png b/docs/manual/docs/user-guide/workflow/img/workflow-update-status.png new file mode 100644 index 000000000000..1a3b4a015cb0 Binary files /dev/null and b/docs/manual/docs/user-guide/workflow/img/workflow-update-status.png differ diff --git a/docs/manual/docs/user-guide/workflow/img/working-copy.png b/docs/manual/docs/user-guide/workflow/img/working-copy.png new file mode 100644 index 000000000000..2b2834035f8c Binary files /dev/null and b/docs/manual/docs/user-guide/workflow/img/working-copy.png differ diff --git a/docs/manual/docs/user-guide/workflow/index.md b/docs/manual/docs/user-guide/workflow/index.md new file mode 100644 index 000000000000..4dd1f85837e3 --- /dev/null +++ b/docs/manual/docs/user-guide/workflow/index.md @@ -0,0 +1,8 @@ +# Workflow + +- [Validation](validation.md) +- [Suggestion](suggestion.md) +- [Life Cycle](life-cycle.md) +- [Geopublication](geopublication.md) +- [Versioning](versioning.md) +- [Batchupdate](batchupdate.md) diff --git a/docs/manual/docs/user-guide/workflow/life-cycle.md b/docs/manual/docs/user-guide/workflow/life-cycle.md new file mode 100644 index 000000000000..6f2d2b33b6db --- /dev/null +++ b/docs/manual/docs/user-guide/workflow/life-cycle.md @@ -0,0 +1,104 @@ +# Life cycle + +## Record life cycle + +Metadata records have a lifecycle that typically goes through one or more states. For example, when a record is: + +- created and edited by an `Editor` it is in the `Draft` state. +- being reviewed by a `content reviewer`, or a review is requested brings the record to `Submitted` state. +- completed and corrected by the `Content Reviewer` it is in the `Approved` state. +- superseded or replaced the state is `Retired`. + +The catalog has (an extensible) set of states that a metadata record can have: + +- `Unknown` - this is the default state - nothing is known about the status of the metadata record. +- `Draft` - the record is under construction or being edited. +- `Submitted` - the record has been submitted for approval to a content review. +- `Approved` - the content reviewer has reviewed and approved the metadata record. +- `Rejected` - the content reviewer has reviewed and rejected the metadata record. +- `Retired` - the record has been retired. + +Workflow can be enabled for the full catalogue, certain groups or on an individual record level. + +In the last case, to enable workflow and change the status from `Unknown` to `Draft`, click the `enable workflow` button in the metadata view: + +![](img/workflow-enable.png) + +!!! note + + To use the workflow for metadata records created before enabling it, you must use the above option. + + +To enable workflow for the full catalogue or certain groups, check Administration > Settings > Metadata Workflow. In workflow mode, in case approved records are modified, you're working on a copy of the approved record. Changes on the record will not be visible to users outside your group until the modified record is approved again. + +When done editing you can submit a record for review by a content reviewer. The submit button is available on the `rd` menu in the metadata view. A popup will open in which you can leave a message for the content reviewer. + +![](img/submit-for-review.png) + +A user with role content reviewer is able to submit a record, instantly approve a record (without submission) or approve a record which has been submitted for review. During the review process a content reviewer may benefit from the version history option, which shows the differences between the different versions of the record. As part of the approval process, the content reviewer can also set the level of access to the record, an option is to set the access level to public (visible to all). + +![](img/approve-metadata.png) + +Notifications will be sent to editors and content reviewers indicating the status changes on the record involved, so users can easily act when action is required. + +In the metadata dashboard you can see which records are currently being updated or reviewed. A label is displayed indicating a 'working copy' is available for that record. You can click the label to visit the work in progress. + +![](img/working-copy.png) + +## Status actions + +There are two status change action hooks (in Java) that can be used by sites to provide specific behaviour: + +- `statusChange` - This action is called when status is changed by a user eg. when `Draft` records are set to `Submitted` and could be used for example to send notifications to other users affected by this change. +- `onEdit` - This action is called when a record is edited and saved and could be used for example to reset records with an `Approved` status to `Draft` status. + +A default set of actions is provided. These can be customized or replaced by sites that wish to provide different or more extensive behaviour. + +A default pair of metadata status change actions defined in Java is provided with GeoNetwork using the class org.fao.geonet.services.metadata.DefaultStatusActions.java (see `core/src/main/java/org/fao/geonet/kernel/metadata/DefaultStatusActions.java`). + +### When a status changes + +This action is called when status is changed by a user. What happens depends on the status change taking place: + +- when an `Editor` changes the state on a metadata record(s) from `Draft` or `Unknown` to `Submitted`, the Content Reviewers from the groupOwner of the record are informed of the status change via email which looks like the following. They can log in and click on the link supplied in the email to access the submitted records. Here is an example email sent by this action: + +``` text +Date: Tue, 13 Dec 2011 12:58:58 +1100 (EST) +From: Metadata Workflow +Subject: Metadata records SUBMITTED by userone@localgeonetwork.org.au (User One) on 2011-12-13T12:58:58 +To: "reviewer@localgeonetwork.org.au" +Reply-to: User One +Message-id: <1968852534.01323741538713.JavaMail.geonetwork@localgeonetwork.org.au> + +These records are complete. Please review. + +Records are available from the following URL: +http://localgeonetwork.org.au/geonetwork/srv/en/main.search?_status=4&_statusChangeDate=2011-12-13T12:58:58 +``` + +- when a `Content Reviewer` changes the state on a metadata record(s) from `Submitted` to `Accepted` or `Rejected`, the owner of the metadata record is informed of the status change via email. The email received by the metadata record owner looks like the following. Again, the user can log in and use the link supplied in the email to access the approved/rejected records. Here is an example email sent by this action: + +``` text +Date: Wed, 14 Dec 2011 12:28:01 +1100 (EST) +From: Metadata Workflow +Subject: Metadata records APPROVED by reviewer@localgeonetwork.org.au (Reviewer) on 2011-12-14T12:28:00 +To: "User One" +Message-ID: <1064170697.31323826081004.JavaMail.geonetwork@localgeonetwork.org.au> +Reply-To: Reviewer + +Records approved - please resubmit for approval when online resources attached + +Records are available from the following URL: +http://localgeonetwork.org.au/geonetwork/srv/en/main.search?_status=2&_statusChangeDate=2011-12-14T12:28:00 +``` + +### When editing + +This action is called when a record is edited and saved by a user. If the user did not indicate that the edit changes were a `Minor edit` and the current status of the record is `Approved`, then the default action is to set the status to `Draft`. + +## Changing the status actions + +These actions can be replaced with different behaviours by: + +- writing Java code in the form of a new class that implements the interface defined in `org.fao.geonet.services.metadata.StatusActions.java` and placing a compiled version of the class in the GeoNetwork class path +- defining the name of the new class in the statusActionsClass configuration parameter in `web/geonetwork/WEB-INF/config.xml` diff --git a/docs/manual/docs/user-guide/workflow/suggestion.md b/docs/manual/docs/user-guide/workflow/suggestion.md new file mode 100644 index 000000000000..9a010b59e7b1 --- /dev/null +++ b/docs/manual/docs/user-guide/workflow/suggestion.md @@ -0,0 +1,29 @@ +# Suggestion for improving metadata content {#metadata_suggestion} + +The metadata editor can be configured to analyse metadata and make suggestions to improve it. Examples of this include exploding a list of comma-separated keywords in a single element into multiple individual elements. + +The processes available in a given metadata schema are defined in the schemas `suggest.xsl` file, for example + +The xsl files for each process are in the `process` folder within the schema. + +To use the metadata suggestions service, it must be defined within at least one of the editing layout views for the schema. + +In editing mode, click the icon in the suggestions wizard to run the service on your metadata: + +![](img/suggestion-wizard.png) + +If there are no valid suggestions then the process will return no results. If there are valid suggestions, such as the keyword exploder above, this will be shown in the results: + +![](img/suggestion-results.png) + +Click the task to run the xsl and transform the metadata. Using the keyword exploder service this will result in going from: + +![](img/keywords-concatenated.png) + +to: + +![](img/keywords-exploded.png) + +## Creating a new process + +See for information on how to add a new process. The new process must then be registered in `suggest.xsl` diff --git a/docs/manual/docs/user-guide/workflow/validation.md b/docs/manual/docs/user-guide/workflow/validation.md new file mode 100644 index 000000000000..3619f45375ce --- /dev/null +++ b/docs/manual/docs/user-guide/workflow/validation.md @@ -0,0 +1,23 @@ +# Validating records {#validation} + +#\. In the metadata editor, click Validate to trigger the validation. The right panel displays all validation results by levels: + +![](img/validation.png) + +#\. Click the thumbs up or down icons to display errors. Errors reported in blue are for information only and do not affect the global validation of the record: + +![](img/validation-details.png) + +The editor also reports error messages where applicable (as all error messages cannot be shown in the editor): + +![](img/validation-inline.png) + +1. Once a record is validated, the validation status is saved and is displayed in the editor board page: + +![](img/validation-status.png) + +You can filter the Validation status using a facet in the editor board. + +## Configuring validation + +Catalog administrators can force validation every time an editor exits or closes the metadata editing interface (see [system-configuration](system-configuration.md)). To configure validation levels (see [configure-validation](configure-validation.md)). In case of INSPIRE records, you can use remote validator (see [inspire-validation](inspire-validation.md)) diff --git a/docs/manual/docs/user-guide/workflow/versioning.md b/docs/manual/docs/user-guide/workflow/versioning.md new file mode 100644 index 000000000000..1ca61baaacfa --- /dev/null +++ b/docs/manual/docs/user-guide/workflow/versioning.md @@ -0,0 +1 @@ +# Versioning diff --git a/docs/manual/mkdocs.yml b/docs/manual/mkdocs.yml index 6e1ee3f79f07..701fad27ee72 100644 --- a/docs/manual/mkdocs.yml +++ b/docs/manual/mkdocs.yml @@ -126,8 +126,72 @@ nav: - install-guide/map-print-setup.md - install-guide/loading-samples.md - 'User': - - 'user-guide/index.md' - - 'user-guide/quick-start/index.md' + - user-guide/index.md + - user-guide/quick-start/index.md + - user-guide/map/index.md + - 'Describing Information': + - user-guide/describing-information/index.md + - user-guide/describing-information/creating-metadata.md + - user-guide/describing-information/deleting-metadata.md + - user-guide/describing-information/editing-metadata.md + - user-guide/describing-information/importing-metadata.md + - user-guide/describing-information/inspire-editing.md + - user-guide/describing-information/managing-templates.md + - user-guide/describing-information/multilingual-editing.md + - 'Associating Resources': + - user-guide/associating-resources/index.md + - user-guide/associating-resources/cite.md + - user-guide/associating-resources/doi.md + - user-guide/associating-resources/linking-dataset-or-service.md + - user-guide/associating-resources/linking-documents.md + - user-guide/associating-resources/linking-feature-catalog.md + - user-guide/associating-resources/linking-online-resources.md + - user-guide/associating-resources/linking-others.md + - user-guide/associating-resources/linking-parent.md + - user-guide/associating-resources/linking-records.md + - user-guide/associating-resources/linking-remote-records.md + - user-guide/associating-resources/linking-source.md + - user-guide/associating-resources/linking-thumbnail.md + - user-guide/associating-resources/using-filestore.md + - 'Tag information': + - user-guide/tag-information/index.md + - user-guide/tag-information/tagging-with-categories.md + - user-guide/tag-information/tagging-with-keywords.md + - 'Publishing': + - user-guide/publishing/index.md + - user-guide/publishing/managing-privileges.md + - user-guide/publishing/restricting-information-to-metadata-sections.md + - user-guide/publishing/transferring-privileges.md + - 'Analyzing': + - user-guide/analyzing/index.md + - user-guide/analyzing/data.md + - user-guide/analyzing/metadata.md + - 'Workflow': + - user-guide/workflow/index.md + - user-guide/workflow/batchediting.md + - user-guide/workflow/batchupdate-from-admin.md + - user-guide/workflow/batchupdate-xsl.md + - user-guide/workflow/batchupdate.md + - user-guide/workflow/geopublication.md + - user-guide/workflow/life-cycle.md + - user-guide/workflow/suggestion.md + - user-guide/workflow/validation.md + - user-guide/workflow/versioning.md + - 'Harvesting': + - user-guide/harvesting/index.md + - user-guide/harvesting/harvesting-csw.md + - user-guide/harvesting/harvesting-filesystem.md + - user-guide/harvesting/harvesting-geonetwork.md + - user-guide/harvesting/harvesting-geoportal.md + - user-guide/harvesting/harvesting-oaipmh.md + - user-guide/harvesting/harvesting-ogcwxs.md + - user-guide/harvesting/harvesting-sde.md + - user-guide/harvesting/harvesting-simpleurl.md + - user-guide/harvesting/harvesting-thredds.md + - user-guide/harvesting/harvesting-webdav.md + - user-guide/harvesting/harvesting-wfs-features.md + - user-guide/harvesting/harvesting-z3950.md + - user-guide/export/index.md - 'Administrator': - administrator-guide/index.md - 'Catalog':