OCD kimliklerini güncelleme işlemi

Giriş

Açık Sivil Veri Tanımlayıcıları (OCD kimlikleri), politik coğrafyaları tanımlayan yaygın bir tanımlayıcı biçimidir. CDF feed'i oluşturmak için bu tanımlayıcıları bir GpUnit varlığının parçası olarak sağlamanız gerekir. Bu belge, OCD kimliklerini opencivicdata GitHub deposuna eklemeyle ilgili rehberlik ve en iyi uygulamaları sağlamayı amaçlamaktadır.

Open Civic Data GitHub deposunda OCD kimliklerini güncelleme

Ön koşullar

  1. Açık kaynak projelerine nasıl katkıda bulunulacağını anlama

Başlamadan önce:

  1. İş istasyonunuzu hazırlayın:

    OCD kimlik deposundan paketi çatallayın ve klonlayın.

  2. Depo hakkında bilgi edinin:

    OCD kimlik deposunda, desteklenen her ülke bir dizin ve aynı adı paylaşan bir CSV dosyasıyla temsil edilir: country-<2 harfli ülke kodu> (örnek: Almanya için identifiers/country-de ve identifiers/country-de.csv).

    Değiştirmek istediğiniz ülkenin dizininde, üst düzey, ülkeye özgü CSV dosyasının bölümlerini içeren CSV dosyalarını (Örnek) bulabilirsiniz. Bunlar, değiştirmeniz gereken dosyalardır.

  3. Yeni OCD kimlikleri nasıl oluşturulur?

    Yapı ve kaynaklar

    OCD kimlik yapısı hakkında bilgi edinmek için açık vatandaşlık verileri belgesine göz atın. Genel olarak geçerli bir OCD kimliği aşağıdaki biçimdedir: ocd-division/country:<country_code>(/<type>:<type_id>)

    Tanımlayıcı adlandırma, ISO'daki standart tanımlayıcıları veya ISO yoksa FIPS ve NUTS gibi diğer standartları tercih eder.

    Genel politikalar

    Genel politikalar şunlardır:

    Hiyerarşi

    OCD kimliği hiyerarşisi, OCD kimliklerinin sınırlarını kontrol eden bir yönetici düzeyine göre belirtilmelidir.

    • Örnek: Amerika Birleşik Devletleri'nde, kongre bölgeleri ulusal Temsilciler Meclisi seçimlerinde kullanılır ancak sınırları ABD tarafından belirlenir. Bu nedenle seçim bölgeleri eyaletlerden ayrılıyor: ocd-division/country:us/state:pa/cd:2
    • Örnek: Murrysville, Pennsylvania'da bir belediyedir ve Westmoreland County içinde yer alır. Bununla birlikte, şehirler eyalet tarafından yönetildiği için OCD kimliği eyaletin dışında tutulur: ocd-division/country:us/state:pa/place:murrysville Belirsizliğin gerekli olduğu durumlarda ekstra hiyerarşi kullanılabilir.
    • Örnek: Pensilvanya'da "Franklin Belediyesi" adlı 16 yer vardır. Normal olarak bu iki seçeneğin her birinin OCD kimliği ocd-division/country:us/state:pa/place:franklin olur, ancak bu belirsiz olur. Bunun yerine, her bir ülkenin kendi benzersiz OCD kimliğine sahip olması için bölgeyi OCD kimliğine ekleyebiliriz. Ör. ocd-division/country:us/state:pa/county:adams/place:franklin
    Tür
    • OCD kimlik türleri genellikle ülkelere özgüdür.

    • Bazı OCD kimlikleri depoda country, region ve place gibi yaygın olarak bulunur.

    • Bununla birlikte, genel rehberlik, türlerin söz konusu ülke bağlamında anlamlı olacak daha spesifik bir şekilde belirtilmesini düşünmektir.

      • Örnek: ABD'de 1. Yönetici Alanı için state, district ve territory türleri kullanılır.
      • Örnek: CA'daki Yönetici Alanı 1 için province ve territory türleri kullanılır.
      • Örnek: PT'deki Yönetici Alanı 1 için region ve autonomous_region türleri kullanılır.
    Kimlik
    • Genel olarak, bölge sınırları içindeki bir bölge için aynı OCD kimliğini kullanmak isteriz. Yeni bir OCD kimliği grubu için kullanılacak bir type_id seçerken en kararlı olanı seçin. Kullanılacak tanımlayıcıyı belirlerken sorulacak bazı sorular şunlardır:
    • Belirli bir bölge için tanımlayıcının bölge düzenlemesi nedeniyle değişme olasılığı nedir?
    • Aynı görevli, X bölgesini bölge sınırlarının belirlenmesinden önce ve sonra bölge sınırlarının dışına çıkarsa, onun terimini sürekli olarak temsil eder miyim?
    • Bölge genelinde aynı sınırlara veya adlara sahip ilçeler aynı tanımlayıcı ile mi temsil ediliyor?
      • Örnek: ABD'de, kongre bölgesi numaraları ABD konut bölgeleri için kullanılır. Çünkü bu bölgelerin sınırları yeniden bölgeyle değişse bile kimlik bu sayıya güçlü bir şekilde eklenmiştir ve yıllar boyunca seçim bölgesi sınırları aşsa bile bir kişiye X yıl boyunca N'inci koltuk için görev yapan kişi olarak atıfta bulunmanız gerekir.
      • Örnek: Kanada'da, federal seçim bölgelerini temsil etmek için bölge adlarını kullanmak istiyoruz. Çünkü federal seçim bölgeleri mevcut olsa da, bölgede aynı bölge adı farklı kimliklerle temsil edildiği için bu tanımlayıcı sabit değildir. (örneğin, 2012'den önceki bölge 47012'den önceki bölge aynı bölge olmaktan çıkar).
    Bölge düzenlemesi

    Genel olarak, yeniden düzenleme nedeniyle OCD kimliklerini güncellerken yeni bir grup oluşturmak yerine mevcut OCD kimlikleri grubunu kullanın.

    • Bölgenin yeniden sınırlanmasından sonra bölgenin kimliği (sayısal kimlik, ad vb.) değişmezse aynı OCD kimliğini kullanın.
    • Bölge yeniden kısıtlandıktan sonra yeni bölgeler oluşturmak için yeni OCD kimlikleri oluşturun.
    • Artık mevcut olmayan bölgeler için ValidThrough alanını, bölge yeniden düzenlemenin yürürlüğe girdiği tarihle güncelleyin.
    • Bir ilçenin kimliği adına dayanıyorsa ve bölge, bölge yeniden düzenlenmesinden sonra yeniden adlanıyorsa yeni bölge adına dayalı yeni bir kimlik oluşturun ve id = oldId ve sameAs = newId olacak şekilde bir takma ad ekleyin. Bu, oldId öğesinin kullanımı olarak newId öğesini newId ile standart hale getirir.
    • Geçmişteki OCD kimlikleri arasında bir çakışma olması durumunda (ör. yeni kimlik, kaldırılmış kimlikle aynıysa) ValidFrom yılını yeni kimliğe ekleyin. Bu adlandırma politikası hakkında daha fazla bilgiyi Mevcut, kullanımdan kaldırılan ve yeniden adlandırılan OCD-ID'ler için yeni dosya oluşturma başlıklı makalede bulabilirsiniz.

