DSPL-Entwicklerhandbuch

DSPL steht für Dataset Publishing Language. Es handelt sich dabei um ein Darstellungsformat für die Metadaten (Informationen zum Dataset, z. B. Name und Anbieter sowie die darin enthaltenen Konzepte und Darstellungen) und für die tatsächlichen Daten von Datasets. In diesem Format beschriebene Datasets können in den Google Public Data Explorer importiert werden, ein Tool, das eine umfassende visuelle Untersuchung der Daten ermöglicht.

Hinweis: Wenn du Daten mit dem Tool zum Hochladen von öffentlichen Daten in Google Public Data hochladen möchtest, benötigst du ein Google-Konto.

Dieses Dokument richtet sich an Dateninhaber, die möchten, dass ihre Inhalte im Public Data Explorer verfügbar sind. Sie geht über das Tutorial hinaus, indem es die Details des DSPL-Schemas und der unterstützten Funktionen genauer erläutert. Dabei wird nur eine grundlegende Vertrautheit mit XML vorausgesetzt, aber auch Kenntnisse über relationale Datenbanken sind hilfreich.

Wir empfehlen Ihnen, die Anleitung zu lesen, die kürzer und leichter zu lesen ist, bevor Sie sich dieses Dokument ansehen. Dies ist jedoch keine Voraussetzung.

Übersicht

Ein DSPL-Dataset ist eine ZIP-Datei, die eine XML-Datei und eine Reihe von CSV-Dateien enthält. Die CSV-Dateien sind einfache Tabellen mit den Daten des Datasets. In der XML-Datei werden dagegen die Metadaten des Datasets beschrieben. Letzteres umfasst Informationsmetadaten wie Beschreibungen von Maßnahmen sowie strukturierte Metadaten wie Verweise zwischen Tabellen. Mithilfe dieser Metadaten können nicht fortgeschrittene Nutzer Ihre Daten untersuchen und visualisieren.

Verarbeiten

Im Allgemeinen läuft das Erstellen eines DSPL-Datasets so ab (einige Schritte können parallel ausgeführt werden):

  1. Erstellen Sie die DSPL-XML-Datei.
  2. Identifizieren Sie alle externen Datenquellen, die in Ihrem Dataset verwendet werden sollen.
  3. Definieren Sie Ihre Konzepte, Segmente und (optional) Themen. Aktualisieren Sie den Inhalt Ihrer DSPL-Datei iterativ.
  4. Exportieren Sie die Quelldaten in CSV-Dateien.
  5. Erstellen Sie ein DSPL-Dataset.
  6. Senden Sie das Dataset an Google.

XML-Struktur

Übersicht

Die DSPL-XML-Datei definiert die Metadaten des Datasets, einschließlich struktureller Beziehungen zwischen Konzepten, Segmenten, Themen und Tabellen. Obwohl es möglich ist, diese Datei manuell zu erstellen, können Datenverarbeitungstools und -skripte den Prozess erheblich optimieren. Beispiel einer DSPL-Datei in einem neuen Fenster ansehen

Die Datei enthält eine Reihe von Abschnitten, die in der folgenden Tabelle zusammengefasst sind. Im Folgenden werden die einzelnen Varianten ausführlicher beschrieben.

Abschnitt Zusammenfassung Weitere Informationen
Header und Importe Das übergeordnete Element für alle anderen Elemente des Datasets. Enthält den Ziel-Namespace (d.h. die ID) für das Dataset sowie die Namespaces von importierten Datasets. Dokumentation
Dataset-Informationen Der Name, die Beschreibung und die URL des Datasets. Dokumentation
Informationen zum Anbieter Der Name, die Beschreibung und die URL des Dataset-Anbieters. Dokumentation
Konzepte

Definitionen von „Dingen“, die im Dataset vorkommen (z.B. Ländern, Arbeitslosenquote, Geschlecht usw.)

Jedes Konzept hat eine eindeutige Kennung, auf die von Segmenten und Tabellen verwiesen werden kann.

Dokumentation
Slices

Kombinationen von Konzepten, für die statistische Daten im Dataset vorhanden sind. Jedes Segment enthält Dimensionen und Messwerte.

Segmente und Referenztabellen, die die tatsächlichen Daten enthalten. Jedes Segment hat eine eindeutige Kennung, auf die von den Tabellen mit den tatsächlichen Daten verwiesen werden kann.

Dokumentation
Tabellen Definieren Sie die Daten für Konzepte und Segmente. Konzepttabellen enthalten Aufzählungen und Segmenttabellen enthalten statistische Daten. Tabellen werden in der XML-Datei definiert und verweisen auf CSV-Dateien, die die tatsächlichen Daten enthalten. Dokumentation
Themen Kategorien zum Organisieren von Dataset-Konzepten. Dies ist zwar nicht erforderlich, kann aber beim Navigieren durch die Daten sehr hilfreich sein. Dokumentation

Header und Importe

Namespace für öffentliche Daten deklarieren

Ein DSPL-Dataset beginnt mit dem übergeordneten Element <dspl>. Damit werden alle Dataset-Informationen eingeschlossen und alle Namespaces angegeben, die in der Datei verwendet werden. Beispiel:

