Skip to content
Craig Jones edited this page Aug 20, 2014 · 2 revisions

Overview

This proposal adds facet grouping support to the GeoNetwork search API.

The user can select a set of metadata records and define the replacements to apply from a predefined list of fields classified in sections:

Lucene Index Configuration

Index term uri's in lucene index using existing indexing functionality

e.g.

http://vocab.aodn.org.au/aodn/def/Platform/Instance/65

Faceted Search Configuration

<def>
  ...
  <hierarchical>
    <dimension name="Platform" max="10" depth="2" format="DIMENSION"/>
    <dimension name="Parameter" max="10"  format="DIMENSION"/>
    <dimension name="Organisation" sortBy="count" max="10" format="DIMENSION"/>
  </hierarchical>
</def>
<dimensions>
  <dimension name="platform" indexKey="platform" classifier="au.org.emii.geonetwork.classifier.Platform">
    <param name="thesaurusManager" type="org.fao.geonet.kernel.ThesaurusManager"/>
    <param name="conceptSchema" type="java.lang.String" value="http://environment.data.gov.au/aodn/def/Platform"/>
    <param name="classificationSchema" type="java.lang.String" value="http://vocab.aodn.org.au/PlatformClassificationScheme/SchemeNumber1"/>
  </dimension>
  <dimension name="parameter" indexKey="parameter" classifier="org.fao.geonet.kernel.search.classifier.BroaderTerm">
    <param name="thesaurusManager" type="org.fao.geonet.kernel.ThesaurusManager"/>
    <param name="conceptSchema" type="java.lang.String" value="http://environment.data.gov.au/aodn/def/Parameter"/>
  </dimension>
  <dimension name="organisation" indexKey="organisation"/>
</dimensions>

Anticipated Changes

Add support for looking up broader terms (ThesaurusManager/SKOS schema/Concept abstraction)

Index term classifications as lucene catageories when indexing term (SearchManager)

Return included subtree results in response as requested (LuceneSearcher)

Make use of drilldown parameters in search request to do drilldowns (LuceneSearcher)

Write required classifiers

Configure indexing of classifications and returned summary

Search Request

As per current functionality

Drilldown Request

http://catalogue-rc.aodn.org.au/geonetwork/srv/eng/q?fast=index&title=SOOP&facet.q=Platform/Ship%26Parameter/Biotic%20taxonomic%20identification

Need to escape any embedded '/' in classification

Search response

<?xml version="1.0" encoding="UTF-8"?>
<response from="1" to="7" selected="0">
  <summary count="7" type="local">
    <dimension count="7" name="Platform">
      <category count="7" name="Ship">
          <category count="3" name="L'Astrolabe"/>
          <category count="4" name="Aurora Australis"/>
      </category>
    </dimension>
    <dimension count="3" name="Parameter">
      <category count="3" name="Biotic taxonomic identification" />
      <category count="3" name="Abundance of biota" />
      <category count="1" name="Total alkalinity per unit mass of the water body" />
      <category count="1" name="Concentration of ammonium {NH4} per unit volume of the water body" />
      <category count="1" name="Concentration of phosphate {PO4} per unit volume of the water body" />
      <category count="1" name="Concentration of nitrate {NO3} per unit volume of the water body" />
      <category count="1" name="Concentration of silicate {SiO4} per unit volume of the water body" />
      <category count="1" name="Concentration of suspended particulate material (inorganic) per unit volume of the water body" />
      <category count="1" name="Concentration of suspended particulate material (organic) per unit volume of the water body" />
      <category count="1" name="Concentration of suspended particulate material per unit volume of the water body" />
      <category count="1" name="Dry weight biomass per unit volume of the water body" />
      <category count="1" name="Concentration of chlorophyll per unit volume of the water body" />
      <category count="1" name="Concentration of oxygen {O2} per unit volume of the water body" />
      <category count="1" name="Practical salinity of the water body" />
    </dimension>
    <dimension count="5" name="Organisation">
      <category count="5" name="CSIRO Division of Marine and Atmospheric Research - Hobart" />
      <category count="2" name="CSIRO Division of Marine and Atmospheric Research - Dutton Park" />
    </dimension>
  </summary>
  <metadata>
    <title>IMOS National Reference Station (NRS) - Picoplankton flow cytometry</title>
    <popularity>12</popularity>
    <source>2e5b03a0-fbd5-4215-a650-7d121ffb6635</source>
    <owner>340</owner>
    <responsibleParty>pointOfContact|resource|CSIRO Division of Marine and Atmospheric Research - Hobart|</responsibleParty>
    <responsibleParty>distributor|metadata|CSIRO Marine Data Centre|</responsibleParty>
    ...
  </metadata>
  <metadata>
    <title>IMOS National Reference Station (NRS) - Phytoplankton Abundance and Biovolume</title>
    <popularity>8</popularity>
    <source>2e5b03a0-fbd5-4215-a650-7d121ffb6635</source>
    <owner>340</owner>
    <responsibleParty>pointOfContact|resource|CSIRO Division of Marine and Atmospheric Research - Hobart|</responsibleParty>
    <responsibleParty>distributor|metadata|CSIRO Marine Data Centre|</responsibleParty>
    ...
  </metadata>
  ...
</response>

TODO

Multi-lingual support - GeoNetwork, iso19115/iso19139 and skos rdf support labelling in different languages (actually this is probably pretty easy - e.g. language -> classifier parameter)

CSW support -> no idea whether this can be fitted to csw - a geonetwork extension perhaps

GeoNetwork Client interface - hierarchical facets should be supported in GeoNetwork UI as well

Forward fit to GeoNetwork development branch

Clone this wiki locally