DSPL-Anleitung

DSPL steht für Dataset Publishing Language (Dataset-Veröffentlichungssprache). In DSPL beschriebene Datasets können in die Google Public Data Explorer, einem Tool, mit dem Sie den gesamten Daten.

Hinweis: Wenn Sie Daten in Google Public Data hochladen möchten, mit dem Tool zum Hochladen öffentlicher Daten benötigen Sie ein Google-Konto.

In dieser Anleitung finden Sie ein Schritt-für-Schritt-Beispiel für die Vorbereitung DSPL-Dataset.

Ein DSPL-Dataset ist ein Bundle, das eine XML-Datei und eine Reihe von CSV-Dateien. Die CSV-Dateien sind einfache Tabellen, die die Daten der des Datasets. Die XML-Datei beschreibt die Metadaten des Datasets, einschließlich informativer Metadaten wie Beschreibungen von Maßnahmen sowie strukturelle Metadaten wie Referenzen zwischen Tabellen. Die Metadaten können auch unerfahrene Nutzende Ihre Daten untersuchen und visualisieren.

Die einzige Voraussetzung für das Verständnis dieses Tutorials ist ein gutes von XML verstehen. Verständnis für einfache Datenbankkonzepte (z.B. Tabellen, Primärschlüssel) kann helfen, ist aber nicht erforderlich. Zu Ihrer Information: vollständige XML-Datei und vollständiges Dataset Bundle, das mit dieser Anleitung verknüpft ist, können Sie sich ebenfalls ansehen.

Übersicht

Bevor Sie mit der Erstellung des Datasets beginnen, was ein DSPL-Dataset enthält:

  • Allgemeine Informationen:Informationen zum Dataset
  • Konzepte:Definitionen von „Dingen“ das im Dataset angezeigt werden (z.B. Länder, Arbeitslosenquote, Geschlecht, etc.)
  • Segmente:Kombinationen von Konzepten, für die es Daten
  • Tabellen: Daten für Konzepte und Segmente. Konzepttabellen enthalten Aufzählungen und Slice-Tabellen statistische Daten
  • Themen:Wird verwendet, um die Konzepte des Datasets zu organisieren durch Beschriftungen in einer sinnvollen Hierarchie

Betrachten Sie zur Veranschaulichung dieser eher abstrakten Konzepte das Dataset (mit Dummy-Daten), die in dieser Anleitung verwendet werden: statistische Zeitreihen für Bevölkerung und Arbeitslosigkeit, aggregiert nach verschiedenen Kombinationen aus Ländern, US-Bundesstaat und Geschlecht.

In diesem Beispiel-Dataset werden die folgenden Konzepte definiert:

  • country
  • gender
  • Population
  • Bundesstaat
  • Arbeitslosenquote
  • Jahr

Kategoriale Konzepte wie „state“ sind mit einem Konzept verknüpft Tabellen, in denen alle ihre möglichen Werte aufgeführt sind (Kalifornien, Arizona usw.). Konzepte können zusätzliche Spalten für Eigenschaften wie den Namen oder das Land eines Bundesstaates.

Segmente sind jede Kombination von Konzepten, für die es statistische Daten im Dataset. Ein Slice enthält Dimensionen und Messwerte. Im obigen Bild sind die Abmessungen blau und der Messwerte orange. In diesem Beispiel hat das Segment gender_country_slice enthält Daten für den Messwert population und die Dimensionen country, year und gender. Ein weiteres Segment namens country_slice gibt die Gesamtzahl der jährlichen Bevölkerungszahlen (Messwert) für Ländern.

Zusätzlich zu Dimensionen und Messwerten beziehen sich Slices auch auf Tabellen, die die tatsächlichen Daten enthalten.

Gehen wir nun Schritt für Schritt durch die Erstellung eines solchen Datasets in DSPL.

Dataset-Informationen

Zuerst müssen wir eine XML-Datei für unser Dataset erstellen. Hier sind die Anfang einer DSPL-Beschreibung für unser Beispieldatensatz:

<?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"
   xmlns:geo="http://www.google.com/publicdata/dataset/google/geo"
   xmlns:entity="http://www.google.com/publicdata/dataset/google/entity"
   xmlns:quantity="http://www.google.com/publicdata/dataset/google/quantity">

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

  <info>
    <name>
      <value>My statistics</value>
    </name>
    <description>
      <value>Some very interesting statistics about countries</value>
    </description>
    <url>
      <value>http://www.stats-bureau.com/mystats/info.html</value>
    </url>
    </info>

  <provider>
    <name>
      <value>Bureau of Statistics</value>
    </name>
    <url>
      <value>http://www.stats-bureau.com</value>
    </url>
  </provider>
 ...
