add enhanced metadata management and MetaSearch publishing QEPs #20

Closed
wants to merge 3 commits into
from
Jump to file or symbol
Failed to load files and symbols.
+241 −0
Diff settings

Always

Just for now

@@ -0,0 +1,112 @@
+.. _qep#[.#]:
+
+=========================================================
+QGIS Enhancement #XXX: MetaSearch Publishing Enhancements
+=========================================================
+
+:Date: 2015/03/26
+:Author: Tom Kralidis
+:Contact: tomkralidis at gmail dot com
+:Last Edited: 2015/03/26
+:Status: Draft | Adopted (YYYY/MM/DD) | Completed (YYYY/MM/DD) |
+ Superseded by :ref:`QEP #[.#] <qep#[.#]>` (YYYY/MM/DD) |
+ Abandoned (YYYY/MM/DD) | Withdrawn (YYYY/MM/DD)
+:Version: QGIS 2.10
+
+.. note::
+
+ See :ref:`QEP 1 <qep1>` for description of QEP process.
+
+Summary
+-------
+
+This QEP aims to enhance MetaSearch to provide metadata publishing to CSW providing the following benefits:
+
+- easy, standards-based metadata publishing mechanism of QGIS layer metadata at the core (no duplications or QGIS plugins)
+- interchangeable CSW service to publish to (user configured)
+- enhanced discovery (better metadata is more easily discovered)
+
+Overview
+--------
+
+QIGS by default provides a Layer Properties Metadata tab which allows a user to enter various values (and select from various select boxes) under various sections like ``Description``, ``Attribution``, ``MetadataUrl``, ``LegendUrl``. The ``Properties`` section is autogenerated from the layer and is ready only. These values are stored in the QGIS project file within the ``<maplayer>`` element.
+
+MetaSearch is a QGIS plugin to interact with metadata catalogue services, supporting the OGC Catalogue Service for the Web (CSW) standard. MetaSearch provides an easy and intuitive approach and user-friendly interface to searching metadata catalogues within QGIS.
+
+It is proposed to improve MetaSearch to add layer metadata publishing to the plugin seamlessly, efficiently, and in an authoritative manner.
+
+This QEP will support an overall workflow per below:
+
+``manage Layer Metadata (QGIS core) -> publish/update/delete Layer Metadata (MetaSearch) to CSW``
+
+Proposed [Technical] Solution | Change
+--------------------------------------
+
+MetaSearch will add a 'Publishing' tab, which allows the user to:
+
+- select from the list of CSW endpoints to publish to
+- select a metadata format to publish (Dublin Core, ISO)
+- click 'Publish', which does a CSW-T Insert or Update to the server. An 'Update' button will overwrite the entire metadata record on the server. A 'Delete' button will allow for deleting records from the CSW-T
+
+Implementation Details
+----------------------
+
+- modify settings tab to allow for authentication against CSW-T
+- add publishing tab with 'Publish' 'Update' and 'Delete' buttons
+
+ * metadata values will be derived from Layer Properties Metadata tab values
+ * select box to choose format ('Dublin Core', 'ISO'). Metadata XML will be automagically generated against an XML template, filling in values from the Layer Properties Metadata tab
+
+Affected Files
+...............
+
+- https://github.com/qgis/QGIS/blob/master/python/plugins/MetaSearch/ui/maindialog.ui
+- https://github.com/qgis/QGIS/blob/master/python/plugins/MetaSearch/dialogs/maindialog.py
+
+Test Coverage
+-------------
+
+(required for technical solutions/changes if applicable)
+
+Performance Implications
+------------------------
+
+No performance implications are expected at this time given the lightweight nature of this enhancement to MetaSearch.
+
+Further Considerations/Improvements
+-----------------------------------
+
+This enhancement can be extended by adding the ability for users to upload user-defined XML templates, or select from more metadata standards/profiles.
+
+Restrictions
+------------
+
+Backwards Compatibility
+-----------------------
+
+Given this enhancement there will be no impact on backwards compatibility. There will be a UI design/change which will not break functionality.
+
+Documentation
+-------------
+
+Documentation will be enhanced accordingly in https://github.com/qgis/QGIS-Documentation/blob/master/source/docs/user_manual/plugins/plugins_metasearch.rst
+
+Issue Tracking ID(s)
+--------------------
+
+(required)
+
+References
+----------
+
+(optional)
+
+Miscellaneous
+-------------
+
+(optional)
+
+Voting History
+--------------
+
+(required)
@@ -0,0 +1,129 @@
+.. _qep#[.#]:
+
+========================================================================
+QGIS Enhancement #XXX: Support for Enhanced Layer Metadata Management
+========================================================================
+
+:Date: 2015/03/26
+:Author: Tom Kralidis
+:Contact: tomkralidis at gmail dot com
+:Last Edited: 2015/03/26
+:Status: Draft | Adopted (YYYY/MM/DD) | Completed (YYYY/MM/DD) |
+ Superseded by :ref:`QEP #[.#] <qep#[.#]>` (YYYY/MM/DD) |
+ Abandoned (YYYY/MM/DD) | Withdrawn (YYYY/MM/DD)
+:Version: QGIS 2.10
+
+.. note::
+
+ See :ref:`QEP 1 <qep1>` for description of QEP process.
+
+Summary
+-------
+
+This QEP aims to provide enhanced metadata management within the Layer Properties dialog, providing the following benefits:
+
+- fulsome metadata representation of QGIS layer metadata at the core (no duplications or QGIS plugins)
+- streamlining downstream plugins to operate against QGIS layer metadata at its core to provide value-added properties/metadata profiles, validation, etc.
+- easier publishing (via MetaSearch)
+- enhanced discovery (better metadata is more easily discovered)
+
+Overview
+--------
+
+QIGS by default provides a Layer Properties Metadata tab which allows a user to enter various values (and select from various select boxes) under various sections like ``Description``, ``Attribution``, ``MetadataUrl``, ``LegendUrl``. The ``Properties`` section is autogenerated from the layer and is ready only. These values are stored in the QGIS project file within the ``<maplayer>`` element.
+
+Currently, there are no mechanisms to:
+
+- save values in Metadata tab as a standalone standards-based (ISO, Dublin Core) metadata document (XML)
+- interact with other QGIS plugins such as MetaSearch or Metatools
+
+This leaves the QGIS layer metadata management story fragmented and spread across many internal mechanisms.
+
+It is proposed to improve layer metadata management at the core of QGIS by enhancing the Layer Properties Metadata tab with a core QGIS metadata model, thus allowing for better metadata export, publishing, and use by downstream plugins seamlessly, efficiently, and in an authoritative manner.
+
+This QEP will support an overall workflow per below:
+
+``manage Layer Metadata (QGIS core) -> publish/update/delete Layer Metadata (MetaSearch) to CSW``
+
+Proposed [Technical] Solution | Change
+--------------------------------------
+
+The Layer Properties Metadata tab will be reviewed to assess the following change improvements:
+
+- design (tabs vs. tre)
+- elements review
+
+Implementation Details
+----------------------
+
+The UI file will be reviewed and modified.
+
+Changes to the metadata model will be applied to the QGIS project file.
+
+Affected Files
+...............
+
+- https://github.com/qgis/QGIS/blob/master/src/ui/qgsvectorlayerpropertiesbase.ui
+- https://github.com/qgis/QGIS/blob/master/src/ui/qgsrasterlayerpropertiesbase.ui
+- https://github.com/qgis/QGIS/blob/master/src/app/qgsvectorlayerproperties.cpp
+- https://github.com/qgis/QGIS/blob/master/src/app/qgsrasterlayerproperties.cpp
+- https://github.com/qgis/QGIS/blob/master/src/mapserver/qgswfsprojectparser.cpp
+- https://github.com/qgis/QGIS/blob/master/src/core/qgsmaplayer.cpp
+- https://github.com/qgis/QGIS/blob/master/python/core/qgsmaplayer.sip
+- https://github.com/qgis/QGIS/blob/master/src/core/qgsmaplayer.h
+
+Test Coverage
+-------------
+
+(required for technical solutions/changes if applicable)
+
+Performance Implications
+------------------------
+
+No performance implications are expected at this time given the lightweight nature of this QEP to the codebase.
+
+Further Considerations/Improvements
+-----------------------------------
+
+This QEP could be extended by adding deeper layer metadata support by providing direct ISO or Dublin Core support/validation.
+
+Given the below workflow:
+
+manage Layer Metadata (QGIS core) -> publish/update/delete Layer Metadata (MetaSearch) to CSW
+
+QGIS MapServer could be enhanced to link directly to the metadata url generated by publishing to a CSW.
+
+As well, a QGIS-pycsw module could provide a CSW service much like QGIS MapServer, in which case layer publishing to MapServer could also include metadata publishing inline.
+
+Restrictions
+------------
+
+Backwards Compatibility
+-----------------------
+
+Given that the layer metadata model will be enhanced and not changed, there will be little impact on backwards compatibility. There will be a UI design/change which will not break functionality.
+
+Documentation
+-------------
+
+Documentation will be enhanced accordingly in http://docs.qgis.org/2.2/en/docs/user_manual/working_with_vector/vector_properties.html#metadata-menu
+
+Issue Tracking ID(s)
+--------------------
+
+(required)
+
+References
+----------
+
+(optional)
+
+Miscellaneous
+-------------
+
+(optional)
+
+Voting History
+--------------
+
+(required)