"Seegrid will be due for a migration to confluence on the 1st of August. Any update on or after the 1st of August will NOT be migrated"

ANDS Trove Integration

Overview

Trove is National Library of Australia (NLA) searching tool. ANDS requires us to publish RIF-CS 1.3 party records into Trove so they are searchable in NLA.

The party records will have unique NLA party identifiers in Trove.

For more information, go to http://www.ands.org.au/training/trove/index.html.

Workflow

Trove stores party records in EAC-CPF format, however it can harvest RIF-CS records and convert them into EAC-CPF format.

It can either harvests directly from a contributor, or through Research Data Australia (RDA). ANDS prefers us to provide the records directly to Trove to remove the dependency to ANDS in the future. This means we can only use either ANDS workflow 1 or ANDS workflow 2. In this implementation, we are using ANDS workflow 2.

Trove assigns unique NLA party identifiers to party records and tries to find matches to existing party records across all libraries. If the record does not match any existing records, we have to manually assign an NLA identifier through TIM(Trove Identities Manager). We then insert the NLA party identifiers into the RIF-CS party records and provide ANDS with the updated records.

The steps are:

1. Become a Trove Contributor

To become a Trove contributor, you need to:
  • Register to Trove.
  • Check that ISIL code exists for your organisation. If it does not exist, follow the instructions in the link to obtain one.
    • ISIL code is made up of AU prefix + hyphen + NUC code.
    • The NUC symbol for AuScope is WS:AUS. See the entry in NLA website: AuScope library.
    • ISIL Code for AuScope is therefore AU-WS:AUS.
  • Contact Trove and request to be listed as a contributor and obtain access to TIM(Trove Identities Manager). In the contact form, you need to provide:
    • Name of agency (e.g. AuScope).
    • Base URL for harvesting. This is the URL for Trove to harvest party records only. See Step 2 for details.
    • ISIL code.
    • Trove username and email address.
    • Approximate number of records to be harvested.
    • See http://ands.org.au/training/trove/trove-module1-b.html#2accesstim for more information on how to register for TIM.
    • This process can take several days, or even weeks. Trove team will review the records before test harvesting, and you may need to make some changes in the process.

2. Enable rif-party Harvesting

Trove requires a base URL to harvest party records from, and you cannot use the same OAIPMH request for ANDS harvesting. The results should only contain party records. For this purpose, I created a separate rif-party converter that only converts party records. The rif-party converter also splits a person's name into name parts (title, given name, initial, family name) as required by Trove.

The following steps are required:
  • Replace ISILCode variable value in both rif.xsl and rif-party.xsl with your organisation's ISIL code. The default value is 'AU-WS:AUS' for AuScope.
    <xsl:variable name="ISILCode" select="'AU-WS:AUS'"/>
  • Copy rif-party.xsl along with rif-xsl to xml/schemas/iso19139/convert
  • Edit xml/validation/oai/schemas.xml and add the following entry:
    <schema prefix="rif-party" nsUrl="http://ands.org.au/standards/rif-cs/registryObjects" schemaLocation="http://services.ands.org.au/home/orca/schemata/registryObjects.xsd"/>
  • Provide Trove with the OAIPMH URL to harvest the party records with metadataPrefix=rif-party. E.g. for Auscope Portal, this is: http://portal.auscope.org/geonetwork/srv/en/oaipmh?verb=ListRecords&metadataPrefix=rif-party

3. Trove Harvesting

Trove will harvest the records into the test environment, before putting them into production. The test environment helps familiarise yourself with the harvesting process and gives your chance to review the harvested records beforehand.
  • Once the records have been harvested into test environment, Trove support team will contact you to review the records. For example, you can view AuScope test records here: http://trove-test.nla.gov.au/people/result?q=WS-AUS.
  • Unmatched records will need to be assigned with new NLA identifiers manually in TIM beta (TIM test environment) to get them to appear in Trove test environment.
  • Once you are happy with the test records, you need to notify Trove to proceed with the harvest into production. You can view Auscope production records here: http://trove.nla.gov.au/people/result?q=WS-AUS.
  • Unmatched records will need to be managed in TIM.
  • Please note that party records with type="administrativePosition" such as Web Operations Manager will be harvested into Trove as group party records representing the organisation. This is to avoid "root element not set" error during harvesting, since the rif converter has to return something for each GeoNetwork metadata record. These records will not be linked to ANDS, since they stay as administrativePosition records in RDA. You can remove these group records within TIM.
  • Once the harvest is successful, you will need to advise Trove with the frequency of the harvest. AuScope records are harvested on the first day of every month.

4. NLA Identifiers Insertion

Once the party records are available in Trove, you need to issue an SRU request with your ISIL code and save the result into parties.xml.

The rif.xsl works by parsing the SRU result in parties.xml. It looks for an identifier with the organisation's ISIL code and matches it with the RIF-CS party record key. It then retrieves the identifier with NLA ISIL code (AU-ANL:PEAU). In the example below, we have an AuScope RIF-CS party record with key "http://portal.auscope.org/Primary Industries and Resources SA (PIRSA)".
<registryObject group="AuScope">
  <key>http://portal.auscope.org/Primary Industries and Resources SA (PIRSA)</key>
  <originatingSource>https://egate.pir.sa.gov.au/ergrid/geoserver/wfs</originatingSource>
  <party type="group">
     <name type="primary">
       <namePart>Primary Industries and Resources SA (PIRSA)</namePart>
     </name>