</dspl>

Die Dataset-Beschreibung beginnt mit einem übergeordneten <dspl>-Element -Elements. Das Attribut targetNamespace enthält einen URI, der dieses Dataset eindeutig identifiziert. Der Namespace des Datasets ist besonders beim Veröffentlichen des Datasets, da es die globale Kennung und wie andere darauf Bezug nehmen können.

Das Attribut targetNamespace kann weggelassen werden. In In diesem Fall wird automatisch ein eindeutiger Namespace generiert, wenn das Dataset importiert.

Informationen aus anderen Datasets verwenden

Datasets können Definitionen und Daten aus anderen Datasets durch Importieren von Daten wiederverwenden dieser Datasets. Jedes <import>-Element gibt die Namespace eines anderen Datasets, auf das dieses Dataset verweist.

In unserem Beispiel-Dataset benötigen wir Definitionen aus http://www.google.com/publicdata/dataset/google/quantity. (ein von Google erstelltes Dataset, das Konzepte enthält, die nützlich für die Definition numerische Größen) und aus den Datasets time, entity und geo, die Informationen liefern, Definitionen in Bezug auf Zeit, Entitäten bzw. Geografie.

Das obere <dspl>-Element stellt ein Namespace-Präfix bereit Deklaration (z.B. xmlns:time="http://...") für jedes der importierten Datasets. Für den Verweis sind Präfixdeklarationen erforderlich Elemente aus anderen Datasets kurz und bündig. Beispiel: time:year verweist auf die Definition von year im importiertes Dataset, dessen Namespace mit dem Präfix verknüpft ist time

Informationen zum Datensatz und -anbieter

Das Element <info> enthält allgemeine Informationen zu Das Dataset: Name, Beschreibung und eine URL, unter der weitere Informationen gefunden.

Das Element <provider> enthält Informationen zum Anbieter des Datasets: sein Name und eine URL, unter der weitere Informationen gefunden (normalerweise die Startseite des Datenanbieters).

Konzepte definieren

Nachdem wir nun einige allgemeine Informationen zum Dataset bereitgestellt haben, können wir nun mit der Definition des Inhalts beginnen. Unser nächstes Ziel ist es, Bevölkerungsstatistiken für Länder der letzten 50 Jahre.

Zunächst müssen wir einige Definitionen für die Begriffe definieren, Bevölkerung, Land und Jahr. In DSPL werden diese Definitionen Konzepte.

Ein Konzept ist eine Definition eines Datentyps, der in einer Dataset. Die Datenwerte, die einem bestimmten Konzept entsprechen, werden Instanzen dieses Konzepts.

Bevölkerung

Beginnen wir mit der Definition des Populationskonzepts. In einer DSPL-Dokument – Konzepte sind in <concepts> definiert -Element, das direkt nach dem Dataset und den Anbieterinformationen steht.

Hier ist ein Populationskonzept mit nur den minimal erforderlichen Informationen. für jedes Konzept: id (eine eindeutige Kennung), name und type

<dspl ...>
  ...
  <concepts>
    <concept id="population">
      <info>
        <name>
          <value>Population</value>
        </name>
      </info>
      <type ref="integer"/>
    </concept>
  ...
  </concepts>

Erklärung:

  • Für jedes Konzept muss ein id angegeben werden, der eindeutig identifiziert das Konzept innerhalb des Datasets. Das bedeutet, dass keine zwei Konzepte dasselbe Dataset dieselbe ID haben kann.
  • Genau wie für das Dataset und seinen Anbieter <info>-Elemente enthalten Textinformationen zum Konzept wie Name und Beschreibung.
  • Das Element <type> gibt den Datentyp für die Instanzen des Konzepts, d. h. die zugehörigen „Werte“. In diesem Beispiel ist der Typ population integer. DSPL unterstützt die folgenden Datentypen: <ph type="x-smartling-placeholder">
      </ph>
    • string
    • integer
    • float
    • boolean
    • date

Land

Schreiben wir nun die Definition des Länderkonzepts auf:

<concept id="country">
  <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>
  <table ref="countries_table" />
</concept>

Die Definition des Länderkonzepts fängt wie die vorherige an, mit id, info und type.

