DSPL Geliştirici Kılavuzu

DSPL, Veri Kümesi Yayınlama Dili anlamına gelir. Hem meta verileri (veri kümesinin adı ve sağlayıcısı gibi veri kümesiyle ilgili bilgiler ile içerdiği ve görüntülediği kavramlar) hem de veri kümelerinin gerçek verilerini temsil eder. Bu biçimde açıklanan veri kümeleri, verilerin zengin ve görsel bir şekilde keşfedilmesini sağlayan bir araç olan Google Public Data Explorer'a aktarılabilir.

Not: Herkese Açık Veri yükleme aracını kullanarak Google Herkese Açık Veriler'e veri yüklemek için Google Hesabınızın olması gerekir.

Bu belge, içeriklerinin Public Data Explorer'da kullanılabilir olmasını isteyen veri sahipleri için hazırlanmıştır. DSPL şemasının ve desteklenen özelliklerin ayrıntılarıyla Eğitim'in ötesine geçer. Yalnızca temel düzeyde XML olduğu varsayılır ancak ilişkisel veritabanları hakkında bilgi sahibi olmak da yararlıdır.

Zorunlu olmamakla birlikte, bu dokümana bakmadan önce daha kısa ve anlaşılması daha kolay Eğitim'i okumanızı öneririz.

Genel bakış

DSPL veri kümesi, bir XML dosyası ve bir dizi CSV dosyası içeren bir .zip dosyasıdır. CSV dosyaları, veri kümesinin verilerini içeren basit tablolardır. XML dosyası ise veri kümesinin meta verilerini açıklar. Ardından, tablolar arasındaki referanslar gibi yapısal meta verilerin yanı sıra ölçümlerin açıklamaları gibi bilgi amaçlı meta veriler de yer alır. Bu meta veriler, uzman olmayan kullanıcıların verilerinizi keşfetmesine ve görselleştirmesine olanak tanır.

İşleme

Genel olarak, bir DSPL veri kümesi oluşturma süreci aşağıdaki gibidir (buna paralel olarak bazı adımlar gerçekleştirilebilir):

  1. DSPL XML dosyanızı oluşturun.
  2. Veri kümenizde kullanılacak harici veri kaynaklarını belirleyin.
  3. Kavramlarınızı, dilimlerinizi ve (isteğe bağlı olarak) konularınızı tanımlayın. DSPL dosyanızın içeriğini aşamalı olarak güncelleyin.
  4. Kaynak verilerinizi .csv dosyalarına aktarın.
  5. Bir DSPL veri kümesi oluşturun.
  6. Veri kümesini Google'a gönderin.

XML Yapısı

Genel bakış

DSPL XML dosyası; kavramlar, dilimler, konular ve tablolar arasındaki yapısal ilişkiler dahil olmak üzere veri kümesinin meta verilerini tanımlar. Bu dosyayı elle oluşturmak mümkün olsa da veri işleme araçları ve komut dosyaları bu işlemi büyük ölçüde kolaylaştırabilir. Yeni bir pencerede örnek bir DSPL dosyası inceleyin.

Dosya, aşağıdaki tabloda özetlenen çeşitli bölümler içerir. Tabloyu takip ederek bunların her birini daha ayrıntılı olarak açıklayacağız.

Bölüm Özet Daha Fazla Bilgi
Başlık ve İçe Aktarma İşlemleri Veri kümesinin diğer tüm öğelerinin üst öğesidir. Veri kümesi için hedef ad alanını (ör. tanımlayıcı) ve içe aktarılan veri kümelerinin ad alanlarını içerir. Belgeler
Veri Kümesi Bilgileri Veri kümesinin adı, açıklaması ve URL'si. Belgeler
Sağlayıcı Bilgileri Veri kümesi sağlayıcının adı, açıklaması ve URL'si. Belgeler
Kavramlar

Veri kümesinde görünen "şeylerin" tanımları (ör. ülkeler, işsizlik oranı, cinsiyet vb.)

Her kavram, dilimler ve tablolarla referans verilebilecek benzersiz bir tanımlayıcıya sahiptir.

Belgeler
Dilimler

Veri kümesinde istatistiksel verileri olan kavramların kombinasyonları. Her dilim boyutlar ve metrikler içerir.

Dilimler, kavramları ve gerçek verileri içeren tablolara referans verir. Her bir dilimin, gerçek verileri içeren tablolar tarafından referans verilebilecek benzersiz bir tanımlayıcısı vardır.

