Skip to main content

Generate static open data catalogs according to the DCAT-AP.de standard

Project description

Staticat

logo

Mit Staticat können Sie statische Open-Data-Kataloge nach dem DCAT-AP.de-Standard direkt auf Ihrem Rechner generieren. Dazu müssen Sie nur die Dateien, die Sie veröffentlichen möchten, in einem Ordner sammeln und mit einigen wenigen Metadaten im TOML-Format anreichern. Nachdem Sie Staticat ausgeführt haben, können Sie den Ordner anschließend auf einen einfachen Webserver hochladen. MySQL, PHP usw. werden dabei nicht benötigt.

English summary: With Staticat, you can generate static open data catalogs according to the DCAT-AP.de standard right on your computer. All you need to do is collect the files you want to publish in a folder and enrich them with some metadata using the TOML format. After executing Staticat, you can then upload the folder to a simple web server. MySQL, PHP etc. are not required.

Installation

Staticat kann als portables Programm verwendet werden. Laden Sie dazu einfach die neueste Version für Windows herunter und entpacken Sie das ZIP-Archiv.

Alternativ, falls Sie bereits Python auf Ihrem Rechner installiert haben, können Sie Staticat auch mit dem Kommando pip install staticat installieren. Die Installation mit pip funktioniert auch auf macOS und Linux.

Benutzung

Um einen neuen Open-Data-Katalog aufzubauen, können Sie mit dem Open-Data-Ordner starten, der als Beispiel mit Staticat ausgeliefert wird. Sie finden den Ordner auch auf GitHub. Der Open-Data-Ordner folgt dem Schema: ein Verzeichnis pro Datensatz, eine oder mehrere Distributionen, also Dateien, pro Datensatz. Datensätze können dabei in beliebiger Verschachtelung und Tiefe angelegt werden.

Führen Sie nun folgende Schritte aus:

  1. Passen Sie die Metadaten für den gesamten Katalog in der Datei catalog.toml an.
  2. Ersetzen und ergänzen Sie die Beispieldatensätze nach und nach mit "echten" Datensätzen. Dazu bearbeiten Sie zunächst die Metadaten für den jeweiligen Datensatz in der Datei dataset.toml und legen dann die Dateien, die Sie dem Datensatz zuordnen möchten, im selben Verzeichnis ab.
  3. Nachdem Sie Staticat ausgeführt haben, laden Sie den Open-Data-Ordner auf einen Webserver hoch.

Im Folgenden wird die Funktionsweise von Staticat etwas detaillierter beschrieben. Betrachten Sie dazu zum Beispiel diesen Open-Data-Ordner:

$ tree opendata
opendata                   ← Open-Data-Ordner
├── catalog.toml           ← Metadatenbeschreibung des Katalogs
└── example                ← Datensatz
    ├── dataset.toml       ← Metadatenbeschreibung des Datensatzes
    └── distribution.xlsx  ← Distribution

2 directories, 3 files

Nach dem DCAT-AP.de-Standard fasst ein Katalog mehrere Datensätze und ein Datensatz mehrere Distributionen, also in der Regel Dateien, zusammen. Dabei müssen sowohl der Katalog als auch die Datensätze mit einigen grundlegenden Metadaten ausgezeichnet werden. Dies geschieht über die Dateien catalog.toml (Beispieldatei, Details) und dataset.toml (Beispieldatei, Details).

Wenn Sie nun Staticat ausführen, legt das Programm einige zusätzliche Dateien an:

$ tree opendata
opendata
├── catalog.toml
├── catalog.ttl            ← Katalog im Turtle-Format
├── default.css            ← Stylesheet für die Websites
├── index.html             ← Website des Katalogs
└── example
    ├── dataset.toml
    ├── distribution.csv   ← Distribution im CSV-Format
    ├── distribution.xlsx
    └── index.html         ← Website des Datensatzes

2 directories, 8 files

Excel-Dateien werden von Staticat standardmäßig ins CSV-Format umgewandelt. Das CSV-Format ist im Gegensatz zu den Formaten XLS und XLSX offen und nicht-proprietär und daher besser für Open-Data-Veröffentlichungen geeignet. Dieses Verhalten lässt sich über die Konfigurationsdateien pro Datensatz anpassen.

Die Datei catalog.ttl beschreibt den Katalog im maschinenlesbaren Turtle-Format und kann durch andere Open-Data-Portale "geharvestet", also eingelesen, werden. Wenn Sie Ihren Katalog harvesten lassen, können Ihre veröffentlichten Dateien zum Beispiel auch über das Open-Data-Portal Ihres Landes oder über GovData gefunden werden.

Die Websites des Katalogs und der Datensätze bieten eine einfache, für Menschen lesbare Ansicht der veröffentlichten Dateien. Vorrangig ist der von Staticat erstellte Katalog aber für das Harvesting durch übergeordnete Open-Data-Portale gedacht.

Screenshots

Eine Online-Demo finden Sie unter hriebl.github.io/staticat. Folgende Screenshots vermitteln außerdem einen ersten visuellen Eindruck von Staticat:

Katalog Datensatz
Screenshot Katalog Screenshot Datensatz

Konfigurationsdateien

config.toml

Die Datei config.toml muss im selben Verzeichnis wie das portable Programm staticat.exe liegen. Falls Sie Staticat mit pip installiert haben, also nicht die portable Version verwenden, nutzen Sie bitte die entsprechenden Kommandozeilenargumente anstatt der Datei config.toml.

Beispieldatei: portable/config.toml.

Folgende Schlüssel sind zulässig:

Schlüssel Typ Beschreibung
directory String Basisverzeichnis des lokalen Open-Data-Ordners
catalog_template String
(optional)
Pfad zum Jinja-Template für die HTML-Darstellung des Katalogs
dataset_template String
(optional)
Pfad zum Jinja-Template für die HTML-Darstellung der Datensätze
convert_excel Boolean
(optional)
Ob Excel zu CSV umgewandelt wird (für alle Datensätze)

catalog.toml

Die Datei catalog.toml muss im Basisverzeichnis des Open-Data-Ordners liegen.

Beispieldatei: opendata/catalog.toml.

Folgende Schlüssel sind zulässig:

Schlüssel Typ RDF / Beschreibung
uri String Basis-URL des Open-Data-Katalogs im Internet
title String dct:title
description String dct:description
[publisher] Table dct:publisher
name String foaf:name
uri String URI des Publishers
[dataset_defaults] Table
(optional)
Standardmetadaten
(für alle Datensätze)
... ... Siehe dataset.toml

dataset.toml

Jedes Verzeichnis im Open-Data-Ordner mit einer Datei dataset.toml wird von Staticat als Datensatz verarbeitet und zum Katalog hinzugefügt. Sollten Unklarheiten hinsichtlich der Bedeutung eines Schlüssel bestehen, können Sie das entsprechende RDF-Prädikat nachschlagen oder die HTML-Darstellung des Datensatzes zu Rate ziehen.

Beispieldatei: opendata/example/dataset.toml.

Folgende Schlüssel sind zulässig:

Schlüssel Typ Werte / Format RDF / Beschreibung
title String dct:title
description String dct:description
keywords Array mit Strings dcat:keyword
themes Array mit Strings 1 (nur Code) dcat:theme
issued Datum JJJJ-MM-TT dct:issued
start_date Datum JJJJ-MM-TT dct:temporal//dcat:startDate
end_date Datum JJJJ-MM-TT dct:temporal//dcat:endDate
license String 2 (nur Code) dct:license
availability String 3 (nur Code) dcatap:availability
spatial String 4, 5, 6, 7
(komplette URI)
dct:spatial
political_geocoding String 8, 9, 10, 11, 12, 13
(komplette URI)
dcatde:politicalGeocodingURI
dcatde:politicalGeocodingLevelURI
[maintainer] Table dcatde:maintainer
dcat:contactPoint
name String foaf:name
vcard:fn
email String foaf:mbox
vcard:hasEmail
[creator] Table dct:creator
name String foaf:name
email String foaf:mbox
[publisher] Table dct:publisher
name String foaf:name
uri String URI des Publishers
[config] Table
(optional)
Staticat-Einstellungen
(für diesen Datensatz)
convert_excel Boolean
(optional)
Ob Excel zu CSV umgewandelt wird

Falls Sie eine Online-Ressource als Distribution zu einem Datensatz hinzufügen möchten, die nicht als Datei auf Ihrem Rechner vorliegt, können Sie diese ebenfalls in der Datei dataset.toml hinterlegen. Dazu müssen Sie lediglich ein Array [[distributions]] mit mindestens den beiden Schlüsseln uri und title zur Datei dataset.toml hinzufügen.

Beispieldatei: opendata/online/dataset.toml.

Folgende Schlüssel sind zulässig:

Schlüssel Typ Werte / Format RDF / Beschreibung
[[distributions]] Array dcat:distribution
uri String URI der Distribution
dcat:accessURL
title String dct:title
modified Datum
(optional)
JJJJ-MM-TT dct:modified
format String
(optional)
14 (nur Code) dct:format
media_type String
(optional)
MIME-Type dcat:mediaType
byte_size Float
(optional)
dcat:byteSize

Kommandozeilenargumente

Falls Sie Staticat mit pip installiert haben, also nicht die portable Version verwenden, können Sie folgende Kommandozeilenargumente anstelle der Datei config.toml verwenden. Die portable Version unterstützt diese Argumente nicht:

$ staticat -h
usage: staticat [-h] [-c CATALOG_TEMPLATE] [-d DATASET_TEMPLATE] [-e] directory

positional arguments:
  directory             the base directory of the local open data folder

options:
  -h, --help            show this help message and exit
  -c CATALOG_TEMPLATE, --catalog-template CATALOG_TEMPLATE
                        the path of the Jinja template for the HTML view of the catalog
  -d DATASET_TEMPLATE, --dataset-template DATASET_TEMPLATE
                        the path of the Jinja template for the HTML view of the datasets
  -e, --excel           do not convert Excel distributions to CSV. can be overridden in
                        dataset.toml

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

staticat-0.0.3.tar.gz (1.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

staticat-0.0.3-py3-none-any.whl (109.7 kB view details)

Uploaded Python 3

File details

Details for the file staticat-0.0.3.tar.gz.

File metadata

  • Download URL: staticat-0.0.3.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for staticat-0.0.3.tar.gz
Algorithm Hash digest
SHA256 a31d6860fe249330e6a0f078362c7818c50077ffcdd784d4fec18923c7c51239
MD5 799ce9791ade5cba3fe2f3f042dbd026
BLAKE2b-256 17fbffb373a48d9349411e8db2afd816b0f0cc276c5f1c41e0b94b10b0945cdb

See more details on using hashes here.

File details

Details for the file staticat-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: staticat-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 109.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for staticat-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 234cafe1b2bae75eeca2bd9dd4af2ba32a2a97aedca0c22da022abf647662370
MD5 51b0140784146cc3123e79cf04c62e6f
BLAKE2b-256 54f4028f5788e5aa6ddf83f5ffeead3a2a374ae69179fb664eb05bd73a1191b2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page