<?xml version="1.0" encoding="UTF-8"?>
<dspl targetNamespace="http://www.example.com/mystats"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://schemas.google.com/dspl/2010" >
    ...
</dspl>

Ein Namespace ist eine eindeutige Kennung, die einem XML-Schema (einer Reihe von XML-Elementen und -Attributen) zugeordnet werden kann. targetNamespace stellt einen URI zur Identifizierung des Datasets bereit. Dieser URI muss nicht auf eine tatsächliche Ressource verweisen, es empfiehlt sich jedoch, den URI in ein Dokument auflösen zu lassen, das Ihren Inhalt oder Ihr Dataset beschreibt.

Sie müssen keine targetNamespace angeben. Falls nicht, wird automatisch eines beim Import generiert.

Auf das Attribut targetNamespace folgen eine Reihe von xmlns-Attributen, mit denen andere XML-Schemas angegeben werden, die in der Datei verwendet werden. Jede DSPL-Datei muss das Google Public Data-Schema mit dem URI "http://schemas.google.com/dspl/2010" enthalten und als Standard-Namespace verwenden. Außerdem sollte es das W3-Standard-XML-Schema enthalten, das durch „http://www.w3.org/2001/XMLSchema-instance“ identifiziert wird. Wie im nächsten Abschnitt beschrieben, können weitere Namespaces hinzugefügt werden, um Informationen aus anderen Datasets einzuschließen.

Andere Dataset-Namespaces importieren

Datasets können Definitionen und Daten aus anderen Datasets wiederverwenden. Google bietet beispielsweise eine Reihe von einfachen Datasets, mit denen Sie Konzepte definieren, die häufig in Nutzerdaten vorkommen. Die meisten Datasets benötigen beispielsweise ein Konzept zur Darstellung von Jahren. Anstatt ein neues Konzept zu definieren, können Sie das Jahreskonzept aus dem Dataset „http://www.google.com/publicdata/dataset/time“ verwenden. Weitere Informationen finden Sie auf der Seite Kanonische Konzepte.

Wenn Sie ein externes Dataset verwenden möchten, fügen Sie der DSPL-Datei das Element <import> direkt nach der Namespace-Deklaration hinzu. Geben Sie dabei den zu importierenden Datenraum an:

<import namespace="http://www.google.com/publicdata/dataset/google/time"/>

Fügen Sie dann den importierten Namespace (in diesem Fall time="http://www.google.com/publicdata/dataset/google/time") der Namespace-Deklaration oben in der Datei hinzu:

<?xml version="1.0" encoding="UTF-8"?>
<dspl targetNamespace="http://www.stats-bureau.com/mystats"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://schemas.google.com/dspl/2010"
    xmlns:time="http://www.google.com/publicdata/dataset/google/time" >
<import namespace="http://www.google.com/publicdata/dataset/google/time"/>

Ihre DSPL-Datei kann jetzt auf Elemente aus dem Zeit-Dataset „Google Public Data“ verweisen. Wiederholen Sie diesen Vorgang für jedes Dataset, auf das Sie verweisen möchten.

Inhalte in externen Datasets referenzieren

Nachdem Sie ein anderes Dataset importiert haben, müssen Sie Konzepte, Segmente und Daten dieses Datasets referenzieren können. Dazu können Sie Verweise im Format prefix:other_id verwenden, wobei prefix das Präfix ist, das für den Namespace des externen Datasets verwendet wird.

Hier ein Beispiel für einen Verweis auf das Konzept year aus dem Dataset time (oben beschrieben):

<slices>
  <slice id="country_slice">
    <dimension concept="country"/>
    <dimension concept="time:year"/>
    <metric concept="population"/>
    <table ref="country_slice_table"/>
  </slice>
  ...
</slices>

Dataset-Informationen

Das Element <info> enthält beschreibende Informationen zum Dataset. Ein Beispiel und Details zu den relevanten XML-Elementen finden Sie unten.

Beispiel

<info>
  <name>
    <value>Unemployment Rates</value>
  </name>
  <description>
    <value>Worldwide unemployment rates by region</value>
  </description>
  <url>
    <value>http://www.example.com/mystats/info.html</value>
  </url>
</info>

Elemente

Element Erforderlich/Optional? Beschreibung
<info> Ja Umfasst alle beschreibenden Informationen zum Dataset. Enthält die untergeordneten Elemente <name>, <description> und <url>.
<name> Ja Untergeordnet unter <info>. Enthält das untergeordnete Element <value>, das den Namen des Datasets identifiziert.
<description> Optional Untergeordnet unter <info>. Enthält das untergeordnete Element <value>, das eine Textbeschreibung des Datasets enthält.
<url> Ja Untergeordnet unter <info>. Ein Link zur URL mit weiteren Informationen zum Dataset.

Anbieterinformationen

Mit dem Element <provider> werden Informationen zum Dataset-Anbieter aufgelistet. Ein Beispiel und Details zu den relevanten XML-Elementen finden Sie unten.

Beispiel

<provider>
  <name>
    <value>Bureau of Statistics</value>
  </name>
  <url>
    <value>http://www.example.com</value>
  </url>
</provider>

Elemente