Konzeptwerte

Für kategorische Konzepte wie Länder sind alle möglichen Instanzen. Sie können also alle Länder auflisten, auf die verwiesen wird. Dazu benötigt jedes Land aber eine eindeutige Kennung. In diesem Beispiel wird verwendet. ISO-Ländercodes zur Identifizierung von Ländern. sind diese Codes vom Typ string.

In diesem Beispiel müssen Sie den ISO-Code nicht verwenden. ich kann auch der Ländername verwendet werden. Namen unterscheiden sich jedoch je nach Sprache, können sich im Laufe der Zeit ändern und werden nicht immer einheitlich für alle Datasets verwendet. Für Länder und kategoriale Konzepte im Allgemeinen die Auswahl zu üben, kurz, stabil, häufig verwendet und sprachunabhängig Kennzeichnungen (falls vorhanden).

Konzeptattribute

Zusätzlich zu id umfasst das Länderkonzept <property>-Element, das den Namen des Landes angibt. Mit anderen Worten: Der Ländername ("Irland") ist eine Property. des Landes mit dem id IE. Über Eigenschaften bietet DSPL zusätzliche strukturierte Informationen zu den Instanzen eines Konzepts.

Genau wie das Konzept selbst haben Attribute ein id, info und type.

Konzeptdaten

Das Länderkonzept hat schließlich ein <table>-Element. Dieses Element verweist auf eine Tabelle, in der die Liste aller Ländern.

Die Verwendung von Tabellen ist bei einigen Konzepten sinnvoll, bei anderen jedoch nicht. Für ist es nicht sinnvoll, alle möglichen Werte für die Konzeptpopulation. Wenn Sie jedoch auf eine Tabelle verweisen, Konzept ist, muss diese Tabelle alle Instanzen des Konzepts enthalten, z. B. Es muss jedes Land aufgeführt sein, nicht nur einige.

Das Dataset definiert die Tabelle countries_table so:

...
<tables>
  <table id="countries_table">
    <column id="country" type="string"/>
    <column id="name" type="string"/>
    <data>
      <file format="csv" encoding="utf-8">countries.csv</file>
    </data>
  </table>
  ...
</tables>

Die Ländertabelle gibt die Spalten der Tabelle und ihre Typen an, und auf eine CSV-Datei mit den Daten verweist. Diese CSV-Datei kann entweder gebündelt mit dem Dataset-XML gebündelt und hochgeladen oder per Fernzugriff über HTTP, HTTPS, oder FTP. In letzteren Fällen ersetzen Sie countries.csv durch eine URL, z. B. http://www.myserver.com/mydata/countries.csv.

Wo auch immer sie gespeichert ist, sieht die CSV-Datei wie folgt aus:

country, name
AD,      Andorra
AF,      Afghanistan
AI,      Anguilla
AL,      Albania
US,      United States

Die erste Zeile der Tabelle enthält die Spalten-IDs, wie in der DSPL angegeben. table-Definition. Jede der folgenden Zeilen entspricht einer Instanz des Länderkonzepts. Wenn das Konzept eine Tabelle hat, muss die Tabelle alle Instanzen des Konzepts enthalten. müssen alle Länder aufgelistet sein.

Die Spalten sind dem Länderkonzept und seinen Eigenschaften ihre ID. Die ID der ersten Spalte (country) entspricht dem Konzept id [ID]. Das bedeutet, dass diese Spalte die eindeutige Länderkennung enthält, durch das Länderkonzept definiert wird. Die nächste Spalte entspricht Das Attribut name des Länderkonzepts. Die Werte in dieser Spalte mit den Werten des Attributs name übereinstimmen.

Für die Konzepttabelle gelten einige Anforderungen an die CSV-Daten:

  • Die Spaltenüberschriften in der ersten Zeile der Datendatei müssen genau dem Konzept id und der Eigenschaft entsprechen, id des Konzepts, mit dem die Daten verknüpft sind, Reihenfolge kann variieren).
  • Jede Zeile muss genau die gleiche Anzahl an Elementen enthalten wie die Anzahl der Eigenschaften des Konzepts (auch wenn der Wert leer ist).
  • Jeder Wert für das Feld id des Konzepts (hier der Ländercode) muss eindeutig und nicht leer sein (ein leeres Feld enthält eine Zahl mit Null) oder nur Leerzeichen).
  • Werte für Eigenschaften, die auf andere Konzepte verweisen, müssen entweder leer oder ein gültiger Wert des referenzierten Konzepts sein.
  • Werte, die Kommas, doppelte Anführungszeichen oder Zeilenumbruchzeichen enthalten, müssen vollständig in doppelte Anführungszeichen gesetzt ist.
  • Alle doppelten Anführungszeichen innerhalb eines Werts müssen sofort angegeben werden ein weiteres doppeltes Anführungszeichen vorangestellt ist.