Yerel kopyanızı güncelleyin

Tüm güncellemelerin ülkeye özgü dizinde yapılması gerekir: ocd-repository/identifiers/country-<2 harfli ülke kodu>. Böyle bir dizin yoksa oluşturun.

  • OCD Kimlikleri CSV dosyası zaten mevcutsa ve eski seçim sınırlarını temsil ediyorsa bu dosyayı yeni seçim bölgelerini içerecek şekilde güncellemeniz gerekir. Bunu yapmak için, tarihi YYYY-AA-GG biçiminde içeren bir ValidFrom ve ValidTo sütunu ekleyin.
    • ValidFrom, yeni seçim bölgeleri için seçim tarihi olmalıdır. Mevcut seçim bölgeleri için boş bırakılabilir.
    • Güncelliğini yitirmiş seçim bölgeleri için ValidTo, seçimden bir gün önce olmalıdır.

Takma Adları Güncelleme

OCD kimliklerini aynı parçanın politik coğrafyasının temsili olarak işaretlemek için takma ad kullanabilirsiniz.

  • Örneğin bir yer hem kasaba hem de ilçeyse bu durum anlamlı olabilir.

Aktarmaya çalıştığımız genel ilkeler:

  • İki siyasi coğrafya parçası birbirlerine karşılık geliyorsa birbiriyle diğerlerine takmak zorunlu değildir. Ör. Çok büyük ABD kongreleri, eyaletlerle eş zamanlıdır ancak bu durum tesadüfen geçerli ABD nüfus sayısından dolayıdır.

