wiki:proposals/SubTemplates

Version 7 (modified by fxp, 13 years ago) ( diff )

--

Sub-templates

Date 2011/05/25
Contact(s) Francois, Simon
Last edited
Status draft
Assigned to release 2.7.0
Resources Available
Ticket #XYZ

Overview

This proposal aims to provide the capability to handle sub-templates. Sub-templates are XML fragment of metadata records.

Example for a point of contact in ISO19139:

<?xml version="1.0" encoding="UTF-8"?>
<gmd:pointOfContact xmlns:gts="http://www.isotc211.org/2005/gts" xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:gml="http://www.opengis.net/gml">
	<gmd:CI_ResponsibleParty>
		<gmd:individualName>
			<gco:CharacterString>NAME</gco:CharacterString>
		</gmd:individualName>
		<gmd:organisationName>
			<gco:CharacterString>Name of the responsible organization</gco:CharacterString>
		</gmd:organisationName>
		<gmd:positionName>
			<gco:CharacterString>Function performed by the responsible party</gco:CharacterString>
		</gmd:positionName>
		<gmd:role>
			<gmd:CI_RoleCode codeList="./resources/codeList.xml#CI_RoleCode" codeListValue="pointOfContact"/>
		</gmd:role>
	</gmd:CI_ResponsibleParty>
</gmd:pointOfContact>

Sub-templates are designed to be inserted into metadata records using 2 mode:

  • one time link with copy/paste action
  • permanent link with XLink.

The copy/pase mode allows user to add a fragment which could be modified. This is useful because it provides default values or editing instructions which could be helpful to fill in the appropriate values (eg. a default quality report). It allows also to add a fragment with real value and change them.

The XLink mode create a dynamic link between the metadata record and the fragment. Editor can't edit such a fragment from the editor. The sub-template manager should be used.

Proposal Type

  • Type: Metadata
  • App: GeoNetwork
  • Module: Admin, Editor
  • Documents:
  • Email discussions:
  • Other wiki discussions:

Voting History

  • Vote proposed by on , result was

Proposal

Sub-templates are:

  • XML document
  • stored in the Metadata table with
    • value 's' for the template column (reminder: 'y' is for template, 'n' is for metadata)
    • root element is stored in the root column. It allows us to know the type of sub-templates (and where it could be inserted in an existing record)
    • schema is defined like metadata or template documents
  • indexed using Lucene identified by field _isTemplate='s'
  • imported through the metadata record import administration page ?
  • similar to metadata document for privileges management

In the user interface, sub-templates are accessible through:

  • a sub-templates manager in the administration
  • a popup selection mechanism in the metadata editor (like CRS, Thesaurus)

Types of sub-templates:

  • contact
  • ... extent ?

Manage sub-templates

A service is added to return the list of available sub-templates available.

  • getTypes method: return the list of available sub-templates available

Sub-templates actions:

  • insert : Use the metadata insert form to create a sub-template
  • update/delete : Use the sub-template manager
  • search : Use any search services with _isTemplate='s'
  • privileges : Define privileges for the sub-template.

Draft screenshot

Using sub-templates in the editor

TODO : basically using similar popup like CRS or Thesaurus

  • full text search
  • select one or more elements
  • add (as XLink or using simple copy)
  • could this be generic ?
    • add selector according to the types available in the catalogue (using the _root info) ?

Questions:

  • do we need more than full text indexing ?
  • Sub template for simple element ? eg. gmd:abstract
  • Root element :
    • how-to manage same types ? eg. gmd:pointOfContact, gmd:contact, gmd:citedResponsibleParty, gmd:distributorContact elements are all gmd:CI_ResponsibleParty. Root element is not enough to be able to decide where a sub-template could be inserted. For the contact gmd:CI_ResponsibleParty would be a better type identifier.
    • qualifiedName in the root column : maybe namespace is better ?
  • When adding a contact as sub-template, editor want to set his role (which could be different according to the record) ? How to set this as a parameter to the sub-template ?
  • should we use metadata import page to import sub template ? or a custom one ?
  • how to autodetect schema for templates ? - maybe we need a specific import page to set schema value. or if user set subtemplate for the type, then schema is mandatory ?
  • we always edit in advanced mode - at least non flat mode to provide all schema elements ?
  • Subtemplate model
    • we need a title for all types of subtemplate (to be display in search). Where/how to configure ?
      • Quid on extent ? using description which is not mandatory ?
  • deleting a subtemplate and lost XLinks - how to manage ?

Future feature:

Backwards Compatibility Issues

None.

New libraries added

None.

Participants

  • Francois Prunayre
  • Simon Pigot

Attachments (3)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.