Belgeler
Tablolar Kavramlar ve dilimlerle ilgili verileri tanımlayın. Kavram tabloları numaralandırmaları, dilim tabloları ise istatistiksel verileri barındırır. Tablolar, XML dosyasında tanımlanır ve gerçek verileri içeren .csv dosyalarına işaret eder. Belgeler
Konular Veri kümesi kavramlarını düzenlemek için kullanılan kategoriler. Zorunlu olmamakla birlikte bunlar, verilerinizde gezinen kullanıcılar için çok faydalı olabilir. Belgeler

Başlık ve İçe Aktarma İşlemleri

Public Data ad alanını tanımlama

DSPL veri kümesi, üst düzey bir <dspl> öğesiyle başlar. Bu, tüm veri kümesi bilgilerini kapsamak ve dosya boyunca kullanılacak ad alanlarını belirtmek için kullanılır. Örneğin:

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

Ad alanı, XML şemasıyla (XML öğeleri ve özellik grubu) ilişkilendirilebilen benzersiz bir tanımlayıcıdır. targetNamespace, veri kümenizi tanımlayan bir URI sağlar. Bu URI'nin gerçek bir kaynağı işaret etmesi gerekmez ancak URI'nın, içeriğinizi veya veri kümenizi açıklayan bir belgeye çözümlenmesini sağlamak iyi bir fikirdir.

targetNamespace sağlamanız gerekmez. Aksi takdirde, içe aktarma sırasında sizin için otomatik olarak bir kod oluşturulur.

targetNamespace özelliğinin ardından, dosyada kullanılacak diğer XML şemalarını belirten bir dizi xmlns özelliği gelir. Her DSPL dosyası, URI'si "http://schemas.google.com/dspl/2010" olan Google Public Data şemasını içermeli ve bunu varsayılan ad alanı olarak kullanmalıdır. Ayrıca, "http://www.w3.org/2001/XMLSchema-instance" tarafından tanımlanan standart W3 XML şemasını da içermelidir. Sonraki bölümde açıklandığı gibi, diğer veri kümelerindeki bilgileri içermek için diğer ad alanları eklenebilir.

Diğer veri kümesi ad alanlarını içe aktarma

Veri kümeleri, diğer veri kümelerindeki tanımları ve verileri yeniden kullanabilir. Örneğin Google, kullanıcı verilerinde sık karşılaşılan kavramları tanımlayan bir dizi temel veri kümesi sağlar. Örneğin, çoğu veri kümesinin yılları temsil etmesi için bir kavrama ihtiyacı vardır. Yeni bir kavram tanımlamak yerine, "http://www.google.com/publicdata/dataset/time" veri kümesindeki yıl kavramını kullanabilirsiniz. Daha fazla bilgi için Standart Kavramlar sayfasına bakın.

Harici bir veri kümesi kullanmak için <import> öğesini, ad alanı bildiriminden hemen sonra DSPL dosyasına ekleyin ve içe aktardığınız veri alanını aşağıdaki gibi belirtin:

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

Ardından, içe aktarılan ad alanını (bu örnekte time="http://www.google.com/publicdata/dataset/google/time") dosyanızın en üstündeki ad alanı beyanına şu şekilde 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" >
<import namespace="http://www.google.com/publicdata/dataset/google/time"/>

DSPL dosyanız artık Google Herkese Açık Verileri zaman veri kümesindeki öğelere başvurabilir. Referans vermek istediğiniz her veri kümesi için bu işlemi tekrarlayın.

Harici veri kümelerindeki içeriğe referans verme

Başka bir veri kümesini içe aktardıktan sonra, söz konusu veri kümesindeki kavram, dilim ve verilere başvurabilmeniz gerekir. Bunu yapmak için prefix:other_id biçiminde referanslar kullanabilirsiniz. Burada prefix, harici veri kümesinin ad alanı için kullanılan ön ektir.

time veri kümesinden year kavramına yapılan bir referansın örneğini burada bulabilirsiniz (yukarıda açıklanmıştır):

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

Veri Kümesi Bilgileri

<info> öğesi, veri kümesiyle ilgili açıklayıcı bilgiler içerir. İlgili XML öğeleriyle ilgili bir örnek ve ayrıntılar aşağıda listelenmiştir.

Örnek

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

Öğeler

Öğe Zorunlu mu? Açıklama
<info> Evet Veri kümesiyle ilgili tüm açıklayıcı bilgileri içerir. <name>, <description> ve <url> alt öğelerini içerir.
<name> Evet <info> alt öğesi. Veri kümesinin adını tanımlayan <value> alt öğesini içerir.
<description> İsteğe bağlı <info> alt öğesi. Veri kümesinin metin açıklamasını içeren <value> alt öğesini içerir.
<url> Evet <info> alt öğesi. Veri kümesi hakkında daha fazla bilgi içeren bir URL bağlantısı.

