1 poin oleh eastlighting1 15 hari lalu | Belum ada komentar. | Bagikan ke WhatsApp

Saya adalah seorang lulusan magister dari laboratorium yang menangani knowledge graph, ontologi, dan sebagainya.

Setelah lulus, saya sempat berpikir tentang bagian apa yang bisa saya bangun untuk menambah portofolio, lalu saya teringat pada "open source" yang sangat ditekankan di kampus. Setelah mencoba memikirkan berbagai ide, saya teringat bahwa saat masih kuliah magister saya pernah mencoba melakukan riset menggunakan neo4j, tetapi akhirnya menyerah karena IO memakan waktu terlalu lama. Karena itu, dengan ide untuk mengembangkan library yang tetap mempertahankan performa setara library yang sudah ada namun lebih cepat, saya sedang mengembangkan berbagai library graf dengan bantuan AI Agent di bawah tema Graph Ecosystem.

  • Lynxes

    • Lynxes adalah library dataframe yang menargetkan versi Graph dari Polars. Karena itu namanya juga mengikuti Pandas - Polars menjadi Lynxes. (Lynx adalah kucing hutan)
    • Saya juga mengimplementasikan dan menggunakan file data bernama gf yang bentuknya mirip RDF pada ontologi.
    • Basisnya adalah Apache Arrow, tetapi ini pada dasarnya tidak mendukung CRUD seperti dataframe! Jadi saya cukup banyak memikirkan bagaimana cara menanganinya.
    • Melihat benchmark, sejujurnya ini memang belum lebih cepat daripada library yang sudah mapan seperti networkx atau igraph, tetapi menurut saya performanya sudah cukup nyaman untuk digunakan, jadi untuk sementara saya puas.
  • CaracalDB

    • CaracalDB adalah library database yang menargetkan versi Graph DB dari DuckDB. Saya rasa Anda pasti langsung menyadari bahwa struktur X + DB diambil dari DuckDB, dan nama Caracal dipilih dengan mengacu pada saran GPT bahwa caracal adalah hewan yang mirip lynx.
    • CaracalDB juga memiliki file DB khusus bernama .crcl. Awalnya strukturnya berbasis direktori, tetapi setelah saya minta diubah menjadi berbasis file, ternyata tetap berjalan dengan baik sehingga saya senang dengan hasilnya.
    • Karena sifatnya sebagai embedded DB, tentu saja ini cenderung lebih cepat daripada Neo4j yang menggunakan server.

Kedua library tersebut sudah diunggah ke PyPI sehingga bisa langsung digunakan.

    uv add lynxes  
    uv add caracaldb  

Selain itu, saya juga sedang mencoba melakukan pekerjaan benchmark dan optimisasi secara terpisah di repositori ini.

  • TASK 1 adalah Knowledge Graph, TASK 2 adalah GraphRAG. Selanjutnya saya berencana mencoba GNN.

Masih ada banyak kekurangan. Kritik dan masukan seperti 'Kenapa ini diimplementasikan seperti ini?' atau 'Kenapa benchmark ini dibuat dengan cara seperti ini?' juga sangat saya sambut.

Belum ada komentar.

Belum ada komentar.