Jahr

Das letzte Konzept, das wir für unsere Landesbevölkerungsdaten benötigen, ist Jahre darstellen. Anstatt ein neues Konzept zu definieren, verwenden wir Year-Konzept aus einem der importierten Datasets: &quot;http://www.google.com/publicdata/dataset/google/time&quot;. Gehen Sie dazu wie folgt vor: müssen wir darauf als time:year verweisen, wobei time stellt das referenzierte Dataset dar und year identifiziert des Konzepts.

Kanonische Konzepte

time:year gehört zu einer kleinen Gruppe kanonischer Konzepte. die von Google definiert wurden. Kanonische Konzepte liefern grundlegende Definitionen für Zeit, Geografie, numerische Größen, Einheiten usw.

Tatsächlich besteht das oben definierte Länderkonzept als kanonischen Begriffs. Wir haben es hier nur zur Veranschaulichung erstellt. Verwenden Sie nach Möglichkeit immer kanonische Konzepte in Ihren Datasets, entweder entweder direkt oder durch Erweitern. Weitere Informationen zur Erweiterung finden Sie unten. Kanonische Konzepte Sie können Ihre Daten mit anderen Datasets vergleichen und Funktionen für Ihre Datasets im Public Data Explorer. Zum Beispiel können Sie durch das Animieren von Daten im Zeitverlauf oder geografische Daten auf einer Karte darstellen, sind das time und geo.

Erster Slice

Nachdem wir nun Konzepte für Bevölkerung, Land und Jahr haben, um sie zusammenzufassen.

Dazu müssen wir einen Slice erstellen, in dem beide Segmente kombiniert werden. In DSPL Ein Slice ist eine Kombination von Konzepten, für die Daten vorhanden sind.

Warum nicht einfach eine Tabelle mit den richtigen Spalten erstellen? Da Slices die des Datasets in Bezug auf seine Konzepte. Dies wird zu immer verständlicher werden.

Segmente werden in der DSPL-Datei unter einem <slices> -Element, das direkt nach dem Abschnitt concepts erscheinen muss.

<slices>
  <slice id="countries_slice">
    <dimension concept="country"/>
    <dimension concept="time:year"/>
    <metric concept="population"/>
    <table ref="countries_slice_table"/>
  </slice>
</slices>

Genau wie bei Konzepten hat jedes Segment ein id (countries_slice), die das Segment innerhalb des Dataset.

Ein Slice enthält zwei Arten von Konzeptverweisen: Dimensionen und metrics: Die Werte variieren je nach Dimensionen. Hier variiert der Wert von population (der Messwert) Dimensionen country und year

Genau wie Konzepte enthalten auch Slices einen Verweis auf eine Tabelle, die enthält die Daten des Slice. Die referenzierte Tabelle muss eine Spalte für Dimensionen und Messwerte des Slice angezeigt werden. Genau wie bei den Konzepten Dimensionen und Messwerte werden den Tabellenspalten mit denselben IDs zugeordnet.

Slice-Tabelle

Die Tabelle für unser Bevölkerungssegment erscheint im tables der DSPL-Datei:

<tables>
  ...
  <table id="countries_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>

Die Spalte year enthält einen format-Wert , das die Formatierung von Jahren angibt. Unterstützte Datumsformate: die durch das Joda DateTime-Format definiert sind.

Die Tabelle countries_slice gibt die Spalten der Tabelle und und verweist auf eine CSV-Datei, die die Daten enthält. Die CSV-Datei sieht so aus:

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

Jede Zeile der Datentabelle enthält eine eindeutige Kombination der Dimensionen. country und year sowie der entsprechende Wert des Messwerts population (zum Beispiel die Bevölkerung – metric – von Afghanistan im Jahr 1960 – Dimensionen).

Die Werte in der Spalte country entsprechen dem Wert Wert/ID des country-Konzepts (ISO 3166) Ländercode aus zwei Buchstaben.

