From 908a71e0531f5c9e68cffa4b25e59c60f74587f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Garc=C3=ADa?= Date: Mon, 8 Jul 2024 14:09:59 +0200 Subject: [PATCH] Documentation / Unify harvesters configuration --- .../user-guide/harvesting/harvesting-csw.md | 46 ++++++--- .../harvesting/harvesting-filesystem.md | 46 ++++++--- .../harvesting/harvesting-geonetwork.md | 13 ++- .../harvesting/harvesting-geoportal.md | 44 ++++++--- .../harvesting/harvesting-oaipmh.md | 57 ++++++----- .../harvesting/harvesting-ogcwxs.md | 61 ++++++++---- .../user-guide/harvesting/harvesting-sde.md | 65 +++++++------ .../harvesting/harvesting-simpleurl.md | 91 +++++++++++------- .../harvesting/harvesting-thredds.md | 56 ++++++----- .../harvesting/harvesting-webdav.md | 9 +- .../harvesting/harvesting-wfs-features.md | 47 ++++++--- .../harvesting/img/add-arcsde-harvester.png | Bin 0 -> 6597 bytes .../harvesting/img/add-csw-harvester.png | Bin 0 -> 16634 bytes .../img/add-filesystem-harvester.png | Bin 0 -> 8260 bytes .../img/add-geoportalrest-harvester.png | Bin 0 -> 13441 bytes .../harvesting/img/add-oaipmh-harvester.png | Bin 0 -> 14305 bytes .../img/add-ogcwebservices-harvester.png | Bin 0 -> 18528 bytes .../img/add-simpleurl-harvester.png | Bin 0 -> 21541 bytes .../img/add-threddscatalog-harvester.png | Bin 0 -> 22972 bytes .../img/add-wfsgetfeature-harvester.png | Bin 0 -> 20597 bytes .../docs/user-guide/harvesting/index.md | 28 +++--- 21 files changed, 348 insertions(+), 215 deletions(-) create mode 100644 docs/manual/docs/user-guide/harvesting/img/add-arcsde-harvester.png create mode 100644 docs/manual/docs/user-guide/harvesting/img/add-csw-harvester.png create mode 100644 docs/manual/docs/user-guide/harvesting/img/add-filesystem-harvester.png create mode 100644 docs/manual/docs/user-guide/harvesting/img/add-geoportalrest-harvester.png create mode 100644 docs/manual/docs/user-guide/harvesting/img/add-oaipmh-harvester.png create mode 100644 docs/manual/docs/user-guide/harvesting/img/add-ogcwebservices-harvester.png create mode 100644 docs/manual/docs/user-guide/harvesting/img/add-simpleurl-harvester.png create mode 100644 docs/manual/docs/user-guide/harvesting/img/add-threddscatalog-harvester.png create mode 100644 docs/manual/docs/user-guide/harvesting/img/add-wfsgetfeature-harvester.png diff --git a/docs/manual/docs/user-guide/harvesting/harvesting-csw.md b/docs/manual/docs/user-guide/harvesting/harvesting-csw.md index 614687eb471..dc94a777d4a 100644 --- a/docs/manual/docs/user-guide/harvesting/harvesting-csw.md +++ b/docs/manual/docs/user-guide/harvesting/harvesting-csw.md @@ -4,16 +4,38 @@ This harvester will connect to a remote CSW server and retrieve metadata records ## 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. +To create a CSW harvester go to `Admin console` > `Harvesting` and select `Harvest from` > `CSW`: + +![](img/add-csw-harvester.png) + +Providing the following information: + +- **Identification** + - *Node name and logo*: A unique name for the harvester and, optionally, a logo to assign to the harvester. + - *Group*: Group which owns the harvested records. Only the catalog administrator or users with the profile `UserAdmin` of this group can manage the harvester. + - *User*: User who owns the harvested records. + +- **Schedule**: Scheduling options to execute the harvester. If disabled, the harvester must be run manually from the harvester page. If enabled, a scheduling expression using cron syntax should be configured ([See examples](https://www.quartz-scheduler.org/documentation/quartz-2.1.7/tutorials/crontrigger)). + +- **Configure connection to OGC CSW 2.0.2** + - *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. + - *Remote authentication*: If checked, should be provided the credentials for basic HTTP authentication on the CSW server. + - *Search filter*: (Optional) Define the search criteria below to restrict the records to harvest. + - *Search options*: + - *Sort by*: Define sort option to retrieve the results. Sorting by 'identifier:A' means by UUID with alphabetical order. Any CSW queryables can be used in combination with A or D for setting the ordering. + - *Output Schema*: The metadata standard to request the metadata records from the CSW server. + - *Distributed search*: Enables the distributed search in remote server (if the remote server supports it). When this option is enabled, the remote catalog cascades the search to the Federated CSW servers that has configured. + +- **Configure response processing for CSW** + - *Action on UUID collision*: When a harvester finds the same uuid on a record collected by another method (another harvester, importer, dashboard editor,...), should this record be skipped (default), overriden or generate a new UUID? + - *Validate records before import*: Defines the criteria to reject metadata that is invalid according to XML structure (XSD) and validation rules (schematron). + - Accept all metadata without validation. + - Accept metadata that are XSD valid. + - Accept metadata that are XSD and schematron valid. + - *Check for duplicate resources based on the resource identifier*: If checked, ignores metadata with a resource identifier (`gmd:identificationInfo/*/gmd:citation/gmd:CI_Citation/gmd:identifier/*/gmd:code/gco:CharacterString`) that is assigned to other metadata record in the catalog. It only applies to records in ISO19139 or ISO profiles. + - *XPath filter*: (Optional) When record is retrived from remote server, check an XPath expression to accept or discard the record. + - *XSL transformation to apply*: (Optional) The referenced XSL transform will be applied to each metadata record before it is added to GeoNetwork. + - *Batch edits*: (Optional) Allows to update harvested records, using XPATH syntax. It can be used to add, replace or delete element. + - *Category*: (Optional) A GeoNetwork category to assign to each metadata record. + - **Privileges** - Assign privileges to harvested metadata. -- **Categories** diff --git a/docs/manual/docs/user-guide/harvesting/harvesting-filesystem.md b/docs/manual/docs/user-guide/harvesting/harvesting-filesystem.md index 5e0b6b3ab54..900deeafc4c 100644 --- a/docs/manual/docs/user-guide/harvesting/harvesting-filesystem.md +++ b/docs/manual/docs/user-guide/harvesting/harvesting-filesystem.md @@ -4,21 +4,35 @@ This harvester will harvest metadata as XML files from a filesystem available on ## 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** +To create a Local File System harvester go to `Admin console` > `Harvesting` and select `Harvest from` > `Directory`: + +![](img/add-filesystem-harvester.png) + +Providing the following information: -!!! Notes +- **Identification** + - *Node name and logo*: A unique name for the harvester and, optionally, a logo to assign to the harvester. + - *Group*: Group which owns the harvested records. Only the catalog administrator or users with the profile `UserAdmin` of this group can manage the harvester. + - *User*: User who owns the harvested records. - - in order to be successfully harvested, metadata records retrieved from the file system must match a metadata schema in the local GeoNetwork instance +- **Schedule**: Scheduling options to execute the harvester. If disabled, the harvester must be run manually from the harvester page. If enabled, a scheduling expression using cron syntax should be configured ([See examples](https://www.quartz-scheduler.org/documentation/quartz-2.1.7/tutorials/crontrigger)). + +- **Configure connection to Directory** + - *Directory*: The path name of the directory containing the metadata (as XML files) to be harvested. The directory must be accessible by GeoNetwork. + - *Also search in subfolders*: 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. + - *Script to run before harvesting* + - *Type of record* + +- **Configure response processing for filesystem** + - *Action on UUID collision*: When a harvester finds the same uuid on a record collected by another method (another harvester, importer, dashboard editor,...), should this record be skipped (default), overriden or generate a new UUID? + - *Update catalog record only if file was updated* + - *Keep local even 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. + - *Validate records before import*: Defines the criteria to reject metadata that is invalid according to XML structure (XSD) and validation rules (schematron). + - Accept all metadata without validation. + - Accept metadata that are XSD valid. + - Accept metadata that are XSD and schematron valid. + - *XSL transformation to apply*: (Optional) The referenced XSL transform will be applied to each metadata record before it is added to GeoNetwork. + - *Batch edits*: (Optional) Allows to update harvested records, using XPATH syntax. It can be used to add, replace or delete element. + - *Category*: (Optional) A GeoNetwork category to assign to each metadata record. + +- **Privileges** - Assign privileges to harvested metadata. diff --git a/docs/manual/docs/user-guide/harvesting/harvesting-geonetwork.md b/docs/manual/docs/user-guide/harvesting/harvesting-geonetwork.md index b8e463e4533..3c692b5e3ec 100644 --- a/docs/manual/docs/user-guide/harvesting/harvesting-geonetwork.md +++ b/docs/manual/docs/user-guide/harvesting/harvesting-geonetwork.md @@ -11,11 +11,11 @@ To create a GeoNetwork 2.1-3.X harvester go to `Admin console` > `Harvesting` an Providing the following information: - **Identification** - - *Node name and logo*: A unique name for the harvester and optionally a logo to assign to the harvester. + - *Node name and logo*: A unique name for the harvester and, optionally, a logo to assign to the harvester. - *Group*: Group which owns the harvested records. Only the catalog administrator or users with the profile `UserAdmin` of this group can manage the harvester. - *User*: User who owns the harvested records. -- **Schedule**: Scheduling options to execute the harvester. If disabled, the harvester should be executed manually from the harvesters page. If enabled a schedule expression using cron syntax should be configured ([See examples](https://www.quartz-scheduler.org/documentation/quartz-2.1.7/tutorials/crontrigger)). +- **Schedule**: Scheduling options to execute the harvester. If disabled, the harvester must be run manually from the harvester page. If enabled, a scheduling expression using cron syntax should be configured ([See examples](https://www.quartz-scheduler.org/documentation/quartz-2.1.7/tutorials/crontrigger)). - **Configure connection to GeoNetwork (from 2.1 to 3.x)** - *Catalog URL*: @@ -23,11 +23,11 @@ Providing the following information: - Additionally, it should be configured the node name, usually the value `srv`. - *Search filter*: (Optional) Define the filter to retrieve the remote metadata. - *Catalog*: (Optional) Select the portal in the remote server to harvest. - - *Remote authentication*: If checked, should be provided the credentials for basic HTTP authentication on the WebDAV/WAF server. - - *Use full MEF format*: If checked, uses MEF format instead of XML to retrieve the remote metadata. Recommended to metadata with files. - **Configure response processing for GeoNetwork** - *Action on UUID collision*: When a harvester finds the same uuid on a record collected by another method (another harvester, importer, dashboard editor,...), should this record be skipped (default), overriden or generate a new UUID? + - *Remote authentication*: If checked, should be provided the credentials for basic HTTP authentication on the WebDAV/WAF server. + - *Use full MEF format*: If checked, uses MEF format instead of XML to retrieve the remote metadata. Recommended to metadata with files. - *Use change date for comparison*: If checked, uses change date to detect changes on remote server. - *Set category if it exists locally*: If checked, uses the category set on the metadata in the remote server also locally (assuming it exists locally). Applies only when using MEF format for the harvesting. - *Category*: (Optional) A GeoNetwork category to assign to each metadata record. @@ -35,6 +35,9 @@ Providing the following information: It could be composed of parameter which will be sent to XSL transformation using the following syntax: `anonymizer?protocol=MYLOCALNETWORK:FILEPATH&email=gis@organisation.org&thesaurus=MYORGONLYTHEASURUS` - - *Validate records before import*: If checked, the metadata will be validated after retrieval. If the validation does not pass, the metadata will be skipped. + - *Validate records before import*: Defines the criteria to reject metadata that is invalid according to XML structure (XSD) and validation rules (schematron). + - 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-geoportal.md b/docs/manual/docs/user-guide/harvesting/harvesting-geoportal.md index e8887286ea3..ec16a07b9ae 100644 --- a/docs/manual/docs/user-guide/harvesting/harvesting-geoportal.md +++ b/docs/manual/docs/user-guide/harvesting/harvesting-geoportal.md @@ -4,24 +4,38 @@ This harvester will connect to a remote GeoPortal version 9.3.x or 10.x server a ## 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. +To create a GeoPortal REST harvester go to `Admin console` > `Harvesting` and select `Harvest from` > `GeoPortal REST`: + +![](img/add-geoportalrest-harvester.png) + +Providing the following information: + +- **Identification** + - *Node name and logo*: A unique name for the harvester and, optionally, a logo to assign to the harvester. + - *Group*: Group which owns the harvested records. Only the catalog administrator or users with the profile `UserAdmin` of this group can manage the harvester. + - *User*: User who owns the harvested records. + +- **Schedule**: Scheduling options to execute the harvester. If disabled, the harvester must be run manually from the harvester page. If enabled, a scheduling expression using cron syntax should be configured ([See examples](https://www.quartz-scheduler.org/documentation/quartz-2.1.7/tutorials/crontrigger)). + +- **Configure connection to GeoPortal REST** + - *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. + - *Remote authentication*: If checked, should be provided the credentials for basic HTTP authentication on the server. + - *Search filter*: (Optional) You can query any field on the GeoPortal server using the Lucene query syntax described at . + +- **Configure response processing for geoPREST** + - *Validate records before import*: Defines the criteria to reject metadata that is invalid according to XML structure (XSD) and validation rules (schematron). + - Accept all metadata without validation. + - Accept metadata that are XSD valid. + - Accept metadata that are XSD and schematron valid. + - *XSL transformation to apply*: (Optional) The referenced XSL transform will be applied to each metadata record before it is added to GeoNetwork. + - **Privileges** - Assign privileges to harvested metadata. -- **Categories** + !!! Notes - - this harvester uses two REST services from the GeoPortal API: + - 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 + - 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 index cf046363634..6c528feb7e2 100644 --- a/docs/manual/docs/user-guide/harvesting/harvesting-oaipmh.md +++ b/docs/manual/docs/user-guide/harvesting/harvesting-oaipmh.md @@ -1,36 +1,49 @@ # OAIPMH Harvesting {#oaipmh_harvester} -This is a harvesting protocol that is widely used among libraries. GeoNetwork implements version 2.0 of the protocol. +This is a harvesting protocol that is widely used among libraries. GeoNetwork implements version 2.0 of the protocol. An OAI-PMH server implements a harvesting protocol that GeoNetwork, acting as a client, can use to harvest metadata. ## Adding an OAI-PMH harvester -An OAI-PMH server implements a harvesting protocol that GeoNetwork, acting as a client, can use to harvest metadata. +To create a OAI-PMH harvester go to `Admin console` > `Harvesting` and select `Harvest from` > `OAI/PMH`: -Configuration options: +![](img/add-oaipmh-harvester.png) -- **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. +Providing the following information: -!!! note +- **Identification** + - *Node name and logo*: A unique name for the harvester and, optionally, a logo to assign to the harvester. + - *Group*: Group which owns the harvested records. Only the catalog administrator or users with the profile `UserAdmin` of this group can manage the harvester. + - *User*: User who owns the harvested records. - 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. +- **Schedule**: Scheduling options to execute the harvester. If disabled, the harvester must be run manually from the harvester page. If enabled, a scheduling expression using cron syntax should be configured ([See examples](https://www.quartz-scheduler.org/documentation/quartz-2.1.7/tutorials/crontrigger)). +- **Configure connection to OGC CSW 2.0.2** + - *URL*: The URL of the OAI-PMH server from which metadata will be harvested. + - *Remote authentication*: If checked, should be provided the credentials for basic HTTP authentication on the OAIPMH server. + - *Search filter*: (Optional) Define the search criteria below to restrict the records to harvest. + - *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. + + !!! 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. +- **Configure response processing for oaipmh** + - *Action on UUID collision*: When a harvester finds the same uuid on a record collected by another method (another harvester, importer, dashboard editor,...), should this record be skipped (default), overriden or generate a new UUID? + - *Validate records before import*: Defines the criteria to reject metadata that is invalid according to XML structure (XSD) and validation rules (schematron). + - Accept all metadata without validation. + - Accept metadata that are XSD valid. + - Accept metadata that are XSD and schematron valid. + - *XSL transformation to apply*: (Optional) The referenced XSL transform will be applied to each metadata record before it is added to GeoNetwork. + + - *Category*: (Optional) A GeoNetwork category to assign to each metadata record. + +- **Privileges** - Assign privileges to harvested metadata. -- **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. + - 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 index 52c88c134d4..70f45cf75d6 100644 --- a/docs/manual/docs/user-guide/harvesting/harvesting-ogcwxs.md +++ b/docs/manual/docs/user-guide/harvesting/harvesting-ogcwxs.md @@ -11,27 +11,46 @@ An OGC service implements a GetCapabilities operation that GeoNetwork, acting as ## 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"). +To create a OGC Service harvester go to `Admin console` > `Harvesting` and select `Harvest from` > `OGC Web Services`: + +![](img/add-ogcwebservices-harvester.png) + +Providing the following information: + +- **Identification** + - *Node name and logo*: A unique name for the harvester and, optionally, a logo to assign to the harvester. + - *Group*: Group which owns the harvested records. Only the catalog administrator or users with the profile `UserAdmin` of this group can manage the harvester. + - *User*: User who owns the harvested records. + +- **Schedule**: Scheduling options to execute the harvester. If disabled, the harvester must be run manually from the harvester page. If enabled, a scheduling expression using cron syntax should be configured ([See examples](https://www.quartz-scheduler.org/documentation/quartz-2.1.7/tutorials/crontrigger)). + +- **Configure connection to OGC Web Services** + - *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 . + - *Service 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). + - *Remote authentication*: If checked, should be provided the credentials for basic HTTP authentication on the server. + +- **Configure response processing for ogcwxs** + - *Build service metadata record from a template*: + - *Category for service metadata*: (Optional) Metadata for the harvested service is assigned to the category selected in this option (eg. "interactive resources"). + - *Create record for each layer only using GetCapabilities information*: Checking this option means that the harvester will loop over datasets served by the service as described in the GetCapabilities document. + - *Import record for each layer 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. + - *Build dataset metadata records from a template* + - *Create thumbnail*: If checked, when harvesting from an OGC Web Map Service (WMS) that supports WGS84 projection, thumbnails for the layers metadata will be created during harvesting. + - *Category for datasets*: Metadata for the harvested datasets is assigned to the category selected in this option (eg. "datasets"). + + - *ISO category*: (Optional) 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". + - *Metadata language*: Required field that will define the language of the metadata. It should be the language used by the OGC web service administrator. + - *Output schema*: The metadata schema of the dataset metadata records that will be created by this harvester. The value should be an XSLT process which is used by the harvester to convert the GetCapabilities document to metadata records from that schema. If in doubt, use the default value `iso19139`. + - *Validate records before import*: Defines the criteria to reject metadata that is invalid according to XML structure (XSD) and validation rules (schematron). + - Accept all metadata without validation. + - Accept metadata that are XSD valid. + - Accept metadata that are XSD and schematron valid. + - *XSL transformation to apply*: (Optional) The referenced XSL transform will be applied to each metadata record before it is added to GeoNetwork. + + +- **Privileges** - Assign privileges to harvested metadata. + !!! 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. + - 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 diff --git a/docs/manual/docs/user-guide/harvesting/harvesting-sde.md b/docs/manual/docs/user-guide/harvesting/harvesting-sde.md index 7f4f99cb913..32cdd4df780 100644 --- a/docs/manual/docs/user-guide/harvesting/harvesting-sde.md +++ b/docs/manual/docs/user-guide/harvesting/harvesting-sde.md @@ -1,55 +1,60 @@ # Harvesting an ARCSDE Node {#sde_harvester} -This is a harvesting protocol for metadata stored in an ArcSDE installation. +This is a harvesting protocol for metadata stored in an ArcSDE installation. The harvester identifies the ESRI metadata format: ESRI ISO, ESRI FGDC to apply the required xslts to transform metadata to ISO19139. ## 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: +To create an ArcSDE harvester go to `Admin console` > `Harvesting` and select `Harvest from` > `ArcSDE`: + +![](img/add-arcsde-harvester.png) + +Providing the following information: - **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. + - *Node name and logo*: A unique name for the harvester and, optionally, a logo to assign to the harvester. + - *Group*: Group which owns the harvested records. Only the catalog administrator or users with the profile `UserAdmin` of this group can manage the harvester. + - *User*: User who owns the harvested records. + +- **Schedule**: Scheduling options to execute the harvester. If disabled, the harvester must be run manually from the harvester page. If enabled, a scheduling expression using cron syntax should be configured ([See examples](https://www.quartz-scheduler.org/documentation/quartz-2.1.7/tutorials/crontrigger)). + +- **Configure connection to Database** + - *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 service*: Uses the ArcSDE service to retrieve the metadata. !!! note - Additional installation steps are required to use the ArcSDE harvester because it needs proprietary ESRI Java api jars to be installed. - - 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 + Additional installation steps are required to use the ArcSDE harvester because it needs proprietary ESRI Java api jars to be installed. + 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. - - *Database direct connection* - Uses a database connection (JDBC) to retrieve the metadata. With + The following jars are required: - !!! note + - jpe_sdk.jar + - jsde_sdk.jar - Database direct connection requires to copy JDBC drivers in INSTALL_DIR_GEONETWORK/WEB-INF/lib. + `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. + + !!! note + + Database direct connection requires to copy JDBC drivers in `INSTALL_DIR_GEONETWORK/WEB-INF/lib`. !!! note 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. + - *Database type* - ArcSDE database type: Oracle, Postgres, SqlServer. Only available if connection type is configured to *Database direct connection*. + - *Remote authentication*: Credentials to connect to the ArcSDE server. + +- **Configure response processing for arcsde** + - *Validate records before import*: Defines the criteria to reject metadata that is invalid according to XML structure (XSD) and validation rules (schematron). - 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 index 775b4a9d1a9..e7243dc8421 100644 --- a/docs/manual/docs/user-guide/harvesting/harvesting-simpleurl.md +++ b/docs/manual/docs/user-guide/harvesting/harvesting-simpleurl.md @@ -4,47 +4,72 @@ This harvester connects to a remote server via a simple URL to retrieve metadata ## Adding a simple URL harvester -- **Site** - Options about the remote site. +To create a Simple URL harvester go to `Admin console` > `Harvesting` and select `Harvest from` > `Simple URL`: - - *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` +![](img/add-simpleurl-harvester.png) - !!! note +Providing the following information: - 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`. +- **Identification** + - *Node name and logo*: A unique name for the harvester and, optionally, a logo to assign to the harvester. + - *Group*: Group which owns the harvested records. Only the catalog administrator or users with the profile `UserAdmin` of this group can manage the harvester. + - *User*: User who owns the harvested records. +- **Schedule**: Scheduling options to execute the harvester. If disabled, the harvester must be run manually from the harvester page. If enabled, a scheduling expression using cron syntax should be configured ([See examples](https://www.quartz-scheduler.org/documentation/quartz-2.1.7/tutorials/crontrigger)). - **Sample configuration for opendatasoft** +- **Configure connection to Simple URL** + - *URL* - The URL of the server to be harvested. This can include pagination params like `?start=0&rows=20` + - *Remote authentication*: If checked, should be provided the credentials for basic HTTP authentication on the server. + - *Element to loop on*: Propery/element containing a list of the record entries. (Indicated as an absolute path from the document root.) eg. `/datasets` + - *Element for the UUID of each record* : Property containing the record id. eg. `datasetid` + - *Pagination parameters*: (optional). + - *Element for the number of records to collect*: Property indicating the total count of record entries. (Indicated as an absolute path from the document root.) eg. `/nhits` + - *From URL parameter*: Property indicating the first record item on the current "page" eg. `start` + - *Size URL parameter*: Property indicating the number of records containned in the current "page" eg. `rows` + +- **Configure response processing for Simple URL** - - *loopElement* - `/datasets` - - *numberOfRecordPath* : `/nhits` - - *recordIdPath* : `datasetid` - - *pageFromParam* : `start` - - *pageSizeParam* : `rows` - - *toISOConversion* : `OPENDATASOFT-to-ISO19115-3-2018` + - *XSL transformation to apply*: Name of the conversion schema to use, which must be available as XSL on the GeoNetwork instance. eg. `OPENDATASOFT-to-ISO19115-3-2018` - **Sample configuration for ESRI** + !!! note - - *loopElement* - `/dataset` - - *numberOfRecordPath* : `/result/count` - - *recordIdPath* : `landingPage` - - *pageFromParam* : `start` - - *pageSizeParam* : `rows` - - *toISOConversion* : `ESRIDCAT-to-ISO19115-3-2018` + 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 DKAN** - - - *loopElement* - `/result/0` - - *numberOfRecordPath* : `/result/count` - - *recordIdPath* : `id` - - *pageFromParam* : `start` - - *pageSizeParam* : `rows` - - *toISOConversion* : `DKAN-to-ISO19115-3-2018` + - *Batch edits*: (Optional) Allows to update harvested records, using XPATH syntax. It can be used to add, replace or delete element. + - *Category*: (Optional) A GeoNetwork category to assign to each metadata record. + - *Validate records before import*: Defines the criteria to reject metadata that is invalid according to XML structure (XSD) and validation rules (schematron). + - 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. + + +## Sample configurations + +### Sample configuration for opendatasoft + +- *Element to loop on* - `/datasets` +- *Element for the number of records to collect* : `/nhits` +- *Element for the UUID of each record* : `datasetid` +- *From URL parameter* : `start` +- *Size URL parameter* : `rows` +- *XSL transformation to apply* : `OPENDATASOFT-to-ISO19115-3-2018` + +### Sample configuration for ESRI + +- *Element to loop on* - `/dataset` +- *Element for the number of records to collect* : `/result/count` +- *Element for the UUID of each record* : `landingPage` +- *From URL parameter* : `start` +- *Size URL parameter* : `rows` +- *XSL transformation to apply* : `ESRIDCAT-to-ISO19115-3-2018` + +### Sample configuration for DKAN + +- *Element to loop on* - `/result/0` +- *Element for the number of records to collect* : `/result/count` +- *Element for the UUID of each record* : `id` +- *From URL parameter* : `start` +- *Size URL parameter* : `rows` +- *XSL transformation to apply* : `DKAN-to-ISO19115-3-2018` diff --git a/docs/manual/docs/user-guide/harvesting/harvesting-thredds.md b/docs/manual/docs/user-guide/harvesting/harvesting-thredds.md index 2c988d58e34..bb4716c7508 100644 --- a/docs/manual/docs/user-guide/harvesting/harvesting-thredds.md +++ b/docs/manual/docs/user-guide/harvesting/harvesting-thredds.md @@ -4,35 +4,33 @@ THREDDS catalogs describe inventories of datasets. They are organised in a hiera ## 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. +To create a THREDDS Catalog harvester go to `Admin console` > `Harvesting` and select `Harvest from` > `Thredds Catalog`: + +![](img/add-threddscatalog-harvester.png) + +Providing the following information: + +- **Identification** + - *Node name and logo*: A unique name for the harvester and, optionally, a logo to assign to the harvester. + - *Group*: Group which owns the harvested records. Only the catalog administrator or users with the profile `UserAdmin` of this group can manage the harvester. + - *User*: User who owns the harvested records. + +- **Schedule**: Scheduling options to execute the harvester. If disabled, the harvester must be run manually from the harvester page. If enabled, a scheduling expression using cron syntax should be configured ([See examples](https://www.quartz-scheduler.org/documentation/quartz-2.1.7/tutorials/crontrigger)). + +- **Configure connection to Thredds catalog** + - *Service 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. + +- **Configure response processing for thredds** + - *Language*: Use this option to specify the language of the metadata to be harvested. + - *ISO19115 Topic category for output metadata records*: Use this option to specify the ISO topic category of service metadata. + - *Create ISO19119 metadata for all services in the thredds 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. + - *Select schema for output metadata records*: The metadata standard to create the metadata. It should be a valid metadata schema installed in GeoNetwork, by default `iso19139`. + - *Dataset title*: (Optional) Title for the dataset. Default is catalog url. + - *Dataset abstract*: (Optional) Abstract for the dataset. Default is 'Thredds Dataset'. + - *Geonetwork category to assign to dataset metadata records* - Select the category to assign to the ISO19119 service records for the THREDDS services. + - *Geonetwork category to assign to dataset metadata records* - Select the category to assign the generated metadata records (and any subtemplates) to. + +- **Privileges** - Assign privileges to harvested metadata. ## More about harvesting THREDDS DIF metadata elements with the THREDDS Harvester diff --git a/docs/manual/docs/user-guide/harvesting/harvesting-webdav.md b/docs/manual/docs/user-guide/harvesting/harvesting-webdav.md index 209d5e13c61..cdd6b12434a 100644 --- a/docs/manual/docs/user-guide/harvesting/harvesting-webdav.md +++ b/docs/manual/docs/user-guide/harvesting/harvesting-webdav.md @@ -11,11 +11,11 @@ To create a WebDAV harvester go to `Admin console` > `Harvesting` and select `Ha Providing the following information: - **Identification** - - *Node name and logo*: A unique name for the harvester and optionally a logo to assign to the harvester. + - *Node name and logo*: A unique name for the harvester and, optionally, a logo to assign to the harvester. - *Group*: Group which owns the harvested records. Only the catalog administrator or users with the profile `UserAdmin` of this group can manage the harvester. - *User*: User who owns the harvested records. -- **Schedule**: Scheduling options to execute the harvester. If disabled, the harvester should be executed manually from the harvesters page. If enabled a schedule expression using cron syntax should be configured ([See examples](https://www.quartz-scheduler.org/documentation/quartz-2.1.7/tutorials/crontrigger)). +- **Schedule**: Scheduling options to execute the harvester. If disabled, the harvester must be run manually from the harvester page. If enabled, a scheduling expression using cron syntax should be configured ([See examples](https://www.quartz-scheduler.org/documentation/quartz-2.1.7/tutorials/crontrigger)). - **Configure connection to WebDAV / WAF** - *URL*: The remote URL from which metadata will be harvested. Each file found that has the extension `.xml` is assumed to be a metadata record. @@ -29,7 +29,10 @@ Providing the following information: It could be composed of parameter which will be sent to XSL transformation using the following syntax: `anonymizer?protocol=MYLOCALNETWORK:FILEPATH&email=gis@organisation.org&thesaurus=MYORGONLYTHEASURUS` - - *Validate records before import*: If checked, the metadata will be validated after retrieval. If the validation does not pass, the metadata will be skipped. + - *Validate records before import*: Defines the criteria to reject metadata that is invalid according to XML structure (XSD) and validation rules (schematron). + - Accept all metadata without validation. + - Accept metadata that are XSD valid. + - Accept metadata that are XSD and schematron valid. - *Category*: (Optional) A GeoNetwork category to assign to each metadata record. - **Privileges** - Assign privileges to harvested metadata. diff --git a/docs/manual/docs/user-guide/harvesting/harvesting-wfs-features.md b/docs/manual/docs/user-guide/harvesting/harvesting-wfs-features.md index 16abfa13bb7..c198e5f5966 100644 --- a/docs/manual/docs/user-guide/harvesting/harvesting-wfs-features.md +++ b/docs/manual/docs/user-guide/harvesting/harvesting-wfs-features.md @@ -2,26 +2,43 @@ 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. +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. + ## 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. +To create a OGC WFS GetFeature harvester go to `Admin console` > `Harvesting` and select `Harvest from` > `OGC WFS GetFeature`: + +![](img/add-wfsgetfeature-harvester.png) -The available options are: +Providing the following information: -- **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 +- **Identification** + - *Node name and logo*: A unique name for the harvester and, optionally, a logo to assign to the harvester. + - *Group*: Group which owns the harvested records. Only the catalog administrator or users with the profile `UserAdmin` of this group can manage the harvester. + - *User*: User who owns the harvested records. + +- **Schedule**: Scheduling options to execute the harvester. If disabled, the harvester must be run manually from the harvester page. If enabled, a scheduling expression using cron syntax should be configured ([See examples](https://www.quartz-scheduler.org/documentation/quartz-2.1.7/tutorials/crontrigger)). + +- **Configure connection to OGC CSW 2.0.2** + - *Service URL*: The bare URL of the WFS service (no OGC params required). + - *Remote authentication*: If checked, should be provided the credentials for basic HTTP authentication on the WFS server. - *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. + +- **Configure response processing for wfsfeatures** + - *Language*: The language that will be used in the metadata records created by the harvester. + - *Metadata standard*: The metadata standard to create the metadata. It should be a valid metadata schema installed in GeoNetwork, by default `iso19139`. + - *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. + - *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`. + - *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. + - *Select template to combine with 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 directory entries*: (Optional) When fragments are saved to GeoNetwork as subtemplates they will be assigned to the category selected here. + - *Validate records before import*: Defines the criteria to reject metadata that is invalid according to XML structure (XSD) and validation rules (schematron). + - 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. + ## More about turning the GetFeature Response into metadata fragments diff --git a/docs/manual/docs/user-guide/harvesting/img/add-arcsde-harvester.png b/docs/manual/docs/user-guide/harvesting/img/add-arcsde-harvester.png new file mode 100644 index 0000000000000000000000000000000000000000..258c163bfdac19842b29d6a4aef2f24c9a031da4 GIT binary patch literal 6597 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 H%aH#85xZKL literal 0 HcmV?d00001 diff --git a/docs/manual/docs/user-guide/harvesting/img/add-csw-harvester.png b/docs/manual/docs/user-guide/harvesting/img/add-csw-harvester.png new file mode 100644 index 0000000000000000000000000000000000000000..e6e484359b92226a3b449715660b5096d3dbe06a GIT binary patch literal 16634 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 Uk7iRcf4>_W%F@ literal 0 HcmV?d00001 diff --git a/docs/manual/docs/user-guide/harvesting/img/add-geoportalrest-harvester.png b/docs/manual/docs/user-guide/harvesting/img/add-geoportalrest-harvester.png new file mode 100644 index 0000000000000000000000000000000000000000..31d60f997e76443980ad8744b823dbdc42cdb395 GIT binary patch literal 13441 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 z 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 b2Ax5W-M$`w3;e4W1jI*41&InV!+`$*C%+2? literal 0 HcmV?d00001 diff --git a/docs/manual/docs/user-guide/harvesting/img/add-ogcwebservices-harvester.png b/docs/manual/docs/user-guide/harvesting/img/add-ogcwebservices-harvester.png new file mode 100644 index 0000000000000000000000000000000000000000..2734781c718e7c6c0f96f99afa252b83e25b042f GIT binary patch literal 18528 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 literal 0 HcmV?d00001 diff --git a/docs/manual/docs/user-guide/harvesting/img/add-simpleurl-harvester.png b/docs/manual/docs/user-guide/harvesting/img/add-simpleurl-harvester.png new file mode 100644 index 0000000000000000000000000000000000000000..6f7af0255a954967f18088c5a47525e5471e9f2f GIT binary patch literal 21541 zcmbrmbyOWels<^NySoKk?c`x*oUR2T*dDB02ev;%(VT8oJ($%u)O zC^iiK@5}``7yx@7N?P-j2aY zE6oqF`fr34E3Gv7LZlIbR`XO5je%3)Umtkpt){&RF5>z+()u7@(RSMjK$KYQG{{aCkfa6!no=t4Pxdd<^7Hb-4b) zp!db$*brCz`v~*lVaa_G6my`A*|AhES){T`5dVG-ZVOL=5jX)~b#)k-Y_&D77?Kn& z)HVCpqX=?I`g=;!AG#l%d53le;HJS4aoIyOFUPP`w`|=3rvZ=xOKpDFVXp$qN+i%w3I1Jnd}lU3fhO z$o``RFHrux%tS`=A5C0s1jw}Hl}N-KoXtr%8JQWG$pqm@NJ#jd%`A9T#3lbr9QY+b zX65SY$jij!;o-sP!N%y|Y{|sJ!^6YG%*w>d$^f)raPhKtHTGn%cOn1JPX13n;^r=< z&eo2u)(-Y0pZyw}IJmhAkdb{3^xuE~IZty>>;DYKvRj0owzNA;`wc%>N(l{~tB~Gvfb})cPMuR(6*EE&0D{{_m3NF6Pc+ z4tBthu7dw_XZ}n0e^>sOAV1UR%Kz6+{O30R$5mjT1>yLa{`;N@!nJ|IaDjjbgUE=B zsCj~(XTko$n7OGq0|l{5hN}#M-ydr1%_x6B;L;U@xV}WZ|5+1HhwX2KW;y7Y1#I2ce+^RKYLeZ zaQCkY&%B)*U9200Mi)Zk%WAgn5F)6UFbXqeBYqDGjSIxr$gx-W`U`xp;(m8z95D0P zfGzdLN|dw$x_ zyZK$L(Z-Z{Nb;4vlU{X2zZfq!G2RY1KlIKW(tcrudyVsd?c=an7`LmRmb|bOdeMIC zBN?C@)s5uy;OYMBV;QS^hi${XXcY>UiTC^QZ_03K!GqQteua?FQ;f}OZH)K9^$6zo zhx=8Bwz~!0Ne;V}deIiUIV3PIy6c~(Z@m=@w&07>4As_-=RV+fc_}GBe_dley+9f^ z?|(ei_NsS0?)v`!!w9mpQ}bl6E_hXw z7OhT>juS`yG23M$6fNT*%{AoK4I{=*SH^lg+43wdNDT_Sv&5eE*c6YEM9Pb|hs`(= zhnd32)$gYj1?OSSD&Um%5su3ozazWDiT#d{gkBvV`jCaxjs}&b2=|}=9q(#r7a6}t zHBVGMPyWt1B_eRO3}woTk8y9iIBv9R)h-g_T(?3W>U4f3^Y45eMWJ(p@5huwRimQYhj~A+nUH?S zx_3;ZG{4zO|3-STKnmI8`S^F6@5B0{ z!0T1t^mSi2vWNfEm|_08iUEs9>+t3T5#PnmLHir>!_{mO+T`3@NTo{Wn}~PIWS3T= z*6%z_M*Y^gb=O(>i-I`8D8>%+u~hqTLidQqB#jN<2mQqsm%~DRWn2yHB7wU()%BVo zqEpUQTec?0ZBZ_#9r2n2eEa4+o6SyNwJrjUlQpzOOd7t%*A#D?9fXI0AD6BElRqy7 zv+rB^Tywzp{&BrOFBVsUvW;NdUubr?*n-TP@jtzeSx zvVE6W;>A*%BYC64yRGA4V^!aCJ2bzWJ)A7Z>mZ|2x5+-XTRU;fJ;$*Zw$g63@uGP* z)+LGRjhzM=k9{}>heZ^Mi2i#x65(1!(*_<#@TuPrp+~bA5|8*ji~q;XSd@@_46UYV z(UI)9p4*swQ-q+<#}k|c?3mxOtII>3`i*~`Ie8WL%f)%6A!I%4ZTywbYk!OUih%(t1h{dT!E&9N?Lrt$3k1p^lbk5SaFxE1b; zt%5bpO?nTx_ge?9>xCD+m-PqdIH8Ydd;#NMdSm};(2FjX-uv`j{4Z+a1di-mJd%Yb zzin`IF29ZG&RZJ(VssPKf6egzHaJ&er|)$WT55ldoip}VX1(RZXR%`5Q-1NGJ-hOW zDYM1D{iSi$D|{i=rMzVj?;;j@uo>IXd-=R&*4}<)Jx-b})3!PRe3$$|U@0c+DgaQ# z{7sWYT`7XEx4X#eCE*utHlE|qcbyuFx;JtiJyJ1v`v(4RZco({Mw;k(>yv^nC2WZR@-?73Vlwk^-)AG-vh|?#@kd_~(qcQ<||k&pYrJ7k*;vmq`5M9P3u5 z4;^u-1}>|@56g!i&Q!H&2~GJnADNaqU&b`GfUmkGn%<@NO$x|h{1O4F+U=9b zX}+f>q-|?j{f@8fQ-ROuojtv-zta&*(efVKQ@I(@Bhxlodj{yZ6u(_oY_g_x_smt( zI03ybzqh^WxBFGajUS!+sk&>R(B)SboJ&UF9=CtF+U7eJ!zc$c)43e7Z5GNiXdFM@ z-wIm4BE||nTRj|PI<#t3=%^pTxi|^RINvW@@(DV9DMM5A-NN_R6b#pq0MD(%uhZ-&8dp&OJ86)ZumfjqiWtcN2u9e9R#um31etKQFe4M@9~k zZ%KV5RCO9K%01`Z?E9x3e=91Ywbn~G%>;AVJ}s|{)$7uE=EfOIWpHWkZ09WPy2WEH*sO+f%H#RNrrV+6s_qN@SY+QNCZ*tShdc6`51ra2`D_Cgw3Zx?D)nkf z2O&XKz1b(?_DhS-`>2>k#NEUXgV$JIh^b`juMBgZITsSe zQho0Xn_QO_Z_@`h^r?(O8~mS$T?jzS^!+=M__pIsU-=)T7w;dSo1ci^RTVX-oC7_A z)vsu|J!o1x?tj|IInC$+2GJh|d8CC%bMLvN8>ISr5FZ{11)~HKF|cJXQBM3?GL`@r zv!Ea5j56=2{;KV=Gs$Ef>9o31Hueq~Ivib*f7-4=ec($j5x(Z09^5#Kgu2POnm&`V z_(8M4vmq%X%i-ZQ`t8@0$C!_^@x%4SO&^Ba9Yed-naKhv>3Qv{F0!!%Akq`Bf5AVGR|OBzHs(%?63N%2&kLghn~u~&C=S;7RTt$BY(Rl_MRdxmTJ3b zwV9~A<~2)W)Zc5lvHqQP;25ax*kI_n4e2q#b7+-7?-W;4Rt4-3-%bR1zAt~BflWmN z*(uR^M1^h3eyWP7lFg)mrl*3T|64=bX=R&pB1H+Ai(@m9jREIr5t_}bY1{%|+hK?9 zQyVyvOV|4T$6gTEYO^&Ok_xB!0=zPYX3FDyi$n9khrtfxE#qxs(T6)R{p&Ddb8{7c zT=v_-sr`}pTYtmb+3kQyhOTWxO#R)4EZw+Kk116#Dgs96Xm^`~n|Su`HI5CpuHvTE zeNDbrmv_gXFO#)JXxuOBpyAjnW(&_nW$i1*7(p~nk9BhEO-~1zQqvX;aystkEAs;H zkGmIpNs8`T1_!?#{qQS4t9msF7Ozv3Oua2#0FBNsTH+i4WuqU#qJ*V6Huix(W?FOmlgo|6sB?~C?dyL8tq&UI~4tV%C*)KGLu-K$l{G-64% z*#w6}nM(+qE=FqKcRy$+Zi}jkKD>7#sn?cjObG+YlFO8qEi&!;(F~miFfq$7s{G$< zYGO~Ty8Mc$B57~Wo=54bqVKa@XJjstRTUD>ZM)FsoMU&z_=YF4zoHaP90bV~fxYj` zPu8vI#H{P^*`91_S=T3GcZa|HLA`dUQFmFKgU*2Yj;Z_8?p<#3uqn#>V;6Z(4I)zT z_V(D3QBRtfQ_Dl(;YY)w6OEUir+xc7(}K&TZ+-3z0jEJz>ng)fyIm}%C%tka>mCj)+=ux!iHn!2&PqqTC1tO(#HuxyNr8*!Q%!{QZ9)1{t@nf~9L`X2I&N0wzBt#d#9tfBZo3IwYvAM~iiod95xQ)ormcK0ip|x@>`Bi?(2{&$|^~y~s z8C;#9bKJsV0)qn<1i~wY5ZKgWL_9s@exz68(YisSW}>d8qXN0WI-|pGzosP#-M0cv zAu0~UfJseo^ly=D`KTPSmf~xTR7rRFEh{@CJJwP^(BcFN^dDk}*vAep?mfwKO}NgQ z=e{E!0cfwJ?K)8XjTrQw{2f!N+qz*7+8?r0&=ui!y@%D$kj94y>j^c)ejiMrjMbd8OMTp<`n-w+#!G#0c2sauY+r@OG-a3iy*jnX z1=d|dEZ3Mk;63yi22W@3yIJJ25-eQ_*{Pr|9$1+0I$18X$$MUA#7POGM5LSLl0Zf7m}5=_{-+FSE^o=$V+OfgIbTUhK6I#g>trf0 z10^mPieuxFq(7av6MQM-Y?#d3&w)CjA?gDdDtg`T!f?YYkLEb%3Fg_G-VOjH5Ua;$ ze36MP^vc{ypyJGKJyY20w~o6o%c}o=lh##!rK`cv1WY6orv2rjEs+!IC;8izr;N~_ zeD=KJf@a%-<~+1Ti{FVWWb?b##(itV?^n=^e>AHKX}!`CUVcl(5#5kGLqYg`oj@Le zMkXSl+~$4U3Z`q2>RbZmH<=);lhZ>vKMO7snxTk9T;U)mmdgucbwRCe6pi#iy_!EP z$k)0EJV0kkUfNQ5rR@V)x@y0X)rrJjvUuH`Z7N%etA)mYa>yApmfUoQz`a@#2v%>t zU3gsd!ZRgv%7pSbZV5{{A6w@5YDjXho@DtwAG2CHz7PDsZc8)xK7t5@N^YkMf3pBr ze&)LtlOJz6m+(&Id!AdKM_>W#oA5B7^mARoKaVCK2^;fTCxxl zsv@8xxMMf3x04>&`mPCQKe?Uq`G7zy1S@QBQc>V8IXQ_QZ`nAUFkh2O#!`k+r<`9y z+Z-4y;p{rozO_`#Dj9E}3-D*fOLy;vv$6fY24a%xVxb2%6P3lDuuezkKIQc{_4zi` z2>QKxHUXhWvt85r!e{sqTc1MP9>w8tp{Kk>DVG{ClW5iIak)_`@dNAPW{k<>?@tc& zeG8;^0JHfqBrICl>H8wfYH3hl_8#R{G5R)-@$2LDP^bYu_LemwBnRl3e#L<QnXXA{K&dQ8iUiUK^xMu(w z`XSK)+|Ko@?Y{M3WI-C@l_kJwr>OJJq!+jUPUP!>J}GQIp3V}hNb_>ul+y;dYJFsY zc2N-_Q8Agf*I!U~7=De-4Y=%h$bQ)lCpLSTmLhh;)^iLjzeOI92+Sxj&B(YdLvf>G zF0KVUS80oTIi?P^l>vQfCywRyp&0zb#!Wx(3LR@8cs7*94P;J1SK#g;bemId{W4ZY z|2=fH(HLfq73}EC1^bwEWYUDPZD{e^%Vn40L1hw^d{nEjc!o3BSK4t2RD(px-XRH< z>YL4IT(&j3s`edVUm5GEDs-FNeX6gr_&nTIe=Gbg?RV(7ORb-)x1KH02GbhQB5(TVHNTg0w1DsLPlpAS<*g@C*A_7x3-Ln| zWwvT0t1$Ysk%*t*b9CO54)kJ-+buc6Rk&P06Kgxq!&^je>8E46V1h9iTo8{V~OlISt<|VOkq!bkXO6JsN z%gO9oVr*PUDZksyO)IuouZPW#cMs*WPN5`+4u{+9Zm!>8HRvMHf{e!?}@1#JN1?(+Auf+IB$|9 zX+)eijD?#Yvu%CPV#sd^(3P~OG#WL2XUh5@FhSd3HsU-RNXa>`$>{F}$xGR%gQ&IV zDpJD!XFVNb$O65@-b!Hx8rG3=Ph=U?ma0b2h*F%y=wi8o_g#Gg)HT zUeOtGej*PK$Zi++4wQ5_( z8omm^&2xfarF2dzVWFN>P^=8yT!@r*cJOm`0JfTgGSVkzX9AOq4@SAI&^LEI&NkUh zo#QhTL&==ZptU+-u~%Ixv)a?LC(SeCdJ7ugaTh4S+ zSP&Q2(J0k%YfeLi7x7|9PK3O!j=s~m6qRMHb30sr;>2NcwWxx z)&X>i?v$dM_wbiXNJ%#52uz+@Yqj%?Ap7SWYNx=aa}))i#AEk~4~r2F!gpv7eE-`kvUWKVR!Jk?CB}If11Sz8pjx~i*MD3L45S1D<<0&L)F{3 z*ar5!W8wz3CwneLAFk)Uc+fa&(sEW^FfYUoyXrY=DqjHc_Auj-gL1agRxwo|p4q>$ z?z16@gCq*G{D1`w%yi!7EoO63{Xf0!`ukI2$e8fRrMRyPg+-+DegtH$wts@eiqIDbsLP!$4F?TT4`LNe>K+9q?>n8 zf=$$_7>fQ6Ez+%pGaCztZRgVg>*O0??e=lm&%b8#FC*eGlkEILTBVA_e@cK&y8DO26AX&C^0+K*UhJ>>12UxzcVBr`xVfK42W?4N((Lr&+ zWiwz&lZ|vW{F~3O^vR_l0qCWiED$GXfxldK{x((r%YO2~ebq}gwEP6p6Wuv-Ov__Q zm2_eDexWy=Hs^TX#_%+_ReoQcP}kH~cc}WySpE-n*gA5xadpV9N$k%|7u;zc=~Mvf zaB2Uas?MKn&66C(!-$ViHF8Y85YDtL>xKo_KQHpfDjDDCYKZW_5HSL2Q*iV=LAyU4 zXjydNxo&1}v+rPqKmh%u%U%Eq?f)BHmK=?C3r8BA+J3|BeQ)bkRL$9y{ppAS_DADe zqFQAd5!@H7ZU)INcvNPe!z_<{F(VpfxPlVqAviZ4Nl4rG_lK_2Vg@;sPn`wW z)$#Mrmy1v6J1Onbix}IP7o)Wi!d-TWd1QzHj*HdJh zB#t?(1ahhFj;!Xapq}5;KBRW>t*+LCaeKIv zrN6EVopC3*Qnc%>ln1+xvacD{2VFFKKve$p^5`_#XI*1a*Q^6B3FmGK{|cA?`)l-} z--M@V`?w5sR`T`bwd9LWSlBqg6a2hZtF7JKOvar|$2~u6wqI{G=Ref2n93DVZlRt} z67<}#`cgocBS^JdQ8(9dRyziP&wN!*sM6$eIFSJm6_)(+_JgWm=G;)%SUM+Pvv}1T zpN6jM!#!=%t~00#{p&AN7;gbKZLBjAomy63C}N}`2A7Sh?{3yI1)9iHc;$ftLI;E4 zsj_>fZT3dL=EAF~;O!I7I(sO*SI(&POjTGujJ$22>EoCRJH$=$7Fms@U6Rcr3D|JD z%nSD!Izo7k%+9YmvMak_KUP7JK23y>1L0#2xpYiU>xyfv;AY`_CPHBu^q}1XHE81uwC1EqcVrQWYckRrlfhR=q5@Ls72Np z4$NL)J#wXI0Vsa9!w>GvJA)i;8I* zM!aN5;{%|o0fxfO^OXjd4U;Io$Ul`cHKtNhqgWBQj)Y=?)!DAhDEk9-GAJ0q5y%H} zD@H=?I%{i8U9Yv|*-Y-Aah7-t(>`5~yhcQD@*o=&BH1xUK3z_fZ zKrno#)6|dR;DX^6`*TzKh3?lqHb-i7a*A%EYLEk!m=V%t^4{oRAym{&I<`fFJnV`7 zb_y4&V-k)XufNlP;vE@}Y$q-7oCv<0p$Cp4#?+eN?gpu_!Q@ttqpR0v*)CIv4s78( z79;at31+pVvbCPP5E2Gw_D4U#P>|u_-fna%GYleL8+rUn^=v3@i z437=3-)8N(hB7lH$_26m2ucyfQ$4KcN3352KIgOVB&l6v4+F}8Nj6#*(p=1}*h^W_ z%gdFKqbaNWYmRWHy-*lw$T%{u0ieh#II$tyhpF;fa+gY%De|Lw;Mx}`zL9UD^Zdk- zHi8_0OVW~`9hgF1L6oS-x=-*Ms0w`cf4|L#vWa z{mct0NApC~GL`3~rq+Fm>p`*^HKojcVnvpGswru{d7kEBtmMGLBV8s426=R{+qxuw z+fgr}RB&F@%wECzLJn+~%efZAO!Uq>OO+YX%aG8!GDZ-40qvUATKBkVq{S^bguU%d z6q&evBwmiwATH~s?@?Yj0ey1bUBu*D^K~gPT$H?H6baTj+vP#~$+L<(;1Q3lX~xaA zJSy;=Q%C?A3kl{{EXP8!;2jKaLIA})AlD3FiuD=4CA0LDWV#I6CG^f zJTYi5sHz3QP16d4zo^4fk*XfQZTvD8g2=jWolW5Jl4ovy(mVals7(i3gc#T%vPo@j ze$+V)6OKV)meV7DJTnr@?YY0_SsTv=_kVW;`hF`LHh z#%A8|QI@qTA4O|f8JZgN0O?N1Z;7B_1EDuCVRDn!Sw2BzX`+bzHqj_T-Lhc1FtVyC zdX7Di7mcg-W7;u|Ui-DJy(FO4U=T>mwXVlAlw=h2h4M7%BU$>@^Rf)gnmWAA>xU`qG%Dfn}Zu4g^ zZLa%&y!FEMwZPx`7!?FQr+c)_CaR_2bo-=&dqJo23&;16(zgMKff|ePI|+APZmh8y zbUU*qdL?-Q7sTyZ__1;ZE2iFKU2ex;j?r19uUOS;CKAo4+x0tCs$?$!g)uB2$-%uH zf=-qyv!-0tCD z<2K>0MbLe?dy9-QH_v(fY)JKG7`}acCZ@#pTJw6#bHU=6k+A;}+c>F@W&C|z%$K@H5%RT>dO7_+XkH^`aED6tJSHFFe=#qSZ_5zh z$W#`$D4CCxiIt!8ubRCtJ2WQ>#6z^4E|{1@wQ>XlymS(QLyb!{>^4zr+Ob^9Nv zPD>l+#*@JkfTuTEb8hi)Rvr9SDG`A?pvLan-~5m&=f^4~1XM(>#4uO?s8U zvh>Bx`SsDnp-SfreeauL=%It9oGdCxJ=@L5$8;t_%tBfQw%CMnT zLSfnJQ7FSo28E%k3`PkH3_!=9!k!ebpy`j2X}632=+lKNC5u8x`a(oO|0kk& z5cHNi(0_)!dw#(xLyc4m8a7)5^2Ttg6|S_kpkaR| z$|f9g4(PC0F!J&3L{^n*rZZ&vELtDx!l7w={gHpw3d<05;RDd{P*#7hlPmn(Mz0aB z@OFp@Z3__e_@9QUl*okuD4;icbdLHLTCQ5G*(gX448cUp-PmC75s#Ke3TP0BOd|pcZ}pUa zQOCT^yxl$NFFHTOWHxMbrO^Qs+)0ogCnwlt+1q2}p+CLfbVJPox59>0SUJ*}jYX$D zTa`>GVzYMs=&gQ79M8L(MsZ7D+;lI0n{pyfgrwsR(KTpoLJ^W5IA=0Hkv{Q55pXdWM zSh(g<0tb{IOi|0wv+Ww$jrq?LqP@+4gg?;+lg4?qgNZdOqL=6u6FmKS-0O}jH z^JI%t)v|(|Y*g(6tMJ?zrxBb|76Qt^sI+q3pVEzKE%W@X*9DRs9$ML90v=t-gtG5F z0&*aBTit;s@nvO(NAEr~Hgd9&@EyW`3{gSX=2s>_l&=vQF{MD#vMlGwC8HxQ%TmsL zlDXYHS~V)?@K7P556B%eEtOU?zVO7 zZLFpMmXYhIYLl^3kiTD>V9@|=}HS3#Rd?>-%{0hQn0vm>!5Y2K$8k{GE#F_ z1E{RPG1@=AYMUz^qH?@;p>e*N_OhW%Cl{I5Uo9sqo&Qj2U@5~wMXa5Tq_^G_Qkmfg zM<&bQamNvy-YID8jJ^e|E6Z%c*%8B$KCb{dd$hJ0y?QcxWp`&iihv~cz?N>;SG6Z<_kMkH1dS_5ziKd zy(d2k9S9tEY-~z0x}Y0q@GOgf?x1e(LRo|Yit-nf{GLq+${#x4^wbT;!{`Yn3V?h9 zWtd4ZR>vi#6oX_+3g5LUf?zbwc_@B`_!8BeT@p#v#;?+sx!s{(z=GUs*{A%UL8p1& z{z{R!%?hdzpTe6*XG^UbZAqh9nWI$V7fCiNG>;Sczd9YOE(xYHYlWCQ$G_3xL#QCy zvOr6!q3)LSY$1oE1@$K7Lsp&utPLC@ZK}@5s3S{WZV`i?B}Rm)j8vk0y6z5d?`^2s zJe122Rmd@>(*4UShRr|IPDtpFY z2yT=HYVIP@06IZxjSbTY=u`3@QO~9;4V;K{)_7Nj>_eH=dUG!_Ak?7SWaY9RiY0^; zK|HAroEJw$A<6&@{FkebW^LtPK5W8g^|K0SThqIJ=ACwCJ1l^M`5n{Od{PhHbfFkW-JW z3HS*bRG&6gQ3ecy2;(%{yN1m02hJ;MiwTKM_^3O;X6)};t+`x9wo8TszU)Ev91b{= zHc@W`Z{Z#XDwraI;14W@(LcCke<2ZsqWwd)xdSFEdnC^W5fexv?Miz z*NmZ{!Su!ZN#Q4{n)i*Vz)nydO=4ppCG(uN=VK-p6e^vG0#TRX%@@kGXB3~yh@X4b zu$%DZz7jr*IGzC+7V&d7VZqf5x=aobDh>U@zi~+-3KRKtBywC5^@(~?LKWYbj% zydgC;af86lCQd;)UNB5|1JDc=)vpo}N2YHw*SHILObALcffbKyttx#QN;5FY80Hm{ zrcU5ui@dQU8ei~Dh2pgTVas0c-mF(zc7aYTw;ez)8LKYGzT3d4ebPB- z6dFJhKQ^G9_wRhQ9S{R$KeI)G`r&|>=Ci)Nlj*dAROyo%l8x62Bvmp1>eCh<%sV(B zXn_QOJy}r z!**9n%geAA9_Yg$X^>)MUt^(-SPP$s2Ws1~1;oIgWJ+kV;g}fkXU%8-f_ViB7{#a*!8A^p%Bq3t=<1>DbHT*F{?3D3Q(1@^ZK0Pemfx0Pl!4 zDOkihcqf$q?@#la98rK&?hz~b0mz9Iwy?6Nu~)g%hogG(X- zz>u;khA~11hCc!L8v0IaqunYTsa|3O!fNk+D1R)EJLfb#+UUbqfrCkdV{l1es!28M z0x+QJl!LyK!}tg+K6(+tpz9E0J@!)d z>i9yp?P+xW37RC@8n9qz>Mty^;T(v>TuumBdWStLk~3&KUI&}ad*apCV2P|4&h*iV zbBK^T9{)ky6_)k$cZz(GfgSZ>ca0?Fr$)`Vkv?5ZGcO_VSa(Z{Z$GWmfkbH42r_aC zU3`0Dgl!f9i4#qV*K?8F_imqO`;To5WLVRjsog?Kg2Naa4n||X7rVWuFA$};Ur-6whUgSm4Pr#u`6=r4rrQF5Hr3|Ql+mDvIh*sqO8JKqhwWhwR^rM z8(K3S-eT3m-5{hy#2a$O27==RPXy4)J-QAZ`&f*6GAITE+7?u zJqJI(JD!z_fKjry3eCL>tOgOOF@nu|2XZd*|1tkU?yRaY9pW9n7Y%ei0zkRXl#3LT zmDYbVa_Ds?N}#;@kF6;XUBK1PWS2Oov}(HrV&8wtJxQS9epx;@BfSLQD4?ARWqnq4 zW5#RE$5^wIXm@Wh%wMs8UNaq7^0Vj<>c&RMrXKU*xHRQuTF6L-tyeek#&hwWq4R~KvMg9UHBioRpX@BOQVC ze&a3CQh-D3oi+P7iVs1))2&%^SEp0=4Hd~u?znZB%ewxC=ZS43%@qPt4A%N1(X*Ov zSfPu~&zm+46pk_VhwsvF$xzM{_7K0VcfFlEsD%BHujQ)M?uWEzs@0DtRe?l^m*-kn z`;kw%7|q4U4j5+y|o&H#B02P*g!$6*>)xZ?C)jKxE?qFqh?fycy@ z;(cPpc&b}1v%QMNI}N?|F{Sc3z;v}VVNU(;{us)5n|V=ui)jM!t&}YOLJcCp1G`rX zdyWXajKZocobjWUQbxr!8-_O@hmuf=*eWTx!qM~3okE$7c@bbXF6uX!%>twonZY68 zKyHa`(`n7Vwx5*!*(=bHT9=8L`lhe{+){ozT@Y?BIpz}=JlAR18oTdV zhAR-_9yw>atscQkju0Rt8Wz19%coEbf^t5~lyoBo7|Bn!c}a`4raMP@9jx5bJu}WGBS)T6r#KVc9rF7Q5;}L ze>p(G80|?B3Vx@ZjHv2*|L#RKdaGmanEe(u(_o`nBg_9FZtb-(daFfDi1nwxomB>S zRIF!IkNapSz7lpn0$q<`_cD3 z{nqk{vvzl&O!H7pK${P^HarV%QSER^d?*a)1ya)m6W0*iQS>YUh$#QO7D6@YMl_dV zcy|Oj`cDZLCrV;-G%;;Ixcr_*E094=r=<<1CvN#>nmw#e71-jxK=5`I$k{Ueg}h4T zQzftIB|~DXK}v{hD`8{>-|S-OsU?T<)X6qFuTLhP?mZ`k3_oJ&+LAKzf^vYF!z`pk zu+1Wc5QpdPjrU>GYms=R;KDp@Z43!u#*!}U@wbuhQyr6ZdmIyg8xaU?8V-Mv6Y3Y0 z6^+Cs3X**SqU~A~^?eJCqG|VD$_tu>P#y=;{(nydL$67VPm$zN`L{P$uh!)Sznb5k zUi;Z&-j{i9rE<@bxj*FUeufG636l_0D!3`EF?T|>$%^GRf7(K9Lz{IJ8eYJImk3`{ zFoMCr2F&r!j!gwVn8fF+xJM|fun2)WpC(q%r@~Dv_vllK(1Z_g=Jfyz`r}7cgFOre zAt046W=joN?jL~VcDil=oauaWK*}}Z93o8E>C+lBb}qD%D!G12A=P97&O9Snsk3cp zTBEsOcx=!M zQlgk*U=ZpNcMSZYzla6$SENJq9Yl!D8LEayyv9n z3e*?jUnxzRGmn^5u*s7xe6RL=vy-WDIS#W?K=n8Nr@bU+ehAkq+MMqvrJ~nSZW1C} z5n-BeW8fWjG_pzHF}9hUc4pXS?!!PYO31whZh4oNi@(YKSpgd4famQyAZCiCv!0zCSo-*f= zt5Lmpv3w>~h|AQY@Om&9`CO<1)C~`1ffVljhPT7WK;Z?89F0YdYjdyD^)h;)^vM2F zx}b0C9(AuTfFJAGL%~LDC46T1;*jT!3S73|hE&PAm%l>i5k)7S2>}T{A#bc}#FexD z>9R^j5S(Z*C&z5bf-v^a0JgKOBuwL;JEHzmKb>;lG*g(hSR9o!NV3Tia>#+W(( zgBHPgMbqj#&Q~>VXge2$`<~6Ba5?zXTy#YQh$*{Eas?s>wTKzBdG@MxahS5=~$o;V4*g`vkAz`pU!Udtic}h@% zuW6omTF!~T6CxO7Zbs-?%!X08zRl4bx`@E$;J}^UGRe4%JK=gBp{Fxf_u!qVwu}EZ z6*9ky-o6nVjqC0l*;>q(fZx71aSVY)M^Mse?#l%YyTK0fX|Bc%K#esu>NgFjN9h&5 z&zwU9D{Y5mWm_VdXqKku9JLg=qgxz9Zt5iuiDRkwlrn&_z6cz@~4PQ~U1a5|Vw_{}P zu-4b+>V#kW!& z@4bD`ea_C#=lWjtxrW44qX5_qxSO{KXIS-bngBEfX3h1!z7M^&r6sdDQ}yslnyBtp z-d-K1qxC`Y+;?PYQp+{;n#vS|K@$y5>@<3oWYI&`x`rj6J=&EQMrl$~HbLYBn&&VH zEPVDE$D+D!xG;$>q%`QC+=?9H6>QpAH*^bRJG6p+)Urv0NYu^UnJbb^lojn!FS@A zUC3owmQb6;bFa=`ToTWBSC9ufWhqQeEoU_7{%89aCm(6cEK6L|v&K@TmZ)yu$|4`6 zZC1WZNFaY543GC+RC49*q`h4A%GZ|dA`EZ5Br~?GMQR4L&)%|!Qx6%%zspQ3dWqPF zTyn@-x7EamhvUXi6>iJTypsptQGFC@jPh8+p4nJWSabOjMO?s{r7|^ExT7-Q2h$w` zyKJ69dmN$T)~J$>y4b)W?i5AIO1ZF5t@*>nrapK8-~~xl7hU)TOEBN%w=*Oel-J`p z!H+mo*$NJz%RFT_CY5TzDDhp!TyQOdSk&?U_omScZ=ks~&=l3=w1^UCWXYf7gd!Mt z$SMU>3@VhqY2*{XEv~}lf7^ehzl}_XndKtr^8!KEJC0xRw3X@1^Hp8abS%Kg%YhHK z;KyVUOME2E6$ZgN!a|XRS7|!&)o+{j-$#=xG=OfD>SZW^ldQT`bxiv3a zyT?Cm-oZs03A02O5=XpZvrrrD2ON!XZLEc6PF~ghw+8F8915&Ha_;)(s5rF5fC2MY zFkD&!7PTz9pe+oRRW;Tb!&~ZWgii|=aUaL~KW-SjsS)9i4&U2|Wf*r3U+=e09bqk^pQJeJ%Y0l+ zl@zIVDGppK^qO33VS0%#z8>7lSfPCqj46mH6b2bd85B#>wb4mH^ASepX;D0yQm~VKUqEm9{cU?S<<101^>*E^v-JP;-ubvN+yzF{6JWMb#AvHLUs2->zC;0oRX z^f|OSM14NcR`lCHJlNt}rO;Jt$?PsT2O40466HR2B1N(CteOeL`9Zgdc2bX76?l~!gH+*7HaHB zfY2{k$-oKqo404rO*9C-R>Y80ols6cHmVj!{hL7mB|%IYZsW27}|=@2+IVY>&3pxpo7+MF^xU=E5EKP5@pptsu&#z`6}ZB3*Tqm6Cyg>$!5ix z9{JzNjA;x`-ZELz{UVd~zIa0A2b12ftTy3=brDaQED7yF<>KU|z(%VEUW?h!AbZZXXP=gJFUihJMR8TEi)~yxi{#0R z52D@>M*W-b!&Z2YUdkm3Cf)ea{x=xMU=J4XjlcD$Y0oWD2qzvr_PImy4f@?uXV)%n zTt@dimX~p~TS)f~>l^}BnXinfUVae~NUL&PTs&P)Z3}t^Ib!cp7Pud{6UmoG$JzAN z6MI{iA`zJI>#7LJm|XB(kb!i!yca_&c`MBdxLnpg*Lz*9d))Ig59?h7 z>9Q$6FdlTmoxzgMx-J1uz|unLe&tAp!Q!LiRuUR)Op<8Kw{5UV30D?Sh-}VrM&*0k zTLcX&$Y(*uPF4aLAD#FvkeVe#>yCDsCRdl0(=XQLI^`kiS9jF?bz(zvRuksbogxc~ z0nncNx1I56>r75w_=LA`G5gA+4o(@&rz1m8)BvH%?l(FMjOq2pI5@=q}irkfT-Tq#b4V5Z&bJw6Jn21-jCthCqDVyY?h1| z2Bhji##kMuLjgEzz`Tcr8 zP|ySOz$sy9UtL6S;wjdz{>hpCtpUPIDJ$V^ika5}-gI5f0@*QK&2b*pzs}hc7Wjpp zD=kenp@SUA{53l5XjG7X&?Fvq55UG3wn)`BQyD2j(odWr+g40)Gd2Sa?df%QRtVa< zQ-=zcxZlBTLf;e?J=JmEJoeuLdRCL+#O&RB8`SYe=cN6ZXE3okR`)$PR$JWWum4Vu zuSp+~65SPkd7Phj;oJVJY{?;&tt~sDs;8VE8Z6_}YU;ILBOg!v*@NTzz1)7quz0I{ z8fnPp``9oF@h7HRm>YyAn`ZIws9ko=kUYltZ{9BlR~Nn!YF?cfiGT| zL(@2dSE1x}@{^~%N{kS@;8a)okNj7IZ}cweg{jXkh&w2f49+@zrPqg&{RDTYIcf1S zK6IpBHxN&Kx9#K2&4FuZ{UY|!iuyKV$$cpdEXYTHw@E~!vs!8Jp z5-eU)M9>{>74xVVmLLf_g?j<&PmpBK7AMf-@dF^J*3K@F4qJ1f-io&gZ5O~2E=c0e z+#HX3j`)R-6kRo-1SIAFmWjA2-vIQAXensU<_rJG6pL351E0u2D2AC75+oNSYX4mD z&ll|vTWY960rVq3&D)jPmIN^M@VKR3%oPei=6`=t^>%z(6z+1>=56inZO4m?rXl*d zdHn2zwPW~~+_G8bx0AOX7lu_uk=XeD)Zg>hOdzhDTetEJybU_b5D*vinhzq4h_z-E z&vQbVLcVqNKt8f#r;_KGL5ROK&1l5Z2Q!&#s-;A$gJ+Pj+&SaV9ZMX-$kAgypXo5$ zh}jQNteA$e(ivrXV5abpj~y+m7)$-$OWYJPfWDH|Z}8Ti{dl!$@?X7|g)^aUoIuiY z+@(Q|qD%u|L~H&0i#>2Mxk8j&$s_mon?fca4sriPUQx3VSF>-d$xf6fZOGb}Kk0vf z-g8l1I;k#ODH9#nt8q^T12^n<2ZrhaarSB%3LX+j6C>n)ILh7~V?<80sB?nJ)dH&L z`!F&_%Knwk1u*3{P)yqaGGMFL_UOO<>u-c5t`Bw7-_%F(!CWqyaI0FOX_C4{`sph= z+G>xsRLfE|4zixQRmu>OMQZsEp@Z9FxnX;1>q?)FI6>wxpfTpUUD3!!t9Jw%9bL6{ zLB~bW(mde4mv$IaXrQD`)Yj(Ua)-dWG2x)8 zsmQ@d?4_>8CMPP;21?l@DU6Gn)`B(Or}a%xL%Q&!<0pGt@Dv5s?7DQOUcOeWH^BT; zd#nWhs(qAK73y^JQ8!IZ_(P6;5p^oQsj;*cTIsjgJH9WsUQ8Z5gl*ZfbzI-$I&9Yq^l67QB1S^nC7g0PZ61y(Gc1H=_z6URB|nH(}EudcWmTausNj9$V}ESMz}c(#^{G-#X>o7^IwU6I02p z)%!iH-UG~X6-)3cj((my(*`q+1FsSdXI=FypO94#) literal 0 HcmV?d00001 diff --git a/docs/manual/docs/user-guide/harvesting/img/add-threddscatalog-harvester.png b/docs/manual/docs/user-guide/harvesting/img/add-threddscatalog-harvester.png new file mode 100644 index 0000000000000000000000000000000000000000..a326a4b7c790c4bf3141fde9b42e77039e6458b0 GIT binary patch literal 22972 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.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 literal 0 HcmV?d00001 diff --git a/docs/manual/docs/user-guide/harvesting/img/add-wfsgetfeature-harvester.png b/docs/manual/docs/user-guide/harvesting/img/add-wfsgetfeature-harvester.png new file mode 100644 index 0000000000000000000000000000000000000000..bd3646bc0cf33f1a341ee52e26e2c315f53c1ab3 GIT binary patch literal 20597 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