Element Erforderlich/Optional? Beschreibung
<provider> Ja Enthält alle beschreibenden Informationen zum Dataset-Anbieter. Enthält die untergeordneten Elemente <name> und <url>.
<name> Optional Untergeordnet unter <provider>. Enthält das untergeordnete Element <value>, das den Namen des Dataset-Anbieters angibt.
<url> Optional Untergeordnet unter <info>. Ein Link zu einer URL mit weiteren Informationen zum Dataset-Anbieter.

Konzepte

Beschreibung

Jedes Dataset enthält mindestens ein Konzept. Ein Konzept ist eine Definition eines Datentyps, der in einem Dataset angezeigt wird. Ein Dataset mit Daten zur demografischen Bevölkerung könnte beispielsweise die Konzepte Land, Bundesstaat, Bevölkerung und Jahr enthalten. Die Datenwerte, die einem bestimmten Konzept entsprechen, werden als Instanzen dieses Konzepts bezeichnet. Konzepte werden in der Regel im Dataset beschrieben, einige Konzepte (z. B. Zeit oder Jahr) können jedoch in externen Datasets beschrieben werden.

Jedes Konzept kann eine oder mehrere Properties haben. Ein Attribut ist ein Merkmal einer Konzeptinstanz, die im Laufe der Zeit stabil ist. Das Länderkonzept kann beispielsweise die Attribute name, population und capital haben.

Konzepte können auch ein oder mehrere Attribute haben. Attribute bieten Informationen auf Ebene des Konzepts, nicht für einzelne Instanzen. Wenn wir beispielsweise ein Dataset mit dem Konzept der Arbeitslosenquote hätten, könnten wir mit einem Attribut angeben, dass dieses Konzept ein Prozentsatz ist. Ein weiteres Beispiel für die häufige Verwendung von Attributen sind die Bereitstellung von Einheiteninformationen.

Beispiel

Hier ein Beispiel für ein Länderkonzept mit der eindeutigen ID country und der Property name. Die Konzept-ID kann zum Verweis auf das Konzept aus Segmenten und Tabellen verwendet werden.

<concept id="country" extends="geo:location">
  <info>
    <name><value>Country</value></name>
    <description>
      <value>My list of countries.</value>
    </description>
  </info>
  <type ref="string"/>
  <property id="name">
    <info>
      <name><value>Name</value></name>
      <description>
        <value>The official name of the country</value>
      </description>
    </info>
    <type ref="string" />
  </property>
  <property concept="geo:continent" isParent="true"/>
  <property id="capital" concept="geo:city" />
  <table ref="countries_table" />
</concept>

Erklärung:

  • Dieser Code beschreibt das Konzeptland mit der ID country und den Properties name, continent und capital.
  • Das Konzept erweitert geo:location, das kanonische Konzept für Standorte. Durch die Erweiterung von geo:location übernimmt country alle Attribute und Attribute, die durch das erweiterte Konzept definiert werden: Attributname, Beschreibung, URL, Breiten- und Längengrad. country kann einige dieser Attribute und Attribute neu definieren, solange die Definition mit der des erweiterten Konzepts übereinstimmt.
  • Das Konzeptelement <info> beschreibt die wichtigsten Informationen zum Konzept. Dies wird auf der Landingpage des Datasets im Public Data Explorer angezeigt.
  • Das Konzeptelement <type> bezieht sich auf den Inhaltstyp. In diesem Fall handelt es sich um einen String, der aber variieren kann. Das Konzept „Population“ hätte den Typ integer. Das Konzept Eurovision winner könnte den Typ „boolesch“ haben.
  • Ein <property>-Element beschreibt jedes Attribut des Konzepts, einschließlich seiner eindeutigen ID (id), info und type. Attribute können auch auf Konzepte verweisen, um anzugeben, dass ihre Werte gültige Instanzen dieser Konzepte sind.
  • Das Konzept verweist auf eine Datentabelle, die auf die CSV-Datei mit den tatsächlichen Daten verweist. Auf die Datentabelle wird so verwiesen: <table ref="countries_table"/>.

    Wenn Ihr Konzept auf eine Tabelle verweist, müssen in der zugehörigen Datendatei alle Instanzen des Konzepts aufgeführt sein. Sie können beispielsweise keine Tabelle erstellen, in der nur einige der im Dataset enthaltenen Länder aufgeführt sind. Wenn es für einen Teil der Länder wichtig ist, kannst du auch ein separates Konzept zur Beschreibung dieser Länder erstellen. Beispiel: mycountries.

Elemente

