DSPL Eğitimi

DSPL, Veri Kümesi Yayınlama Dili anlamına gelir. DSPL'de açıklanan veri kümeleri Google Herkese Açık Verileri Explorer'daki verileri zengin ve görsel bir şekilde dışı verilerdir.

Not: Verileri Google Herkese Açık Veriler'e yüklemek için Herkese Açık Veri yükleme aracını kullanarak bir Google Hesabınız olmalıdır.

Bu eğitimde, temel bir belgenin nasıl hazırlanacağına dair DSPL veri kümesi.

DSPL veri kümesi, bir XML dosyası ve CSV dosyaları. CSV dosyaları, dosya taşıma işleminin verilerini içeren yeniden boyutlandırır. XML dosyası, veri kümesinin meta verilerini açıklar. önlemlerin açıklamaları gibi bilgilendirici meta verileri ve bunların yanı sıra tablolar arasında referanslar gibi yapısal meta veriler Meta veriler sayesinde uzman olmayan kullanıcılar verilerinizi keşfedip görselleştirir.

Bu eğiticiyi anlamanın tek ön koşulu, iyi bir geliştirmeyi öğreneceksiniz. Basit veritabanı kavramlarını (ör. birincil anahtarlar gibi) işe yarayabilir ancak şart değildir. Referans olması açısından, tamamlanan XML dosyası ve veri kümesinin tamamı paketi içeren diğer seçenekler de incelenebilir.

Genel Bakış

Veri kümemizi oluşturmaya başlamadan önce, süreç boyunca DSPL veri kümesi şunları içerir:

  • Genel bilgiler: Veri kümesi hakkında
  • Kavramlar: "Nesneler"in tanımları verileri (ör. ülkeler, işsizlik oranı, cinsiyet, etc.)
  • Dilimler: Belirli bir parçası olan kavramların, veri
  • Tablolar: Kavramlar ve dilimlere ilişkin veriler. Kavram tablolar numaralandırmaları muhafaza eder, dilim tablolarında ise istatistiksel veriler bulunur
  • Konular: Veri kümesi kavramlarını düzenlemek için kullanılır etiketleyerek anlamlı bir hiyerarşiye

Oldukça soyut olan bu kavramları göstermek için veri kümesini ( temsili veriler) temel alacağız: dönüşüm etkinliği için istatistiksel zaman çeşitli ülke kombinasyonlarına göre toplanan nüfus ve işsizlik oranı ABD eyaleti ve cinsiyet.

Bu örnek veri kümesi şu kavramları tanımlar:

  • country
  • gender
  • nüfus
  • durum
  • işsizlik oranı
  • yıl

Durum gibi kategorik kavramlar, kavram ile ilişkilidir tablolar, tablodaki olası tüm değerleri (Kaliforniya, Arizona vb.). Kavramlarda, bir eyaletin adı veya ülkesi.

Dilimler, seçilen her bir kavram kombinasyonunun veri kümesindeki istatistik verileri. Bir dilim boyutlar ve metriklerini inceleyin. Yukarıdaki resimde boyutlar mavidir ve ölçümler turuncu renktedir. Bu örnekte, dilim gender_country_slice, metrikle ilgili verilere sahip population ve country boyutları year ve gender. Google Haritalar’da country_slice, şunun için yıllık toplam nüfus sayısını (metrik) verir: ülkeler.

Dilimler, boyut ve metriklere ek olarak tablo da içerir.

Şimdi bu tür bir veri kümesi oluşturma sürecini adım adım inceleyelim DSPL

Veri Kümesi Bilgileri

Öncelikle veri kümemiz için bir XML dosyası oluşturmamız gerekiyor. Burada başına bir DSPL açıklaması ekleyin:

<?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>

Veri kümesi açıklaması üst düzey bir <dspl> ile başlar öğesine dokunun. targetNamespace özelliği, bu veri kümesini benzersiz şekilde tanımlar. Veri kümesinin ad alanı, özellikle genel tanımlayıcısı olacağı için veri kümesi yayınlanması açısından veri kümenizin ve başkalarının bu veri kümenize atıfta bulunmasının yollarını öğrenebilirsiniz.

