İngilizce Metin: https://o-date.github.io/draft/book/using-application-programming-interfaces-apis-to-retrieve-data.html
🔧 Launch the Working with APIs binder.
Working with APIs binder başlatın .
Bazen bu bilgisayardaki bir programın web aracılığıyla o bilgisayardaki başka bir programla konuşabilmesi yararlı olabilir . Bu, ‘uygulama programlama arayüzlerinin’ (API) kullanılmasıyla gerçekleştirilir. Karşılaşmış olabileceğiniz bir örnek, telefonunuzdaki bir fotoğrafı bir tür sosyal medya web sitesinde paylaşmaktır; telefonunuzdaki program siteyle (örneğin Twitter) iletişim kurar ve bu gönderiyi sizin için yapar. API, bir dizi komut veya hatta diğer bilgisayara programlı erişime izin veren bir tür dil olarak düşünülebilir; belki de bir görsel aramanın sonuçlarının nasıl indirileceğini belirlemenin veya arkeolojik bir veritabanındaki her kaydın nasıl alınacağını belirlemenin bir yolu. daha sonra analiz edebileceğiniz bir formatta belirli bir kalıba uyan.
Kayıtlarını açmak için API kullanan mükemmel bir arkeolojik veri tabanı Open Context’dir. Open Context, arkeolojik verileri titiz bir editoryal süreçten sonra yayınlar. API’si yönlü aramaya izin verecek şekilde tasarlanmıştır. Yani verilerdeki toplu kalıpları anlayabilmemiz için verileri özetlemenin bir yolunu sağlar. Ayrıca bireysel kayıtları bulmak için bir yol sağlar. Çoğu API gibi, daha fazla hesaplama çalışmasına olanak sağlamak için verileri JSON formatında sağlar. JSON insan tarafından okunabilen bir metin dosyasıdır. JSON, verileri nitelik-değer çiftleri veya bu çiftlerin listeleri halinde düzenler. (Bunu, muhtemelen alışkın olduğunuz, her satırın bir varlık ve her sütunun o varlığın bir niteliği olduğu CSV veya Excel dosyalarıyla karşılaştırın).
Arkeologların ilgisini çeken verileri içeren birçok web sitesinin bir API’si yoktur. Birçok kullanım durumunda, verileri tablo değerlerinin basit indirilmesi olarak kullanıma sunmak genellikle yeterli olabilir. Ancak bir API, başka bir uygulama veya web sitesi için verileri geldikçe güncelleyerek bir iş akışının parçası olarak kullanılabilmesi açısından değerlidir. Birden fazla kişinin verileri güncellediği veya katkıda bulunduğu durumlarda bir API çok yararlı olabilir. Veritabanındaki veri miktarı çok büyükse verileri dünyaya açmanın tek pratik yolu API olabilir.
Jupyter not defterlerinde size birkaç farklı API’den veri almak için bazı kodlar gösteriyoruz. Bunlardan ilki, Kongre Kütüphanesi tarafından tutulan, Amerika Birleşik Devletleri’nin dört bir yanından gelen tarihi gazetelerin bulunduğu ‘Chronicling America’ web sitesidir. Tim Sherrat’ın Avustralya Ulusal Kütüphanesi’ndeki Trove API’sini sorgulamak için kullandığı kodu yeniden kullanarak API’ye erişim kodumuzu geliştirdik (bu da tesadüfen kod paylaşmanın değerini bir kez daha vurguluyor!). Bizim versiyonumuz bu repoda . Bu kodu incelerseniz sorguyu python’da nasıl oluşturduğumuzu görebilirsiniz.
Biz –
- API’lerin ‘uç noktasının’ bulunduğu konumu tanımladı. Yani API’ye komutları iletebileceğimiz URL;
- API’nin kullandığı parametrelerden birini belirledik
proxtext
ve arama değerimizi ona atadık - sonuçların hangi formatta döndürüleceğini de belirttik (örneğin, json)
- ve sonra python modülüne yalnızca uç noktayı değil aynı zamanda aramamızın tüm parametrelerini belirten tam URL’yi ‘içe aktardığını’ söyledik. ‘İçe aktarma’ modülü bizim için gerçek bilgi alma işlemini gerçekleştirir, dolayısıyla bunu sıfırdan programlamamıza gerek yoktur.
Kodun geri kalanı verileri alır ve inceleyebileceğimiz veya dosyaya kaydedebileceğimiz bir değişkene koyar.
API’ler ilk başta korkutucu görünebilir. Bunun bir nedeni, birçok geliştiricinin ilk etapta API’lerinin belgelerini oluşturmak için otomatik araçlar kullanmasıdır! Sonuç, geri kalanımızın büyük ölçüde anlaşılması mümkün olmayan yoğun bir terim ve jargon çorbasıdır. Açık Bağlam API’si ve geliştiricileriyle ilgili güzel şeylerden biri de API’nin nasıl kullanılacağına ve onu kullanarak yapmak isteyebileceğiniz bazı ortak görevlere ilişkin örnekler sunmalarıdır. Programatik sorgulama için geniş ölçekli veri havuzlarımız olduğunda etkinleştirilen burs türünün bir örneği Anderson vd.’dır (2017).
2.6.1 Alıştırmalar
- ‘Chronicling America API’ not defterini açın. Sonuçların bulunduğu bir json dosyası elde etmek için çeşitli adımları izleyin. 19. yüzyılda Amerika Birleşik Devletleri’nde arkeolojinin kamusal algısı hakkında bir makale yazdığınızı hayal edin. Çalışmanız için birincil kaynak materyali bulabilmeniz için not defterinizi değiştirin. Daha da ilerisi için: Dünyanın başka bir yerindeki tarihi gazeteler için başka bir API bulun. Not defterini çoğaltın ve bu diğer API’yi arayacak şekilde değiştirin; böylece kültürler arası karşılaştırma için materyale sahip olabilirsiniz.
- ‘Open Context API’sini’ açın. İlk deftere ne kadar benzediğine dikkat edin! İşe yaradığını görebilmeniz için adımları izleyin. Open Context API belgelerini inceleyin. Belirli bir proje veya siteden materyal döndürmek için aramayı değiştirin.
- Son not defteri olan ‘Open Context Measurements’, Open Context API’sine yapılan çok daha karmaşık bir dizi çağrıdır (Eric Kansa’nın izniyle). Bu not defterinde, faunal kalıntıları tanımlayan o alandaki standartlaştırılmış sözcükleri kullanarak Açık Bağlamda tutulan zoolojik verileri arıyoruz. Kodu dikkatlice inceleyin; bir dizi iç içe geçmiş “if” ifadesi görüyor musunuz? Verilerin genellikle JSON nitelik:değer çiftleri kullanılarak tanımlandığını unutmayın. Bunlar Rus bebekleri gibi iç içe yerleştirilebilir. Bu ‘eğer’ ifadeleri dizisi, faunal bilgileri arayarak verileri bu iç içe geçmiş seviyelere ayrıştırır. Open Context, çeşitli Bağlı Açık Veri şemalarıyla birlikte çalışabilirliği mümkün kılan ( burada görebileceğiniz) veri kategorizasyonunun ontolojisini veya resmi tanımını kullanıyor. Kodun her bölümünü çalıştırın. Çizimin nasıl yapılacağını tanımlayan bölümü görüyor musunuz? Bu kod, not defterinin ilerleyen kısımlarında çağrılacak ve farklı türdeki faunal verilerin sayımlarını çizmemizi sağlayacaktır. Farklı kategoriler çizmeyi deneyin.
- Yukarıdaki not defterleri Python’da yazılmıştır. Ayrıca R istatistiksel programlama dilini kullanarak API’lerle etkileşime geçebiliriz. Portable Antiquities Scheme veritabanının da bir API’si vardır. Bu binder başlatın ve ‘Retrieving Data from the Portable Antiquities Scheme Database’ not defterini açın (Daniel Pett’in izniyle). Bu defter iki bölümden oluşuyor. İlki bir sorguyu çerçeveler ve ardından sonucu sizin için bir csv dosyasına yazar. Orta Çağ materyalleri için sorgu aramasının nasıl yapılacağını öğrenin ve daha fazla veri alanını tutmak için bir csv yazın.
- Notebook’un Portable Antiquities Scheme veritabanıyla etkileşime giren ikinci kısmı, her öğeye ait görsellerin Plan sunucularında nerede bulunduğunu belirlemek ve bunları indirmek için bu csv dosyasını kullanır. Bunu, 4.2’de açıklandığı gibi bir görüntü sınıflandırıcı oluşturmak için yararlı bulabilirsiniz .
Daha da ileri giderek, Programming Historian creating a web API konusunda bir dersi var . Bu dersi takip edin ve oluşturduğunuz veya erişebildiğiniz bazı arkeolojik verilere hizmet eden bir web API oluşturun.
Anthropology undergraduates at Michigan State University tarafından oluşturulan gazetteer olan Digital Atlas of Egyptian Archaeology’a bakılabilir. Kaynak veriye buradan ulaşılabilir.
Referanslar
Anderson, David G., Thaddeus G. Bissett, Stephen J. Yerka, Joshua J. Wells, Eric C. Kansa, Sarah W. Kansa, Kelsey Noack Myers, R. Carl DeMuth, and Devin A. White. 2017. “Sea-Level Rise and Archaeological Site Destruction: An Example from the Southeastern United States Using Dinaa (Digital Index of North American Archaeology).” Sea-Level Rise and Archaeological Site Destruction: An Example from the Southeastern United States Using DINAA (Digital Index of North American Archaeology). https://doi.org/10.1371/journal.pone.0188142.