AV098 zUUf|Js0^naUVnt^!(%!u06h6P;&h5bM@&Z(wHEy2*?RdSV39M*2~*5dMkc-aqt!A8 zWz=GSNl`wuTqY4Y$V0vASk$s*UGlseueRTj`gO7ozW}DTFF4i+Nz0NsekSMXm$&tJ z1hOI8FFJ*eKP5{w1gb6q*(h|u=g?L6GTE6M0_Bf@DRlW`YBd@H1w+6Tx?s@TfenH3 zN5B-i{4uo}4S|9oU%-2P6V=kY?aH?(8w9ET<|?J>>Q~+!GkQ1kL*{iS|!8>4I4I$jbOoNjS$%J z;~Qx5@qKZe@GUS@JbZ7hLiu!&Gx#3*haY~>BH@y@^9?e>Cxx(q@Qw6ln{6gM<0XBQ zt(8y?j`GEe7fU$^0W&G5<)ceJw}faRPN8L$q24Vt5$_ZCq-pc#Vbo^yi3ng|_n(J-Log$)IYBNPy8h0zsy zAlOV$a8=USgRV=2LI~!TXkI!>7)gAg&aw&=OVA$c^(t$9Rz5of3Oq673p7hQBw zY~+kajT#BH4W~7ugvc3;l5l=80wE|7RJ)9DYC@-roS`>3#PTXIf6`Gfs-heSibaRf zqD2eMChQ&Xk41lEU}}K1p*&;cflA4bh7ne@ZiVxqli)m*7!a!g`X881mEMT#koHp_ z?O}w~Xcus1!)(e2@~579s_?bxai9o_wpA56Reh9YI)sJ8v7j=7Z4}JmHscrwovTtP z(W&|*|1g@64{L>=u5+EJ7a>2L8OMOnJQd}!WVU}v2ozkQRRJ@JoWaP~eN8B<4ej=?LjdXwr>O=~#Qo__jiQDCTe znUh1|Lp$O|GI+nhMY+48=YZ9s^u^5IVc(?f5ai<{Kr!IQhHDI^12b4cmHL?aXoI$s zrAE&vsXodvO#mOvbMR(5!x9UGV;~$C=2V1Ekn5p>pM*3zMf?t|qs;g(u(&i52}F%_ zYWOs;E@+oYdISn?ax=d~QaO4UMGzDewn@UX_`*n_ibFbPFrzx+-@uZP!9Q-QRFN}g z&6*`Q7wnmIAUN(+7}cYl1ZFKn{SfP69S|);=h`reGJ3_ae<~(Eizmlsj_(Tue$+`_ z5DP-hOUKA43LP*31HcR`NC^cQArVG?U+_Udzgtp$baotr^HJtdoOO`?bNx655j`Le zRI)(-7^&8|UYrX~L`G&hEG#yJX%VcWL?Xc&Few>Jt?4Xb{M5)9jB?zZ+-Qs#(a0ITQ>samCNiSp=4`DlIo)a z!NX36!Klggg548B{Y(XAjfz@fC^SOH?Vk@*il}84t;4q0B2aLJ*2o#ePGU}~qbpqqmIfD@tXOhm> zHF5?KA`nfNjS~J*A7(6OrOq+Q&WMP!PEBCH3Pvlu+dP`X!>tNV9u$H&RVs8Mr1^Nz zv88&}tmRTIORA3%nMZ-(&pa8?=##1H!#eT9$}U~HbiJ$^D#(vSf|E~$N1Aj%Cg~9< zxKoT9o12lxLJ++Bku&hvqKrCsii@0q`AIYg0>S%2CxFS?wQE;VVCI#K_7KA}0{B7M z{Bo=_@^JG;BWK`sjZ2S~_qS0-=AJxbXEesT;Kxl$3@GNFT4cIMLu3r(HzMpkA$;Hq%a~76=~t$&)9G zlMin-9db!RM@FaVM`@;~^DBO00oYPB`*ua!B zQ6~NK@jG6=nqGqw~_}9Zbn^ z!r`IvYdR8jtVQc$Zp>pT z=G$sHMDs+qDT8I9zLMzvsGmPMz~Rp~<6xf%kQAdrnhrykZa zIg;fu1Pp