targetNamespace özelliğinin atlanabileceğini unutmayın. İçinde Bu örnekte, veri kümesi ilk kez çalıştırıldığında içe aktarıldı.

Diğer veri kümelerindeki bilgileri kullanma

Veri kümeleri, içe aktarma yoluyla diğer veri kümelerindeki tanımları ve verileri yeniden kullanabilir yardımcı olur. Her <import> öğesi bu veri kümesinin referans alacağı başka bir veri kümesinin ad alanına uygulanır.

Örnek veri kümemizde, http://www.google.com/publicdata/dataset/google/quantity sayfasından bazı tanımlara ihtiyacımız olacak. (Google tarafından oluşturulmuş, tanımlanması yararlı kavramları içeren bir veri kümesi) sayısal miktarlar) ve hem veri kullanımı sağlayan hem de zaman, varlık ve geo veri kümelerinden sırasıyla zaman, varlıklar ve coğrafya ile ilgili tanımlar.

En üstteki <dspl> öğesi, bir ad alanı öneki sağlıyor beyan (ör. xmlns:time="http://...") her biri için içe aktarılan veri kümesinden oluşur. Referans için ön ek bildirimleri gereklidir diğer veri kümelerindeki öğeleri kısa ve öz şekilde açıklamanızı sağlar. Örneğin, time:year,year Ad alanı ön ek ile ilişkilendirilmiş içe aktarılmış veri kümesi time.

Veri kümesi ve sağlayıcı bilgileri

<info> öğesi, hakkında genel bilgiler içerir veri kümesi: ad, açıklama ve daha fazla bilginin sağlanabileceği bir URL bulundu.

<provider> öğesi, veri kümesinin sağlayıcısı: adı ve daha fazla bilginin sağlanabileceği bir URL bulunur (genellikle veri sağlayıcının ana sayfası).

Kavramları Tanımlama

Veri kümesiyle ilgili bazı genel bilgiler sunduğumuza göre, içeriğini tanımlamaya hazırız. Bir sonraki hedefimiz Ülkelerin son 50 yıllık nüfus istatistikleri.

Yapmamız gereken ilk şey, bu kavramlar için bazı tanımlar sağlamak nüfus, ülke ve yıla göre değişiklik gösterir. DSPL'de bu tanımlara kavramları inceleyin.

Kavram, bir anketin içerdiği veri türünün tanımıdır. veri kümesiyle eşleştirilir. Belirli bir kavrama karşılık gelen veri değerlerine örneklerini görebilirsiniz.

Nüfus

Popülasyon kavramını tanımlayarak başlayalım. DSPL belgesi, kavramlar <concepts> içinde tanımlanır öğesidir.

Burada sadece asgari bilgiye ihtiyaç duyulan bir nüfus kavramı gösterilmektedir herhangi bir kavram için: id (benzersiz tanımlayıcı), name ve type.

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

Bu örneğin çalışma şekli şöyledir:

  • Her kavram, onu benzersiz bir şekilde tanımlayan bir id sağlamalıdır Kavramı açıklayacağım. Yani, bu programda tanımlanan hiçbir kavram aynı veri kümesi aynı kimliğe sahip olabilir.
  • Veri kümesi ve sağlayıcısında olduğu gibi, <info> öğeleri, (ör. adı ve açıklaması)
  • <type> öğesi örneklerini (yani "değerlerini") kapsar. Bu örnekte, population türü integer. DSPL, aşağıdaki veri türlerini destekler:
    • string
    • integer
    • float
    • boolean
    • date

Ülke

Şimdi ülke kavramının tanımını yazalım:

<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>

Ülke kavramının tanımı bir önceki gibi id, info ve type ile.

Kavram değerleri

Ülkeler gibi kategorik kavramlar, mümkün olan tüm sağlar. Başka bir deyişle, referans alın. Ancak bunun için her ülkenin benzersiz bir tanımlayıcısına ihtiyacı vardır. Bu örnekte Ülkeleri tanımlamak için ISO ülke kodları; bu kodlar string türünde.