Element Erforderlich/Optional? Beschreibung
<concepts> Ja Element der obersten Ebene. Schließt alle <concept>-Elemente ein.
<concept> Ja Gibt das Konzept an. Der Wert des erforderlichen Attributs id muss innerhalb des Datasets eindeutig für das Konzept sein. Wenn das Konzept auf eine Konzeptdatentabelle verweist, muss der Wert von id mit der Spaltenüberschrift übereinstimmen, die das Konzept in der Datentabelle beschreibt. Mit dem Attribut extends kann angegeben werden, dass dieses Konzept ein anderes Konzept erweitert. Der Wert von extends muss mit der ID eines im selben Dataset definierten Konzepts übereinstimmen oder das Format prefix:concept_id haben. Dabei ist concept_id die ID eines im importierten externen Dataset definierten Konzepts.
<info> Optional Enthält beschreibende Informationen zum Konzept.
<name> Ja Untergeordnet unter <info>. Der Name des Konzepts. Das untergeordnete Element <value> enthält den Text, z. B. Country.
<description> Optional Untergeordnet unter <info>. Enthält das untergeordnete Element <value>, das eine Textbeschreibung des Konzepts enthält.
<url> Optional Untergeordnet unter <info>. Enthält das untergeordnete Element <value>, das eine URL für das Konzept enthält.
<pluralName> Optional Untergeordnet unter <info>. Der Pluralname für das Konzept. Das untergeordnete Element <value> enthält den Text, z. B. Countries.
<totalName> Optional Untergeordnet unter <info>. Der Name der Kombination aller Instanzen des Konzepts. Das untergeordnete Element <value> enthält den Text. Bei einem country-Konzept kann dies beispielsweise World sein.
<type> Optional Gibt die Art des vom Konzept beschriebenen Inhalts an. Das erforderliche Attribut ref hat die folgenden zulässigen Werte:
  • String
  • float
  • integer
  • date
  • boolean
Der Typ kann weggelassen werden, wenn das Konzept ein anderes Konzept erweitert. In diesem Fall wird es vom erweiterten Konzept übernommen.
<property> Optional

