- Birleşik Krallık'taki pasaport başvuru sürecine bir bulmaca oyunu gibi bakıp, bu karmaşık başvuru sürecini Haskell ile programlayarak kurallara dökme deneyimi ele alınıyor
- Çevrimiçi pasaport başvurusunda çeşitli belgeleri toplamak, karmaşık kuralları yorumlamak ve beklenmedik yan görevler sürecin temel eğlence unsurları olarak öne çıkıyor
- Başvuru sürecinin mantığı, 'Constructive Logic' ile ilişkilendirilerek her bir ispatı destekleyen orijinal belgelerin zorunlu olduğu vurgulanıyor
- Haskell'in LogicT monadı ve durum yönetimi (State) kullanılarak gerekli belge listesi ile Birleşik Krallık vatandaşlığı ispatının mantıksal yolları takip ediliyor
- HMPO'nun pratikte en karmaşık ispat yolunu önce isteme eğiliminde olduğu, otomasyon araçlarının ise karmaşık hukuk yorumlarının sınırları nedeniyle yavaş benimsendiği belirtiliyor
Giriş: Pasaport başvurusunu bir oyun gibi görmek
- Son dönemde programlama kullanarak çevrimiçi oyunları veya bulmacaları çözme eğilimi artarken, Birleşik Krallık'ın Passport Application süreci de bu gözle ele alınıyor
- Passport Application, yaklaşık £100 maliyeti ve son derece minimalist metin tabanlı tasarımıyla Britanyalıların her 10 yılda bir oynadığı bir tür "macera-bulmaca-belge toplama oyunu" olarak tanımlanıyor
- Bu oyunun amacı, çeşitli kamu kurumları üzerinden çeşitli kanıtlayıcı belgeleri (artefacts) toplayıp "bu başvuru sahibi Britanyalıdır" iddiasını karmaşık hukuki ölçütler altında kanıtlamak
- Oyunun ödülü ise bir pasaport kitapçığı ve "bir sonraki oynanışın mümkün olduğu tarih"
Oyunun yapısı ve zorluk seviyesi
- Kâğıt tabanlı çevrimdışı sürüm, taahhütlü posta ve doğrulama prosedürleriyle ilerliyor; her aşamada toplanması gereken belgeler yönergeler veya tablolar halinde sunuluyor
- İlk prosedürler görece kolay olsa da oyun ilerledikçe çeşitli "yan görevler" ve engeller ortaya çıkıyor
- Örneğin belirli bir mesleğe sahip bir tanıdıktan kimlik doğrulaması istemek, yabancı dildeki belgelerin onaylı çevirisini temin etmek, aileyle iş birliği içinde oynamak, her kamu kurumunun kendine özgü idari prosedürlerini keşfetmek
Deneyim: 'Yurt dışında doğmuş ilk çocuk' zorluğu
- Yazar, kendi yerine küçük kızının 'yurt dışında doğmuş ilk çocuk' zorluk seviyesine girişiyor ve daha önceki çok sayıdaki deneyimine dayanarak bunun oldukça zor olacağını öngörüyor
- Başlangıçta istenen belgelerin yarısının sonradan gereksiz olduğunun anlaşılması, belge talepleri ile açıklamaların oldukça muğlak ve kafa karıştırıcı biçimde tasarlandığını gösteriyor
- Sorumlu inceleyiciyle (examiner) doğrudan iletişim kurulamıyor; yalnızca çağrı merkezi aracısı üzerinden gayriresmî yardım alınabiliyor
- Sürekli ek belge talepleri ortaya çıkıyor, bazen var olmayan belgeler bile isteniyor; nadir aile atalarının doğum/evlilik belgelerini sunma talebi gibi durumlarla zorluk giderek artıyor
HMPO'nun mantığı: Bureaucratic Logic
- Pasaport başvurusunun mantığı, Constructive Logicten türeyen bir Bureaucratic Logic (bürokratik mantık) olarak görülebilir
- Basit bir "doğru/yanlış" ispatı yerine, her kurala karşılık gelen orijinal belge kanıtlarının doğrudan sunulması gerekiyor
- Dışlanan orta (Excluded Middle) kabul edilmediğinden, "hangi senaryo olursa olsun biri doğrudur" şeklinde bir ispat geçerli değil; mutlaka tek bir yol izlenip o yola ait belgeler sunulmalı
- Özellikle "Britishness", ebeveynlerin vatandaşlığına bağlı olduğundan belge talepleri aile ağacı biçiminde özyinelemeli olarak ilerliyor
- Temel durum: 1983 öncesi Birleşik Krallık doğumu, vatandaşlığa kabul gibi ebeveyn kanıtı gerektirmeyen haller
Kuralları Haskell koduyla modellemek
- Kuralları modülerleştirmek ve çıkarımı otomatikleştirmek amacıyla başvuru mantığı Haskell ile, özellikle LogicT monadı kullanılarak prototipleniyor
- Person/Document/Proof gibi tipler tanımlanarak her koşula karşılık gelen farklı belgeyle ispat yolları modelleniyor
- Britishness ispatı fonksiyonu, input (her person için bilgi) ile birlikte mümkün olan birden çok ispat yolunu (Set of Proofs) araştırıyor
- Proof ağacını izleyerek gerekli asgari belge kombinasyonları (Set of Set Document) çıkarılıyor
- StateT ve LogicT IO birleşimiyle etkileşimli sorgular ve ortak durum kullanımı sağlanıyor; "bilinen bilgiler"e göre dallanma ve geri izleme yapılıyor
- Birleşik Krallık vatandaşlık yapısını analiz eden mantık şunları içeriyor:
- Vatandaşlığa kabul kanıtı için tek yol
- 1983 öncesi Birleşik Krallık doğumu durumunda koşullu (temel) yol
- Ebeveyn üzerinden özyinelemeli ispat (yasal evlilik gibi ek koşullar dâhil)
- Ebeveynin BOTBD (British Otherwise Than By Descent) olup olmamasına göre ek istisna yolu
- Crown Service gibi istisna kuralları da kod içinde ele alınıyor
Örnek çalıştırma ve ispat yolları
- ghci üzerinden, başvuru sahibinin doğum yeri ve ebeveynlerin vatandaşlığı gibi gerçek girdilere göre toplam 3 farklı ispat (Proof) yolu otomatik olarak çıkarılıyor
- Her ispat yolu için talep edilen belgelerin (sertifikalar, evlilik belgeleri vb. kombinasyonları) listesi üretiliyor
- En karmaşık yolda, atalardan başlayarak geriye giden özyinelemeli ispat ve evlilik ilişkisinin kanıtlanması gerektiği görülüyor
Tartışma ve sonuç
- Gerçek hayatta HMPO'nun sanki özellikle en karmaşık ispat yolunu önce istiyormuş gibi göründüğü; fiilî hukuki çelişkiler veya ince ayrıntılı kuralların ise ayrı kılavuzlar ya da "balance of probabilities" ilkesiyle ele alındığı belirtiliyor
- Otomasyon araçları yaygınlaşırsa başvuru sahipleri kendi ispat yollarını ve gerekli belgeleri çok daha kolay anlayabilir
- Ancak hukuk son derece nüanslı ve değişken olduğu için, bilgisayarın basit bir "yes/no verdict" vermesine dayalı otomasyon riskli olabilir
- Yazar şu anda ikinci ve üçüncü yol üzerinden ispat denemelerini sürdürüyor
Referans kod ve belge yapısının özeti
- Haskell kodunun tamamı GitHub üzerinde görülebilir
- Çeşitli tipler, ispat yolları, modül yapısı ve sorgu fonksiyonları dâhil Haskell mantığının ayrıntılı uygulaması incelenebilir
1 yorum
Hacker News yorumu
SELECTile çözüldüğü bir ülkeden geldiğini, böyle bir yapının inanılmaz göründüğünü söylüyor.:ve=işaretlerinin bile yeni başlayanlar için kafa karıştırıcı olabildiği, dolayısıyla sezgiselliğin aşinalığın sonucu olduğu görüşü paylaşılıyor.multiverse) örtük olarak kabul ettiği şeklinde esprili bir yorumla anlatıldığı görülüyor. “NPC” rolündeki çağrı merkezi çalışanları ve operasyon personeli arasındaki iletişim tek yönlü bir dua (prayer) gibi hissediliyor; bilgi iletimi pek olmuyor. OP’nin Mornington Crescent oyununun hayranı olduğu tahmin ediliyor; pasaport başvurusu ve kurallarının buna benzediği söyleniyor.