Die CSV-Daten für ein Slice müssen die folgenden Einschränkungen erfüllen:

  • Jeder Wert eines Dimensionsfelds, z. B. country und year) darf nicht leer sein. Werte für Messwertfelder (z. B. population) darf leer sein. Ein leerer Wert wird durch „Nein“ Zeichen.
  • Jeder Wert eines Dimensionsfelds, das auf ein Konzept verweist, muss die in den Daten dieses Konzepts vorhanden sind. Beispiel: Der Wert AF muss in der Konzeptdatentabelle country vorhanden sein.
  • Jede eindeutige Kombination von Dimensionswerten, z.B. AF, 2000, kann nur einmal vorkommen.
  • Die Daten sollten nach den Spalten für Nicht-Zeitdimensionen (in beliebiger Reihenfolge) sortiert werden. und dann, optional, nach jeder anderen Spalte. Zum Beispiel in einer Tabelle mit den Spalten [date, dimension1, dimension2, metric1, metric2] können Sie nach dimension1 sortieren, dann dimension2, dann date, aber nicht nach date und dann die Dimensionen.

Zusammenfassung

In unserem DSPL stehen derzeit genügend Informationen zur Verfügung, um das Land Bevölkerungsdaten. Fassen wir zusammen:

  • Erstellen Sie den DSPL-Header und die Beschreibung des Datensatzes sowie dessen Anbieter
  • Erstelle ein Konzept für die Bevölkerung und ein anderes für ein Land. CSV-Datei, in der alle Länder und ihre Namen aufgeführt sind.
  • Erstelle ein Segment mit unseren Bevölkerungszahlen für Länder im Zeitverlauf. Verweist auf das bereits definierte Jahreskonzept im importierten Zeit-Dataset von Google.

Im weiteren Verlauf dieser Anleitung vergrößeren wir unser Dataset, weitere Dimensionen in weiteren Segmenten hinzufügen und .

Dimension hinzufügen: US-Bundesstaaten

Anreichern wir unser Dataset nun, indem wir Bevölkerungsdaten für Bundesstaaten in USA. Zunächst müssen wir ein Konzept für Bundesstaaten definieren. Das sieht sehr wie das zuvor definierte Länderkonzept.

<concept id="state" extends="geo:location">
  <info>
    <name>
      <value>state</value>
    </name>
    <description>
      <value>US states, identified by their two-letter code.</value>
    </description>
  </info>
  <property concept="country" isParent="true" />
  <table ref="states_table"/>
</concept>

Konzepterweiterungen und Property Referenzen

Mit dem Konzept für Bundesstaaten werden mehrere neue Funktionen von DSPL eingeführt.

Erstens: Geben Sie an, dass ein anderes Konzept erweitert wird, geo:location (definiert im externen Geo-Dataset, das wir am Anfang des Datasets importiert). Semantisch bedeutet das, dass state ist eine Art von geo:location. Eine Konsequenz ist: alle Attribute und Eigenschaften von geo:location Der Standort definiert insbesondere Eigenschaften für latitude und longitude; durch die Erweiterung der vorherigen werden diese Eigenschaften auch auf Zustand angewendet. Da wir zudem Standort übernimmt entity:entity, Status erhält ebenfalls alle Attribute des zweiten Pfads, einschließlich name, description und info_url.

Hinweis: Das zuvor definierte Länderkonzept technisch gesehen auch für geo:location verlängert worden sein. Dieser Punkt wurde der Einfachheit halber zuvor weggelassen. haben wir die Vererbung von Standort zu Land. finale XML-Datei

Hinweis: Sie können den extends Daten in Ihren eigenen Datasets verwenden, um von anderen Datasets definierte Informationen wiederzuverwenden. Für die Verwendung von extends müssen alle Instanzen Ihres Konzepts gültige Instanzen des Konzepts, das Sie erweitern möchten. Mit Erweiterungen können Sie zusätzliche Eigenschaften und Attribute hinzufügen und die Gruppe von Instanzen auf eine Teilmenge der Instanzen des erweiterten Konzepts.

Neben der Vererbung führt die Eigenschaft „state“ auch die Eigenschaft Konzept von Referenzen. Das Konzept "Bundesstaat" hat eine Eigenschaft namens country, das auf das oben erstellte Länderkonzept verweist. Dies geschieht durch mithilfe eines concept-Attributs. Beachten Sie, dass diese Eigenschaft eine ID, nur eine Konzeptreferenz. Dies entspricht der Erstellung einer ID. mit demselben Wert wie die ID des referenzierten Konzepts (d.h. country). Die hierarchische Beziehung zwischen „Bundesstaat“ und „Landkreis“ werden durch ein Attribut isParent="true" für die Referenz. Im Allgemeinen Dimensionen mit hierarchischen Beziehungen, wie z. B. Regionen, dargestellt, wobei das untergeordnete Konzept eine Eigenschaft hat, verweist mit dem Attribut isParent auf das übergeordnete Konzept.

