Graph DataFrame ve Database geliştirdim
(github.com/eastlighting1)Ben bilgi grafiği, ontoloji gibi konularla çalışan bir laboratuvarda yüksek lisansını tamamlamış bir öğrenciyim.
Mezun olduktan sonra hangi alanlarda kendime yeni yetkinlikler katabileceğimi düşünürken, okulda özellikle vurgulanan “açık kaynak” aklıma geldi. Sonrasında çeşitli fikirler üretirken, yüksek lisans dönemimde neo4j kullanarak araştırma yapmaya çalışıp I/O işlemlerinin çok uzun sürmesi nedeniyle vazgeçtiğim zamanı hatırladım. Bu yüzden, mevcut kütüphaneler seviyesindeki performansı korurken aynı zamanda daha hızlı çalışan kütüphaneler geliştirelim diye düşündüm ve Graph Ecosystem teması altında AI Agent desteğiyle çeşitli grafik kütüphaneleri geliştiriyorum.
-
Lynxes
- Lynxes, Polars’ın Graph sürümünü hedefleyen bir DataFrame kütüphanesidir. Bu yüzden adı da Pandas - Polars sonrasındaki Lynxes oldu. (Lynx, vaşaktır.)
- Ontology’deki RDF’ye benzeyen
gfadlı bir veri dosyası formatını da birlikte geliştirip kullanıyorum. - Apache Arrow tabanlı, ancak bu yapı temel olarak bir dataframe gibi CRUD desteği sunmuyor! Bu yüzden bunu nasıl ele almak gerektiği konusunda çok düşündüm.
- Benchmark sonuçlarına bakılırsa, dürüst olmak gerekirse mevcut kütüphaneler olan
networkxveyaigraphkadar hızlı değil; ama yine de kullanımda rahatsızlık yaratmayacak düzeyde olduğu için ben şimdilik memnunum.
-
CaracalDB
- CaracalDB, DuckDB’nin Graph DB sürümünü hedefleyen bir Database kütüphanesidir. X + DB yapısının DuckDB’den geldiğini muhtemelen hemen fark etmişsinizdir; Caracal adını da, karakalın vaşağa benzeyen bir hayvan olduğu yönündeki GPT tavsiyesine bakarak seçtim.
- CaracalDB’nin de
.crcladlı kendine ait bir DB dosyası var. Başta dizin yapısındaydı ama dosya tabanlı hâle getirmeyi deneyince o şekilde de gayet iyi çalıştı. - Embedded DB olma özelliği sayesinde, doğal olarak sunucu kullanan Neo4j’den daha hızlıdır.
Her iki kütüphane de PyPI’a yüklenmiş durumda, yani hemen kullanılabilir.
uv add lynxes
uv add caracaldb
Ayrıca benchmark çalışmaları ve optimizasyonları da ayrı olarak bu repository’de yürütüyorum.
- TASK 1 Knowledge Graph, Task 2 ise GraphRAG. Sırada GNN denemeyi düşünüyorum.
Hâlâ eksik olan birçok nokta var. “Bu neden böyle implemente edilmiş?”, “Bu benchmark neden bu şekilde hazırlanmış?” gibi eleştiriler ve geri bildirimler de memnuniyetle karşılanır.
Henüz yorum yok.