Pembangun Google Mengeluarkan Mangle: Sambungan Datalog untuk Pengaturcaraan Pangkalan Data Deduktif

Pasukan Komuniti BigGo
Pembangun Google Mengeluarkan Mangle: Sambungan Datalog untuk Pengaturcaraan Pangkalan Data Deduktif

Pembangun Google telah mengeluarkan Mangle, sebuah bahasa pengaturcaraan sumber terbuka yang memperluaskan Datalog untuk pengaturcaraan pangkalan data deduktif. Projek ini bertujuan untuk menjadikan pertanyaan data yang kompleks lebih mudah diakses oleh pembangun sambil menangani beberapa batasan SQL yang telah lama wujud.

Ciri Utama Mangle:

  • Sambungan bahasa pengaturcaraan Datalog
  • Menyokong pengagregatan, panggilan fungsi, dan pemeriksaan jenis pilihan
  • Peraturan rekursif dan penstrukturan program
  • Boleh mewakili hubungan n-ary (tidak terhad kepada predikat binari)
  • Dilaksanakan sebagai perpustakaan Go untuk pembenaman mudah
  • Sumber terbuka dengan repositori GitHub dan dokumentasi

Komuniti Mempersoalkan Pelbagai Projek Bahasa Pertanyaan Google

Pengeluaran ini telah mencetuskan perbincangan mengenai pendekatan Google terhadap bahasa pertanyaan, dengan ahli komuniti menyatakan bahawa ini nampaknya merupakan bahasa pertanyaan berasaskan logik ketiga yang muncul daripada syarikat tersebut. Walaupun Mangle membawa penafian Ini bukan produk Google yang disokong secara rasmi, pemerhati mencadangkan ia mungkin merupakan satu lagi kes pekerja Google yang dikehendaki membuka sumber kerja mereka di bawah payung syarikat, walaupun untuk projek peribadi.

Komuniti juga telah membuat kaitan dengan projek Google yang lain seperti Logica, yang dirujuk dalam dokumentasi Mangle. Sesetengah pembangun mempersoalkan sama ada jabatan yang berbeza dalam Google secara bebas membangunkan enjin pertanyaan mereka sendiri.

Sambungan Datalog Menangani Keperluan Pembangunan Praktikal

Titik perbincangan utama tertumpu pada mengapa hampir setiap pelaksanaan Datalog, termasuk Mangle, memperluaskan bahasa vanila. Ahli komuniti menyatakan bahawa pelaksanaan Datalog tulen adalah jarang, dengan Datomic menjadi salah satu daripada beberapa contoh pelaksanaan yang agak vanila. Corak ini menyerupai bagaimana pelaksanaan SQL biasanya menambah sambungan mereka sendiri untuk menangani batasan praktikal.

Mangle menambah beberapa ciri kepada Datalog asas, termasuk pengagregatan, panggilan fungsi, dan pemeriksaan jenis pilihan. Sambungan ini menjadikan bahasa tersebut lebih praktikal untuk kegunaan dunia sebenar, walaupun ia mengorbankan beberapa jaminan teori Datalog seperti jaminan penamatan.

Perbandingan Alternatif SQL:

  • Mangle: Berasaskan Datalog, memfokuskan pada pengaturcaraan pangkalan data deduktif
  • PreQL/Trilogy: Bahasa transformasi data
  • Malloy: Bahasa pemodelan semantik untuk data
  • PRQL: Bahasa pertanyaan hubungan berpipeline
  • EdgeQL: Bahasa pertanyaan graf-hubungan

Pembangun Mencari Alternatif kepada Batasan SQL

Pengeluaran ini telah mencetuskan semula perbincangan mengenai kekurangan SQL selain daripada isu sintaks sahaja. Maklum balas komuniti menyerlahkan masalah dengan kekurangan jenis algebra SQL, kebolehkomposisian yang lemah, dan kesukaran mengendalikan data hierarki seperti pokok dalam pangkalan data hubungan.

Kekurangan SQL bukan hanya sintaks dan konvensyen KATA KUNCI YANG BERTERIAK. Terdapat kekurangan jenis algebra, kebolehkomposisian yang lemah, kekurangan sebarang sistem modul yang koheren.

Mangle menyertai senarai alternatif SQL yang semakin berkembang, termasuk PreQL/Trilogy, Malloy, PRQL, dan EdgeQL, setiap satu cuba menangani aspek yang berbeza bagi batasan pertanyaan pangkalan data tradisional sambil mengekalkan faedah algebra hubungan.

Projek ini dilaksanakan sebagai perpustakaan Go yang boleh dibenamkan ke dalam aplikasi, dengan dokumentasi dan contoh tersedia di GitHub. Bagi pembangun yang berminat untuk bereksperimen dengan konsep pangkalan data deduktif, Mangle menawarkan titik masuk praktikal ke dalam pendekatan pengaturcaraan berasaskan logik untuk pengurusan data.

Rujukan: Mangle