Version 9 (modified by 12 years ago) ( diff ) | ,
---|
Metadata Record Sibling Relationships
Date | 2012-09-20 |
Contact(s) | Simon Pigot |
Last edited | 2012-09-20 |
Status | complete, being discussed |
Assigned to release | 2.9.0 |
Resources | Available |
Ticket # | #XYZ |
Overview
ISO Metadata records can be related to one another in different ways. The mechanisms for handling these relationships are most often part of the standard in the form of specific elements eg. parent-child relationships are handled through the parentIdentifier element and the datasets that a service delivers are handled through the operatesOn element. GeoNetwork:
- can index these relationships to support search
- has services for retrieving a specific set of related records or the entire collection of related records
This proposal adds sibling relationships between metadata records to GeoNetwork. The elements in the ISO standard that support sibling relationships are the aggregateInformation element. Sibling relationships types can be specified using an extendible codelist. Sibling records would be displayed under the relationship type. An example of how sibling relations are displayed in the classic interface and the new ExtJS interface is shown below.
Proposal Type
- Type: GUI Change, Core Change
- App: GeoNetwork
- Module: Lucene Index, ExtJS Experimental Interface, Classic Interface, Services for metadata record relations
Links
- Documents:
- Email discussions:
- Other wiki discussions:
Voting History
- Vote to be proposed by Simon Pigot, result was +/-n (m non-voting members).
Proposal
Aggregate Information in an ISO record that has a related sibling record uses the aggregateInformation element. This looks something like the following:
<gmd:aggregateInformation> <gmd:MD_AggregateInformation> <gmd:aggregateDataSetIdentifier> <gmd:MD_Identifier> <!-- optional gmd:authority here: could have details of a register describing the some details of the sibling record --> <!-- code is UUID/urn of the sibling record, could be a gmx:Anchor --> <gmd:code> <gco:CharacterString>urn:marine.csiro.au:project:1532</gco:CharacterString> </gmd:code> </gmd:MD_Identifier> </gmd:aggregateDataSetIdentifier> <gmd:associationType> <gmd:DS_AssociationTypeCode codeList="http://...#DS_AssociationTypeCode" codeListValue="crossReference">crossReference</gmd:DS_AssociationTypeCode> </gmd:associationType> <!-- initiative type describes the type of sibling relationship - in this case the code is a project related to the record that contains this aggregateInformation --> <gmd:initiativeType> <gmd:DS_InitiativeTypeCode codeList="http://...#DS_InitiativeTypeCode" codeListValue="project">project</gmd:DS_InitiativeTypeCode> </gmd:initiativeType> </gmd:MD_AggregateInformation> </gmd:aggregateInformation>
The UUID of the related record is held in an MD_Identifier element, the associationType is set to crossReference (which seems the most appropriate association type code) and the initiativeType is set to the type of sibling relationship (in this example 'project').
Backwards Compatibility Issues
None known.
New libraries added
None required.
Risks
As is the case with many features of the ISO standard, best practice for the use of the aggregateInformation element is not defined. There is a risk that they way in which we are using this element will not suit all users. However one way of developing best practice is to attempt to use the element in different ways and accumulate experience which we hope will not be too bitter :-)
Participants
- Simon Pigot
Attachments (4)
- ClassicSiblingRelationships.png (12.2 KB ) - added by 12 years ago.
- NewSiblingRelationships.png (22.5 KB ) - added by 12 years ago.
- EditingAggregationInfo.png (50.4 KB ) - added by 12 years ago.
-
siblings.patch
(22.4 KB
) - added by 12 years ago.
Git patch for metadata sibling relations
Download all attachments as: .zip