Die Tabellendefinition für Bundesstaaten sieht so aus:

<tables>
  ...
  <table id="states_table">
    <column id="state" type="string"/>
    <column id="name" type="string"/>
    <column id="country" type="string">
      <value>US</value>
    </column>
    <column id="latitude" type="float"/>
    <column id="longitude" type="float"/>
    <data>
      <file format="csv" encoding="utf-8">states.csv</file>
    </data>
  </table>
  ...
</tables>

Die Spalte country enthält für alle Bundesstaaten einen konstanten Wert. Die Angabe in Der DSPL vermeidet es, diesen Wert für jeden Status in den Daten zu wiederholen. Weitere Hinweise Spalten für name, latitude und longitude, da der Bundesstaat diese Eigenschaften von übernommen hat geo:location. Andererseits können übernommene Eigenschaften (z.B. description) haben keine Spalten. Das ist okay – Wird eine Eigenschaft in einer Konzeptdefinitionstabelle weggelassen, ist ihr Wert für jede Instanz des Konzepts als nicht definiert.

Die CSV-Datei sieht so aus:

state, name,        latitude,  longitude
AL,    Alabama,     32.318231, -86.902298
AK,    Alaska,      63.588753, -154.493062
AR,    Arkansas,    35.20105,  -91.831833
AZ,    Arizona,     34.048928, -111.093731
CA,    California,  36.778261, -119.417932
CO,    Colorado,    39.550051, -105.782067
CT,    Connecticut, 41.603221, -73.087749
...

Da wir bereits Konzepte für Bevölkerung und Jahr haben, können wir diese um ein neues Segment für die Bevölkerung der Bundesstaaten zu definieren.

<slices>
  <slice id="states_slice">
    <dimension concept="state"/>
    <dimension concept="time:year"/>
    <metric concept="population"/>
    <table ref="states_slice_table"/>
  </slice>
</slices>

Die Definition der Datentabelle sieht so aus:

<tables>
  ...
  <table id="states_slice_table">
    <column id="state" type="string"/>
    <column id="year" type="date" format="yyyy"/>
    <column id="population" type="integer"/>
    <file format="csv" encoding="utf-8">state_slice.csv</file>
  </table>
  ...
</tables>

Die CSV-Datei sieht so aus:

state, year, population
AL,    1960, 9616353
AL,    1961, 9799379
AL,    1962, 9989846
AL,    1963, 10188299

Warum haben wir ein neues Segment erstellt, mit der vorherigen Dimension vergleichen?

Ein Segment mit Dimensionen für Bundesstaat und Land wäre nicht korrekt. da einige Zeilen für Länderdaten und andere Zeilen für Bundesstaat Daten. Der Tisch hätte „Löcher“ für einige Dimensionen, nicht zulässig (vergessen Sie nicht, dass fehlende Werte nur für Messwerte und und nicht auf Abmessungen).

Dimensionen dienen als Primärschlüssel für das Slice. Das bedeutet, dass Jede Datenzeile muss Werte für alle Dimensionen enthalten. Es dürfen jedoch keine zwei Datenzeilen vorhanden sein. kann für alle Dimensionen exakt dieselben Werte haben.

Messwert hinzufügen: Arbeitslosigkeit Bewerten

Jetzt fügen wir unserem Dataset einen weiteren Messwert hinzu:

<concept id="unemployment_rate" extends="quantity:rate">
  <info>
    <name>
      <value>Unemployment rate</value>
    </name>
    <description>
      <value>The percent of the labor force that is unemployed.</value>
    </description>
    <url>
      <value>http://www.bls.gov/cps/cps_htgm.htm</value>
    </url>
  </info>
  <type ref="float/>
  <attribute id="is_percentage">
    <type ref="boolean"/>
    <value>true</value>
  </attribute>
</concept>

Der Abschnitt info dieses Messwerts hat einen Namen, eine Beschreibung und einen URL (Link zum US-amerikanischen Bureau of Labor Statistics).