Bu örnekte, ISO kodunu kullanmanız gerekmez; siz ülke adını da kullanabiliriz. Ancak adlar dile, ürüne göre zamanla değişebilir ve veri kümelerinde her zaman tutarlı bir şekilde kullanılmaz. Ülkeler için ve genel olarak kategorik kavramlar açısından seçim alıştırması, kısa, sabit, yaygın olarak kullanılan ve dilden bağımsız tanımlayıcılar (varsa).

Kavram özellikleri

id özelliğine ek olarak ülke konseptinde de Ülkenin adını belirten <property> öğesi. Başka bir deyişle, ülke adı ("İrlanda") bir mülktür id IE'nin bulunduğu ülkenin. DSPL, mülkleri Bir kavramın örnekleri hakkında yapılandırılmış ek bilgiler.

Kavramın kendisinde olduğu gibi, mülklerde id bulunur, info ve type.

Kavram verileri

Son olarak, ülke kavramı bir <table> öğesi içerir. Bu öğe, tüm öğelerin listesini numaralandıran bir tabloya başvuruyor ülkeler.

Tabloları kullanmak bazı kavramlar için anlam ifade ederken bazıları için anlam ifade etmez. Örneğin, bir veri türü için olası tüm değerleri numaralandırmak Kavram popülasyonu. Ancak bir hafta içinde bir kavram varsa o tablo, kavramın tüm örneklerini içermelidir. Örneğin, sadece birkaç örnek değil, tüm ülkeler listelenmelidir.

Veri kümesi, countries_table tablosunu şu şekilde tanımlar:

...
<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>

Ülkeler tablosu, tablonun sütunlarını ve türlerini belirtir. ve verileri içeren bir CSV dosyasına referansta bulunur. Bu CSV şunlardan biri olabilir: XML veri kümesi ile birleştirilmiş ve yüklenmiş veya HTTP, HTTPS veya veya FTP aracılığıyla yükleyebilirsiniz. İkinci durumlarda ise countries.csv yerine bir URL (örneğin, http://www.myserver.com/mydata/countries.csv).

CSV dosyası nerede depolandığına bakılmaksızın aşağıdaki gibi görünür:

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

Tablonun ilk satırında, DSPL'de belirtilen sütun kimlikleri listelenir table tanım. Aşağıdaki satırların her biri bir satıra karşılık gelir örneğini ele alalım. Kavramın bir tablosu varsa tablo, kavramın tüm örneklerini içermelidir. Bu tüm ülkeleri listelemelidir.

Sütunlar, ülke kavramıyla ve özelliklerine göre kimlikleri. İlk sütunun kimliği (country) kavramla eşleşiyor id [no] Bu, bu sütunun benzersiz ülke tanımlayıcısını içerdiği anlamına gelir. ülke konseptiyle tanımlanmıştır. Sonraki sütun ülke konseptinin name özelliği. Değerler name özelliğinin değerleriyle eşleşir.

Kavram tablosu CSV verilerinin birkaç gereksinimi vardır:

  • Veri dosyasının ilk satırındaki sütun başlıkları, id kavramı ve özelliği ile tam olarak eşleşir (yine de verilerin ilişkili olduğu kavramın id) sipariş değişiklik gösterebilir).
  • Her satırda tam olarak Kavramdaki özellikler (değer boş olsa bile).
  • Kavramın id alanı için her değer (burada, ülke kodu) benzersiz olmalı ve boş olmamalıdır (boş bir alan sıfır olan bir sayı olmalıdır) veya sadece boşluk karakterleri).
  • Diğer kavramlara başvuruda bulunan mülklerin değerleri boş veya başvurulan kavramın geçerli bir değeri olabilir.
  • Virgül, çift tırnak veya yeni satır karakteri içeren değerler çift tırnak içine alınmalıdır.
  • Bir değer içindeki tüm düz çift tırnak karakterleri hemen olmalıdır başka bir çift tırnak işareti vardır.

Yıl

