Kişisel Veriyi Gerçekte Taşınabilir Yapan Nedir?
"Taşınabilir" tek bir özellik değildir. Üç tanedir ve onları birbirine karıştırmak asıl hatadır: bir satıcının "verileriniz taşınabilir" derken sessizce o cümlenin yalnızca üçte birini kastetmesine izin veren hata. Solidus Pod'un ne yapıp ne yapmadığına dair herhangi bir iddiadan önce, üç sorunun ayrılması gerekir:

① Biçim kilidi: veri, başka bir sistemin okuyabileceği bir şekilde çıkabilir mi? ② Protokol kilidi: başka sistemlerin zaten konuştuğu bir kanaldan hareket edebilir mi? ③ Kimlik kilidi: tek bir kimlik sistemine mi bağlı, yoksa o da gezebilir mi? Üç kilit burada bilerek özdeş görünüyor: bu sayfa hangisinin açık olduğuna önceden hükmetmeyecek.
Bir sistem birine "evet", diğer ikisine "hayır" diyebilir ve yalnızca çözdüğünden söz eden bir satıcı tam olarak yalan söylemiyordur; diğer ikisinin bedava geldiğini varsaymanıza izin veriyordur. Gelmezler. Her biri, kendi kanıtı olan ayrı bir mühendisliktir.
Biçim kilidi: veri, başka bir sistemin okuyabileceği bir şekilde çıkabilir mi?
Biçim, baytların kendisiyle ilgilidir. Solid'in yerel cevabı, yaygın olarak Turtle ile serileştirilen RDF'dir: grafik biçimli, kendini tarif eden ve Solid'i bilen herhangi bir aracın onu kimin yazdığını hiç bilmeden ayrıştırabileceği bir biçim. Bu, biçim kilidine verilmiş gerçek ve bağımsız olarak tasarlanmış bir cevaptır ve bu üründen tamamen öncedir.
Solidus Pod'un kendi cevabı daha küçük ve daha alışıldıktır. Bu ürünün gerçekten sahip olduğu JWT+Postgres katmanındaki uygulama düzeyi verisi ilişkiseldir ve JSON'dur, RDF üçlüleri değil. Bu bir yuvarlama hatası değil gerçek bir boşluktur: bir Postgres satırından alınan bir JSON dışa aktarımı sıradan anlamda taşınabilirdir (JSON okuyan her sistem onu kullanabilir), ama RDF anlamında değildir (Turtle bekleyen Solid yerlisi bir araç, kimsenin inşa etmediği bir çeviri adımı olmadan hiçbir işe yarar şey almaz). Yerelde, bu ürünün çalıştırdığı Community Solid Server bileşeni gerçek RDF/Turtle sunar, çünkü CSS değiştirilmemiş yukarı akış Solid yazılımıdır; ama bu, Solidus'un mühendisliğini yaptığı bir cevap değil CSS'in biçim cevabıdır.
Protokol kilidi: başka sistemlerin zaten konuştuğu bir kanaldan hareket edebilir mi?
Biçim "verinin şekli nedir"i yanıtlar. Protokol "onu nasıl istersin"i yanıtlar. Solid'in buradaki cevabı LDP'dir, yani Bağlı Veri Platformu; Solid'den de eski bir W3C Tavsiyesi olan ve LDP'yi bilen her istemcinin ısmarlama bir entegrasyon olmadan zaten nasıl kullanacağını bildiği konteynerleri, okuma/yazma semantiğini ve içerik pazarlığını tanımlayan bir standart.
Solidus'un kendi köprüsü ve API uç noktaları alışılmış bir REST API'sidir: istek girer, JSON çıkar; konteyner semantiği yok, RDF ortam türlerine karşı içerik pazarlığı yok. Bu, "başka bir adla çalışan LDP" değildir; farklı garantilerle ilgili bir işi yapan farklı bir katmandır. Bir REST istemcisi onunla kolayca konuşabilir, ama gerçek Solid pod'ları için zaten var olan türden bir LDP istemcisi tanıdığı hiçbir şeyi almaz. Bunun gerçekten sınandığı yer dağıtılmış örnektir: curl -sI https://pod.solidus.network/ bir Next.js ön yüzü döndürür, LDP başlıkları değil: bu yığının LDP konuşan yarısı, açık alan adının önünde değil, yerelde Community Solid Server'a karşı çalışır. pnpm install && pnpm start ve curl -sI http://localhost:3101/ çalıştırın ve CSS'in kendi başına döndürdüğü gerçek LDP + Accept-Patch başlıklarını görün; daha dolu uygunluk tablosu, burada tekrarlanmak yerine Solid Uyumluluğu sayfasında serilmiştir.
Kimlik kilidi: veri tek bir kimlik sistemine bağlı mı kalıyor?
Üçüncü soru ilk ikisinden ayrıdır: veriniz taşınabilir bir biçimde, taşınabilir bir protokol üzerinden çıkabilse bile, hâlâ yalnızca tek bir sistemin tanıdığı bir tanımlayıcıyla mı adresleniyor? Solid buna WebID ile cevap verir: bir RDF profiline çözümlenen, Solid'i bilen her istemcinin kullanabildiği ve arkasında yılların gerçek kurumsal dağıtımı olan (BBC, NHS, Flaman hükümeti) bir web adresi.
Solidus buna bunun yerine did:solidus ile cevap verir: zincire demirlenmiş, W3C DID Method Registry içinde kayıtlı (bir sicil listelemesi, bir W3C standardı değil) ve iptali bir belge düzenlemesi yerine bir uzlaşma kuralı olarak uygulanan bir tanımlayıcı. Bu, kanıtlanmış bir üstünlük değil gerçek bir mimari bahistir ve onu yeniden tartışmak bu sayfanın işi değildir: her iki tarafın ne kazanıp neden vazgeçtiğine dair tam simetrik takas WebID ve did:solidus sayfasında işlenmiştir. Burada önemli olan daha dardır: did:solidus, bir WebID'nin çözümlendiği gibi Solid ekosisteminin içinde çözümlenmez ve bir WebID profili bekleyen Solid yerlisi bir uygulama, üretimde hâlâ canlı değil mimarisi kurulmuş olan bir köprü olmadan did:solidus tanımlayıcısından kullanılabilir hiçbir şey almaz.
Karar, tam olarak
Üç kilidin hiçbiri temiz bir "çözüldü" değil. Solidus Pod'da Gerçekte Ne Canlı sayfasındaki deftere karşı kaynaklandırılmış ve bu yazının hazırlandığı gün canlı örneğe karşı kontrol edilmiş hâliyle (curl -sI https://pod.solidus.network/ bir Next.js ön yüzü döndürür, LDP başlıkları değil; curl -sI http://localhost:3101/ yerelde gerçek LDP + Accept-Patch döndürür):
- Biçim kilidi, kısmen açık. Gerçek RDF/Turtle mevcut, ama yalnızca yerel Community Solid Server örneğinde, üretimde kanıtlanmış değil; bu ürünün gerçekten sahip olduğu uygulama düzeyi verisi RDF değil JSON/ilişkiseldir.
- Protokol kilidi, kısmen açık, aynı biçimde. LDP gerçektir, yerelde, değiştirilmemiş CSS içinde; kamuya dönük köprü ve API katmanı alışılmış REST'tir ve
pod.solidus.networkadresindeki istekleri yanıtlayan şey henüz CSS'in kendisi değildir. - Kimlik kilidi, mimarisi kurulmuş, sevk edilmemiş. Kimliğin iki sistem arasında gezmesini sağlayacak
did:solidusile Solid-OIDC/WebID köprüsü, bugün canlı bir üretim yolu değil, planlanmış ve işaretlenmemiş bir maddedir.
Bunların hiçbiri "çözüldü"ye yukarı yuvarlanmaz ve hiçbiri "burada bir şey yok"a aşağı yuvarlanmaz: yerelde çalışan, değiştirilmemiş CSS gerçek ve kanıtlanmış Solid yazılımıdır; üç kilidin tamamındaki üretim köprüsü ise gerçek ve bitmemiş mühendisliktir. İki yarı da aynı anda doğrudur.
Bu ne demek, ne demek değil
Bu, Solidus Pod'un tamamen taşınabilir olduğu iddiası değildir ve denemediği iddiası da değildir. "Taşınabilir"in tek bir sözcük yerine üç ayrı karara ihtiyacı olduğu ve size üçünü ayrı ayrı vermeye yanaşmayan bir satıcının soruyu yanıtlamayı bitirmediği iddiasıdır. Solid kişisel veri depolamayı ve erişim denetimini çözdü, yani WebID, LDP, WAC/ACL, RDF, ve bunu bu ürün var olmadan yıllar önce gerçek kurumsal dağıtımlarla yaptı; Solidus bunların hiçbirini inşa etmedi. Bu ürünün Solid'e değdiği yerde, o topluluktan gelen gerçek yazılım olan Community Solid Server'ı bir araya getirir ve üstüne tek bir kimlik bahsi katmanlar. Bu üç kararın çıkarıldığı tam sevk edilen/planlanan defteri Solidus Pod'da Gerçekte Ne Canlı sayfasında yaşar; protokol kilidi bölümünün ardındaki daha dolu uygunluk ele alınışı ise Solid Uyumluluğu sayfasında.
Bu, sayfanın altındaki bir çekince değildir: yukarıdaki her kararın okunması gereken koşuldur.