Mit diesem Konzept wird auch das kanonische Konzept quantity:rate erweitert. Die Menge Dataset definiert zentrale Konzepte für die Darstellung numerischer Größen. In sollten Sie Ihre numerischen Konzepte durch Erweitern des Datasets Mengenkonzept geeignet sind. Das Konzept population technisch gesehen vom quantity:amount.

Konzeptattribute

Mit diesem Konzept wird auch das Konstrukt eines Attributs eingeführt. In In diesem Beispiel gibt ein Attribut an, dass unemployment_rate ist ein Prozentsatz. Das Attribut is_percentage wird übernommen von das quantity:rate-Konzept, das mit diesem Konzept erweitert wird. Dieses verwendet der Public Data Explorer, um Prozentzeichen anzuzeigen, Visualisierung der Daten.

Attribute stellen einen allgemeinen Mechanismus zum Anhängen von Schlüssel/Wert-Paaren an einen -Konzept (im Gegensatz zu Eigenschaften, die zusätzliche Werte mit Instanzen eines Konzepts). Genau wie Konzepte und Eigenschaften haben die Attribute id, info und type Wie Eigenschaften können sie auf andere Konzepte verweisen.

Attribute sind nicht nur für vordefinierte allgemeine Dinge gedacht, z. B. für numerische Werte. Eigenschaften. Sie können eigene Attribute für Ihre Konzepte definieren.

Daten zur Arbeitslosenquote für die USA hinzufügen Bundesstaaten

Wir können jetzt Daten zur Arbeitslosenquote für US-Bundesstaaten hinzufügen. Weil Die Arbeitslosenquote ist eine Metrik. Wir haben bereits Bevölkerungsdaten für Bundesstaaten, können wir sie einfach dem Segment hinzufügen, das wir bereits für „Bundesstaat“ und Dimensionen:

<slices>
  ...
  <slice id="states_slice">
    <dimension concept="state"/>
    <dimension concept="time:year"/>
    <metric concept="population"/>
    <metric concept="unemployment_rate"/>
    <table ref="states_slice_table"/>
  </slice>
  ...
</slices>

... und fügen Sie der Tabellendefinition eine weitere Spalte hinzu:

<tables>
  ...
  <table id="states_slice_table">
    <column id="state" type="string"/>
    <column id="year" type="date" format="yyyy"/>
    <column id="population" type="integer"/>
    <column id="unemployment_rate" type="float"/>
    <data>
      <file format="csv" encoding="utf-8">state_slice.csv</file>
    </data>
  </table>
  ...
</tables>

... und in die CSV-Datei:

state, year, population, unemployment_rate
AL,    1960, 9616353,    5.1
AL,    1961, 9799379,    5.2
AL,    1962, 9989846,    4.8
AL,    1963, 10188299,   6.9

Wie bereits erwähnt, bilden die Dimensionen für jedes Segment einen Primärschlüssel für das Slice. Außerdem darf jedes Dataset nur ein Segment für eine einer Kombination von Dimensionen. Alle Messwerte, die für diese müssen zum selben Segment gehören.

Weitere Dimensionen: Bevölkerungsaufschlüsselung nach Geschlecht

Erweitern wir unser Dataset mit einer Aufschlüsselung der Bevölkerung nach Geschlecht für Ländern. Mittlerweile fangen Sie an, sich mit der Bohrmaschine vertraut zu machen... Zunächst müssen wir ein Konzept für das Geschlecht hinzufügen:

<concept id="gender" extends="entity:entity">
  <info>
    <name>
      <value>Gender</value>
    </name>
    <description>
      <value>Gender, Male or Female</value>
    </description>
    <pluralName>
      <value>Genders</value>
    </pluralName>
    <totalName>
      <value>Both genders</value>
    </totalName>
  </info>
  <type ref="string"/>
  <table ref="genders_table"/>
</concept>

Der Abschnitt info für das Geschlechtskonzept enthält Folgendes: pluralName: Text, der für den Verweis verwendet werden soll das Geschlechtskonzept vor. Der Abschnitt info enthält ein totalName, das den Text bereitstellt, der für die Ausführung beziehen sich auf alle Instanzen des Geschlechtskonzepts als Ganzes. Beide sind wird vom Public Data Explorer verwendet, um Informationen zum Geschlecht anzuzeigen Konzept. Im Allgemeinen sollten Sie sie für Konzepte bereitstellen, die als Dimensionen.

