5 poin oleh GN⁺ 2023-09-18 | 1 komentar | Bagikan ke WhatsApp
  • Catala adalah bahasa spesifik domain untuk menurunkan algoritme faithful-by-construction dari teks legislasi, dan merupakan bahasa pemrograman yang disesuaikan untuk literate programming pada legislasi sosial dan fiskal
  • Implementasi ditulis dengan terlebih dahulu mengumpulkan materi tentang mekanisme sosial dan fiskal yang menjadi target implementasi, seperti undang-undang, peraturan pelaksana, dan preseden hukum, lalu memberi anotasi pada makna setiap baris di tiap pasal sebagai komentar dalam kode
  • Kompiler Catala dapat menghasilkan versi PDF implementasi yang dapat dibaca pengacara dari kode yang sudah selesai dan diuji, dan bahasa ini dirancang melalui kolaborasi dengan pakar hukum agar dapat ditinjau serta disertifikasi keakuratannya oleh ahli hukum
  • Konsep intinya didasarkan pada definition-under-conditions dan default logic dari karya Profesor Sarah Lawsky, A Logic for Statutes, dengan struktur logika bahasa yang meniru struktur logika hukum
  • Sebagai alat pengembangan, tersedia penyorotan sintaks untuk berbagai editor teks, ekstensi VSCode, server LSP khusus, navigasi kode, pelengkapan otomatis, UX test suite, dan formatter catala-format
  • Pembelajaran dan referensi dapat diakses melalui Catala book, tutorial Catala, cheat sheet tata bahasa Prancis dan Inggris, serta dokumentasi kompiler untuk versi master terbaru
  • Kompiler dan kode dalam repositori didistribusikan di bawah Apache license version 2, kecuali jika ada lisensi terpisah yang dinyatakan pada subdirektori tertentu
  • Catala adalah proyek riset dari Inria, dan kompiler ini masih belum stabil serta masih kekurangan beberapa fitur