Ülke nüfus verilerimiz için ihtiyacımız olan son kavram, ve yılları temsil eder. Yeni bir kavram tanımlamak yerine, yıllık bir kavramdır: &quot;http://www.google.com/publicdata/dataset/google/time&quot;. Bunu yapmak için time burada time:year olarak referans vermemiz gerekir. başvurulan veri kümesini temsil eder ve year, referans verilen veri kümesini ortaya koyduk.

Standart kavramlar

time:year, küçük bir standart kavram grubunun parçasıdır Google tarafından tanımlanmıştır. Standart kavramlar zamanla ilgili temel tanımlar sağlar, konum, sayısal miktar, birim vb.

Aslında yukarıda tanımlanan ülke kavramı, kavramak. Yalnızca örnek olarak verilmiştir. Mümkün olduğunda veri kümelerinizde standart kavramları veya uzatma yoluyla ekleyebilirsiniz (uzantı hakkında daha fazla bilgiyi aşağıda bulabilirsiniz). Standart kavramlar verilerinizi diğer veri kümeleriyle karşılaştırabilir ve veri kümelerinin göstergesidir. Örneğin, zaman içinde oluşan verileri canlandırmak, ya da haritada coğrafi verileri göstermek, time ve Sırasıyla geo standart kavram.

İlk Dilim

Nüfus, ülke ve yıl ile ilgili kavramlara sahip olduğumuza göre, bir araya getirmek istedik.

Bunun için, bunları birleştiren bir dilim oluşturmamız gerekir. DSPL'de, dilim, verilerin mevcut olduğu kavramların kombinasyonudur.

Neden doğru sütunlara sahip bir tablo oluşturmuyorsunuz? Dilimler yakalandığı için kavramlar bakımından veri kümesi bilgileri. Bu, daha net biçimde ortaya koymamızı sağlar.

Dilimler, DSPL dosyasında <slices> öğesi (concepts bölümünden hemen sonra görünmelidir.)

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

Kavramlarda olduğu gibi her dilimde bir id vardır (countries_slice) veri kümesiyle eşleştirilir.

Bir dilim iki tür kavram referansı içerir: Boyutlar ve metriklerini inceleyin. Metriklerin değerleri, metriklerine göre seçin. Burada population değeri (metrik) country ve year boyutları.

Kavramlarda olduğu gibi dilimler de bir tabloya başvuru içerir. dilimin verilerini içerir. Başvuruda bulunulan tabloda bir sütun bulunmalıdır: ve dilimin her bir boyutunu ve metriğini. Kavramlarda olduğu gibi, dilim boyutlar ve metrikler aynı kimliklere sahip tablo sütunlarıyla eşlenir.

Dilim tablo

Popülasyon dilimimizin tablosu, tables sütununda görünür bölümüne ekleyin:

<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>

year sütununun bir format ile geldiğini unutmayın özelliğini kullanabilirsiniz. Desteklenen tarih biçimleri Joda DateTime biçimi ile tanımlananlar.

countries_slice tablosu, tablonun sütunlarını belirtir ve verilerini içeren bir CSV dosyasına işaret eder. CSV dosyası şöyle görünür:

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

Veri tablosunun her satırı, boyutların benzersiz bir kombinasyonunu içerir country ve year (ilgili değerle birlikte) population metriğine ait (örneğin, nüfus - metrik - Afganistan'ın 1960'ta - boyutlar).

country sütunundaki değerlerin ISO 3166 olan country kavramının değeri/tanımlayıcısı Ülkenin 2 harfli kodudur.

Bir dilimin CSV verileri aşağıdaki kısıtlamaları karşılamalıdır:

  • Bir boyut alanının her değeri (country ve year) boş bırakılamaz. Metrik alanları için değerler (ör. population) boş olabilir. Boş değer, hayır ile temsil edilir karakteri ekleyin.
  • Bir kavrama referansta bulunan boyut alanının her değeri verilerde bulunan birkaç kısa açıklamadır. Örneğin, AF değeri country kavram verileri tablosunda bulunmalıdır.
  • Boyut değerlerinin her benzersiz kombinasyonu, ör. AF, 2000, yalnızca bir kez yapılabilir.
  • Veriler, zaman harici boyut sütunlarına göre (herhangi bir sırada) sıralanmalıdır. ve isteğe bağlı olarak diğer sütunlardan herhangi birine göre sıralayabilirsiniz. Yani örneğin [date, dimension1, dimension2, metric1, metric2] sütunlarını içeren bir tabloda dimension1, ardından dimension2, ardından date, ancak şuna göre değil: date ve ardından boyutlar.

