CKAN Harvester
CKAN Harvester
Οδηγός Χρήσης: CKANHarvester
1. Τι είναι ο CKANHarvester;
Ο CKAN Harvester αυτοματοποιεί τη συλλογή μεταδεδομένων από πηγές που υλοποιούνται με CKAN και την εισαγωγή τους στο data.gov.gr. Εκτός από τη μεταφορά, εφαρμόζει μετασχηματισμούς ώστε τα δεδομένα να είναι ομοιόμορφα και να περνούν τις επικυρώσεις του σχήματος.
2. Γρήγορη Εκκίνηση: Ρύθμιση μιας Πηγής
Η διαδικασία είναι απλή:
Από τη διαχείριση CKAN μεταβείτε στο “Συγκομιδή” (Harvesting).
Πατήστε “Προσθήκη Πηγής Συγκομιδής” (Add Harvest Source).
Συμπληρώστε τα βασικά πεδία:
URL: Βασικό URL του απομακρυσμένου CKAN (π.χ.
https://remote-ckan.example.org)Τίτλος / Περιγραφή: Προαιρετικά για αναγνώριση
Οργανισμός: Ιδιοκτησία πηγής
Συχνότητα: MANUAL / DAILY / WEEKLY / MONTHLY
Τύπος: CKAN Harvester (π.χ.
core_ckan_harvester)Configuration: Προαιρετικό (συνήθως δεν απαιτείται)
Αποθήκευση και εκκίνηση συγκομιδής.
CLI (προαιρετικά):
ckan -c /etc/ckan/production.ini harvester source create name="my-ckan-source" title="My CKAN Source" type="core_ckan_harvester" url="https://remote-ckan.example.org" frequency="WEEKLY" owner_org=""
API (cURL):
curl -X POST "https:///api/3/action/harvest_source_create" -H "Authorization: <API_TOKEN>" -H "Content-Type: application/json" -d '{ "name": "my-ckan-source", "title": "My CKAN Source", "type": "core_ckan_harvester", "url": "https://remote-ckan.example.org", "frequency": "WEEKLY", "owner_org": "" }'
3. Τι Συμβαίνει στα Παρασκήνια; Οι Αυτόματοι Μετασχηματισμοί
Ο CKAN Harvester του data.gov.gr εφαρμόζει κανονικοποιήσεις ώστε τα δεδομένα να είναι συμβατά και καθαρά:
Access Rights
Θέτει
access_rightsσε authority URI. Σε CKAN→CKAN συγκομιδή εφαρμόζεται προεπιλογήPUBLIC(βλ. πολιτική παρακάτω) ώστε datasets να καταχωρούνται δημόσια.
License & isopen
Αντιστοιχίζει κοινά license IDs (π.χ. CC-BY →
cc-by) σε αναγνωρισμένα CKAN IDs.Εάν το απομακρυσμένο dataset είναι
isopen=true, διατηρεί την ανοικτότητα και διορθώνει license mapping για να παραμένει “open”.
Mimetype
Μετατρέπει όπου είναι εφικτό σε IANA URIs (π.χ.
text/csv→https://www.iana.org/assignments/media-types/text/csv).
Πόροι (Resources)
Διατηρεί ονόματα/περιγραφές σε μεταφρασμένα πεδία (
name_translated,description_translated) για την ελληνική διεπαφή.
Οργανισμός / Publisher
Χαρτογραφεί βασικά στοιχεία publisher (URI/URL) όπου υπάρχουν στα extras.
Tags
Καθαρισμός χαρακτήρων/μήκους/διπλοτύπων ώστε να περνούν οι κανόνες του CKAN.
Τεχνικά
Ενημερώνει
metadata_modifiedώστε να επιβάλλεται ο συγχρονισμός ενημερώσεων.
4. Συχνές Ερωτήσεις
Χρειάζεται configuration JSON; Όχι συνήθως. Ο CKAN Harvester λειτουργεί out‑of‑the‑box.
Θα εμφανιστούν όλα τα πεδία του απομακρυσμένου; Συλλέγονται βασικά πεδία (datasets, resources, license κ.λπ.) και εφαρμόζονται κανονικοποιήσεις.
Τι γίνεται με μη έγκυρες/ασύμβατες τιμές; Κανονικοποιούνται ή αφαιρούνται ώστε να περνά η επικύρωση (validation).
5. Προαπαιτούμενα & Συμβατότητα
Plugins:
harvest,dcat(και το extension του data.gov.gr).Vocabulary Admin με ενεργά λεξιλόγια και τιμές:
“Access right”, “Licence”, “Frequency”, “Planned availability”
“Languages”, “Media types”, “Data theme”
(προαιρετικά) “High-value dataset categories”
Συμβατό με αποθετήρια που εκθέτουν CKAN API (CKAN→CKAN).
6. Αναλυτικοί Μετασχηματισμοί (data.gov.gr)
Access Rights
Κανονικοποίηση σε authority URI.
CKAN→CKAN: προεπιλογή
PUBLICγια συνεκτικότητα και ευρετηρίαση.
License
Αντιστοιχίσεις σε αναγνωρισμένα CKAN IDs (π.χ.
CC-BY-*→cc-by,CC0→cc-zeroκ.λπ.).
Mimetype (dataset & resources)
Διορθώσεις συχνών typos και IANA URI mapping όπου είναι δυνατό.
Tags
Καθαρισμός ώστε να περνούν CKAN validation (μήκος/χαρακτήρες/διπλότυπα).
7. Πολιτική Access Rights (data.gov.gr)
Για συγκομιδή CKAN→CKAN, θέτουμε προεπιλογή:
access_rights = http://publications.europa.eu/resource/authority/access-right/PUBLIC
Η πολιτική αυτή βοηθά στη συνεκτική ταξινόμηση (π.χ. facets όπως NSIP) και στην αναζήτηση.
Εάν μια πηγή χρειάζεται διαφορετική πολιτική, μπορεί να ρυθμιστεί ανά περίπτωση.
8. Παρακολούθηση & Logs
Εκτέλεση κύκλου:
ckan -c /etc/ckan/production.ini harvester run
Λίστα εργασιών:
ckan -c /etc/ckan/production.ini harvester jobs list
Αναφορά εργασίας:
ckan -c /etc/ckan/production.ini harvester job report <job_id>
Ελέγξτε consumers (supervisor) και application logs για σφάλματα mapping/validation.
9. Συχνά Σφάλματα και Λύσεις
Κενά λεξιλόγια (Vocabulary Admin): Συμπληρώστε/ευθυγραμμίστε τιμές/URIs (Access right, Licence, Frequency, Languages, Media types, Data theme).
Μη τυπικές τιμές (mimetype/authority URIs): Κανονικοποιούνται ή αφαιρούνται για να περάσει το validation.
Αστάθεια απομακρυσμένου CKAN: Ελέγξτε διαθεσιμότητα API και βασικά πεδία (resources, license κ.λπ.).
CKAN Harvester — Συνολική Αντιστοίχιση/Συμπεριφορά
Βασικά πεδία: Μεταφέρονται name, title, owner_org, license_id, author, author_email, maintainer, maintainer_email, version, private/ state.
Τίτλος/Περιγραφή (πολυγλωσσικά): Διασφαλίζονται title_translated-el και notes_translated-el με fallbacks. Το notes αφαιρείται όταν υπάρχει notes_translated-el.
Tags: Μεταφέρονται από tags[].name. Γίνεται καθαρισμός (μήκος/χαρακτήρες/διπλότυπα). Επιπλέον, οι τίτλοι ομάδων groups[].title προστίθενται ως tags.
Organization/Publisher: Χαρτογράφηση remote organization σε publisher (λίστα αντικειμένων με name, identifier, και όπου υπάρχουν uri, url από extras του οργανισμού).
Άδειες (license):
• Κανονικοποίηση αδειών (mapper)
Ο CKAN harvester διαθέτει ενσωματωμένο “mapper” για τις άδειες: όταν λαμβάνει ένα URL ή license_id από τον απομακρυσμένο κατάλογο (π.χ. http://creativecommons.org/licenses/by-nd/2.5/, http://opendefinition.org/licenses/odc-odbl/), το αντιστοιχίζει στο επίσημο λεξιλόγιο «Licence» του data.gov.gr. Αν βρεθεί αντιστοίχιση:
Η άδεια μετατρέπεται στο canonical URI της ΕΕ (π.χ. http://publications.europa.eu/resource/authority/licence/CC_BYND_2_5 ή …/ODC_BL) και αποθηκεύεται στο πεδίο license του resource, ώστε το UI να εμφανίζει πάντα τις “γνωστές” τιμές.
Τα license_id, license_title και license_url διατηρούν τις πληροφορίες από την πηγή, για πλήρη διαφάνεια.
Αν ο mapper δεν βρει αντιστοίχιση στο λεξιλόγιο, τότε το πεδίο license μένει κενό (για να αποφύγουμε validation errors και “άγνωστες” τιμές), ενώ τα υπόλοιπα πεδία συνεχίζουν να δείχνουν τι μας έστειλε ο απομακρυσμένος κατάλογος.
Ανοικτότητα (isopen): Διατηρείται το remote isopen. Υπάρχει τελικός έλεγχος μετά το import ώστε αν το remote ήταν true, να παραμείνει true.
Access rights: Θέτει access_rights = http://publications.europa.eu/resource/authority/access-right/PUBLIC (προεπιλογή public). Αφαιρείται τυχόν extras.access_rights για αποφυγή διπλοεγγραφής.
Mimetype (resources): Μετατροπή σε IANA URI όπου είναι τυπικό MIME (π.χ. text/csv → https://www.iana.org/assignments/media-types/text/ csv) και διορθώσεις κοινών λαθών (π.χ. txt/csv → text/csv).
Πόροι (μεταφράσεις): Μεταφορά resources[].name σε name_translated.el και resources[].description σε description_translated.el (και αφαίρεση των αρχικών όπου υπάρχει translated). Χρήση title ως fallback για name.
Extras: Φιλτράρονται ώστε να παραμένουν μόνο harvesting‑related (harvest_object_id, harvest_source_id, harvest_source_title, harvest_source_url, harvest_job_id, guid, source_hash).
Χρονική σήμανση: Ορίζεται metadata_modified στο τρέχον UTC για να επιβάλλεται συγχρονισμός.
Συνοχή σχήματος: Οι καθαρισμοί/διορθώσεις εφαρμόζονται ώστε τα δεδομένα να περνούν CKAN validation και να είναι ομοιόμορφα στο data.gov.gr.
Συχνές Ερωτήσεις
Ε: Η άδειά μου άλλαξε από 'CC-BY-4.0' σε 'cc-by'. Είναι λάθος;
Α: Όχι, είναι σωστό. Ο harvester απλώς τυποποιεί την άδεια στην επίσημη μορφή που χρησιμοποιεί το σύστημα. Η ουσία της άδειας παραμένει ακριβώς η ίδια.
Ε: Κάποιες από τις ετικέτες που υπήρχαν λείπουν ή έχουν αλλάξει. Γιατί;
Α: Ο harvester αφαιρεί ετικέτες που περιέχουν μη επιτρεπτούς χαρακτήρες (όπως κόμμα) ή που είναι υπερβολικά μεγάλες. Επίσης, μπορεί να προσθέσει νέες ετικέτες από τις ομάδες στις οποίες ανήκει το dataset.
Ε: Πώς μπορώ να ελέγξω αν μια συγκομιδή ολοκληρώθηκε με επιτυχία;
Α: Στη σελίδα της πηγής συγκομιδής, μπορείτε να δείτε το "Πίνακας ελέγχου" . Εκεί φαίνεται πότε έτρεξε η τελευταία συγκομιδή, πόσα σύνολα δεδομένων προστέθηκαν ή ενημερώθηκαν, και αν υπήρξαν σφάλματα.
Last updated