[pycsw-devel] metadata editor

Tom Kralidis tomkralidis at gmail.com
Mon Jul 27 12:00:33 PDT 2015


Thanks Eva: added to docs in master and 1.10 branches.

Thanks

..Tom

On Mon, 27 Jul 2015, Eva Jelínková wrote:

> Date: Mon, 27 Jul 2015 20:27:29 +0200
> From: Eva Jelínková <evka.jelinkova at gmail.com>
> To: Tom Kralidis <tomkralidis at gmail.com>
> Cc: pycsw-devel at lists.osgeo.org
> Subject: Re: [pycsw-devel] metadata editor
> 
> Hi Tom,
>
> I still have pycsw 1.9 so I haven't seen the thing with -y in
> pycsw-admin.py. My fault... I'll upgrade!
> Adding this to the docs is definitely a good idea.
>
> Thanks a lot,
> Eva
>
>
>
>
> 2015-07-27 18:36 GMT+02:00 Tom Kralidis <tomkralidis at gmail.com>:
>
>>
>>
>> On Mon, 27 Jul 2015, Eva Jelínková wrote:
>>
>>  Date: Mon, 27 Jul 2015 17:34:36 +0200
>>> From: Eva Jelínková <evka.jelinkova at gmail.com>
>>> To: Tom Kralidis <tomkralidis at gmail.com>
>>> Cc: pycsw-devel at lists.osgeo.org
>>> Subject: Re: [pycsw-devel] metadata editor
>>>
>>> Hello Tom,
>>>
>>> thank you very much for your response. We are still at the stage of
>>> research and testing.
>>>
>>> We are going to store metadata XMLs in pycsw - it's great that user can
>>> access it easily via QGIS. We've already tested harvesting to CKAN which
>>> we
>>> plan to use as graphical user interface for browsing and searching.
>>>
>>> Our workflow is going to be probably like this:
>>>
>>> web form => MCF file => pygeometa => XML => pycsw => CKAN
>>>
>>> Thanks for Flask recommendation!
>>>
>>> I was thinking also about using CKAN as form for creating/editing records
>>> but I found it difficult to get the edited record back to pycsw or create
>>> XML straight from CKAN...
>>>
>>>
>>> There is one thing in pycsw that I haven't got yet. Maybe you can help me.
>>> I have some testing XMLs that I load to pycsw via pycsw-admin.py:
>>>
>>> python /path/to/pycsw-admin.py -c load_records -f /path/to/pycsw.cfg -p
>>> /path/to/xml -r
>>>
>>>
>>
>>  When I update some of that XMLs it is impossible to just reload it because
>>> "Key (identifier)=(xy) already exists". So the easiest way for me (for now
>>> - I have just a few records) is delete all records in DB and than load
>>> them
>>> again.
>>>
>>
>>
>> We addressed this in https://github.com/geopython/pycsw/issues/290.
>> Adding a -y flag to pycsw-admin.py will force update (do a pycsw-admin.py
>> -h to
>> see examples).  I wonder whether we should add this to the docs (
>> http://docs.pycsw.org/en/latest/administration.html#loading-records) as
>> well?
>>
>>  I think the right way would be to use transactions (update) instead of
>>> deleting all the records all the time...
>>> Unfortunately there is not so much information about transactions in
>>> documentation (when I will be able to use transactions correctly I could
>>> add there some notes for people who are novices as I am :D ).
>>> For full update I added tags csw:Transaction and csw:Update to my metadata
>>> XML:
>>>
>>> <csw:Transaction ...>
>>> <csw:Update>
>>> <gmd:MD_Metadata ...>
>>> ...
>>> </gmd:MD_Metadata>
>>> </csw:Update>
>>> </csw:Transaction>
>>>
>>> and posted it by pycsw-admin.py:
>>>
>>> python /path/to/pycsw-admin.py -c post_xml -x /path/to/xml/sample.xml -u
>>> http://myhost/cgi-bin/csw.py
>>>
>>> It worked :) but my question is - is there any possibility to do the full
>>> update for whole directory full of XMLs (all with update tags)? According
>>> to the information I found here [1], full update should be able to update
>>> records in DB and also add new ones. I think that maybe we could create
>>> all
>>> XML files as update XMLs and than every time we run post_xml we would have
>>> all records updated. Would it be possible or am I on the completely wrong
>>> way?
>>>
>>
>> The underlying functionality of pycsw-admin.py is all scriptable as well,
>> so
>> you could write a script create a csw:Transaction XML as you describe with
>> each XML file in a directory written inline.  Having said this,
>> pycsw-admin.py
>> provides these as convenience functions if you are able to run on the
>> command
>> line, and the -y flag will force the update.
>>
>> Hope this helps.
>>
>> ..Tom
>>
>>
>>
>>> Thanks for any advice,
>>> Eva Jelinkova
>>>
>>> [1]
>>> http://geopython.github.io/pycsw-workshop/docs/advanced/transactions.html
>>>
>>>
>>>
>>> 2015-07-27 14:41 GMT+02:00 Tom Kralidis <tomkralidis at gmail.com>:
>>>
>>>
>>>> On Sun, 26 Jul 2015, Eva Jelínková wrote:
>>>>
>>>>  Date: Sun, 26 Jul 2015 23:17:05 +0200
>>>>
>>>>> From: Eva Jelínková <evka.jelinkova at gmail.com>
>>>>> To: pycsw-devel at lists.osgeo.org
>>>>> Subject: [pycsw-devel] metadata editor
>>>>>
>>>>> Hi all pycsw people,
>>>>>
>>>>> we are trying to set a catalog service based on pycsw to store the
>>>>> information about the data and services in our company. pycsw works well
>>>>>
>>>>>
>>>> Great to hear this!  If you have endpoint(s), feel free to add them /
>>>> have
>>>> them added to our live deployments wiki page [1], which powers our live
>>>> deployments map [2].
>>>>
>>>>  for us, it seems that the only problem is creation of metadata
>>>> records...
>>>>
>>>>> I
>>>>> have tried GIMED and EUOSME metadata editors but none is good enough for
>>>>> our case. We need just an easy open source web form (ideally python
>>>>> based).
>>>>> It don't have to be valid for all requirements of the INSPIRE directive.
>>>>> We
>>>>> will probably develop one but if there is any similar project you know
>>>>> about, just let me know, please. It would really help us.
>>>>>
>>>>>
>>>>>  There are numerous web options out there embedded in applications like
>>>> GeoNode and CKAN, however at the cost of all the associated machinery.
>>>>
>>>> Having said this, as part of another project I'm involved in, we recently
>>>> released pygeometa [3] which supports creating ISO from a simple
>>>> ConfigParser
>>>> file/object.  You could implement a simple Flask [4] based front end to
>>>> provide a form and saving logic, which would create a pygeometa
>>>> metadata object and then serialize to a metadata file as desired.  Or,
>>>> even
>>>> better, publish directly to pycsw :)
>>>>
>>>> ..Tom
>>>>
>>>> [1] https://github.com/geopython/pycsw/wiki/Live-Deployments
>>>> [2] http://pycsw.org/community/
>>>> [3] https://github.com/geopython/pygeometa
>>>> [4] http://flask.pocoo.org/
>>>>
>>>>
>>>
>


More information about the pycsw-devel mailing list