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
Başlamadan önce:
İş istasyonunuzu hazırlayın:
OCD kimlik deposundan paketi çatallayın ve klonlayın.
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
veidentifiers/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.
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
veplace
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
veterritory
türleri kullanılır. - Örnek: CA'daki Yönetici Alanı 1 için
province
veterritory
türleri kullanılır. - Örnek: PT'deki Yönetici Alanı 1 için
region
veautonomous_region
türleri kullanılır.
- Örnek: ABD'de 1. Yönetici Alanı için
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
vesameAs = 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.
- Ö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:
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
veValidTo
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.