In the SRU result below, we have a record with identifier of type "AU-WS:AUS" (AuScope ISIL code) that matches the party key above ("http://portal.auscope.org/Primary Industries and Resources SA (PIRSA)"). The corresponding NLA identifier is then retrieved and inserted into the party record: <identifier type="AU-ANL:PEAU">http://nla.gov.au/nla.party-1501006</identifier>.
<record>
  <recordSchema>http://ands.org.au/standards/rif-cs/registryObjects</recordSchema>
  <recordPacking>xml</recordPacking>
  <recordData>
    <registryObjects xmlns="http://ands.org.au/standards/rif-cs/registryObjects" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <registryObject group="National Library of Australia">
        <key>http://nla.gov.au/nla.party-1501006</key>
        <originatingSource type="authoritative">http://trove.nla.gov.au/people</originatingSource>
          <party dateModified="2012-10-09T03:27:05Z" type="group">
            <identifier type="AU-ANL:PEAU">http://nla.gov.au/nla.party-1501006</identifier>
            <identifier type="AU-WS:AUS">
              http://services.ands.org.au/home/orca/rda/view.php?key=http://portal.auscope.org/Primary Industries and Resources SA (PIRSA)
            </identifier>
            <identifier type="AU-WS:AUS">
              http://portal.auscope.org/Primary Industries and Resources SA (PIRSA)
            </identifier>
            <name type="alternative">
              <namePart>Primary Industries and Resources SA (PIRSA)</namePart>
            </name>

5. Testing

Check that the RDA party records have the NLA identifiers: <identifier type="AU-ANL:PEAU">. For example, they should look like this:

<!--?xml version="1.0"?-->
<registryObjects xmlns="http://ands.org.au/standards/rif-cs/registryObjects" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ands.org.au/standards/rif-cs/registryObjects http://services.ands.org.au/documentation/rifcs/schema/registryObjects.xsd">
  <registryObject group="AuScope">
    <key>http://portal.auscope.org/Geological Survey of Western Australia (GSWA)</key>
    <originatingSource>http://geossdi.dmp.wa.gov.au:80/services/wfs</originatingSource>
    <party type="group" dateModified="2012-10-09T04:16:10Z">
      <identifier type="AU-ANL:PEAU">http://nla.gov.au/nla.party-1501004</identifier>
      <name type="primary">
        <namePart>Geological Survey of Western Australia (GSWA)</namePart>
      </name>
      <location>
          <physical type="streetAddress">
            <addressPart type="locationDescriptor">Geological Survey of Western Australia (GSWA)</addressPart>
            <addressPart type="suburbOrPlaceOrLocality">East Perth</addressPart>
            <addressPart type="stateOrTerritory">Western Australia</addressPart>
            <addressPart type="postCode">6004</addressPart>
            <addressPart type="country">Australia</addressPart>
          </physical>
          <physical>
            <addressPart type="faxNumber">61-8-9222-3862</addressPart>
          </physical>
          <physical>
            <addressPart type="telephoneNumber">61-8-9222-3333</addressPart>
          </physical>

      </location>
      <relatedObject>
        <key>Geoscience Western Australia (GSWA) EarthResourceML BAU Project</key>
        <relation type="pointOfContact"/>
      </relatedObject>
      <relatedObject>
        <key>0f3ed63f240860d8aef1ec8cf8171dccbeaf26df</key>
        <relation type="pointOfContact"/>
      </relatedObject>
      <relatedObject>
        <key>6c025d26407a313773ad19e925e30f769e87e228</key>
        <relation type="pointOfContact"/>
      </relatedObject>
      <relatedObject>
        <key>8eed8c39e5e4f132568c9343b50ff51a91c1ee6b</key>
        <relation type="pointOfContact"/>
      </relatedObject>
      <relatedObject>
        <key>4cd4f23b6cc0b2a642ef216b8ade9145f5287128</key>
        <relation type="pointOfContact"/>
      </relatedObject>
      <relatedObject>
        <key>e8527f9eb6886b07624cf9f4c1eefe066e1a3317</key>
        <relation type="pointOfContact"/>
      </relatedObject>
      <relatedObject>
        <key>373cf1df3d19c1baed8a4e31ca5c20cdbbbd6bfb</key>
        <relation type="pointOfContact"/>
      </relatedObject>
      <relatedObject>
        <key>dd0fe2555f31672a2f64b50f2fb18fd42886e53a</key>
        <relation type="pointOfContact"/>
      </relatedObject>
      <relatedObject>
        <key>6010f81cc456d6875fcc14fc3c1974e2e9496b70</key>
        <relation type="pointOfContact"/>
      </relatedObject>
      <relatedObject>
        <key>20ab67602a6877ff10e74a4ce2298d95b82407ee</key>
        <relation type="pointOfContact"/>
      </relatedObject>
      <relatedObject>
        <key>448c3784a54c92a796d3e778c9658b77edd8375b</key>
        <relation type="pointOfContact"/>
      </relatedObject>
    </party>
  </registryObject>
</registryObjects>
Topic revision: r7 - 10 Oct 2012, RiniAngreani
 

Current license: All material on this collaboration platform is licensed under a Creative Commons Attribution 3.0 Australia Licence (CC BY 3.0).