Özet

Bu noktada, DSPL'mizde ülkeyi tanımlamaya yetecek kadar yer var. popülasyon verileri. Özetlemek gerekirse şunları yapmamız gerekti:

  • Veri kümesinin ve veri kümesinin DSPL başlığını ve açıklamasını oluşturun sağlayıcı
  • Farklı nüfus ve ülke kavramları için ayrı ayrı csv dosyasında bulabilirsiniz.
  • Zaman içinde ülkelere ait nüfus sayılarımızı içeren bir dilim oluşturun içe aktarılan zaman veri kümesinde önceden tanımlanmış yıl kavramını referans göstermek Google'dan.

Bu eğiticinin geri kalanında veri kümemizi zenginleştirerek daha fazla dilime daha fazla boyut eklemeyi ve ayrıca her bir dilime göre gruplandırılmış daha fazla konu.

Boyut Ekleme: ABD Eyaletleri

Şimdi de şehirdeki eyaletler için nüfus verilerini ekleyerek veri kümemizi zenginleştirelim. ABD. Öncelikle eyaletlerle ilgili bir kavram tanımlamamız gerekiyor. Bu, hem çok örneğin, önceden tanımladığımız ülke kavramı gibi.

<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>

Kavram uzantıları ve özellik referanslar

Eyalet kavramı, DSPL'ye ilişkin bazı yeni özellikleri de beraberinde getirmektedir.

Birincisi, durum başka bir kavramı genişletir. geo:location (harici coğrafi veri kümesinde tanımlanır) başına içe aktarılmalıdır). Semantik olarak bu, state, bir geo:location türüdür. Sonuç ise sahip olduğu tüm özellikleri ve özellikleri geo:location Özellikle konum, bu öğelerin latitude ve longitude; projenin kapsamını genişleterek bu özellikler duruma da uygulanır. Ayrıca, konum şuradan devralınır: entity:entity, durum da alır ve name dahil olmak üzere ikinci etiketin tüm özellikleri description ve info_url.

Not: Daha önce tanımlanan ülke kavramı teknik olarak geo:location örneğinden de genişletilmelidir. Bu nokta, kolaylık sağlaması için daha önce çıkarıldı; buradaki ülkeden ülkeye devralma verileri nihai XML dosyanız oluşturun.

Not: extends kullanabilirsiniz diğer veri kümeleri tarafından tanımlanan bilgileri yeniden kullanmak için kendi veri kümelerinizde oluşturma işlemini gerçekleştirin. extends kullanımı için konseptinizin tüm örneklerinin aşağıdaki gibi olması gerekir: geçerli örneklerini inceleyin. Uzantılar, ek özellikler ve öznitelikler kullanabilir ve örnek kümesini genişletilmiş kavramın örneklerinin alt kümesidir.

Devralmaya ek olarak, eyalet mülkü Kavram fikri referansları. Özellikle, eyalet kavramı country adlı bir özelliğe sahip. yukarıda oluşturduğumuz ülke kavramını referans alıyor. Bu, (concept özelliği) kullanabilirsiniz. Bu özelliğin kimlik sağlar, yalnızca kavram referansı sağlar. Bu, kimlik oluşturmaya eşdeğerdir referans verilen kavramın kimliğiyle aynı değere sahip olmalıdır (ör. country) tıklayın. Proje yöneticileri arasındaki eyalet ve ilçe, özellik kullanılarak yakalanır. Referansta isParent="true" var. Genel olarak hiyerarşik ilişkileri olan boyutlar (ör. coğrafyalar) Bu şekilde temsil edilir. Çocuk konsepti, kullanıcıların isParent özelliğini kullanarak üst kavramı referans alıyor.

Eyaletlerin tablo tanımı aşağıdaki gibi görünür:

<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>