Sağlayıcı Bilgileri

<provider> öğesi, veri kümesi sağlayıcısıyla ilgili bilgileri listeler. İlgili XML öğeleriyle ilgili bir örnek ve ayrıntılar aşağıda listelenmiştir.

Örnek

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

Öğeler

Öğe Zorunlu mu? Açıklama
<provider> Evet Veri kümesi sağlayıcısıyla ilgili tüm açıklayıcı bilgileri içerir. <name> ve <url> alt öğelerini içerir.
<name> İsteğe bağlı <provider> alt öğesi. Veri kümesi sağlayıcının adını tanımlayan <value> alt öğesini içerir.
<url> İsteğe bağlı <info> alt öğesi. Veri kümesi sağlayıcısı hakkında daha fazla bilgi içeren bir URL bağlantısı.

Kavramlar

Açıklama

Her veri kümesi bir veya daha fazla kavram içerir. Kavram, veri kümesinde görünen veri türünün tanımıdır. Örneğin, demografik nüfus verilerini içeren bir veri kümesinde ülke, eyalet, nüfus ve yıl kavramları yer alabilir. Belirli bir kavrama karşılık gelen veri değerleri, o kavramın örnekleri olarak adlandırılır. Kavramlar genellikle veri kümesinde açıklanır ancak bazı kavramlar (zaman veya yıl gibi) harici veri kümelerinde açıklanabilir.

Her kavramın bir veya daha fazla özelliği olabilir. Özellik, kavram örneğinin zaman içinde kararlı olan özelliğidir. Örneğin, ülke kavramı name, population ve capital özelliklerine sahip olabilir.

Kavramların bir veya daha fazla özelliği de olabilir. Özellikler, bilgileri tek tek örnekleri değil, kavram düzeyinde sağlar. Örneğin, işsizlik oranı kavramını içeren bir veri kümemiz varsa bu kavramın yüzde olduğunu belirtmek için bir özellik kullanabilirdik. Özelliklerin yaygın bir kullanımına başka bir örnek de birim bilgilerini sağlamaktır.

Örnek

Benzersiz country kimliğine ve name mülküne sahip bir ülke konsepti örneğini burada bulabilirsiniz. Kavram kimliği, dilimler ve tablolardan kavrama referans vermek için kullanılabilir.

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

Bu örneğin çalışma şekli aşağıdaki gibidir.

  • Bu kodda, country kimliğine sahip olan kavram ülkesi ile name, continent ve capital özellikleri açıklanmaktadır.
  • Kavram, konumlar için standart kavram olan geo:location'ı kapsar. geo:location genişletildiğinde country, genişletilmiş kavramla tanımlanan tüm özellikleri ve özellikleri (tesis adı, açıklama, URL, enlem ve boylam) devralır. Tanım, genişletilmiş kavram tarafından sağlanan değerle tutarlı olduğu sürece country ürününün bu özelliklerden ve özelliklerden bazılarını yeniden tanımlaması sorun yaratmaz.
  • Kavram <info> öğesi, kavramla ilgili temel bilgileri açıklar. Bu, Public Data Explorer'da veri kümesinin açılış sayfasında gösterilir.
  • <type> öğesi, içerik türünü ifade eder. Bu örnekte dizedir, ancak bu değişkenlik gösterebilir. Popülasyon kavramı integer türünde, Eurovision winner kavramı ise boole türünde olabilir.
  • <property> öğesi, benzersiz kimliği (id), info ve type dahil olmak üzere kavramın her bir özelliğini açıklar. Özellikler, değerlerinin bu kavramların geçerli örnekleri olduğunu belirtmek için kavramlara da referans verebilir.
  • Kavram, gerçek verileri içeren CSV dosyasına işaret eden bir veri tablosuna atıfta bulunur. Veri tablosuna şu şekilde başvuruda bulunulur: <table ref="countries_table"/>.

    Konseptiniz bir tabloya referans veriyorsa ilişkili veri dosyası, kavramın tüm örneklerini listelemelidir. Örneğin, veri kümesinde yer alan ülkelerden yalnızca birkaçını listeleyen bir tablo oluşturamazsınız. (Önem verdiğiniz ülkelerin bir alt kümesi varsa bunları açıklamak için ayrı bir kavram oluşturabilirsiniz. Örneğin, mycountries.)