Beachten Sie, dass sich das Geschlechterkonzept entity:entity Dies ist eine gute Übung für Konzepte, die als Dimensionen verwendet werden, da Sie damit benutzerdefinierte Namen, URLs und Farben für die verschiedenen Konzeptinstanzen.

Das Geschlechtskonzept bezieht sich auf die Tabelle genders_table, die enthält die möglichen Werte für das Geschlecht und die zugehörigen Anzeigenamen (hier ausgelassen).

Um unserem Dataset Bevölkerung nach Geschlecht hinzuzufügen, müssen wir ein neues Segment Jede verfügbare Kombination von Dimensionen entspricht einem Segment in des Datasets).

<slice id="countries_gender_slice">
  <dimension concept="country"/>
  <dimension concept="gender"/>
  <dimension concept="time:year"/>
  <metric concept="population"/>
  <table ref="countries_gender_slice_table"/>
</slice>

Die Tabellendefinition für das Segment sieht so aus:

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

Die CSV-Datei für die Tabelle sieht so aus:

country, gender, year, population
AF,      M,      1960, 4808176
AF,      F,      1960, 4808177
AF,      M,      1961, 4899689
AF,      F,      1961, 4899690...

Im Vergleich zu den vorherigen Ländern, zur Bevölkerung und zum Anteil der Arbeitslosigkeit hat dieses eine zusätzliche Dimension: jeder Wert des Bevölkerungsmesswerts nicht nur einem bestimmten Land und Jahr, sondern auch Geschlechts angeben.

Beachten Sie, dass wir ein "dünn besetztes" Dataset. Nicht alle Messwerte sind für alle Dimensionen verfügbar: Population ist in Ländern und US-Bundesstaaten jährlich verfügbar, während Arbeitslosigkeit ist nur für Länder verfügbar. Eine Aufschlüsselung nach Geschlecht ist verfügbar. nur für die Bevölkerung nach Land; es ist für die Arbeitslosenquote nicht verfügbar und nicht für die Dimension „Bundesland“. Sie können auch an den Daten wobei bestimmte Messwerte keine Werte für bestimmte Dimensionswerte haben, aber das ist nicht in DSPL enthalten.

Themen

Die letzte Funktion von DSPL, die wir in unserem Dataset verwenden, ist topics. Themen werden verwendet, um Konzepte hierarchisch zu klassifizieren, und werden von Anwendungen, die Nutzenden bei der Navigation zu Ihren Daten helfen.

In der DSPL-Datei werden Themen direkt vor Konzepten angezeigt. Hier ist ein Beispiel Themenhierarchie:

<dspl ... >
  ...
  <topics>
    <topic id="geography">
      <info>
        <name>
          <value>Geography</value>
        </name>
      </info>
    </topic>
    <topic id="social_indicators">
      <info>
        <name>
          <value>Social indicators</value>
        </name>
      </info>
    </topic>
    <topic id="population_indicators">
      <info>
        <name>
          <value>Population indicators</value>
        </name>
      </info>
    </topic>
    <topic id="poverty_and_income">
      <info>
        <name>
          <value>Poverty & income</value>
        </name>
      </info>
    </topic>
    <topic id="health">
      <info>
        <name>
          <value>Health</value>
        </name>
      </info>
    </topic>
  </topics>

Sie können Themen so tief wie nötig verschachteln.

Um Themen zu verwenden, müssen Sie nur vom Konzept aus darauf verweisen. wie folgt definiert:

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

Ein Konzept kann sich auf mehr als ein Thema beziehen.

Dataset senden

Nachdem Sie nun Ihr Dataset erstellt haben, besteht der nächste Schritt darin, es zu komprimieren und laden Sie die ZIP-Datei hoch in Google Public Data Explorer. Falls Probleme auftreten, prüfen Sie, den FAQs (einschließlich einer Diskussion) der häufigsten Probleme beim Hochladen.

Als Referenz können Sie auch die vollständige XML-Datei und das vollständige Dataset-Bundle herunterladen. die mit dieser Anleitung verknüpft sind.

Fortsetzung

Herzlichen Glückwunsch zur Erstellung Ihres ersten DSPL-Datasets! Jetzt, da Sie sollten Sie den Entwicklerleitfaden lesen. Dort finden Sie „Erweitert“ DSPL-Funktionen wie mehrsprachige Unterstützung und zuordenbare Konzepte.

Sehen Sie sich bei Bedarf weitere Beispiel-Datasets an.