Ülke sütunu, tüm eyaletler için sabit bir değere sahiptir. Bunu DSPL, verilerdeki her durum için bu değerin tekrarlanmasını önler. Ayrıca şunlara dikkat edin: name, latitude ve Eyalet bu mülkleri şuradan devraldığı için longitude: geo:location. Diğer yandan, devralınan bazı mülkler (ör. description) sütun içermiyor; bunda bir sakınca yok- Bir özellik, kavram tanımı tablosundan çıkarılırsa bu özelliğin değeri her örneği için tanımsız olduğu varsayılır.

CSV dosyası aşağıdaki gibi görünür:

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
...

Nüfus ve yıl kavramlarına zaten sahip olduğumuz için bunları yeniden eyalet nüfusu için yeni bir dilim tanımlamak üzere kullanılır.

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

Veri tablosu tanımı şöyle görünür:

<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>

CSV dosyası da şöyle görünür:

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

Bir tane daha soralım, yeni bir dilim eklemek yerine neden yeni bir dilim oluşturduk? ne kadar önemli?

Hem eyalet hem de ülke için boyutları olan bir dilim doğru olmaz. Çünkü bazı satırlar ülke verileri, bazı satırlar ülke verileri içindir. dışı verilerdir. Tabloda "delikler" olur. birkaç boyut için izin verilmez (eksik değerlere yalnızca metrikler ve özellikler için izin verildiğini unutmayın) boyutları değil) belirtir.

Boyutlar "birincil anahtar" görevi görür ekleyin. Bunun anlamı, her veri satırı, tüm boyutlar için değerlere sahip olmalı ve iki veri satırı içermemelidir tüm boyutlar için tam olarak aynı değerlere sahip olabilir.

Metrik Ekleme: İşsizlik Puan ver

Şimdi, veri kümemize başka bir metrik ekleyelim:

<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>

