deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak Hacker News – Front Page (native)

Minigraf, Rust ile yazılmış tek dosyalık bi-temporal graf veritabanını Datalog sorgularıyla duyurdu

Hacker News'te paylaşılan yeni bir açık kaynak Rust projesi, tek bir dosyaya gömülü bir bi-temporal graf veritabanı sunuyor; Datalog sorguları AI ajanları, mobil uygulamalar ve tarayıcıyı hedefliyor.

Minigraf, Rust ile yazılmış tek dosyalık bi-temporal graf veritabanını Datalog sorgularıyla duyurdu

Rust ile yazılmış yeni bir açık kaynak veritabanı olan Minigraf, 5 Ekim 2026'da Hacker News'te paylaşıldı. Projenin GitHub README'sine göre, Minigraf bağlantılı verileri tek bir dosyada saklayan, kendi geçmişinin eksiksiz ve sorgulanabilir bir kaydını tutan bağımsız bir graf veritabanı — yazarlarının "bi-temporal graf veritabanlarının SQLite'ı" olarak tanımladığı bir birleşim.

İki saatli tek dosya

Minigraf olguları varlık-nitelik-değer (entity-attribute-value) biçiminde tutar ve bu üçlüler etkisel olarak grafların kenarlarıdır. Bir veritabanını açmak, .graph dosyasına yapılan tek bir constructor çağrısından ibarettir; sunucu süreci veya kurulum adımı yoktur. Proje, aynı dosya biçiminin yerel uygulamalar, WASM, mobil ve IoT hedeflerinde çalıştığını belirtiyor.

Belirleyici özellik bi-temporallik. Her olgu iki bağımsız zaman damgası taşır: transaction time, veritabanının olguyu ne zaman öğrendiğini; valid time ise dış dünyada ne zaman doğru olduğunu kaydeder. Sorgular bir :as-of transaction numarası belirtebilir; böylece bir uygulama, veritabanının geçmişteki herhangi bir karar anında tam olarak neye inandığını yeniden inşa edebilir — ve hatalı bir değeri daha sonra, özgün kaydı yok etmeden düzeltebilir.

Merkezde Datalog

Sorgu dili, SQL veya Cypher değil Datalog. README gerekçeleri şöyle sıralıyor: özyineleme (recursion) yerleşiktir, bu yüzden çok adımlı geçişler için özel bir söz dizimi gerekmez; küçük bir dil belirtimi doğru biçimde uygulamak için daha kolaydır; zaman, bir ilişkinin sıradan bir boyutu olarak ele alınabilir; ve bu yaklaşımın Datomic ve XTDB'de uzun bir geçmişi vardır. Yazarlar ayrıca açıkça pratik bir gerekçe de sunuyor — dilbilgisi, AI kodlama asistanlarının birkaç örnekle doğru sorgular üretebileceği kadar küçük ve tekdüzedir ve tüm dil bir system prompt'un içine sığar.

Düz kalıp eşleştirmesinin ötesinde, motor pencere fonksiyonları sunuyor — sum, count, min, max, avg, rank ve row-number, :find içinde partition-by ve order-by yan cümleleriyle — ayrıca geçişli erişilebilirlik için özyinelemeli kurallar ve bir kez parse edilip planlanıp ardından bağlı değerlerle defalarca çalıştırılan prepared statement'lar.

Geniş binding'ler, eşitsiz katmanlar

Mevcut sürüm crates.io'da 2.0.2 numaralı sürüm ve Rust 1.89 ya da daha yenisini gerektiriyor. Rust ve Python binding'leri Tier 1 olarak belirlenmiş durumda: tamamen test ediliyor ve çekirdekle eş zamanlı yayınlanıyor. Daha uzun bir Tier 2 hedef listesi — tarayıcı WASM, WASI, Node.js, JVM, Android, iOS/macOS ve C — deneysel olarak tanımlanıyor ve elden geldiğince bakım yapılıyor. Ayrıca veritabanını bir web sayfasında çalıştıran ve kullanıcılara grafin değişimini izlerken her iki zaman eksenini de kaydırma imkanı veren tarayıcı tabanlı bir görselleştirici var; .graph dosyalarını doğrudan açabiliyor.

Bilinen bir hata ve biçim kırılması

README kusurlar konusunda alışılmadık derecede açık. Issue #371 nedeniyle, tek bir çağrıda bir varlığın aynı niteliğine ait iki değer yazıldığında ya da geri alındığında, bunlar tek bir değer olarak okunabiliyor; geçici çözüm her yazma işlemini ayrı ayrı yapmak. Düzeltme disk üstü biçimi değiştirecek ve 3.0.0 sürümünde gelecek; bu sürümden sonra 2.x, 12 ay boyunca veri bütünlüğü ve güvenlik düzeltmeleri alacak. Proje, test paketinde 1.212 test bulunduğunu bildiriyor ve planlanan çalışmalar için herkese açık bir yol haritasına işaret ediyor.

Ajanlar için tasarlandı

Birincil hedef AI ajan belleği. Vaat şu: bir ajan inandıklarını saklayabilir, geçmişi kaybetmeden bu inançları revize edebilir ve neden öyle davrandığını denetlemek için önceki durumları yeniden oynatabilir. README, Minigraf'ı bir GraphRAG düzeninde bir vektör deposuyla eşleştirmeyi öneriyor — vektör deposu benzerliği ele alırken, Minigraf ilişkilerin ne olduğunu ve belirli bir anda neye inanıldığını yanıtlıyor — ve veritabanı üzerinde zamansal akıl yürüten bir ajan gösteren bir demo deposuna işaret ediyor.

Neden önemli

Ajan belleği çözülmemiş bir sorun ve bi-temporal model, denetim sorusuna az sayıdaki inandırıcı cevaptan biri: özerk bir sistem kötü bir karar verdiğinde, tam olarak neyi bildiğini ve ne zaman bildiğini öğrenmek istersiniz. Mevcut araçlar ödünleşimler dayatıyor — SQLite gömülü ama ne graf-yerel ne temporal; Neo4j bi-temporal geçmişi olmayan bir sunucu ürünü; XTDB Datalog ve bi-temporallik sunuyor ama tek dosyalık bir Rust kütüphanesi olarak değil. Bu karşılaştırmalar projenin kendi pazarlama tablosundan geliyor, bu yüzden bağımsız doğrulamayı hak ediyorlar; ayrıca proje açıkça genç: bir Show HN gönderisiyle yayına girdi, bilinen bir doğruluk hatasıyla geliyor ve planlanmış bir dosya biçimi kırılması var. Yine de hedeflediği birleşim — gömülü, tek dosyalık, graf-yerel, bi-temporal ve dil modellerine göre boyutlandırılmış bir sorgu dili — şu anda hiçbir ana akım veritabanının iddia etmediği bir şey ve bu bile nereye gideceğini izlemek için yeterli bir neden.

  • #rust
  • #graph-database
  • #datalog
  • #open-source
  • #ai-agents

İlgili yazılar