Skip to content

Customize DCAT output

zguo edited this page May 23, 2016 · 3 revisions

Geoportal Server (starting from 1.2.4) now support DCAT (Data Catalog Vocabulary) outputs. The DCAT output is in json format and is available through url pattern http://servername:port/geoportal/rest/find/document?f=dcat, it is possible to add additional parameters to the url as well, please refer to REST API Syntax for additional parameters.

Capabilities available since:

Available Since 1.2.4

Enable/disable DCAT support

To enable/disable DCAT support:

  • Open gpt.xml in geoportal/WEB-INF/classes/gpt/config
  • Uncomment/comment the following section to enable/disable DCAT response
<parameter key="dcat.mappings" value="gpt/metadata/dcat-mappings.xml"/>
  • Save gpt.xml and retart the geoportal application

Customize DCAT response

If you would like to customize DCAT response, you modify gpt/metadata/dcat-mappings.xml. Here, you will find a section for FGDC, ISO, and other formats by default. The fgdc section handled the FGDC metadata, the iso section processes ISO format metadata, and all other formats are handled by the others section. Within each section, there are field mapping for the DCAT response for the specified metadata format, where name attribute is the name of the field in DCAT response, and index attribute is the equivalent field name in gpt\metadata\property-meanings.xml for the metadata.

Following is a segment of dcat-mappings.xml:

<fields schema="others">
  <field name="title"          index="title" /> 
  <field name="abstract"       index="abstract" />
  <field name="keyword"        index="keywords,dataTheme,apisoTopicCategory" />
  <field name="modified"       index="dateModified" isDate="true" />
  ...

If you would like to add/remove/modify mapping for a field:

  • Find the section for the metadata format in dcat-mappings.xml.
  • To delete a mapping: delete the row that contain the field name to be deleted.
  • To modify a mapping: find the index name for the field in property-meanings.xml and modify the index name.
  • To add a new mapping: copy/paste another row and modify the field name, find the equivalent index name for the field in property-meanings.xml and modify the index name.
  • For the index attribute, a combination of fields can also be used: a semicolon separated list means Geoportal Server will use the value from the first index, if the first is empty then the second, and so on. The + concatenates the results through the join operator.
  • To map value of a field from one value to a new value in DCAT output, using the format like below, the "from" attribute can be a string or regular expression:
...
  <field name="accessLevel" index="accessLevel" required="true">
    <map from="High Confidentiality|Non-public|Secret|Top Secret" to="non-public"/>
...
  • By default all values are treated as string type. To make sure dates are formatted and treated as dates, add <code>isDate=true</code> to field.
  • Save dcat-mappings.xml and restart the geoportal application.

If you would like to add DCAT support for a metadata format that is not yet in dcat-mappings.xml

  • Copy and paste an existing section.
  • Find the schema name for the matadata format and modify the value of schema attribute in <code><fields schema="schemaname"></code>.
  • Add/modify/delete the mapping entry for the fields as necessary as described above.
  • Save ```dcat-mappings.xml and restart geoportal application.

Available since 1.2.5

Output the entire Geoportal catalog into a DCAT file

Starting from Geoportal 1.2.5, it is possible to make the entire Geoportal Server catalog available as a single DCAT file in json format. This allows client applications such as those used by Data.gov to download the entire Geoportal Server catalog every now and then as a form of harvesting. To enable this option:

  • Create a folder that will store the DCAT output.
  • Update value of parameter dcat.cache.path in geoportal/WEB-INF/classes/gpt/config/gpt.xml as follows:
  <parameter key="dcat.cache.path" value="C:/geoportaldata/dcatcache"/>
  • Make sure the following line is uncommented and update the value as needed. Similar to the harvesting schedule, this determines how often the single file is updated and how long Geoportal Server will wait before updates are started.
<thread class="com.esri.gpt.control.georss.dcatcache.DcatCacheTask" period='1[DAY]' delay="15[SECOND]"/>
  • Save gpt.xml and restart the Geoportal application.
  • Download the DCAT output file using url pattern: http://servername:port/geoportal/dcat.json.

Available since 1.2.6

  • 144 - Allow mapping between value domains.
  • 145 - Distribution endpoints missing mandatory tag.
  • 146 - The distributionURLs need a mediatype.
  • 148 - Ensure accessLevelComment or rights element no longer appears in the data.json output.
  • 149 - Allow mapping between periodicity values to ISO 8601 equivalents.
  • 150 - Allow defining cascading elements to look up values.

Available since 1.2.7

  • Added DCAT profile into Geoportal Server
  • Added support for harvesting DCAT outputs (geoportal and non-geoportal sites)
  • Added support for DCAT in metadata editor
  • Enhanced DCAT outputs, including enhancements to dataQuality, modified, issued, rights, landingPage, describedBy, describedByType, and date related fields.
Clone this wiki locally