[Qgis-developer] QGIS & PyCSW

Tom Kralidis tomkralidis at gmail.com
Thu Mar 26 02:48:05 PDT 2015



On Wed, 25 Mar 2015, Paolo Cavallini wrote:

> Date: Wed, 25 Mar 2015 15:52:49 +0100
> From: Paolo Cavallini <cavallini at faunalia.it>
> To: qgis-developer at lists.osgeo.org
> Subject: Re: [Qgis-developer] QGIS & PyCSW
> 
> Il 25/03/2015 15:24, Angelos Tzotsos ha scritto:
>
>> This idea is excellent: we discussed something similar some time ago,
>> when we were thinking about future features for MetaSearch.
>> Among those features were a metadata editor and direct configuration for
>> pycsw publishing.
>> I strongly believe that these features should reach core QGIS in the
>> future.
>
> Hi Angelos,
> glad you are interested. Could you please give us an outline of what is
> necessary? Even better, publish a QEP for this?
> All the best, and thanks.
>

Sounds like there are possibly two core workflows / use cases:

1./ publish an existing layer's metadata to a existing CSW

This could be realized by adding CSW publishing functionality to relevant
plugins (Metatools, QSphere, etc.).  Having said this, I think the silver
bullet here would be giving the Metadata section of the Layer Properties
window an update to support vanilla ISO 19115/19139 (this is worthy of a QEP
all by itself), and then have plugins build upon that for profiles, etc.
This would enhance metadata management deeper in QGIS.

In either case, as Angelos says the publishing machinery would be
pure CSW-T which is straightforward and implementation agnostic.  As CSW
does not dictate security, some additional logic would be required to handle
various authentication mechanisms of popular CSW implementations
(i.e. pycsw: IP-based restrictions, GeoNetwork: HTTP Basic Auth and
others, etc.)

One would then accomplish this (preferable) via MetaSearch, i.e.:
- add a 'publish' tab which provides layer list
- metadata would/could be generated dynamically or based on where it was
   saved from a plugin (i.e. look in same dir as data path for .xml
   file, etc.).  Dublin Core would be by far the easiest to implement,
   but I suspect ISO would be preferred
- 'publish' button would insert or update the record to the CSW
- 'delete' button would delete the record from the CSW

2./ publish an actual CSW service via QGIS Server

I'm not sure about the QGIS server innards, but pycsw can be easily integrated
(in Python) as a library to advertising a .qgs file's layer metadata against a
single endpoint supporting numerous search APIs like CSW, SRU, OAI-PMH,
OpenSearch/Atom, etc.  An SQLite3 DB would be the backend and pycsw
configuration (.ini / ConfigParser driven) would be handled by a dialog during
the publishing/export workflow.  The workflow would write the configuration
and import the metadata into the SQLite3 backend for metadata publishing.

..Tom


More information about the Qgis-developer mailing list