1 komentar

 
GN⁺ 2023-09-18
Komentar Hacker News
  • Proyek ini tampaknya secara implisit berasumsi bahwa menspesifikasikan pasal hukum secara formal dan memiliki sistem yang dapat menafsirkan undang-undang secara sebagian besar mekanis adalah hal yang baik.
    Lebih jauh lagi, ini berarti sistem penafsir manusia yang ada, dengan ruang diskresi dan margin kesalahannya, dipandang sebagai masalah yang harus diatasi. Saya tidak sepenuhnya menentang asumsi itu, tetapi juga belum jelas apakah itu benar, dan tampaknya para penulis juga tidak menyajikan argumen yang mendukungnya.

    • Motivasi proyek ini kemungkinan jauh lebih praktis daripada filosofis seperti itu, dan tampaknya meremehkan seberapa sering hukum diubah menjadi kode yang dijalankan dalam sistem komputer pemerintah negara bagian.
      Dari sudut pandang orang yang memahami proses mengubah undang-undang menjadi kode, saya bisa memahami apa yang ingin dilakukan proyek ini, meskipun nilainya hanya sebatas memberi kejelasan bagi pengembang perangkat lunak.
    • Ini tampak cukup jelas, dan menurut saya memang sudah menjadi tujuan hukum. Bagaimanapun, melalui preseden kita akhirnya sampai pada hukum yang sangat presisi, tetapi untuk mencapainya dibutuhkan biaya hukum yang tinggi. Setidaknya, menurut saya ini bukan sesuatu yang perlu diperdebatkan secara khusus di beranda Catala.
      Saya rasa ini juga erat kaitannya dengan supremasi hukum. Menurut https://www.britannica.com/topic/rule-of-law, hukum harus terbuka dan jelas, memiliki bentuk yang umum serta dapat diterapkan secara universal, memuat ketentuan yang pasti yang dapat dirujuk orang sebelum bertindak, dan kewajiban hukum tidak boleh dibuat berlaku surut. Saya penasaran apa manfaat dari hukum yang ambigu.
    • Beberapa hukum seperti perhitungan bracket tarif pajak mungkin baik-baik saja, tetapi menurut saya sebagian besar hukum tidak seharusnya dikodekan dengan cara seperti ini.
    • Ini cukup cocok dengan tradisi hukum Prancis. Ingat saja ucapan Montesquieu bahwa “hakim hanyalah mulut hukum”.
      Saat belajar untuk gelar hukum, sebagai programmer saya cukup tertarik pada bidang ini, dan menemukan komunitas besar di dunia berbahasa Prancis yang melakukan kerja legalistis semacam ini. Profesor di universitas saya yang tertarik pada bidang ini juga tampaknya condong ke lingkaran pengaruh tersebut.
  • Selama beberapa tahun saya berusaha meyakinkan teman saya yang pengacara bahwa akan bagus jika ada sesuatu yang persis seperti ini, dan ternyata mungkin memang sudah lama ada.
    Menurut saya ini benar-benar keren. Semua hukum seharusnya ditulis dalam bahasa seperti ini, lalu dipublikasikan dengan penyorotan sintaks dan aturan format yang konsisten. Setelah itu, kurikulum sekolah seharusnya memasukkan pembelajaran bahasa hukum ini. Dengan begitu, kemampuan orang untuk membaca hukum dan merasa yakin pada pemahamannya akan meningkat besar, dan itu akan menjadi keuntungan besar bagi masyarakat.

    • Ini tampak seperti kesalahpahaman yang cukup besar tentang cara kerja hukum sebenarnya, dan mungkin diperkuat oleh drama pengacara yang menekankan permainan kata yang rumit.
      Dalam kenyataannya, hukum sudah ditulis dengan bahasa yang relatif biasa, dan kata-katanya hampir selalu memiliki makna yang sama seperti dalam bahasa Inggris umum. Masalahnya adalah konsep hukum yang dijelaskan oleh kata-kata itu sendiri memang kompleks, dan sering kali terjalin dengan rujukan ke hukum, peraturan, preseden, dan sebagainya yang lain.
    • Secara prinsip saya setuju, tetapi hukum biasanya terlalu banyak bergantung pada penafsiran dan preseden, sehingga sulit diekspresikan dan dipahami seperti cara yang diharapkan.
    • Tautan mungkin menjadi kuncinya. Jika preseden, dasar pembenaran, dan kutipan dapat dilacak mundur hingga ujaran purba Hammurabi, itu akan cukup edukatif.
    • Masalah besarnya adalah kita akan kehilangan seluruh hukum preseden yang selama ini menafsirkan hukum. Ini mirip seperti membuang laporan bug dan patch selama dua abad.
      Pada saat yang sama, ada juga kasus ketika hukum dikodifikasi, seperti Uniform Commercial Code. Dengan kata lain, itu adalah contoh penulisan ulang hukum preseden secara konsisten, lalu menggabungkan dan merapikan patch-nya.
  • Akan menarik jika test case juga “dijalin” bersama. Bidang kerja tempat kalimat-kalimat logis saling bersentuhan adalah titik tempat bug masuk.
    Terutama di sekitar peristiwa temporal, dan ini mengarah ke model formal serta lebih banyak bug. Biasanya jika ada aturan tentang suatu kunci, diperlukan setidaknya tiga pengujian¹: kasus lebih besar, kasus sama, dan kasus lebih kecil. Jika tidak ada tipe dan semacamnya, input negatif, null, serta batas nilai maksimum/minimum juga diperlukan.
    Misalnya, bisa dibuat pengujian berbasis timeline seperti “ketika peraturan disahkan 3 bulan kemudian, para pihak tidak lagi dapat menggunakan B, tetapi tetap saja ‘17 ton’ limbah dibuang…”. Akan sangat membantu jika model checker terintegrasi. Legislasi yang diverifikasi secara formal, atau setidaknya pipeline seperti DevOps untuk proses mengodekan bahasa ke dalam kode, juga mungkin dibuat.
    ¹ https://en.m.wikipedia.org/wiki/Equivalence_partitioning

    • Itu tidak akan bisa dikompilasi, tentu saja bercanda.
      Banyak hukum memuat banyak ungkapan bermakna ganda. Regulasi Uni Eropa terbaru tentang apakah kendaraan Rusia boleh diizinkan atau tidak adalah contoh yang bagus. Namun, ketika mencoba “mendigitalkan” hukum menjadi bahasa pemrograman, ini bisa menjadi ide bagus untuk menemukan semua ambiguitas yang mungkin atau definisi yang kabur.
    • Bagus sekali. Saya sering melihat unit test untuk memahami bagaimana legacy code seharusnya digunakan. Jika hukum disertai contoh konkret yang menjadi bagian dari dokumen hukum, kita bisa menguji baik apakah aturannya konsisten secara logis maupun apakah pemahaman kita benar.
      Ini mirip dengan mencoba meyakinkan reviewer bahwa kode berfungsi dengan membuktikannya lewat unit/integration/end-to-end test. Dengan kata lain, sistem hukum juga memiliki end-to-end test.
    • Jika dibayangkan, ini adalah menerapkan test-driven development pada hukum.
      Selangkah lebih jauh, kita bahkan bisa menulis kumpulan test lalu secara otomatis menghasilkan rentang hukum yang mungkin memenuhi test tersebut.
    • Akan bagus jika ada unit test
  • Saya ingin melihat lebih banyak format kumpulan uji standar yang menyatakan maksud hukum
    Di negara bagian tempat saya dulu tinggal, pernah diajukan undang-undang pelarangan pornografi anak yang sangat sederhana dengan niat baik, tetapi terlalu sederhana. Kira-kira bunyinya seperti “siapa pun yang mengirim foto eksplisit anak di bawah umur lewat ponsel bersalah atas pengiriman pornografi anak”, ditulis dalam bahasa hukum, tetapi tidak jauh lebih rinci dari itu. Saya menelepon pengusul RUU itu dan bertanya apakah, jika putri fiktif saya mengirim foto telanjangnya sendiri kepada pacarnya, ia akan menjadi pelaku kejahatan berat menurut undang-undang baru itu; reaksinya “Aduh, bukan itu maksudnya!”, dan akhirnya RUU tersebut ditarik untuk ditulis ulang
    Bisa dibayangkan memperlakukannya seperti kode program dan menambahkan pengujian seperti “undang-undang ini tidak berlaku ketika anak di bawah umur mengirim foto dirinya sendiri”. Itu akan memaksa legislator memperjelas maksudnya, dan jika mereka berkata “kami tidak akan memakai undang-undang keselamatan anak online untuk melarang konten pro-trans”, kita bisa menjawab “baik, masukkan itu sebagai test case”. Hambatan utamanya adalah politisi tidak suka dipaku dengan cara seperti itu
    Selain itu, akan menjadi lebih mudah menulis undang-undang yang mencerminkan maksud, dan pengadilan di masa depan bisa menggunakannya untuk menilai maksud undang-undang. Sekalipun secara tekstual berlaku untuk kasus anak 15 tahun yang mengirim swafoto, jika pengujiannya menyatakan itu tidak dimaksudkan, ia bisa dibebaskan. Mungkin mustahil karena ratusan alasan, tetapi boleh saja bermimpi

    • Agar cara seperti ini efektif, maksud legislatif yang sebenarnya harus dienkode dengan benar, jadi kasus ini mungkin saja belum terselesaikan, dan para legislator harus bertindak dengan iktikad baik
      Artinya, bukan dengan sengaja membuat undang-undang kabur agar cakupannya luas, lalu membiarkan orang memperdebatkannya di pengadilan
    • 99% pekerjaannya ada pada menemukan kasus batas, dan dalam hukum hal yang paling umum adalah menuliskan kasus-kasus batas semacam itu secara eksplisit. Legislator itu kemungkinan kembali dan menambahkan ketentuan seperti “pengiriman foto dirinya sendiri oleh anak di bawah umur tidak dianggap sebagai pelanggaran pasal ini”
      Hukum tidak perlu bisa dijalankan di komputer. Karena ini soal maksud dan penafsirannya, kumpulan uji itu sendiri pada dasarnya juga bagian dari hukum, jadi cukup masukkan saja ke dalam undang-undangnya
    • Secara teori saya agak menyukainya, tetapi menurut saya membuat “kumpulan uji” yang lebih baik daripada sistem pengadilan nyata itu secara harfiah 100% mustahil
    • Pengujian hukum akan bagus, tetapi mungkin harus “dievaluasi” oleh mekanisme yang sama yang menerapkannya. Yaitu pengadilan
      Secara pribadi, saya akan puas jika negara mana pun melampirkan tujuan legislatif pada undang-undang itu sendiri. Kalau bisa, lebih baik lagi jika disertai indikator kinerja utama untuk melihat apakah ia bekerja. Dengan begitu nanti bisa dievaluasi ulang apakah undang-undang itu benar-benar bekerja, menimbulkan efek sebaliknya, atau kasus penerapan utamanya berbeda dari alasan awal ia diperkenalkan
    • Bagus juga anggota parlemen itu cukup sadar sampai menarik RUU-nya. Beberapa negara bagian seperti Minnesota tampaknya benar-benar secara aktif menuntut sexting oleh anak di bawah umur
      [1] https://www.aclu.org/news/juvenile-justice/minnesota-prosecu...
  • Di buku Greg Bear Moving Mars (1993), sesuatu yang mirip muncul sekilas dengan nama Legal Logic. Para manusia Mars menggunakannya dengan bantuan AI ketika menyusun hukum untuk masyarakat mereka yang baru merdeka
    Greg Bear adalah penulis SF terkenal yang meninggal kurang dari setahun lalu, dan obituarinya juga dibahas di sini saat itu. Ia salah satu penulis yang sangat memengaruhi masa remaja saya, jadi saya ingat khususnya elemen di Moving Mars ini memicu imajinasi saya, dan saya ingin membaca apa yang ditawarkan Catala
    [1] https://en.wikipedia.org/wiki/Greg_Bear
    [2] https://en.wikipedia.org/wiki/Moving_Mars
    [3] https://news.ycombinator.com/item?id=33679668
    [4] https://news.ycombinator.com/item?id=33675708

  • Ada makalah yang menjelaskan bahasa ini: https://hal.inria.fr/hal-03159939. Ada juga ringkasan video singkat: https://youtu.be/OiaFTFSAa1I

  • Programmer suka mengusulkan agar hukum memakai semacam “bahasa pemrograman”
    Namun ini melewatkan fakta bahwa ambiguitas, dalam beberapa hal, adalah bagian yang secara fundamental penting dari hukum. Sebab dunia itu sendiri, dalam beberapa hal, secara fundamental ambigu, dan dalam beberapa hal lain terbagi secara jelas. Tentu saja tidak semua jenis ambiguitas itu diinginkan
    Namun jika “kode adalah hukum”, menurut saya cara mengeksploitasi celah akan menjadi lebih buruk. Bahkan banyak undang-undang seharusnya lebih berfokus pada nilai-nilai yang harus dijaga daripada detail implementasi, dan ini secara inheren pasti kurang jelas dan lebih ambigu

    • Setuju. Saya tidak menganggapnya ide buruk, tetapi gagasan tentang hukum yang terdefinisi sempurna dan dapat ditegakkan sempurna terasa menakutkan. Jika semua hukum yang ada hari ini bisa ditegakkan sempurna dan diawasi sempurna, hidup kita akan benar-benar sengsara
      Saya tidak akan memperdebatkan apakah ini masalah hukum atau masalah penegakan, tetapi bagaimanapun masyarakat kita dibangun di atas ambiguitas dan penegakan yang tidak merata
    • Saya tidak melihat alasan mengapa proyek seperti ini harus bertentangan dengan ambiguitas. Lihat value.fair_market di bagian concepts [0]. Para pengacara bisa saja berdebat tentang maknanya, tetapi definisi-definisi yang bersaing juga bisa didefinisikan sebagai program
      Saya setuju bahwa perhatian terhadap hukum seharusnya diarahkan pada hasil, bukan detail implementasi. Untuk itu, kita memerlukan cara membuat fungsi evaluasi yang mengukur hasil undang-undang baru, dan sistem seperti Catala dapat membantu memodelkan hasil yang diharapkan serta memilih di antara RUU yang bersaing. Misalnya jika hasilnya adalah “ingin mengurangi polusi”, kebijakannya bisa berupa “melarang industri pencemar” atau “mengenakan pajak pada eksternalitas polusi”; keduanya menghasilkan konsekuensi kompleks, jadi analisis otomatis dan pengukuran empiris akan lebih baik
      [0] https://github.com/CatalaLang/catala#concepts
  • Saya tidak yakin apakah ada masalah besar yang benar-benar akan terselesaikan dalam hal komputer melakukan penalaran atas kata-kata hukum. Bagian yang rumit adalah menimbang keadilan, dan untuk itu manusia serta pengacara masih tetap diperlukan

    • Betul. Namun jika membuat algoritme dari tabel tarif pajak, kejelasan bisa membantu, dan kadang-kadang redaksinya juga tampak ambigu. Mungkin akan diperlukan sangat banyak contoh. Dengan kata lain, diperlukan unit test
    • Saya melihat satu manfaat dari bahasa ini. Ini bisa membuat penulisan program untuk menghitung pajak dan gaji jauh lebih mudah. Saya tidak tahu apa lagi yang bisa ditawarkannya
      Saya penasaran apakah ada legislator, pengacara, atau hakim yang mengharapkan ini, atau hanya para programmer saja
    • Sepertinya maksudnya “manusia, pengacara, dan suap”
      Saya tidak terlalu percaya pada sistem hukum kita. Saya tidak tahu kenapa bertanya
  • Sebagai penutur Catalan, benturan nama dengan bahasa yang dibahas dalam tulisan ini terasa sangat disayangkan

    • Saya penasaran kenapa itu disayangkan. Dan saya suka nama pengguna Anda. Banyak orang mungkin sudah menebak Anda penutur Catalan hanya dari nama itu
  • Pemilihan namanya benar-benar disayangkan. Mirip seperti menamai bahasa pemrograman “français”, “Deutsch”, atau “English”
    Di bagian bawah readme tertulis “bahasa ini dinamai dari Pierre Catala”. Saya menyarankan lebih baik diganti menjadi PierreLang

    • Tertulis “bahasa ini dinamai dari profesor hukum Pierre Catala, yang merintis legaltech Prancis dengan membuat basis data komputer untuk perkara hukum, Juris-Data”
      Sebagai penutur asli Catalan, saya cukup terkejut melihat namanya, tetapi kalau itu nama keluarga yang umum, masuk akal