Bu metriğin info bölümünün adı, açıklaması ve URL (ABD İşçi İstatistikleri Bürosu'nun bağlantısını içerir).

Bu kavram, quantity:rate standart kavramını da genişletir. Miktar veri kümesi, sayısal miktarları temsil etmeye yönelik temel kavramları tanımlar. İçinde sayısal kavramlarınızı oluşturmak için kavramını ifade eder. Dolayısıyla, population kavramı yukarıda tanımlanan tanımın, teknik olarak, quantity:amount.

Kavram özellikleri

Bu kavram, özellik yapısını da tanıtır. İçinde Bu örnekte bir özellik, unemployment_rate bir yüzde değeridir. is_percentage özelliği şuradan devralındı: quantity:rate kavramını da tanıttım. Bu bilgileri, aşağıdaki durumlarda yüzde işaretlerini göstermek için Public Data Explorer tarafından kullanılır. verilerinizi görselleştirmenizi sağlar.

Özellikler, anahtar/değer çiftlerini bir kavram (bunun aksine, ek değerleri örnekleri). Tıpkı kavramlar ve mülklerde olduğu gibi özelliklerinde id, info ve bir type. Mülkler gibi, diğer kavramları da referans alabilirler.

Özellikler yalnızca sayısal değerler gibi önceden tanımlanmış genel unsurlara yönelik değildir özellikler. Kavramlarınız için kendi özelliklerinizi tanımlayabilirsiniz.

ABD İçin İşsizlik Oranı Verileri Ekleme Durumlar

Artık ABD eyaletleri için işsizlik oranı verilerini eklemeye hazırız. Çünkü işsizlik oranı bir metriktir. Elimizde eyaletler, nüfusu bunu eyalet ve yıl için önceden oluşturduğumuz dilime ekleyebiliriz. boyutlar:

<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>

... ve tablo tanımına başka bir sütun ekleyin:

<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>

... ve CSV dosyasına ekleyin:

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

Daha önce her dilim için boyutların birincil anahtar oluşturduğunu söylemiştik. ekleyin. Ayrıca her veri kümesi, bir dilim yalnızca bir tam olarak ne kadar zaman aldığını öğrenebilirsiniz. Bu kampanyalar için kullanılabilen tüm metrikler boyutların aynı dilime ait olması gerekir.

Diğer Boyutlar: Cinsiyete Göre Nüfus Dökümü

Veri kümemizi cinsiyet bazında nüfus analizi ile zenginleştirelim. ülkeler. Artık matkabı öğrenmeye başlıyorsunuz... Öncelikle cinsiyet kavramını ekle:

<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>

Cinsiyet kavramı info bölümünde, pluralName; referansta bulunulacak metni sağlar ve cinsiyet kavramının birden fazla örneği olabilir. info bölümü de metin içeren bir totalName içerir. Bu metin, cinsiyet kavramının tüm örneklerini Bunların ikisi de Public Data Explorer tarafından cinsiyetle ilgili bilgileri görüntülemek için kullanılır kavramak. Genel olarak, dönüşüm hunisinin tamamını kapsayan seçin.

Cinsiyet kavramı aynı zamanda entity:entity Bu, iş kırılım yapısının ve özel adlar eklemenize olanak tanıdığı için boyut olarak kullanılan URL'ler ve çeşitli kavram örnekleri için renkler.

Cinsiyet kavramı, farklı cinsiyetlerin kullanıldığı genders_table tablosunu ifade eder. cinsiyet ve görünen adları için olası değerleri içerir (burada gösterilmez).

Veri kümemize cinsiyete göre popülasyon eklemek için yeni bir dilim oluşturmamız gerekir. (Unutmayın: kullanılabilir her boyut kombinasyonunun, veri kümesi) kaldırın.

<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>

Dilimin tablo tanımı aşağıdaki gibi görünür:

<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>

Tablonun CSV dosyası aşağıdaki gibi görünür:

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

Önceki ülkeler, nüfus ve işsizlik dilimiyle karşılaştırıldığında bunun ek bir boyutu var. popülasyon metriğinin her değeri yalnızca belirli bir ülke ve yıla değil, aynı zamanda yardımcı olabilir.

Bir "separse" dönüşüm türü veri kümesiyle eşleştirilir. Bazı taraflar, metrikler tüm boyutlar için kullanılabilir: nüfus yıllık bazda, işsizlik oranı ise ülkeler ve ABD eyaletlerinde fiyat yalnızca ülkeler için kullanılabilir. Cinsiyete göre döküm mevcut yalnızca ülkeye göre nüfus için; işsizlik oranı için yok metriğini kullanabilirsiniz. Verilerde de nadirlik olabilir belirli boyut değerleri için değer içermeyen belirli metrikler varsa, ancak bu DSPL'de temsil edilmez.

Konular

DSPL'nin veri kümemizde kullanacağımız son özelliği konular. Konular, kavramları hiyerarşik olarak sınıflandırmak için kullanılır ve özel uygulamalarınızın yardımıyla kullanıcıların verilerinize ulaşmasına yardımcı olabilirsiniz.

DSPL dosyasında, konular kavramlardan hemen önce görünür. Bir örnek verelim konu hiyerarşisi:

<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>

Konuları gerektiği kadar iç içe yerleştirebilirsiniz.

Konuları kullanmak için onlara konseptten referans vermeniz yeterlidir şu şekildedir:

<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>

Bir kavram birden fazla konuya referans verebilir.

Veri Kümenizi Gönderme

Artık veri kümenizi oluşturduğunuza göre, sıradaki adım veri kümesini sıkıştırmak ve zip dosyasını yükleyin Google Herkese Açık Verileri Keşfetme Aracı. Herhangi bir sorunla karşılaşırsanız bir tartışma içeren SSS en yaygın yükleme sorunlarından bahsedeceğiz.

Referans için eksiksiz XML dosyasını ve tüm veri kümesi paketini de indirebilirsiniz bu eğitimle ilişkilidir.

Sonraki Adımlar

Tebrikler, ilk DSPL veri kümenizi oluşturdunuz! Artık takibin temel bilgileri anlamak için Geliştirici Kılavuzu'nu okumanızı öneririz. diğer özelliklerin yanı sıra dokümanların "gelişmiş" DSPL özellikleri: Çok dilli destek ve eşlenebilir kavramlar.

Ayrıca, birkaç örnek veri kümesine de göz atabilirsiniz.