Bölgelerin yeniden adlandırılması, bölgelerin bölünmesi için yasalarda/anayasa değişikliklerinde önemli değişiklikler yapılması gereken durumlarda da mantıklı olabilir.

  • Örneğin, Washington eyaleti senatosu ve eyalet konut bölgeleri, anayasa yasasına göre aynı şekilde ayarlanmıştır.

Gerekirse hem eski OCD kimliklerini hem de takma adlarını eklediğimiz bir CSV dosyası aliases.csv ekleyin. Standart kimlikler, yerel bir anlamı olan bölüm türlerini kullanabilir ve daha tanıdık temsillere sahip takma adlara sahip olabilir (ör. standart: ocd-division/country:de/land takma ad: "ocd-division/country:de/state). Daha fazla bilgi için sayı 170'e bakın.

Takma adlar.csv dosyasını güncellemek için:

  • Takma adlar.csv dosyasındaki sütunların sıralamasına dikkat edin: id,sameAs,sameAsNote
Tür Açıklama
id Bu sütun, OCD kimliklerinin takma adlarını içermelidir.
sameAs Bu sütun, takma adlarını eklediğimiz gerçek OCD kimliklerini içermelidir.
sameAsNote Bölümün nasıl ve neden birden fazla tanımlayıcıya sahip olduğunu açıklayan not.

Örnek: identifiers/country-in/aliases.csv

Komut dosyasını çalıştırın: compile.py

Python komut dosyasını opencivicdata/ocd-division-ids/scripts konumunda çalıştırın:

  • Hangi ülkenin tanımlayıcılarının güncellenmesi gerektiğini bilmesi için komut dosyasına bağımsız değişken olarak 2 harfli ülke kodunu belirtmeniz gerekir.
  • Örnek: python3 komut dosyaları/der.py içinde (Hindistan'daki seçim noktalarının OCD kimliklerini güncellemek için).
  • Python 2.x destek almaz. Bunun için Python 3 veya daha yeni sürümler kullanmanız gerekir. Python 3'ün en son sürümünü buradan indirebilirsiniz.

Komut dosyası, önceki adımda güncellenen CSV dosyalarından veri alır (ocd-division-ids/identifiers/country-in/*.csv), dosyalardaki değerleri doğrular, veri hatası (özel karakter kullanımı vb.) olup olmadığını kontrol eder ve yeni OCD kimliklerini üst düzey ülke CSV dosyasına yazar.

Güncellenen CSV dosyalarında herhangi bir sorun oluşursa komut dosyası hata ve uyarı mesajları verir. Sorunları giderin ve komut dosyasını tekrar çalıştırın.

Benioku dosyası ekle

Yeni bir ülke veya yeni bir kapsam düzeyi eklediğinizde (örneğin, daha önce ülke için yalnızca bir OCD kimliğimiz vardı, ancak şimdi birinci düzey idari bölgeleri ekliyoruz), bir README.md dosyası ekleyin veya mevcut dosyayı güncelleyin. Bu dosya, aşağıdakiler de dahil olmak üzere siyasi coğrafyanın kısa bir özetini içermelidir:

  • Kullanacağımız türler ve rolleri (ör. "districts bu ülkedeki birinci düzey idari bölgedir")
  • Türler arasındaki ilişkiler ("yasama bölgeleri bölge bazında atanır ve bölge sınırlarını aşmaz" gibi);
  • Önemli istisnalar (ör. "tüm denizaşırı vatandaşları kapsayan tek bir yasama bölgesi vardır") ve
  • Bir yorumcuya veya kullanıcıya bağlam sağlamaya yardımcı olacak faydalı Wikipedia sayfalarının bağlantıları.

Pull isteği oluşturma

Pull isteği oluşturmak için aşağıdaki kılavuzu kullanın:

  • Bu işlem hatasız olarak tamamlandıktan sonra, yeni yazılan üst düzey ülke-<2 harfli ülke kodu>.csv dosyasını kontrol ederek dosyanın güncellenmiş/yeni OCD kimlik grubunu içerdiğinden emin olun.
  • Pull isteği oluşturun ve incelemeciler ekleyin. Bu pull isteği, aşağıdaki CSV dosyalarının tümünde yapılan değişiklikleri içermelidir.
  • Ülkeye özgü dizindeki CSV dosyaları. Örnek
  • Üst düzey ülke -<2 harfli ülke kodu>.csv dosyası. Örnek
  • Çekme isteği ülkenin ilgili makamlarından ikisi tarafından incelenip onaylandıktan sonra paketin sahiplerinden/ortak çalışanlarından biri tarafından birleştirilir.