Öğeler

Öğe Zorunlu mu? Açıklama
<concepts> Evet Üst düzey öğe. Tüm <concept> öğelerini kapsar.
<concept> Evet Kavramı tanımlar. Gerekli id özelliğinin değeri, veri kümesindeki kavrama özgü olmalıdır. Kavram bir kavram veri tablosuna referans veriyorsa id değeri, veri tablosundaki kavramı açıklayan sütun başlığıyla eşleşmelidir. Bu kavramın başka bir kavramı kapsadığını belirtmek için extends özelliği kullanılabilir. extends değeri, aynı veri kümesinde tanımlanan bir kavramın kimliğiyle eşleşmeli veya prefix:concept_id biçiminde olmalıdır. Burada concept_id, prefix ile ilişkili içe aktarılan harici veri kümesinde tanımlanan bir kavramın kimliğidir.
<info> İsteğe bağlı Kavramla ilgili açıklayıcı bilgiler içerir.
<name> Evet <info> alt öğesi. Kavramın adı. <value> alt öğesi metni içerir (örneğin, Country).
<description> İsteğe bağlı <info> alt öğesi. Kavramın metin açıklamasını içeren <value> alt öğesini içerir.
<url> İsteğe bağlı <info> alt öğesi. Kavramın URL'sini içeren <value> alt öğesini içerir.
<pluralName> İsteğe bağlı <info> alt öğesi. Kavramın çoğul adı. <value> alt öğesi metni içerir - örneğin, Countries.
<totalName> İsteğe bağlı <info> alt öğesi. Kavramın tüm örneklerinden oluşan kombinasyonun adı. <value> alt öğesi metni içerir. Örneğin, country kavramı için bu değer World olabilir.
<type> İsteğe bağlı Kavramın tanımladığı içerik türünü tanımlar. Gerekli ref özelliği için izin verilen değerler şunlardır:
  • dize
  • float
  • tam sayı
  • tarih
  • boolean
Kavram başka bir kavramı genişletiyorsa tür atlanabilir. Bu durumda, genişletilmiş kavramdan devralınır.
<property> İsteğe bağlı

Kavramın bir özelliği, ör. capital. Gerekli id özelliğinin değeri, kavrama özgü olmalıdır. Bu özelliğin değerlerinin belirli bir kavramın örnekleri olduğunu belirtmek için isteğe bağlı bir concept özelliği kullanılabilir. concept belirtilirse id atlanabilir.Değeri, atıfta bulunulan kavramın kimliği olarak dolaylı olarak tanımlanır (ör. <property concept="geo:country"/>, <property id="country" concept="geo:country"/> ile eşdeğerdir).

Bir özellik, kavramın bir örneği ile bu özelliğin değeri arasındaki ilişkinin hiyerarşik olduğunu belirtmek için Boole isParent özelliği içerebilir.

Bir mülk, kavramın örnekleri ile özelliğin değerleri arasında 1:1'lik bir eşleme olduğunu belirtmek için Boole isMapping özelliği içerebilir.

Bir mülk, iç içe yerleştirilmiş bir info ve type belirtebilir. Bunlar, tam olarak bir kavramda olduğu gibi tanımlanır. Mülk bir concept özelliği belirtmiyorsa type gereklidir ve belirtilmişse referans verilen kavramın türüyle eşleşmesi gerekir.

<attribute> İsteğe bağlı