Eine Eigenschaft des Konzepts, z. B. capital. Der Wert des erforderlichen Attributs id muss für das Konzept eindeutig sein. Mit dem optionalen Attribut concept kann angegeben werden, dass die Werte dieser Property Instanzen eines bestimmten Konzepts sind. Wenn concept angegeben ist, kann id weggelassen werden. Sein Wert wird implizit als ID des referenzierten Konzepts definiert (z. B. <property concept="geo:country"/> entspricht <property id="country" concept="geo:country"/>.

Ein Attribut kann ein boolesches isParent-Attribut enthalten, mit dem angegeben wird, dass die Beziehung zwischen einer Instanz des Konzepts und dem Wert dieses Attributs hierarchisch ist.

Ein Attribut kann das boolesche isMapping-Attribut enthalten, um anzuzeigen, dass zwischen den Instanzen des Konzepts und den Werten des Attributs eine 1:1-Zuordnung besteht.

In einer Property können verschachtelte info und type angegeben werden, die genau wie für ein Konzept definiert sind. type ist erforderlich, wenn in der Property kein concept-Attribut angegeben ist. Ist dies der Fall, muss sie dem Typ des referenzierten Konzepts entsprechen.

<attribute> Optional

Ein Attribut des Konzepts. Attribute stellen zusätzliche Informationen zum Konzept dar (z.B. Das BIP ist ein Prozentsatz.) Der Wert des erforderlichen Attributs id muss für das Konzept eindeutig sein. Mit dem optionalen Attribut concept kann angegeben werden, dass die Werte dieses Attributs Instanzen eines bestimmten Konzepts sind. Wenn concept angegeben ist, kann id weggelassen werden. Sein Wert wird implizit als ID des referenzierten Konzepts definiert. (z. B. <attribute concept="unit:unit"/> entspricht <attribute id="unit" concept="unit:unit"/>.

In einem Attribut können ein verschachteltes info- und ein type-Element angegeben werden, die genau wie bei einem Konzept definiert sind. type ist erforderlich, wenn für das Attribut kein concept-Attribut angegeben ist. Ist dies der Fall, muss es dem Typ des referenzierten Konzepts entsprechen.

<table> Optional Kennzeichnet die Datentabelle mit Daten für das Konzept. Der Wert des erforderlichen Attributs ref muss mit der Tabellen-ID übereinstimmen, die im zugehörigen <table>-Element angegeben ist.

Segmente

Beschreibung

Ein Segment ist eine Kombination aus Konzepten, für die Daten vorhanden sind. Ein Segment enthält zwei Arten von Verweisen auf Konzepte: Dimensionen und Messwerte. Eine Dimension ist ein Konzept, das zum Segmentieren oder Filtern Ihrer Daten verwendet wird. Ein Messwert beschreibt dagegen den beobachteten Wert oder die Werte, die mit jedem Datenpunkt verknüpft sind.

Im Allgemeinen sind Dimensionen kategorial, während Messwerte keine kategorischen, zeitabhängigen numerischen Werte sind. Beispiele hierfür sind folgende:

  • Dimensionen: Land, Bundesland, Landkreis, Region, Jahr, Monat, Geschlecht, Alterskategorie, Branchensegment
  • Messwerte: Bevölkerung, BIP, Arbeitslosenquote, Alphabetisierung, Umsatz, Kosten, Preis

Beispiel

<slices>
  <slice id="country_slice">
    <dimension concept="country"/>
    <dimension concept="time:year"/>
    <metric concept="population"/>
    <table ref="country_slice_table"/>
  </slice>
  ...
</slices>

Erklärung:

  • Dieses Segment repräsentiert die Bevölkerung nach Land.
  • Sie hat den Messwert population sowie die Dimensionen country und year. Jede Dimension ist ein Konzept, das bereits an anderer Stelle definiert ist. Das Konzept country und der Messwert population sind im selben Dataset wie der aktuelle Teil enthalten und werden so referenziert: concept="country"
  • Das Konzept year ist in der importierten Dataset-Zeit vorhanden und wird durch das Präfix identifiziert, das vor dem Konzeptnamen (year) verwendet wird. Beispiel: concept="time:year"
  • Das Segment verweist auf eine Datentabelle, die auf die CSV-Datei mit den tatsächlichen Daten verweist. Auf die Datentabelle wird so verwiesen: <table ref="country_slice_table"/>. Weitere Informationen zum Importieren von Datasets finden Sie oben im Abschnitt .

Hinweis: Im Allgemeinen ist Ihr Dataset flexibler, wenn Sie die Messwerte auf ein Minimum beschränken und stattdessen aussagekräftige Dimensionen erstellen. Erstellen Sie beispielsweise anstelle der Messwerte Female Unemployment und Male Unemployment den einzelnen Messwert Unemployment und fügen Sie die Dimension Gender mit den Instanzen Female und Male hinzu.

Elemente

Element Erforderlich/Optional? Beschreibung
<slices> Ja Element der obersten Ebene. Schließt alle <slice>-Elemente ein.
<slice> Optional Identifiziert das Segment Der Wert des erforderlichen Attributs id muss für das Segment eindeutig sein.
<dimension> Optional Definiert eine Dimension des Segments, indem auf ein Konzept verwiesen wird. Der Wert des erforderlichen Attributs concept muss genau mit der eindeutigen ID des Konzepts übereinstimmen und ein gültiges Präfix verwenden, wenn das Konzept zu einem externen importierten Dataset gehört.
<metric> Optional Definiert einen Messwert des Segments, indem auf ein Konzept verwiesen wird. Der Wert des erforderlichen Attributs concept muss genau mit der eindeutigen ID des Konzepts übereinstimmen und ein gültiges Präfix verwenden, wenn das Konzept zu einem externen importierten Dataset gehört.
<table> Ja Kennzeichnet die Datentabelle mit Daten für das Segment. Der Wert des erforderlichen Attributs ref muss mit der Tabellen-ID übereinstimmen, die im zugehörigen <table>-Element angegeben ist.
<mapDimension> Optional Untergeordnet unter <table>. Enthält die Attribute concept und toColumn. Der Wert des ersten Attributs ist eine Dimension im Segment, der Wert des zweiten die Tabellenspalte, die dem ersten Wert entspricht.
<mapMetric> Optional Untergeordnet unter <table>. Enthält die Attribute concept und toColumn. Der erste Wert ist ein Messwert im Segment und der zweite Wert die Tabellenspalte, die dem ersten Wert entspricht.

Tabellen

Beschreibung

Der Abschnitt tables der DSPL-Datei gibt die im Dataset enthaltenen Datentabellen an. Auf diese Tabellen kann anhand von Konzepten oder durch Segmente verwiesen werden. Jedes <table>-Element gibt die Spalten der Tabellen und deren Typen an und verweist auf eine CSV-Datei mit den Tabellendaten.

Beispiel

<tables>
  <table id="country_slice_table">
    <column id="country" type="string"/>
    <column id="year" type="date" format="yyyy"/>
    <column id="population" type="integer"/>
    <data>
      <file format="csv" encoding="utf-8">country_slice.csv</file>
    </data>
  </table>
  ...
</tables>

Erklärung:

  • Dieses Beispiel beschreibt die Tabelle country_slice_table. Die Tabelle hat die Spalten country, year und population.
  • Jede Spalte in der Tabelle hat eine eindeutige ID, die durch das Attribut id definiert wird. Diese ID muss genau mit der entsprechenden Spaltenüberschrift in der zugehörigen Datendatei übereinstimmen.
  • Der Wert des optionalen Attributs type definiert den Datentyp für jede Spalte.
  • Das Element <data> beschreibt die tatsächliche CSV-Datei (country_slice.csv), die die Daten für die Tabelle enthält. Das Dateiformat ist immer csv.

Elemente

Element Erforderlich/Optional? Beschreibung
<tables> Ja Element der obersten Ebene. Schließt alle <table>-Elemente ein.
<table> Ja Kennzeichnet die Tabelle. Der Wert des erforderlichen Attributs id muss für die Tabelle eindeutig sein.
<column> Optional Untergeordnet unter <table>. Informationen zu einer in der Tabelle enthaltenen Spalte. Enthält die folgenden Attribute:
  • id (erforderlich): Die ID der Spalte.
  • type (optional): Der Datentyp der Informationen in der angegebenen Spalte. Zulässige Werte sind: string, float, integer, date oder boolean.
<data> Optional Untergeordnet unter <table>. Die Datendatei, auf die in der Tabelle verwiesen wird. Wenn der Dateiname in Form einer URL vorliegt (z.B. http://...) verwenden, wird die Datei über das entsprechende Protokoll (HTTP, HTTPS oder FTP) abgerufen. Andernfalls muss eine Datei mit diesem Namen im Dataset gebündelt werden. Der Wert des erforderlichen Attributs format ist immer csv. Obwohl das encoding-Attribut optional ist, müssen Ihre CSV-Dateien UTF-8-codiert sein.

Themen

Beschreibung

Mit Themen werden Konzepte hierarchisch klassifiziert, sodass Nutzer einfacher durch Ihr Dataset navigieren können.

Das <topics>-Element sollte in der DSPL-Datei direkt vor dem <concepts>-Element angezeigt werden. Die Reihenfolge der Elemente ist wichtig. Sie können das Dataset möglicherweise nicht hochladen, wenn die Elemente in der falschen Reihenfolge angezeigt werden. Verwenden Sie Themen aus der Konzeptdefinition, um Themen zu verwenden.

Beispiel

Hier ein Beispiel für eine Themendefinition:

<topics>
  <topic id="population_indicators">
    <info>
      <name>
        <value>Population indicators</value>
      </name>
    </info>
  </topic>
  ...
</topics>
  

...und hier ein Beispielverweis auf dieses Thema aus einem Konzept:

<concept id="population">
  <info>
    <name>
      <value>Population</value>
    </name>
    <description>
      <value>Size of the resident population.</value>
    </description>
  <topic ref="population_indicators"/>
  <type ref="integer"/>
</concept>

Themen können verschachtelt sein und ein Konzept kann auf mehr als ein Thema verweisen.

Element definition

Element Erforderlich/Optional? Beschreibung
<topics> Ja Element der obersten Ebene. Schließt alle <topic>-Elemente ein.
<topic> Ja Identifiziert das Thema. Der Wert des erforderlichen Attributs id muss für das Dataset eindeutig sein.
<info> Optional Untergeordnet unter <topic>. Enthält Informationen zu einem Thema.
<name> Optional Untergeordnet unter <info>. Das untergeordnete Element <value> gibt den Namen des Themas an.

DSPL-Datendateien

Zusätzlich zur XML-Datei metadata kann ein DSPL-Dataset auch eine oder mehrere Datendateien im CSV-Format enthalten. Jede Datendatei unterstützt eine Tabelle im Dataset und wird von der ersten im <data>...</data>-Abschnitt referenziert. Theoretisch werden diese Dateien und die zugehörigen Tabellen entweder für Konzeptdefinitionen oder Segmentdaten verwendet. Jeder dieser Datendateitypen wird unten genauer beschrieben.

Unabhängig vom Zweck müssen alle Datendateien als kommagetrennte UTF-8-Textdateien (CSV) vorliegen. Die Dateien dürfen nur Nur-Text und kein HTML enthalten. Sie können die Datendateien manuell erstellen, müssen aber die Daten entweder im Tool, das die Originaldatenquelle enthält (z.B. eine Tabelle), oder in der exportierten Datei tatsächlich massieren.

Dateien können mit dem Dataset gebündelt sein oder, wenn der Name in Form einer URL vorliegt, über HTTP, HTTPS oder FTP von einer Remote-Quelle abgerufen werden.

Konzeptdatendateien

Konzeptdatendateien enthalten relevante Informationen zu jedem Konzept. In der Konzeptdefinition wird das Element <table> verwendet, um auf diese Datei zu verweisen.

Beispiel

Hier ein Beispiel für eine Tabelle für das oben definierte country-Konzept:

country, name
AD, Andorra
AF, Afghanistan
AI, Anguilla
AL, Albania
AO, Angola
AQ, Antarctica
AS, American Samoa

So funktioniert dieses Beispiel:

  • Wenn keine Zuordnungen angegeben werden, muss die erste Zeile der Datendatei (Spaltenüberschriften) genau mit der Konzept-ID und den entsprechenden Property-IDs des Konzepts übereinstimmen, mit dem die Daten verknüpft sind. Die Reihenfolge der Spalten muss jedoch in der Datendatei und in der Konzepttabelle nicht identisch sein. In diesem Fall wird die erste Spalte mit dem Konzept country und die zweite Spalte der Property name zugeordnet.
  • Die Attributspalten sind optional. Wenn eine Eigenschaft keine Spalte in der Tabelle hat, wird angenommen, dass ihr Wert für jede Zeile undefiniert ist. In der Tabelle oben sind beispielsweise Spalten für die Properties latitude und longitude ausgelassen, sodass die Länder nicht zugeordnet werden können.
  • Jeder Wert für das ID-Feld des Konzepts (in diesem Fall country) muss eindeutig und nicht leer sein (ein leeres Feld enthält nur Null- oder Leerzeichen).
  • Werte für Attribute, die auf andere Konzepte verweisen, müssen entweder leer sein oder ein gültiger Wert des referenzierten Konzepts sein.
  • Das Einschließen von Werten in doppelte Anführungszeichen ist optional, es sei denn, sie enthalten Kommas, doppelte Anführungszeichen oder Zeilenumbrüche.
  • Maskieren Sie ein literales doppeltes Anführungszeichen in einem Wert, indem Sie ihm ein weiteres doppeltes Anführungszeichen voranstellen.

Datendateien teilen

Dateien mit Slice-Daten enthalten relevante Daten für jedes Segment. Die Segmentdefinition verwendet das Element <table ref="...">, um auf die Definition <table> zu verweisen, die wiederum diese Datei identifiziert.

Beispiel

Hier ein Beispiel für eine CSV-Datei mit den Daten für das oben beschriebene Segment population_by_country:

country, year, population
AF, 1960, 9616353
AF, 1961, 9799379
AF, 1962, 9989846
AF, 1963, 10188299

So funktioniert das Beispiel:

  • Das Messwertfeld ist population. Die Felder country und year sind Dimensionsfelder.
  • Jeder Wert eines Dimensionsfelds darf nicht leer sein. Dazu gehören auch Zeitdimensionen. Werte für Messwertfelder können leer sein. Ein leerer Wert wird durch kein Zeichen dargestellt.
  • Jede Spaltenüberschrift, die auf ein Konzept verweist (z. B. verweist das erste Feld des Beispiels oben auf das Konzept country) muss genau mit der eindeutigen ID des Konzepts in der Konzeptdefinition übereinstimmen.
  • Eine eindeutige Kombination von Dimensionswerten, z.B. AF, 2000, darf nur einmal verwendet werden.
  • Zeilen in derselben Zeitachse (d.h. Zeilen mit derselben Kombination aus allen Dimensionswerten außer Zeit) müssen gruppiert werden, aber nicht anders sortiert sein.

Erweiterte Funktionen

Datasets in mehreren Sprachen

Übersetzte XML-Werte

Sie können das Attribut xml:lang mit jedem <value>-Element in der DSPL-Datei verwenden. Dieses Attribut gibt die Sprache des Inhalts mithilfe der Standard-W3C-Sprach-Tags an. Die Verwendung dieser Funktion ist optional. Wenn kein xml:lang-Attribut angegeben wird, wird angenommen, dass der Inhalt auf Englisch ist.

Das folgende Beispiel zeigt Snipets eines Datasets, das auf Englisch, Bulgarisch, Katalanisch und Chinesisch (vereinfacht) ist:

<dspl ...>
  <info>
    <name>
      <value xml:lang="en">World Bank, World Development Indicators</value>
      <value xml:lang="bg">Световна банка, Индикатори за световно развитие</value>
      <value xml:lang="ca">Banc Mundial, Indicadors del desenvolupament mundial</value>
      <value xml:lang="zh-CN">国家/地区</value>
    </name>
    ...
  </info>

  <concepts>
    <concept id="country">
      <info>
        <name>
          <value xml:lang="en">Country</value>
          <value xml:lang="bg">Страна</value>
          <value xml:lang="ca">País</value>
          <value xml:lang="zh-CN">国家/地区</value>
        </name>
        ...
      </info>
      ...
    </concept>
    ...
  </concepts>

  ...
</dspl>

Übersetzte Attribute

In einigen Fällen empfiehlt es sich, Übersetzungen bereitzustellen, die über Metadaten auf Konzeptebene hinausgehen und zusätzlich (oder stattdessen) auf einzelne Konzeptinstanzen angewendet werden. Dies ist besonders nützlich, wenn die Werte einer Konzept-Property (z.B. Name) je nach Sprache variieren.

Wenn Sie diese Werte in mehreren Sprachen angeben möchten, erstellen Sie für jede Property/Sprachkombination eine Spalte in der entsprechenden Definitionstabelle. Verknüpfen Sie dann diese Spalten mit den zugehörigen Properties und Sprachen, indem Sie dem Tabellen-Referenz-Tag für das Konzept eine Reihe von <mapProperty xml:lang="..." ref="..." toColumn="...">-Elementen hinzufügen.

Hier ein Beispiel, das ein Länderkonzept mit Namen in Englisch, Spanisch und Französisch definiert:

<concepts>
  ...
  <concept id="country" extends="geo:location">
    ...
    <property id="name">
      <info>
        <name>
          <value>Name</value>
        </name>
        <description>
          <value>The official name of the country</value>
        </description>
      </info>
      <type ref="string" />
    </property>
    ...
    <table ref="countries_table">
      <mapProperty xml:lang="en" ref="name" toColumn="name_en"/>
      <mapProperty xml:lang="es" ref="name" toColumn="name_es"/>
      <mapProperty xml:lang="fr" ref="name" toColumn="name_fr"/>
    </table>
  </concept>
  ...
</concepts>

...

<tables>
  ...
  <table id="countries_table">
    <column id="country" type="string"/>
    <column id="name_en" type="string"/>
    <column id="name_es" type="string"/>
    <column id="name_fr" type="string"/>
    ...
  </table>
</tables>

Die CSV-Datei für countries_table hätte dann das folgende Format:

country,name_en,name_es,name_fr,...
...
US,United States of America,Estados Unidos de América,États-Unis d'Amérique,...
...

Kartografierbare Konzepte

Viele Konzepte (z. B. County, State und City) haben Instanzen, die geografischen Standorten entsprechen. DSPL unterstützt das Geocoding dieser Instanzen, damit sie im Google Maps-Diagramm der animierten Karten visuell dargestellt werden können.

Wenn dein Konzept mit Ländern auf der ganzen Welt, US-Bundesstaaten oder -Counties übereinstimmt, kannst du einfach eine Verknüpfung zum entsprechenden Konzept von Google herstellen. Es ist keine explizite Geocodierung erforderlich. Weitere Informationen finden Sie im Leitfaden zu kanonischen Konzepten.

Wenn nicht, müssen Sie Ihr Konzept zuordnungsfähig machen. Der erste Schritt besteht darin, ihn von geo:location zu verlängern:

<concept id="..." extends="geo:location">
  ...
</concept>

Anschließend müssen Sie den Längen- und Breitengrad explizit als Eigenschaften hinzufügen:

<concept id="..." extends="geo:location">
  ...
  <property id="latitude"/>
  <property id="longitude"/>
</concept>
  

Die Werte dafür werden dann in der entsprechenden Datentabelle für Konzeptdefinitionen als Spalten angegeben.

Konzeptbeziehungen

Konzepte werden häufig auf strukturierte Weise mit anderen Konzepten in Zusammenhang gebracht. Eine Kontinentinstanz kann z. B. mehrere länderspezifische Instanzen umfassen, die wiederum mehrere Bundesstaaten- oder Provinzinstanzen enthalten können. Die Codierung dieser Beziehungen in den Dataset-Metadaten ermöglicht umfassendere Visualisierungsfunktionen, als dies sonst möglich wäre, z.B. um eine minimierbare Standortstruktur anzuzeigen.

In den folgenden Abschnitten werden die im DSPL-Schema unterstützten Konzeptbeziehungen beschrieben.

Hierarchien

Konzepthierarchien werden in DSPL durch die Verwendung eines isParent="true"-Attributs in einem <property>-Tag des untergeordneten Konzepts dargestellt, das Kennungen der Instanzen aus dem übergeordneten Konzept enthält.

Das Konzept von US County in Google hat beispielsweise das folgende Format:

<concept id="us_county" extends="geo:location">
  <info>
    <name>
      <value xml:lang="en">County</value>
    </name>
    ...
  </info>
  ...
  <property id="state" concept="us_state" isParent="true"/>
  ...
  <data>
    <table ref="reference_us_counties"/>
  </data>
</concept>
  

Die unterstützende Datentabelle hat eine Spalte state mit dem aus zwei Buchstaben bestehenden Bundesstaatencode für jeden County. Mit diesem Metadatentyp können im Public Data Explorer Bundesstaaten und Countys als Hierarchie angezeigt werden. Diese Funktion vereinfacht die explorative Datenanalyse für Nutzer.

Ein Konzept kann viele untergeordnete Elemente enthalten, jedoch nicht mehr als ein übergeordnetes Element.

Zuordnungen

Konzeptzuordnungen (d.h. Konzepte, die im Wesentlichen das Gleiche darstellen) werden durch ein isMapping="true"-Attribut in einem property-Tag des zugeordneten Konzepts dargestellt.

Wenn Sie ein Konzept einem anderen zuordnen, übernimmt das erste Konzept alle Attribute und Attribute des zweiten. Dies ist unter anderem nützlich, um persönliche geografische Konzepte mit denen zu verknüpfen, die im kanonischen Geo-Dataset von Google definiert sind:

<concept id="my_country" extends="geo:location">
  <info>
    <name>
      <value xml:lang="en">Country</value>
    </name>
    ...
  </info>
  ...
  <property id="google_country_code" concept="geo:country" isMapping="true"/>
  <data>
    <table ref="countries_concept"/>
  </data>
</concept>
  

Erweiterungen

Konzepterweiterungen werden in der entsprechenden Konzeptdefinition über ein extends-Element bezeichnet. Erweiterungen sind nützlich, um anzugeben, dass ein bestimmtes Konzept eine Unterklasse eines anderen, allgemeineren Konzepts ist. Das erweiterte Konzept übernimmt alle Attribute und Attribute des übergeordneten Elements und kann auch zusätzliche Attribute und Attribute hinzufügen.

Das currency-Konzept von Google erweitert beispielsweise unit:

<concept id="unit">
  ...
</concept>

<concept id="currency" extends="unit">
  <info>
    <name>
      <value xml:lang="en">Currency unit</value>
    </name>
    ...
  </info>
  ...
  <table ref="currency_table"/>
</concept>
  

Weitere Informationen und Beispiele finden Sie in der Erläuterung zu Konzepterweiterungen.

Dataset einreichen

So reichen Sie Ihr Dataset im Google Public Data Explorer ein:

  1. Erstellen Sie ein Verzeichnis.
  2. Speichern Sie die dspl-Datei des Datasets in dem von Ihnen erstellten Verzeichnis. Achten Sie darauf, die XML-Erweiterung zu verwenden.
  3. Speichern Sie alle lokalen CSV-Dateien im selben Verzeichnis. Datendateien, auf die über URLs verwiesen wird, können ausgelassen werden.
  4. Komprimieren Sie das Verzeichnis.
  5. Laden Sie das Dataset in den öffentlichen Daten-Explorer von Google hoch.

Nachdem Ihr Dataset hochgeladen und validiert wurde, können Sie es testen, wenn Sie in Ihrem Google-Konto angemeldet sind. Sie wird erst veröffentlicht, wenn du sie überprüft und uns mitgeteilt hast, dass sie bereit ist.