deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak dev.to (home feed)

Açık API, Nijerya'nın 752 yükseköğretim kurumunu sorgulanabilir yapılandırılmış veriye dönüştürüyor

Bir geliştirici, Nijerya'daki tüm 752 üniversite, politteknik ve eğitim enstitüsünü kapsayan ücretsiz, kendi sunucunuzda barındırılabilir bir API ve CC0 veri seti yayımladı; satır bazlı etiketler doğrulanmış veriler ile çıkarımlara dayalı kayıtları birbirinden ayırıyor.

Açık API, Nijerya'nın 752 yükseköğretim kurumunu sorgulanabilir yapılandırılmış veriye dönüştürüyor

Sadece PDF'lerin olduğu yerde bir API

Bir geliştirici, Nijerya'daki tüm 752 üniversite, politteknik ve eğitim enstitüsüne ait verileri yapılandırılmış, sorgulanabilir bir formatta sunan ücretsiz, açık kaynaklı bir API yayımladı. dev.to'da yazan ve devfarouqk takma adıyla yayın yapan yazar, projenin kişisel bir hayal kırıklığından doğduğunu söylüyor: Nijerya'daki yükseköğretim kurumlarının temiz bir listesini arayan herkes, statik blog yazılarıyla ve sıklıkla birbiriyle çelişen yıllar önceki PDF'lerle karşılaşıyor; bu da bilgiyi veri olarak tüketmek yerine elle yeniden yazmayı gerektiriyor. Bu malzeme için açık bir API mevcut olmadığından, yazar bir tane kendisi geliştirdi.

Veri neyi kapsıyor

dev.to gönderisine göre veri seti 312 üniversiteyi (77 federal, 67 eyalet, 168 özel), 200 polittekniği (41 federal, 61 eyalet, 98 özel) ve 240 eğitim enstitüsünü (30 federal, 43 eyalet, 167 özel) kapsıyor. Her kayıt, kurumun sahiplik kategorisini, eyaletini, biliniyorsa kuruluş yılını ve — bilgi kamuya açık olduğunda — altındaki school, faculty veya department yapısını taşıyor.

Veri modeli dört seviye derinliğinde: kurum, ardından school, faculty veya college, ardından department, ardından eğitim programı. Eğitim programı, bir öğrencinin kaydolduğu belirli adlandırılmış programı — bir B.Sc., bir HND veya bir NCE — ifade ediyor; tek bir ders veya modülü değil.

Barındırılan değil, kendi sunucunuzda barındırılan

nigeria-tertiary-institutions-api projesi, yazarın herkes için işlettiği bir servis değil. Bilinçli olarak self-hosted olacak şekilde tasarlandı: kullanıcılar repository'yi klonluyor, npm install ve npm start komutlarını çalıştırıyor ve kendi örneklerini yerel olarak ya da istedikleri herhangi bir yerde konuşlandırıyor. Gönderide verilen gerekçe, tek bir ücretsiz katman sunucusunun tüm dünya için production trafiğini güvenilir biçimde sunamayacağı; buna karşılık self-host etmesi son derece kolay bir projenin kaç kişiye gerekli olursa olsun ölçeklenebilmesidir.

Veri setinin tamamı üç CSV dosyasında bulunuyor ve bir prestart betiği bunları başlangıçta yerel bir SQLite veritabanında derliyor. Kurulacak ayrı bir veritabanı sunucusu da, yazılacak bir yapılandırma dosyası da yok. README, Render, Railway, Fly.io, Docker veya sıradan bir VPS üzerinde konuşlandırmayı adım adım anlatıyor; sağlanması gereken bir şey olmadığından hepsi fiilen tek komutluk işlemler. API anahtarı koruması isteğe bağlıdır ve tek bir ortam değişkeniyle etkinleştirilir; geliştirici bunu, genel bir örneğin anonim olarak scrape edilmesini caydırmaya yönelik paylaşılan gizli anahtar denetimi olarak tanımlıyor, gerçek kullanıcı bazlı kimlik doğrulamanın yerine geçecek bir şey olarak değil.

Çıkarılan ve doğrulanan

Projenin en ayırt edici tercihi belirsizlikle nasıl başa çıktığı. Kurum-school-department katmanı, yayınlanmış fakülte yapılarını kurum kurum resmi kaynaklarla karşılaştırarak canlı bir araştırmayla derlendi; bir yapı doğrulanamadığında kayıt tahmin etmek yerine bunu açıkça belirtiyor.

Eğitim programı verisi farklı ele alınıyor. Ayrıştırılan 1.700'den fazla department için fiilen verilen nitelikleri doğrulamak pratik değildi, çünkü çoğu kurum bu bilgiyi dizinlenebilir hiçbir yerde yayımlamıyor. Bu satırlar yerine belgelenmiş bir adlandırma kuralından üretiliyor: politteknik department'ları standart ND'den HND'ye uzanan basamağı alıyor, eğitim enstitüsü department'ları NCE alıyor, üniversite department'ları ise konu anahtar kelimelerini belgelenmiş bir tabloyla eşleştirerek seçilen bir nitelik alıyor ve varsayılan B.Sc. Kritik nokta şudur: üretilen her satır, API yanıtının kendisinde yalnızca README'de değil — inferred olarak etiketleniyor; böylece katkıda bulunanlar belirli kurumların program listelerini doğrularsa doğrulanmış bir katmana yer bırakılıyor.

Üreticinin ortaya çıkardığı bir hata

Nitelikleri üretmeden önce department adlarını sağlama çekerken geliştirici, "ND Aba" ve "HND est. 1992" gibi girdiler buldu. Nedeni: bazı kaynak hücreleri kapanış notlarını — kuruluş yılları, ad değişikliği geçmişi, sahiplik açıklamaları — son school'ın parantezlerinin içine ekliyor ve ayrıştırıcı bu metni tam bir department listesiymiş gibi bölmüş. Bu örüntü, kimse fark etmeden önce yaklaşık 500 uydurma department satırı sessizce üretmişti. Artık bir filtre, yıl veya ad değişikliği ifadesi gibi not benzeri içeriği tanııyor ve onu not olarak değerlendirirken özgün ham metne dokunmuyor.

Lisanslama ve bakım

Kod MIT lisanslı ve veri CC0 ile yayımlandı. Nijerya kurumları yılda birkaç kez ad değiştirdiği, birleştiği veya yükseltildiği için veri setinin zamanla sapması bekleniyor; yazar, düzeltmeleri ve pull request'leri projenin katkı kılavuzu aracılığıyla davet ediyor.

Neden önemli

Kamu eğitim verisi üzerine kurulu faydalı araçlar — kabul platformları, EdTech ürünleri, araştırma projeleri — çoğu zaman bilgi eksikliğinden değil, düz metin ve PDF'lerin içine hapsolmuş bilgiden engelleniyor. Bu proje dağınık bir kamu kaydını herkesin sorgulayabileceği yapılandırılmış veriye dönüştürüyor ve kaynak etiketlemesi diğer veri setleri için aktarılabilir bir örüntü sunuyor: doğrulanmış satırları çıkarılan satırlardan, uyarıları belgelere gömmek yerine API düzeyinde ayırt etmek. Hata öyküsü de kendi dersini taşıyor — yapı uydurmaya karşı kuralların yalnızca politika olarak yazılmakla kalmayıp verinin kendisinde de uygulanması gerekiyor.

  • #open-source
  • #api
  • #open-data
  • #nigeria
  • #education

İlgili yazılar