Kavramın bir özelliği. Özellikler, kavramla ilgili ek bilgileri temsil eder (ör. GSYİH yüzdedir). Gerekli id özelliğinin değeri, kavrama özgü olmalıdır. Bu özelliğin değerlerinin belirli bir kavramın örnekleri olduğunu belirtmek için isteğe bağlı bir concept özelliği kullanılabilir. concept belirtilirse id atlanabilir. Değeri, başvuruda bulunulan kavramın kimliği olarak dolaylı olarak tanımlanır. (ör. <attribute concept="unit:unit"/>, <attribute id="unit" concept="unit:unit"/> ile eşdeğerdir.

Özellik, tıpkı bir kavramda olduğu gibi, iç içe yerleştirilmiş info ve type öğelerini belirtebilir. Özellik bir concept özelliği belirtmiyorsa type gereklidir ve belirtilmişse referans verilen kavramın türüyle eşleşmesi gerekir.

<table> İsteğe bağlı Kavrama ait verileri içeren veri tablosunu tanımlar. Gerekli ref özelliğinin değeri, ilgili <table> öğesinde belirtilen tablo kimliğiyle eşleşmelidir.

Dilimler

Açıklama

Dilim, verilerin bulunduğu kavramların bir kombinasyonudur. Bir dilim iki tür kavram referansı içerir: boyutlar ve metrikler. Boyut, verilerinizi segmentlere ayırmak veya filtrelemek için kullanılan bir kavramdır. Öte yandan metrik, her bir veri noktasıyla ilişkili gözlemlenen değeri veya değerleri açıklar.

Genel olarak boyutlar kategoriktir. Metrikler ise kategorik olmayan, zamana bağlı sayısal değerlerdir. Her biriyle ilgili bazı prototip örnekler aşağıda verilmiştir:

  • Boyutlar: Ülke, eyalet, ilçe, bölge, yıl, ay, cinsiyet, yaş kategorisi, sektör segmenti
  • Metrikler: Nüfus, GSYİH, işsizlik oranı, okuryazarlık, gelir, maliyet, fiyat

Örnek

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

Bu örneğin çalışma şekli aşağıdaki gibidir.

  • Bu dilim ülkeye göre nüfusu gösterir.
  • population metriğini, country ve year boyutlarını içeriyor. Her boyut, başka bir yerde daha önce tanımlanmış bir kavramdır. country kavramı ve population metriği, geçerli dilimle aynı veri kümesinde yer alır ve şu şekilde başvuruda bulunulur: concept="country"
  • year kavramı, içe aktarılan veri kümesi zamanında bulunur. Kavram adından (year) önce kullanılan ön ek ile tanımlanır. Örneğin: concept="time:year"
  • Dilim, gerçek verileri içeren CSV dosyasına işaret eden bir veri tablosuna başvurur. Veri tablosuna şu şekilde başvuruda bulunulur: <table ref="country_slice_table"/>. (Veri kümelerini içe aktarma hakkında bilgi için yukarıya bakın.)

Not: Genel olarak, metrikleri minimumda tutup bunun yerine anlamlı boyutlar oluşturursanız veri kümeniz daha esnek olur. Örneğin, Female Unemployment ve Male Unemployment metriklerini oluşturmak yerine Unemployment tek metriğini oluşturun ve Female ile Male örneklerini içeren Gender boyutunu ekleyin.

Öğeler

Öğe Zorunlu mu? Açıklama
<slices> Evet Üst düzey öğe. Tüm <slice> öğelerini kapsar.
<slice> İsteğe bağlı Dilimi tanımlar. Gerekli id özelliğinin değeri, dilime özgü olmalıdır.
<dimension> İsteğe bağlı Bir kavramı referans alarak dilimin boyutunu tanımlar. Gerekli concept özelliğinin değeri, kavramın benzersiz kimliğiyle tam olarak eşleşmeli ve kavram, harici içe aktarılan bir veri kümesine aitse geçerli bir önek kullanmalıdır.
<metric> İsteğe bağlı Bir kavramı referans alarak dilimin metriğini tanımlar. Gerekli concept özelliğinin değeri, kavramın benzersiz kimliğiyle tam olarak eşleşmeli ve kavram, harici içe aktarılan bir veri kümesine aitse geçerli bir önek kullanmalıdır.
<table> Evet Dilime ait verileri içeren veri tablosunu tanımlar. Gerekli ref özelliğinin değeri, ilgili <table> öğesinde belirtilen tablo kimliğiyle eşleşmelidir.
<mapDimension> İsteğe bağlı <table> alt öğesi. concept ve toColumn özelliklerini içerir. İlkinin değeri dilimdeki bir boyut, ikincisinin değeri ise birincisine karşılık gelen tablo sütunudur.
<mapMetric> İsteğe bağlı <table> alt öğesi. concept ve toColumn özelliklerini içerir. İlkinin değeri dilimdeki bir metrik, ikincinin değeri ise birincisine karşılık gelen tablo sütunudur.

Tablolar

Açıklama

DSPL dosyasının tables bölümü, veri kümesine dahil edilen veri tablolarını tanımlar. Bu tablolara kavramlar veya dilimler halinde referans verilebilir. Her <table> öğesi, tabloların sütunlarını ve türlerini belirtir. Ayrıca, tablo verilerini içeren bir CSV dosyasına işaret eder.

Örnek

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

Bu örnek şu şekilde çalışır:

  • Bu örnekte country_slice_table tablosu açıklanmaktadır. Tabloda country, year ve population sütunları bulunur.
  • Tablodaki her sütun, id özelliğiyle tanımlanan benzersiz bir kimliğe sahiptir. Bu kimlik, ilişkili veri dosyasındaki uygun sütun başlığıyla tam olarak eşleşmelidir.
  • İsteğe bağlı type özelliğinin değeri, her bir sütunun veri türünü tanımlar.
  • <data> öğesi, tablonun verilerini içeren gerçek .csv dosyasını (country_slice.csv) açıklar. Dosya biçimi her zaman csv şeklindedir.

Öğeler

Öğe Zorunlu mu? Açıklama
<tables> Evet Üst düzey öğe. Tüm <table> öğelerini kapsar.
<table> Evet Tabloyu tanımlar. Gerekli id özelliğinin değeri, tabloya özgü olmalıdır.
<column> İsteğe bağlı <table> alt öğesi. Tabloya eklenen bir sütunla ilgili bilgilerdir. Aşağıdaki özellikleri içerir:
  • id (zorunlu): Sütunun kimliği.
  • type (isteğe bağlı): Belirtilen sütundaki bilgilerin veri türü. İzin verilen değerler: string, float, integer, date veya boolean.
<data> İsteğe bağlı <table> alt öğesi. Tablonun başvuruda bulunduğu veri dosyası. Dosya adı URL biçimindeyse (ör. http://...) içeriyorsa dosya uygun protokol (HTTP, HTTPS veya FTP) aracılığıyla getirilir. Aksi takdirde, bu ada sahip bir dosya veri kümesiyle birlikte paketlenmelidir. Gerekli format özelliğinin değeri her zaman csv olur. encoding özelliği isteğe bağlı olsa da .csv dosyalarınız UTF-8 olarak kodlanmış olmalıdır.

Konular

Açıklama

Topics, kavramları hiyerarşik olarak sınıflandırarak kullanıcıların veri kümenizde daha kolay gezinmesini sağlar.

<topics> öğesi, DSPL dosyanızdaki <concepts> öğesinden hemen önce görünmelidir. (Öğelerin sırası önemlidir ve öğeleriniz yanlış sırada görünürse veri kümenizi yükleyemeyebilirsiniz.) Konuları kullanmak için kavram tanımından referans alın.

Örnek

Aşağıda örnek bir konu tanımı verilmiştir:

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

...ve aşağıda, bu konuya bir kavramdan örnek verilmiştir:

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

Konular iç içe yerleştirilebilir ve bir kavram birden fazla konuya referans verebilir.

Öğe tanımı

Öğe Zorunlu mu? Açıklama
<topics> Evet Üst düzey öğe. Tüm <topic> öğelerini kapsar.
<topic> Evet Konuyu tanımlar. Gerekli id özelliğinin değeri, veri kümesine özgü olmalıdır.
<info> İsteğe bağlı <topic> alt öğesi. Bir konuyla ilgili bilgileri içerir.
<name> İsteğe bağlı <info> alt öğesi. Alt öğesi <value>, konunun adını belirtir.

DSPL Veri Dosyaları

XML meta veri dosyasına ek olarak, bir DSPL veri kümesi de CSV biçiminde bir veya daha fazla veri dosyası içerebilir. Her veri dosyası, veri kümesindeki bir tabloyu destekler ve <data>...</data> bölümünde ilk tablodan başvurulur. Kavram olarak bu dosyalar ve ilişkili tablolar, kavram tanımlarını veya dilim verilerini temsil etmek için kullanılır. Bu veri dosyası türlerinin her biri aşağıda daha ayrıntılı olarak açıklanmaktadır.

Amaca bakılmaksızın tüm veri dosyalarının virgülle ayrılmış (CSV) UTF-8 metin dosyaları olması gerektiğini unutmayın. Dosyalar yalnızca düz metin içermeli, HTML içermemelidir. Veri dosyalarını manuel olarak oluşturabilirsiniz ancak gerçekçi olarak verileri, orijinal veri kaynağını içeren araçta (ör. bir e-tablo) veya dışa aktarılan dosyanın kendisinde işlemeniz gerekir.

Dosyalar veri kümesiyle gruplanabilir veya ad URL biçimindeyse uzak bir kaynaktan HTTP, HTTPS ya da FTP aracılığıyla getirilir.

Kavram Veri Dosyaları

Kavram veri dosyaları, her kavramla ilgili bilgiler içerir. Kavram tanımı, bu dosyaya atıfta bulunmak için <table> öğesini kullanır.

Örnek

Yukarıda tanımlanan country kavramıyla ilgili bir tablo örneğini burada bulabilirsiniz:

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

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

  • Eşleme belirtilmediği sürece veri dosyasının ilk satırı (sütun başlıkları), verilerin ilişkilendirildiği kavramın konsept kimliği ve uygun özellik kimlikleriyle tam olarak eşleşmelidir. Ancak, sütunların sıralamasının veri dosyasında ve kavram tablosunda aynı olması gerekmez. Bu durumda, ilk sütun country kavramıyla, ikinci sütun ise name mülküyle ilişkilendirilir.
  • Özellik sütunları isteğe bağlıdır. Bir mülkün tablosunda sütun yoksa özelliğin değerinin her satır için tanımsız olduğu varsayılır. Örneğin yukarıdaki tabloda latitude ve longitude özelliklerinin sütunları çıkarıldığından ülkeler eşlenemez.
  • Kavramın kimlik alanındaki her değer (bu örnekte country) benzersiz olmalı ve boş olmamalıdır (boş alan, sıfır veya yalnızca boşluk karakteri içeren bir alandır).
  • Diğer kavramlara başvuruda bulunan mülklerin değerleri boş olmalı veya başvuruda bulunulan kavramın geçerli bir değeri olmalıdır.
  • Değerleri çift tırnak işareti içine almak, söz konusu değerlerin virgül, çift tırnak veya yeni satır karakterleri içerdikleri durumlar dışında isteğe bağlıdır.
  • Bir değerde görünen düz çift tırnak işaretinin önüne başka bir çift tırnak işareti koyarak kod dışına alın.

Dilim Veri Dosyaları

Dilim veri dosyaları, her bir dilimle ilgili verileri içerir. Dilim tanımı, <table> tanımına başvuruda bulunmak için <table ref="..."> öğesini kullanır. Bu da dolayısıyla bu dosyayı tanımlar.

Örnek

Yukarıda açıklanan population_by_country dilimiyle ilgili verileri içeren bir .csv dosyası örneğini burada bulabilirsiniz:

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

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

  • Metrik alanı population şeklindedir. country ve year alanları boyut alanlarıdır.
  • Bir boyut alanının her değeri boş olmamalıdır. Buna zaman boyutları da dahildir. Metrik alanlarına ait değerler boş olabilir. Boş değer, karakter olmadan temsil edilir.
  • Bir kavrama referans veren her sütun başlığı (örneğin, yukarıdaki örneğin ilk alanında country kavramına atıfta bulunur), kavram tanımındaki kavramın benzersiz kimliğiyle tam olarak eşleşmelidir.
  • Boyut değerlerinin benzersiz bir kombinasyonu (ör. AF, 2000) yalnızca bir kez görülebilir.
  • Aynı zaman serisindeki satırlar (yani, zaman hariç tüm boyut değerlerinin aynı kombinasyonuna sahip olan satırlar) birlikte gruplandırılmalıdır. Ancak bunların başka şekilde sıralanması gerekmez.

İleri Seviye Özellikler

Çok Dilli Veri Kümeleri

Çevrilmiş XML Değerleri

xml:lang özelliğini, DSPL dosyanızdaki her <value> öğesiyle birlikte kullanabilirsiniz. Bu özellik, standart, W3C dil etiketlerini kullanarak öğe içeriğinin dilini belirtir. Bu özelliğin kullanımı isteğe bağlıdır. xml:lang özelliği eklenmezse içeriğin İngilizce olduğu varsayılır.

Aşağıdaki örnekte İngilizce, Bulgarca, Katalanca ve Basitleştirilmiş Çince dillerindeki bir veri kümesinin anlık görüntüsü gösterilmektedir:

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

Çevrilmiş Mülkler

Bazı durumlarda, kavram düzeyinde meta verilerin ötesine geçen çeviriler sağlamak, ayrı kavram örneklerine ek olarak (veya bunun yerine) uygulamak isteyebilirsiniz. Bu, özellikle bir kavram özelliğinin (ör. ad) değerleri dile göre değiştiğinde faydalıdır.

Bu tür değerleri birden fazla dilde sağlamak için her mülk/dil kombinasyonuna karşılık gelen tanım tablosunda bir sütun oluşturun. Ardından, kavramın tablo referans etiketine bir <mapProperty xml:lang="..." ref="..." toColumn="..."> öğeleri grubu ekleyerek bu sütunları ilişkili özelliklerine ve dillerine bağlayın.

Bir ülke kavramını İngilizce, İspanyolca ve Fransızca adlarıyla tanımlayan bir örneği aşağıda bulabilirsiniz:

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

Bu durumda countries_table için CSV dosyası aşağıdaki biçimde olur:

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

Eşlenebilir Kavramlar

Birçok kavramda (örneğin: ilçe, eyalet ve şehir) coğrafi konumlara karşılık gelen örnekler bulunur. DSPL, bunların Google Herkese Açık Verileri animasyonlu harita grafiğinde görselleştirilebilmesi için bu örneklerin coğrafi kodlamasını destekler.

Konseptiniz Dünya ülkeleri, ABD eyaletleri veya ABD ilçeleriyle denkse ilgili Google standart kavramına bağlantı oluşturmanız yeterlidir. Coğrafi kodlamaya gerek yoktur. Daha fazla ayrıntı için Standart Kavramlar Kılavuzu'na bakın.

Aksi halde konseptinizi eşlenebilir hale getirmeniz gerekir. İlk adım, URL'nin geo:location tarihinden itibaren uzatılmasını sağlamaktır:

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

Ardından, enlem ve boylamı özellik olarak açıkça eklemeniz gerekir:

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

Daha sonra bunların değerleri, ilgili kavram tanımı veri tablosunda sütunlar olarak belirtilir.

Kavram İlişkileri

Kavramlar genellikle diğer kavramlarla yapılandırılmış bir şekilde ilişkilidir. Örneğin, bir kıta örneği birden fazla ülke örneği içerebilir ve bunlar da birden fazla eyalet veya il örneği içerebilir. Bu ilişkilerin veri kümesi meta verilerinde kodlanması, normalde mümkün olandan daha zengin görselleştirme özellikleri sağlar. Örneğin, aralarından seçim yapabileceğiniz konumların daraltılabilir bir ağacının gösterilmesi gibi.

Aşağıdaki bölümlerde, DSPL şemasında desteklenen kavram ilişkileri açıklanmaktadır.

Hiyerarşiler

Kavram hiyerarşileri, DSPL'de üst kavramdaki örneklerin tanımlayıcılarını içeren alt kavramın <property> etiketinde isParent="true" özelliği kullanılarak temsil edilir.

Örneğin, Google'ın ABD İlçesi kavramı aşağıdaki biçimdedir:

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

Destekleyici veri tablosunda, her ilçenin iki harfli durum kodunu içeren bir state sütunu bulunur. Bu tür meta veriler, Public Data Explorer'ın eyaletleri ve ilçeleri bir hiyerarşi olarak göstermesine olanak tanır. Bu özellik, kullanıcıların keşfi çok daha kolay hale getirir.

Bir kavramın çok sayıda alt öğesi olabileceğini ancak en fazla üst öğesi olabileceğini unutmayın.

Eşleştirmeler

Kavram eşlemeleri (yani, temelde aynı şeyi temsil eden kavramlar), eşlenen kavramın property etiketindeki isMapping="true" özelliği ile temsil edilir.

Bir kavramın başka bir kavramla eşlendiğini belirtmek, ilk kavramın diğerinin tüm özelliklerini ve özelliklerini devralmasını sağlar. Bu, diğer uygulamaların yanı sıra, kişisel coğrafi kavramları Google'ın standart coğrafi veri kümesinde tanımlananlarla"bağlamak" için kullanışlıdır:

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

Uzantılar

Kavram uzantıları, karşılık gelen kavram tanımındaki bir extends öğesi ile tanımlanır. Uzantılar, belirli bir kavramın daha geniş kapsamlı başka bir kavramın alt sınıfı olduğunu belirtmek için yararlıdır. Genişletilmiş kavram, üst öğesinin tüm özelliklerini ve özelliklerini devralır ve başka özellikler de ekleyebilir.

Örneğin, Google'ın currency kavramı unit alanını kapsıyor:

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

Daha fazla açıklama ve örnek için eğitimdeki kavram uzantıları konulu makaleyi inceleyin.

Veri Kümenizi Gönderme

Veri kümenizi Google Public Data Explorer'a göndermek için şu talimatları uygulayın:

  1. Bir dizin oluşturun.
  2. Veri kümesi dspl dosyasını, oluşturduğunuz dizine kaydedin. .xml uzantısını kullandığınızdan emin olun.
  3. Tüm yerel .csv dosyalarını aynı dizine kaydedin. URL'ler aracılığıyla başvurulan veri dosyaları atlanabilir.
  4. Dizini sıkıştırın.
  5. Google Public Data Explorer'a veri kümenizi yükleyin.

Veri kümeniz yüklenip doğrulandıktan sonra Google Hesabınızda oturum açarak test edebilirsiniz. Siz kontrol edip hazır olduğunu söyleyene kadar dosya yayınlanmaz.