İnsan soyunu yazılımsal olarak modellemek, ilk bakışta masum bir aile ağacı çizmek gibi görünür: kökte büyük büyük büyükanne, dallarda çocuklar, yapraklarda biz. Fakat biraz yaklaşınca tablo çatırdamaya başlar. Çünkü insanlık tarihi, düzenli klasörlere ayrılmış fotoğraflardan değil; göçlerden, kayıp kayıtlardan, evlat edinmelerden, bilinmeyen babalardan, akraba evliliklerinden, mutasyonlardan ve bazen de aile yemeklerinde kimsenin konuşmak istemediği sırlardan oluşur. Yani mesele yalnızca “Ahmet, Mehmet’in babasıdır” demek değildir; mesele, biyolojik aktarımı, kültürel kimliği ve belirsizliği aynı veri yapısında yaşatabilmektir.
Hiyerarşi Güzel, Ama Hayat Daha Kurnaz
Hiyerarşik veritabanları, veriyi ağaç biçiminde düzenler: her düğümün bir ebeveyni, onun da çocukları vardır. Dosya sistemleri, organizasyon şemaları ve klasik soy ağaçları bu modele çok yakındır. Bir kişinin anne ve babasını üst düğümler, çocuklarını alt düğümler olarak düşünürüz. Sorgu da basittir: “Bu kişinin ataları kimler?”, “Şu soydan kimler geliyor?” Ağaçta yukarı çık, aşağı in, dalları takip et.
Fakat genetik aktarım açısından insan soyu tam bir ağaç değildir; daha çok yönlü, katmanlı ve zaman içinde kıvrılan bir graf yapısıdır. Her bireyin iki biyolojik ebeveyni vardır. Bu bile tek ebeveynli klasik hiyerarşiyi zorlar. Dahası, kuzen evlilikleri gibi durumlarda aynı ata, ağacın farklı dallarında tekrar belirir. Böylece soy ağacı bir noktada ağaç olmaktan çıkar, döngüye benzeyen bağlantılar taşıyan karmaşık bir ağa dönüşür. Yazılım geliştirici için bu, “güzelim veri modeli neden gece yarısı hata veriyor?” sorusunun genetik versiyonudur.
Genleri Nesne, İlişkileri Kenar Gibi Düşünmek
Bu nedenle sağlam bir modelde kişi tablosu ya da kişi düğümü tek başına yeterli değildir. Birey, doğum tarihi, ölüm tarihi, cinsiyet, coğrafya ve kimlik bilgileriyle temsil edilebilir; fakat genetik aktarım için ilişki türleri ayrıca tanımlanmalıdır. “Biyolojik anne”, “biyolojik baba”, “evlat edinen ebeveyn”, “sosyal ebeveyn”, “taşıyıcı”, “donör” gibi ilişki tipleri ayrıştırılmalıdır. Çünkü yazılım açısından ilişki yalnızca çizgi değildir; anlam taşıyan bir kenardır.
Burada ilişkisel veritabanı, grafik veritabanı ve belge tabanlı yaklaşımlar arasında seçim yapmak gerekir. İlişkisel model, tutarlılık ve sorgu disiplini sağlar. Örneğin kişi, ilişki ve genetik işaretçi tablolarıyla güçlü bir omurga kurulabilir. Grafik veritabanları ise soy, akrabalık ve uzak bağlantıları keşfetmekte daha çeviktir. “Bu iki kişi kaç kuşak öteden akraba?”, “Ortak ata nerede?”, “Belirli bir mutasyon hangi hat üzerinden taşınmış olabilir?” gibi sorular graf dünyasında doğal biçimde ifade edilir.
DNA: Sessiz Ama Gürültülü Veri
Genetik veri aktarımını modellemek için yalnızca aile bağlarını kaydetmek yetmez. DNA, olasılıklarla konuşur. Çocuk, anne ve babasından kromozomların karışmış bir kombinasyonunu alır. Rekombinasyon nedeniyle aktarım, fotokopi değil, ustaca karılmış bir deste kart gibidir. Bu yüzden sistem, kesin soy ilişkilerinin yanında olasılıksal kalıtım modellerini de barındırmalıdır. Belirli bir gen varyantının kimden geldiğini anlamak bazen doğrudan bellidir, bazen de istatistiksel tahmindir.
Bu noktada yazılım mimarisi iki seviyeli düşünmelidir: birincisi soy ilişkileri, ikincisi genetik varyantların aktarım yolları. İlk katman aile ağını kurar; ikinci katman bu ağ üzerinde genetik işaretçilerin nasıl ilerlediğini analiz eder. Böylece veri modeli yalnızca “kim kimin nesi?” sorusunu değil, “hangi biyolojik bilgi hangi olasılıkla hangi kuşaktan geldi?” sorusunu da yanıtlar.
Mahremiyet: En Kritik Güvenlik Duvarı
Elbette böyle bir sistem teknik olduğu kadar etik bir mayın tarlasıdır. Genetik veri, sıradan kişisel veri değildir; bir kişinin DNA’sı, aynı zamanda ailesi hakkında da bilgi verir. Bir bireyin verisini açığa çıkarmak, kuzenlerinin, kardeşlerinin, doğmamış çocuklarının bile mahremiyetini etkileyebilir. Bu nedenle erişim kontrolü, anonimleştirme, şifreleme, açık rıza ve veri minimizasyonu mimarinin sonradan eklenen aksesuarları değil, temel kolonları olmalıdır.
Sonuçta insan soyunu modellemek, geçmişi dijital bir dolaba kaldırmak değildir. Bu, biyolojinin kaotik zarafetini yazılımın mantıksal disiplinine çevirmeye çalışmaktır. Hiyerarşik veritabanları bize başlangıç için güzel bir merdiven sunar; fakat insanlık merdivenden ibaret değildir. Bizler düğümler, kenarlar, mutasyonlar, anılar ve ihtimallerden oluşan canlı bir veri evreniyiz. Belki de en doğru model şunu kabul eden modeldir: Soy ağacı bir ağaç gibi başlar, ama insan hikâyesi her zaman dallardan fazlasını ister.