邓矜婷 | 论计算机中法律规则的通用表示方法
时间:2023-09-21论计算机中法律规则的通用表示方法
邓矜婷
中国人民大学法学院副教授
本文载《数字法治》2023年第3期
目次
一、新法律规则计算机表示理论的概述及意义
二、当前的法律规则计算机表示方法及其局限
三、计算机中法律规则的通用表示方法
四、法律规则的通用表示方法对司法三段论的表示
五、采用法律规则通用表示方法的必要性
六、法律规则通用表示方法的理论意义
摘 要 法律规则计算机表示理论是继续发展计算法学和加深理解计算机在法学领域应用的基础理论。目前的表示方法主要是基于规则和任务模型来进行,存在拓展性和可解释性差、准确率不高等问题。应当结合法律规则本身的逻辑和结构特点,建立法律规则的通用表示方法。可以从法律规则出发,发现其一些通用的结构、关系和要素,构建通用的数据集,建立通用模型和规则图谱。如此,既可以将司法三段论的过程表示出来,又能够提高准确率、拓展性和可解释性,加深计算机在法学领域应用的可控性,使得场景化理论和算法规制相关理论的讨论更加丰富。
关键词 计算法学 法律规则的计算机表示 通用要素 通用模型 规则图谱
一、新法律规则计算机表示理论的概述及意义
法律规则规定了法律上的权利、义务、责任,或者赋予了某种事实状态以法律意义,与法律原则一起构成法律规范,是法律体系的主要元素,通过规范性法律文件中的法律条文具体表现出来。所以,计算机表示法律规则就是指用计算机语言将包含法律规则的法律条文表示出来,呈现在计算机系统上。计算机语言是人与计算机之间通信的语言,包括汇编语言和高级语言。人的指令先通过高级语言传达给某个应用层,再通过逐步翻译、解释变成硬件能直接反应的机器语言。如此则将以人类语言为表现形式的法律规则转换成计算机能读取和存储的数字电子信号。这是一个很复杂的过程,不过经过多年的发展,已经能够轻松实现。目前在计算机上可以查看我国所有现行有效的规范性法律文件。
尽管如此,这种计算机表示只是方便人类在计算机系统上阅读法律规则,通过编码将数字电子信号与文字一一对应,再通过文字把法律规则表示出来。这种表示本质上仍然是用人类语言来表示法律规则,通过对文字的理解来确定法律规则的含义。随着计算机系统的进一步复杂化,对这些文字的理解、文字之间的关系、法律条文的结构等也在逐渐通过数字电子信号表示出来。比如,通过相同或类似含义的文字将不同法律文件、法律条文关联起来。此时,计算机不仅是将法律规则呈现在系统上供人们阅读,还部分参与了人们对法律规则的理解。这种表示比之前单纯文字的电子信号化更进一步,将对文字的理解也部分电子信号化,使得计算机语言对法律规则的表示更接近于人类语言对法律规则的表示。可以想见,当一般法律人对法律条文文字、结构等的理解都实现电子信号化时,计算机语言对法律规则的表示就基本等同于人类语言对法律规则的表示。计算机对法律规则的理解也会接近一般法律人对法律规则的理解。
因此,法律规则计算机表示理论不仅是把包含法律规则的文字呈现在计算机系统中的理论,更重要的还是把一般法律人对法律条文的理解也表示在计算机中的理论,从本质上实现计算机语言对法律规则的表示。除了将文字与电子信号一一对应之外,该理论还包括法律条文文字的含义、文字之间的关系、条文的结构等电子信号化的理论。未来不排除出现由计算机语言取代人类语言直接构造、表示法律规则的情形。
法律规则计算机表示理论是计算法学进一步发展的基础理论。进入大数据时代以来,计算法学作为一种新的法学研究范式,抑或代表着新的法学学科,不断被法学界热议。一般认为,计算法学是关于计算机科学用于法学领域的学问。发展至今,已经有很多运用计算机技术解决法学问题的具体研究。比如,用计算机自动获取、处理和分析判决书数据,进行实证法学分析。又如,根据具体法律任务进行设计,训练模型,完成该任务的自动解决。无论是作为一种研究方法,还是一个新的学科,计算法学的进一步发展都有赖于计算机技术对法学问题解决能力的发展。这一能力包括两方面:一是将法学问题转化为计算问题的能力;二是对转化后的问题运用计算机技术帮助解决的能力。第一种换言之就是用计算机语言将法学问题表示出来的能力。法学作为一门较为古老的学科,发展至今,其中的问题包罗万象,其分类也有不少。常见的一种是分为法律解释适用问题、立法设计问题、司法制度问题、司法审判经验提炼问题。不过法学学科的核心问题仍然是法律规则的解释适用问题,是依据既定的法律规定经过严谨的逻辑推理和价值判断得到案件中的具体裁判结果的问题。其他法学问题多是围绕这一问题展开。法律规则解释适用问题的计算机表示自然是法学问题转化为计算问题的基础性问题。如果法律规则的问题能够较好地通过计算机表示出来,那么其他法学问题转化为计算问题就更加容易了,往往可以通过转化成某类法律规则的表示问题得到解决。
法律规则计算机表示理论也是理解计算机在法学领域应用的基础理论。随着计算机弱人工智能能力的展现,越来越多的具体法律场景开始使用计算机技术,帮助司法和法律服务减负提效。与此同时,关于计算机技术能否用于这些场景、这些应用是否符合法治精神乃至道德伦理等问题的讨论和担忧也非常多。无论是继续深入计算机技术在法学领域的应用,还是讨论这些应用的限度和带来的担忧,都需要建立在理解计算机在法学领域的应用的基础上,否则这些讨论都只是经验性的、不确定的、缺乏学术严谨性的。只有从理论上理解了计算机在法学领域应用的特点和规律,才能可靠地讨论这种应用存在的问题。而理解这些应用也是按照计算法学两步走的方法来进行,先理解被解决的法学问题是如何转化成计算问题,再理解这一问题如何依靠计算机技术帮助解决。法律规则计算机表示理论作为基础性的一种将法学问题转化为计算问题的理论,自然也是理解这些应用的基础性理论。通过该理论,我们能够了解法律规则在计算机中是如何理解的,进而明确计算机是如何根据这些法律规则完成既定的法律任务。
二、当前的法律规则计算机表示方法及其局限
(一)当前的法律规则主要以规则和任务模型的方法来表示
将法律条文文字电子信号化的计算机表示路径经过多年的发展已经非常成熟了。该部分的表示,就是文字的计算机表示,主要就是建立一套编码,将文字与某段数字一一对应。对文字编码是指以固定的顺序,长度排列0、1字符表示某个文字,以此字符序列作为该文字在计算机系统内记录、存储、交换、传递的统一特征。与中文字库有关的编码有国标GB码、GBK码、港台BIG-5码。通过这些编码,再加上满足该文字存储时的数据结构、软件程序格式,以及计算机各层通用协议编程的要求,就可以实现这些法律条文文字在某台计算机系统上的读取和存储。为了让各国语言文字都能编码,且不相互冲突,国际化标准委员会公布了一系列编码标准。中文字库的这些编码要遵循这些标准。随着中文字库的发展,越来越多的汉字、汉语标点符号等被编码进字库。这些字库之间要相互兼容以便中文应用不受字库迭代的影响,可以接续使用。所以这些中文编码只是根据ISO标准确定哪些编码区可用于中文,然后按照通用字典里字出现的顺序将这些字逐一放进编码区。即使迭代,字库的发展也只能扩大编码区,如由双字节扩充到四字节,以便更多的文字可以被编码。但是字的字形、字音、字意等特点完全没有在确定具体编码时予以考虑。所以无法通过某个字对应的编码获得关于该字的字形、字音、字意等任何信息。
在这些中文编码的基础上,中文应用得到了长足的发展。不过由于这些编码没有包含除了与字对应之外的其他任何信息,所以也限制了编码对字的含义的表示。这也是为何自然语言科学的进一步发展出现了将文字表示成空间中的词向量,以便通过数字信息包含更多文字的含义。通过编码实现的计算机对字义的表示只是能把某段数字与字对应,以及将不同文件中用相同数字表示的字认为是同一个字。如果某两段话中所有字及标点都是用相同的数字来表示,那么计算机就会把这两段话理解为相同的话。在此基础上,可以通过规则,将具有类似含义的字、词关联起来,告诉计算机,如果某段话里出现了这些字,虽然对应的数字序列不同,但是可以看成是相同的。这些构成了联想检索的基础。通过不断增加规则,可以将字义部分地表示出来,使得计算机能识别某些字、某些话具有类似的含义。比如,有些应用就是计算不同文件中出现的相同字的频率,以此为基础确定不同文件文义的接近程度。所含相同字越多、文件中出现次数越多的字相同,文件的文义就越相近。
虽然目前的文字编码只是将某段数字序列跟文字对应,数字序列本身的排列、结构、数值等特点都在设计时与文字的含义、结构等没有任何关联,但它确实是用一段数字序列来表示文字,这段数字可以按照二进制的定义计算出数值(十进制下的数),所以一个文字通过编码被表示成了一个数。后期出现词向量技术后,文字就表示成了空间中的多维度向量,本质上也是一个数。如此,文字构成的段落、篇章都可以表示成若干个数的某种组合。这些数代表着这些文字,可以参与具体的数学计算,与当前计算机相关的函数计算相结合,使得字义的表示部分地通过函数运算、参数计算加以实现。这里的一个假设就是,当文字被表示成数后,数的大小、方向等某种数学特点应当与文字的字义、字形等特点有某种联系,进而将字义表示出来,尽管在编码时只是随机地把某个数与某个字相对应。
基于这种假设,为了让计算机自动判断某段话、某个文件的意义,或者说让计算机把某段文字的意义表示出来,在规则之外,目前还有另一种方法,即基于任务建模的方法。具体而言,将一段文字的意义提炼,用几个简单的标签来标注这段文字的大体意义。然后再找到很多具有相同标签的不同文字,或者说找到可以提炼成相同标签的不同文字表述。把这些文字都通过编码转换成数,通过计算这些数的数学特点,让计算机建立起某种模型,来反映这些数与标签之间的某种关系。当建立起这样的模型后,如果给计算机输入某些有类似含义的文字,计算机就可以通过计算该模型中要求的代表这些文字的数的数学特点,计算得到该模型下的输出值,再通过模型与标签相对应,确定这些类似含义的文字应当指向这些标签,从而完成对这些文字意义的提炼。同样,如果输入的是不具有类似含义的文字,计算机就会基于模型计算,判断不指向这些标签,得到“这些文字的含义不是这些标签”的理解。所以,通过在已有标注数据的基础上进行训练,建立模型,计算机可以判断某段文字的含义是否属于某一标签。这种方法也就是机器学习的方法。
可以看到,计算机对法律条文的表示,也即计算机对文字的表示,就是应计算机技术发展和应用的需要来不断发展的。最初只是为了把文字通过计算机系统来存储和传递,所以只需要把文字表示成某个数字就行。之后希望计算机还能表示文字的含义,而之前的编码已经在计算机应用中发挥了重要作用,既难以推倒重来又没有更好的替代,所以当然是在已有表示的基础上带着该表示的逻辑继续发展,一方面通过具体的规则将类似字关联起来,另一方面通过计算代表字的编码或词向量的数学特点建立模型,将一段文字的含义与标签对应起来。
(二)当前法律规则表示的局限
当前法律规则的计算机表示在前述两方面的发展都受限于计算机对文字含义的表示能力。在通过规则将字义存储到计算机方面,由于计算机是根据电子信号来反映,字的含义、结构等特点没有反映在字的编码中,所以计算机无法通过编码掌握一定的字义,难以基于此进行分析推理,掌握不同字词之间复杂多变的关系。比如,具有相同偏旁部首的字在含义上有相近之处,具有某个偏旁表示某种含义等。这些信息都没有体现在编码中。通过规则只能将一些简单的字义关系存储到计算机中,计算机无法基于此进行推理。而字的含义、不同字的组合及其含义都是指数级的数量变化,所以通过这种方法,计算机对字义的表示只能缓慢推进。
在基于任务的建模方面,主要运用机器学习的方法。传统的机器学习进一步发展出了深度学习的方法。目前大部分与智慧法治相关的应用都采用深度学习的方法,即确定具体的任务,根据任务建立数据集,采用深度学习算法训练模型,测试模型效果再完善,运行模型完成任务。因为这种方法是在没有理论依据的情况下,直接计算文字表示成数字后的数学特点与文字含义之间的经验性联系,所以需要大量的样本数据以便总结其中的经验。对于只有小样本的情况,像单个字词的含义、基础概念、复杂含义表述等诸多情形,该方法就无法使用。对于抽象的解释性任务,因为没有具体问题,无法建立样本数据,所以也无法使用该方法。这也是为何该方法使用的前提就是有一个具体明确的任务场景。因为只有这样,才会形成具体的数据。只有明确知道要判断什么含义的文字表述,才能据此收集具有这种含义和不具有这种含义的各种文字表述,进行标注,让计算机具体计算各样本的数学特点及其与标签之间的联系,建立模型。
由于这些模型是基于具体的任务经验性地建立的,所以不具有可拓展性,难以在其他的任务中使用。另外,由于在深度学习的情况下,模型非常大,无法理解代表文字的数的数学特点与文字含义之间有怎样的联系、这种联系在什么情况下成立、联系演变的规律等,如词向量的大小、方向、维度与词义的关系,所以即使是在具体的任务下都无法理解模型是怎样将某段文字表述与某个标签含义联系起来。这导致了这种方法后来被普遍诟病。一是算法黑箱的问题,即模型建立的这种联系无法解释,基于模型进行的判断是怎样实现的无法理解。二是无法从理论上确定其可靠性,只能通过测试集的效果来判断该模型的有效性。这种有效性不可能达到百分之百,但是应该达到多少又缺乏理论基础进行讨论。而且对于较为复杂的任务,准备率往往都不高,可能降到百分之七八十。三是受样本数据情况影响严重,如正负样本不平衡、数据不干净、数据有偏见都可能影响模型效果。又如,数据发生变化,模型就需要推倒重来。
综上所述,通过编码将文字表示出来后,法律规则的计算机表示沿着两个方向继续尝试表示规则的含义。在运用规则将具体知识存储到计算机方面,部分大公司组织人力在缓慢推进。在机器学习方面,发展出了很多具体的应用,处于零散、割裂、难以整合的状态。在抽象的规则解释、单个字词和基础概念的含义解释方面,多年来计算机领域几乎没有进展。到今天,自然语言技术只能较好地分句、分词、判断词性,但是无法脱离任务和场景判断某个词的含义。
三、计算机中法律规则的通用表示方法
与文字的表示一样,当前表示方法对法律规则的表示也是先把包含法律规则的法律条文的文字表示出来,再通过规则和基于任务的建模两种方法将法律规则的含义表示出来。不同之处在于,法律条文与普通语言相比,有更加规律的表达、更加严谨的结构、更加规范的意思解释、更加复杂的变化。随着我国立法技术的不断提高,法律条文的这些特点更加凸显。比如,2020年颁布的《民法典》更是将诸多零散的与民法相关的法律法规体系化地编纂进法典当中。法律条文中还包含一些具有特定法律含义的概念和结构,需要背景知识才能正确掌握。更重要的是,对法律规则的理解还包括将法律规则与具体事实场景相连接的演绎过程,即将法律适用到具体事实中得到相应法律结果的过程。
基于这些特点,法律规则含义的表示比普通文字更加困难。法律条文更加丰富的结构使得通过规则对法律条文加以表示非常复杂。法律概念往往是没有数据的抽象词句,无法建立数据集训练模型。将法律规则与具体事实场景相连的方法目前主要依靠深度学习的方法,而法律适用对可解释性的强烈要求使得这种方法的使用天然受阻。法律规则的演绎过程无法通过规则的方法来实现,因为计算机对文字的表示只是数字记忆,无法理解单个字词的含义,更别说是具有特定含义的法律条文。时至今日,计算机对规则含义的表示仍然非常有限。
尽管如此,法律规则比普通文字具有更加严谨的结构等特点,本应让其含义更容易被确定,以便更好地指导人们的行为和预测法律后果,所以法律规则的含义本应更容易被计算机表示出来。只是由于法律规则的这些结构特点未能在当前的表示方法中得到利用,所以在当前方法下反而表示得不如普通文字。一方面,法律规则更强的逻辑性和规定性都是通过法律规则的结构和概念来体现,而现有的计算机表示字义的方法缺乏对文字的结构和基础概念与文字含义之间关联的关注,没有在计算机的表示逻辑中体现这种关联,所以法律规则的这种优点难以在现有的计算机表示中得到发挥和利用。另一方面,由于现有的计算机表示方法缺乏对文字含义进行基础字词理解和逻辑推理的能力,所以难以表示出法律规则的结构特点和演绎的过程。法律规则中有丰富的法律概念,它们都是抽象性的基础字词,所以无法通过标注数据训练模型的方法来让计算机理解。
基于此,要发展计算机对法律规则含义的表示,就要克服这些规则表示的困难,改善现有的表示方法以充分利用法律规则的特点。应当将法律条文分解为要件、次要件及被法条列举的情形,统称为要素,找到法律规则中一些通用的结构、关系和要素,对这些通用的要素建模,用图表示通用的结构和关系,以便增强计算机对法律条文字义表示的逻辑推理能力和基础概念理解能力,应对文字表述指数级的变化,弥补计算机生活经验的缺失。笔者将基于法条的通用结构、关系和要素建立的法律规则的表示方法称为通用表示方法。这种计算机表示方法的发展在法学和计算机科学领域都具有开创性的意义。
(一)将法律条文分解,对通用要素建模
除了改善文字字库和编码外,当前计算机表示字义的一个重要方法是基于任务构建模型。这种方法跟计算机强大的算力相结合,近年来有很大的发展和丰富的应用,未来仍有很大的发展空间。法律规则的计算机表示应当充分运用这种技术,通过将法律条文分解,对通用的法律要素建模,提高这种技术的准确率、拓展性和可解释性。
目前这类技术应用在法律领域时主要是整体性地运用到某个业务上的法律问题中,依靠深度学习来自动完成任务。如案件的自动定罪,就是训练模型帮助判断新来的案件是否属于某个罪名。实现方法就是,将这个问题当成一个二分类问题来处理,是或不是某个罪名。将已有的数万份甚至更多的案件事实描述部分整个标注为是该罪名的案件和不是该罪名的案件,作为正负样本,然后用已有的函数模型读入百分之七八十的这些样本数据,留下的作为测试集,让模型通过读入的数据计算出参数,再用测试数据看训练后的模型的判断效果。如果效果很好,那么就可以将新来的案件描述输入训练好的模型中,它计算出一个输出值,确定其分类是或不是该罪名案件。这种方法用来表示法律规则最大的问题是准确率不高,且无法解释训练好的模型是怎么判断的。
通过对法律条文进行分解,对通用的法律要素建模可以增加它的可解释性,提高准确率。将整个案件事实描述放进模型训练,自然难以理解模型怎么基于这么多字的编码的数学特点,通过计算得到与案件分类之间的关系。但是如果把这个问题作若干步的分解,得到更基础性的问题,然后分别建模,就能更好地理解各个模型的意义,以及其对最后判断的影响。这样相当于运用法律知识参与机器学习,部分地控制机器学习的过程。以自动定罪为例,当前的方法不是从法条出发,而是从标注数据出发。如果对该问题作分解,就需要从法条的理解出发,将刑法分则中对某罪名进行规定的法条分解成若干定罪的规范要件。以受贿罪为例,从《刑法》第385条中可以分解得到构成受贿罪的要件:(1)国家工作人员;(2)利用职务上的便利;(3)索取他人财物或非法收受他人财物;(4)为他人谋取利益。这四个要件都成立时该罪名成立。所以第385条可以分解成这四个要件来表示。这些规范要件可以根据法条进一步分解为若干次要件或列举出若干具体的情形。比如,国家工作人员可以列举为两类情形,即委派和非委派的情形。通过对这些要件、次要件或情形分别建模可以将整个法条表示出来。以非委派的情形为例,可以从有关受贿罪判决书中提取被告人的单位、职务作为正样本,从有关职务侵占罪判决书中提取被告人的单位、职务作为负样本,建立样本数据,留出小部分作为测试集,然后训练模型,测试后计算机通过模型判断担任某单位职务的被告人是否为国家工作人员的正确率能够达到98%以上。用同样的方法可以为其他要件建模。计算机通过这些模型分别判断四个要件是否均成立,并在此基础上最终判断受贿罪是否成立,并给出可靠的概率。经过分解和分别建模的改善后,法律规则更加直接地被计算机表示出来,体现在计算机判断的逻辑中。
对通用要素建模可以提高模型的拓展性。当法律条文被分解成若干要件、次要件及具体情形时,往往会出现一些较为通用的词句和基础的法律概念。比如,利用职务上的便利不仅出现在受贿罪中,还在很多像非国家工作人员受贿罪、非法经营同类营业罪等其他罪名中出现。“财物”一词更是在《刑法》中出现了50余次。“收受”“索取”也多次出现。这些多次出现的词句就是较为通用的词句。“财物”一词有规定的法律含义,在司法解释中有专门的规定,所以是基础的法律概念。这些通用词句和基础概念在本文中称为法律条文的通用要素。通用词句和基础概念往往存在缺少样本数据的情况,需要运用多种方法通过计算机表示出来。一种是通过对判决书中相关的事实描述进行标注建立正负样本。像利用职务便利这种非常抽象模糊的要件,指向的具体情形丰富多样,难以通过规则或列举的方法来表示,所以只能通过将判决书中有关利用职务便利的事实描述标注出来作为正样本,如某行贿人证言中关于被告人对其的帮助等内容,再将其他罪名中的非利用职务便利的行为模式的有关事实描述标注为负样本。另一种是通过列举或规则描述的方法表示。像“财物”这种范围有限的词句就可以通过列举的方法表示。还有一种是可以在社交媒体、网络平台上寻找与这些通用词句相关的语料,补充数据集。这种方法适用于没有特殊法律含义的通用词句。在样本数据较少、涉及的参数较多的时候,可以运用自然语言技术已有的成果对样本数据作预处理,让计算机获得样本数据语义的背景知识,改善模型的效果。从刑法体系化的要求看,虽然这些基础法律概念可能在不同罪名的司法解释中有不同的具体规定,但是它们在《刑法》中应该具有统一的含义。通用词句更是如此。所以针对这些通用词句和基础概念的语义专门构建的模型应当在刑法中它们出现的任何其他地方通用,即在这些地方它们的模型可以被直接调用,作为其他法条表示的一部分。
(二)用图表示法律规则的结构
在法律规则分解成若干要件分别建模后,可以用图谱的方法表示这些要件之间的关系,将它们有机结合起来,共同完成法律规则的表示。如此,法律规则就表示成由若干模型构成的图谱。这种表示方法可以提高计算机对法律规则的逻辑推理能力,将法律规则的演绎过程表示出来。图可以用来直观地表示复杂实体之间的关系。计算机科学基于图发展了很多成熟的算法。引入图谱可以极大地改善法律规则的计算机表示。图的基本构成就是两个节点和节点之间的边,所以要确定图中的节点代表什么、节点之间的关系是什么。
法律规则有一些通用的结构。当一个法律条文有且仅有一个完整的法律规则时,该条文具有标准的规则结构。像第385条就是一个标准的《刑法》分则条文,规定了受贿罪完整的构成要件。还有很多《刑法》分则条文既规定了罪名的构成要件,又规定了量刑的要件。这些条文则包含了至少两个完整的法律规则,即定罪的规则和量刑的规则。一个标准的法律条文等于一个完整的法律规则,所以其结构也是相同的,即由“适用条件+行为模式+结果”组成。适用条件和行为模式也一起称为法律规则的规范要件。规范要件之间可以通过逻辑“或”“与”,以及复合等关系组合起来,指向不同的结果。比如,第385条的四个要件必须同时成立才能构罪,所以它们之间是“与”的逻辑关系。要件三可以有两种方式成立,索取或收受,这两种方式有一种成立即可,所以它们之间是“或”的逻辑关系。不同的要件、次要件、具体情形、结果等表示为图谱的各个节点;它们之间的逻辑关系表示为相互关联的节点之间的边。不同的要件组合连接代表不同结果的节点。如此就可以轻松地通过图谱将一个标准法律条文,也即其中的法律规则,表示出来。
实际的法律条文中有很多都不是标准的规则结构。尽管如此,这些不标准的情况仍然有一些通用的结构。可以大致分为以下几类:(1)法律条文中有些条文表示的是法律原则,不是法律规则。二者有明显的区别。法律规则有明确具体的内容,以“全有或全无”的方式适用于某一类型的行为;法律原则的要求比较笼统模糊,不以“全有或全无”的方式适用,有更大的覆盖面和抽象性。所以,二者的条文结构有很大的不同。(2)法律条文中存在一些附属于法律规则的、规定了某些法律技术内容的条文,如专门法律术语的界定、公布机关和法律生效日期等。这些条文与法律规则的条文结构很不同。(3)法律条文中有很多条文与法律规则不是一一对应的关系。时常出现:一个完整的法律规则由数个法律条文来表述;法律规则的内容分别由不同的法律条文,甚至不同规范性法律文件中的条文来表示;一个条文表述多个法律规则或其要件;一个条文仅规定某一法律规则的若干要件。这些情形下,法律条文的结构都较标准的规则结构有一些变化。(4)有些仅表示一个法律规则的法律条文属于不确定性的规则,即内容是委任性或准用性的,而不是明确确定的。具体而言,确定性规则是指内容已明确肯定,无须再援引或参照其他规则来确定其内容的法律规则。委任性规则是指内容尚未确定,只规定某种概括性指示,由相应的国家机关通过相应的途径或程序加以确定的法律规则。准用性规则是指内容本身没有规定人们具体的行为模式,需要援引或参照其他相应内容规定的规则。可见,表示不确定性规则的条文本身内容不确定,需要与其他条文相结合才能完整地把这个规则表示出来。这些非标准情形下的图谱需要较标准规则结构下的图谱进行调整,根据不同的结构特点综合运用各种方法,才能将法律规则分解得到的各要件、概念之间的关系准确、完整地表示出来,有机地连接起来,共同将法律规则表示出来。
综上所述,法律规则的通用表示方法,是指先将法律条文分解,再就一些通用要素分别建模,最后用图表示法律条文的结构的方法。这种方法包含若干通用模型和数据集的图谱来表示法律规则,笔者称之为规则图谱。它增强了法律条文表示的逻辑推理和概念理解能力,能更好地应对法律规则及其指向的具体情形的指数级变化,弥补计算机生活经验的缺失。与当前的表示方法相比,这种通用表示方法能够将法律规则的概念、逻辑和结构直接用计算机语言表示出来,还能将法律规则在具体案件中的演绎过程表示出来,可以解决现有路径的诸多问题,在法学和计算机科学领域都具有开创性意义。
四、法律规则的通用表示方法对司法三段论的表示
司法三段论代表了法律规则演绎的过程,是将法律规则与具体案件事实相连的过程。当前的表示方法难以将这个过程表示出来。笔者提出的通用表示方法则增强了法律规则表示中的逻辑推理和概念理解能力,所以至少可以部分地表示出法律规则适用的过程。这意味着计算机可以至少部分地完成法律规则的适用,是计算机能够加深对法律规则含义理解的一个证明。通用表示方法实际上孕育着一个宏大的工程,即尽可能多地将法律规则用图谱和通用模型表示出来、连接起来,构成一个表示法律规则的数据库,可以不断延展、兼容。这个宏大的工程不可能一蹴而就,而是通过无数的小工程分别完成,再整合起来。
(一)既定法律规则的演绎过程表示
当某一个法律规则的要素和结构被表示成规则图谱后,它可以实现该规则的演绎过程。具体如下:(1)当某一个具体案件事实输入计算机后,计算机根据该规则的图谱寻找到规则适用的前提要件,进而找到次要件、列举的具体情形,确定需要从具体案件事实中获得的事实要素。比如,通过《刑法》第385条的图谱,得到受贿罪的一个要件是国家工作人员,其列举的具体情形是工作单位和职务是法律规定的若干工作情形,对应的事实要素就是案件中被告人的工作单位和职务。(2)根据确定的事实要素,计算机对输入的具体案件事实进行处理,从中提取出对应的事实要素;如果输入数据中没有,则要求操作员补充输入需要的事实要素,如被告人的工作单位和职务。(3)获得事实要素后,计算机通过这些次要件、具体情形的模型计算相应的事实要素,得到输出值,判断次要件、具体情形是否成立。比如,输入某政府机关公务员后,模型计算得到某类国家工作人员的判断值,并附有99.8%这一对正确率的预估。(4)确定次要件、具体情形是否成立以后,根据它们与规则的前提要件成立之间的逻辑关系,即图谱中这些节点之间边的性质,计算机再作出前提要件是否成立的判断,进而得到规则能否适用的判断。(5)如果规则能够适用,再根据图谱得到规则中关于行为模式的要件,重复前述步骤,确定事实要素,通过模型判断次要件、具体情形是否成立,再通过图谱判断行为模式要件的成立情况,进而得到对应的结果,即规则适用后的结果。
通过以上五步,计算机就能将一个法律规则的演绎过程表示出来,即将输入的具体案件事实与法律规则连接起来,得到法律规则适用的结果。由于有些规则没有区分前提和行为模式的要件,所以可以直接根据规则分解后的各要件及其次要件、具体情形的成立情况同时判断规则能否适用及适用的结果。比如,《刑法》第385条可以分解为四个要件,如果均成立,则该法条能够适用,同时也得到受贿罪成立的适用结果;如果有一个要件不成立,则该法条不能适用,同时也得到受贿罪不成立的结果。当一个法律条文只包含了某个法律规则的一部分内容时,或者该法律规则是非确定性规则时,计算机根据该图谱得到的判断也是附条件的、待定的。这种状态可以通过图谱之间的联系自动启动关联图谱的演绎过程,两相结合,得到最终确定的规则适用与否及适用结果的判断。
(二)找法过程的表示
前述步骤只能实现既定规则的演绎过程,即司法三段论中确定了可能适用的法律规则后的过程。当大量的法律规则的图谱建好并且关联起来后,它才能帮助实现司法三段论中最重要的一步,即找法、确定大前提。找法就是要从众多的法律规则中确定与案件事实最相关的法律规则。这一过程往往要经过价值判断,确定应当适用于当前案件的法律规则。尽管价值判断的过程非常复杂,价值判断能否及应否用计算机表示都存在不小的争议,但是大量的法律规则图谱可以为找到最相关的法律规则提供明确具体的数据支持,帮助价值判断有效地进行。
如何通过大量关联起来的法律规则的图谱找寻与输入的案件事实最相关的法律规则取决于这些法律规则图谱是怎样关联起来的。第一种最暴力、直接的找寻方法,就是让计算机根据输入的具体案件事实逐一匹配所有的法律规则图谱,返回前提要件都成立的法律规则,或者返回前提要件成立数量最多的法律规则。考虑到前提要件对规则适用的影响权重有时不同,可以要求返回前提要件成立数量最多的前十的法律规则。这种找寻方法的缺点显然是对每个具体案件事实都要把所有法律规则图谱都匹配一遍,每个图谱都有多个节点、多层判断,所以很可能即使计算机有强大的算力,也需要耗费较长时间。不过优点也很明显,就是简单直接,不容易出错,也不会遗漏。第二种是对法律规则的图谱分类,找到各类图谱中的类别特征要件,构建法律规则的分类图谱。例如,可以分为民事、刑事、行政法律关系,找到这几大类法律关系的一般要件,构建它们的类别图谱,确定可以用来区分几大类规则的事实要素。然后从具体案件事实中获得这些事实要素的数据,用来判断该案件属于哪一类法律规则。可以继续分类,直到该类别只有一两个法律规则。面对这样的图谱分类,计算机就是不断地从案件事实中找到分类要件需要的事实要素,经过模型计算,判断分类,直到不能再分类就找到了最相关的法律规则。这种方法的优点是更加接近法律工作者找法的过程,更加节约找寻的时间和减少计算量。因为每判断一次分类,就去掉了至少一半的法律规则。法律规则的分类层数是比较有限的,最多不过十几类。毕竟2的24次方就是一千多万,已经远超现行有效的法律文件所有法律条文总数。这种方法的缺点也很明显,就是每分一次类就有一定的错误率,也会增加图谱数据库的复杂程度,所以容易出错、遗漏。第三种就是在前两种方法中间找到一个平衡。比如,先进行一定的分类,然后在某次分类后就直接匹配该分类全部规则,或者先随机选择某个法律规则匹配,根据结果确定具体案件事实与该法律规则的距离远近,再据此排除一些法律规则、选择下一个法律规则进行匹配,从而优化找寻到最相关法律规则的过程。还可以有很多其他方法将前两种方法结合起来:对于分类要件明确的可以直接分类,排除无关的规则;对于分类不明确的,直接匹配所有可能的规则,得到多个可能相关的规则。第三种方法可以运用目前计算机检索技术中的很多优化方法。显然,第三种方法是比较现实可行的方法,是发展的方向。
通过图谱数据库找到最相关的多个法律规则,可以清晰地将找寻的过程呈现出来,将相关性背后的逻辑推理、事实要素、依据的具体数据、次要件或列举情形的成立情况、每一步的判断及依据等都反映出来。此外,还可以让相关的法律规则继续通过图谱完成演绎,适用到具体案件事实中,得到相应的结果。在此基础上,就这些相关法律规则进行价值判断和取舍时,可以先清楚明确地了解它们相关性的基础是什么,可靠程度怎样,适用的结果是什么,避免陷入无谓的概念之争,减少逻辑错误。因此,通过法律规则的图谱数据库可以至少部分地将找法的过程表示出来。
(三)自动构建大量法律规则图谱的方法
构建大量法律规则的图谱可以采取人工逐一处理各法律条文、建立各规则图谱的方法,也可以尝试更为智能的方法,让计算机自动识别法律条文中的各个要件、次要件及具体情形,自动分析确定这些要件、次要件及具体情形、规则适用结果之间的关系,自动完成规则图谱的构建。这种方法有待进一步研究,未必不可。因为知识图谱目前的构建就是让计算机自动进行命名实体识别和关系抽取,即从已有数据中学习,以便从输入的数据中自动识别确定图谱中的节点和边的方向及性质。应用到法律规则的图谱构建中,就是要让计算机自动从法律条文中识别法律规则的规范要件和结果,甚至自动确定次要件、具体情形。从目前的方法来看,仍然是两种方向:一种是通过规则,将人们总结发现的法律规则规范要件的语言表示特征编写成计算机程序语言。让计算机根据这些特征寻找确定规范要件。另一种是通过标注大量规范要件,训练模型,让计算机自动学习规范要件的特征。两种方法都需要进一步研究来确定效果如何。前者难点在于发现规范要件的一般性特征,且这种特征能够用计算机语言明确地表示出来。比如,在《刑法》分则中,以逗号、分号、句号可以对法律条文作初步分解,得到若干要件和结果。以顿号相连的要件或次要件之间是“或”的逻辑关系,满足之一即可。一些连接词,如“和、或、且”,可能反映了要件之间的逻辑关系。显然,这些特征不足以自动识别要件及其关系,而且这些特征可靠性不清楚,还需要验证。后者的难点在于,从目前的自然语言和机器学习技术发展来看,通过标注和自动学习让计算机掌握这种抽象性的一般特征比较困难,效果很可能不佳。特别是规范要件千变万化。
综上所述,法律规则的通用表示方法是可以将司法三段论表示出来的。在大量法律规则的图谱建立和关联起来后,当输入具体事实描述时,计算机通过图谱分类和关联逻辑寻找最相关的法律规则,根据找到的相关法律规则的图谱确定规范要件、次要件或具体情形,确定事实要素,通过模型计算,判断小前提是否成立,再通过图谱连接大前提、判断大前提是否成立,进而得到对应的结果。
五、采用法律规则通用表示方法的必要性
法律规则通用表示方法可以就法条中较为通用的要件建模,就常见的法条结构建图,加强计算机模型的规则推导,降低模型的复杂度,增加模型的通用性和可解释性,提高计算机自动作出法律问题判断的可靠性,改善当前计算机模型存在的问题。
(一)通用表示方法加入法条要件和结构的特点,可以增加模型的通用性和稳定性
当前的计算机模型能够将法律条文文字表示出来,存储、读取和交换、传递,但是在表示法律条文含义上,发展缓慢、效率低下,而且适用范围狭窄、无法整合,缺乏通用性和稳定性。人们通过语言表示各项主客观活动时,并不是就每一个活动或事物或事件都即兴创造一个文字来表示。这样的话,文字代表的对象一发生些许变化,这个文字就不能使用了,那么文字就无法具有通用性和稳定性,无法达到人与人沟通交流的目的。目前的计算机根据具体任务场景,制定专门数据集,训练针对的模型,就相当于就某个活动或事件即兴创造一个文字。这种模型不具有通用性和稳定性。
人们运用文字表示时,首先从最简单、具体的事物、活动、事件入手,创造相应的文字,如各种具体的物体,简单的动作、想法、事件,然后用这些基础字组合在一起表示一些事物、情绪、事件等的类别,再根据语法结构组合成短语、句子、段落,表示更复杂的想法、事件、事物、情形。所以一般不会创造专门的字去表达复杂的想法、事件等,而是遵循一定的语法规则,基础字组合成不同的词、句、段、篇,千变万化,表示复杂的事物、观点,应对万千世界。如此,不同的人才能根据语法规则,理解千变万化的文字表述,找到对应的万千世界的内容,达到沟通交流的目的。计算机通过深度学习的方法就某个复杂的任务收集数据、训练模型来表示就像是构造专门的字来表示复杂的事物一样,难以将人们对复杂事物的理解表示出来。所以,基础字和语法规则是文字得以表示万千、使得万千归一的关键。
法律条文除了依靠关键字和语法规则之外,更重要的是依据法律条文本身的结构特点、法律体系的构建规则、法律概念的规定含义来表示法律规则。所以,从模拟人的语言思维活动和文字的表示规律来看,让计算机掌握法律条文的含义,应该让计算机语言像文字那样表示法律条文,构建代表基础要件的计算机模型和代表要件之间逻辑关系的结构图谱,使得这些基础要件的模型和通用结构图谱可以根据规则组合起来表示各种要件组合构成的法律条文,使得计算机通过对基础概念的模型的理解和规则的逻辑推理完成对法律条文的理解。
在加入法律条文的要件和结构特点后,计算机对法律条文含义的表示就得到了加强。将法律条文分解为基础的规则要件、法律概念、次要件及具体情形后,对这些要件分别构建模型,这些模型就具有一定的通用性和稳定性,可以在其他法律条文中使用。将这些要件之间的逻辑关系及其与结果的对应关系表示成若干种类型的图谱后,就可以将法律条文的一些通用结构表示出来。计算机可以根据图谱进行一定的逻辑推理,应对变化万千的具体案件事实。
(二)通用表示方法可以提高模型的可靠性和可解释性
当前计算机模型存在可解释性差、可靠性存疑的问题。这些问题造成了智慧司法发展的瓶颈,亟待解决。目前常见的应用都是采取根据任务标注数据、训练模型的方法。这种方法下,主要依靠计算机不断地堆模型、找到标注数据与分类值之间的数学关系来实现。如此一来,模型往往很复杂,不易理解,既无法从模型中理解输入、输出数据之间的数学关系,更无法知晓其中的逻辑关系。输入的就是一堆具体案件事实的描述,输出值就是某个法律问题的答案,整个推导过程就是一堆看不懂的大模型,所以相当于没有推导过程,就像是法官听完当事人的案件描述,直接作出判决,没有任何说理和论述。所以增加计算机的推导过程,降低模型的复杂度,明确模型对结果的影响内容和幅度,才能增加计算机解决法律问题的可解释性和可靠性。
通用表示方法加入法条的要件和结构的特点,能够有效地解决大模型无法理解的问题,显著地增强人们对计算机模型的理解。首先,计算机的推导过程得以加强。法律条文被分解后,对次要件、具体情形、基础概念分别建模,然后根据规则将它们连接起来。当输入一堆具体案件描述时,计算机会根据规则图谱确定要寻找的事实要件,对这些描述根据特征提取与各事实要件相关的数据,分别输入各模型计算得到各个次要件或情形的判断,再根据规则进行推导,得到对应的结果。这样一来,计算机如何从一堆案件描述中得到最后的法律问题答案的过程就更加清楚明确,可以知道具体是哪些输入数据被使用了,用来判断什么,哪些要件成立或不成立导致了最后的结果,要件成立与否是因为哪些次要件或情形不存在或存在,这些次要件或情形的判断取决于什么输入数据,以及这些要件、次要件和情形是如何连接起来导致了最后的结果。
其次,模型的复杂度得到极大的降低,模型更容易被理解。经过分解对各部分分别建模后,模型的复杂度会显著降低,因为各部分的任务比整体的任务更简单。输入的数据都是从一堆具体案件描述中根据该部分任务确定的事实要件提取的相关数据,所以数据质量更高,数据参数更少、变化更小。当模型不太复杂时,模型的判断逻辑就更容易被理解。可以通过观察测试集中判断正确和错误的样本发现其中的逻辑。比如,对非委派情形下的国家工作人员建模后,对比分析测试集中被正确和错误判断为国家工作人员和非国家工作人员的样本数据后发现,模型的逻辑是,先看输入数据是否为公司或企业,如不是则判断为国家工作人员;如是则根据公司或企业具体名称、所属行业,判断是否为国有企业,如是则为国家工作人员,如否则为非国家工作人员。该逻辑的正确性在于非公司或企业性质的单位在我国基本上都是国家工作;这些单位的工作人员基本上都具有一定的公权力;公司或企业性质的单位则有不少是国有企业,属于国家工作,其他私营企业则为非国家工作。显然,这种逻辑与依据法律规定正常判断是否为国家工作人员的逻辑还有一定的距离,但是不可否认,这种逻辑符合判决书数据中体现的统计规律,也更加简单明确,更符合计算机运算的特点。对于该逻辑与法律规定的判断逻辑之间的差距,应当以特殊情况列举出来,记录到计算机中。比如,出现非公司性质的非公民间团体时应当作为例外,判断为非国家工作。降低模型复杂度后,模型的逻辑可以被分析出来,往往反映了输入数据的统计规律,具有一定的正当性。其与法律规定的逻辑之间的差距也可以被分析出来,通过构建例外的方法防止模型判断错误。如此则能增加模型判断的可解释性和可靠性。
最后,模型对整个法律条文的理解程度得到明确。分解和分别建模后,各个模型对计算机对整个法律条文的理解的影响主要在于该模型判断的次要件或情形或概念,以及其上位部分乃至最后结果。当输入某个具体事实描述后,各模型需要的输入数据、判断的结果及估计的准确性、对规范要件的影响、对最后规则是否适用及适用结果的影响等都能够通过结构图谱清晰地反映出来。如果规则模型作出了错误的判断,则可以沿着图谱追踪到错误的源头是哪个要件的模型,进而改正错误。如果某个要件模型出现了问题,只能影响某个要件的判断,未必会导致规则模型作出错误的判断。所以某个模型对整个法律条文含义的计算机理解的影响更加有限、可控,其直接和间接的影响也更加清楚明确。
六、法律规则通用表示方法的理论意义
法律规则计算机表示理论的发展是法学和计算机科学深度融合的基础,是计算法学进一步发展和理解计算法学应用的基础理论。计算机只有在加深其对法律规则理解的基础上才能实现更复杂的法律任务。人们也只有在知道计算机如何理解法律规则的基础上才能让计算机负责更重要的法律任务。这些都有赖于计算机能比现在更加全面准确系统地把法律规则的含义表示出来。当前的表示方法可以将法律条文文字准确地表示出来,但是在法律条文含义表示方面比较薄弱,发展受阻。笔者提出的通用表示方法,可以在当前方法的基础上有效地推动计算机对法律条文含义的表示,对继续发展计算法学和加深理解计算法学应用都有重要的推动作用。通用表示方法可以贯彻到现有的智慧法律相关的各个项目当中,既能提升这些具体项目的任务完成效果,又能在后期将各项目成果有效整合起来,完成这项宏大的法律规则图谱数据库的构建工程。
本文的一个显著理论价值在于从本质上解释了计算机表示法律规则的机理,即通过编码或词向量将表示法律规则的文字表示成数字,进而从本质上解释了这种表示方法存在准确率不高、可解释性和可拓展性差的原因,即这些数字及其构建的大模型不具有稳定性和通用性,没有逻辑推理规则,难以拓展。在此基础上,笔者提出的通用表示方法通过分解法律规则,得到通用要素,构建要素的模型,这些要素模型具有通用性和稳定性。再通过法律条文得到一些通用结构,将这些要素用图和规则关联起来,表示这些通用结构,得到规则图谱,再构建图谱数据库。这些规则图谱及其数据库融合了逻辑推理规则,具有可解释性和可拓展性,可以应对变化万千的法律条文的具体含义。因此,这种通用表示方法从根本上改进了现有的表示方法,可以较好地解决限制智慧司法发展的瓶颈问题。
在解决当前面临的诸多问题的同时,通用表示方法的应用将对当前围绕计算机应用进行的法学学术理论讨论带来根本性的影响。因为当前的很多学术理论是建立在计算机应用存在前述问题的前提假设上的。比如,“法律+科技”领域目前普遍认同的具有统治力的场景化理论,即分场景分析人工智能引发的新型法律问题,包括新型法律关系、算法问题、新型犯罪现象等。场景化理论之所以具有如此大的影响力,很重要的一个原因在于,当前的很多人工智能应用都是根据具体任务构建数据集、训练大模型来完成的。这种方法不是基于一个统一的规律进行演绎、推理得到各种具体应用,没有一个一般性的理论基础。前文所说的认为代表文字的数的数学特点跟文字的含义之间有某种联系的假设,只是经验性的,缺乏理论上的理解和认识。此外,在设计文字的编码时只是随机选择编码,没有考虑字义,所以难以理解这种联系到底是怎样的。由于缺乏对一般性联系的理解,各种应用之间就是断开的,无法相连。各个模型仅能用于对应的数据集和任务。数据和任务稍有变化,模型就得重新训练,无法通过逻辑推理确定模型的相应变化。因此,确实需要根据各个应用具体考虑其中的法律问题,确定其使用的数据集和算法情况。场景化理论应运而生。同样,当前关于算法伦理道德和法律规制的学术讨论中很大部分也是围绕人工智能应用存在准确率不高、算法黑箱的问题来展开的。有时因为人工智能应用准确率不高和存在算法黑箱,所以既不可靠,又可能不公平、不正义,进而需要限制人工智能应用的范围和场景。有时因为存在较大的应用价值和发展前景,而准确率不高和算法黑箱的问题无法直接解决,所以就需要研究如何设计间接的法律机制,加以规制、引导和防范。
由于这些理论讨论很大部分是建立在当前表示方法带来的计算机应用具有的特点和问题的基础上的,而随着通用表示方法的不断推广,基于通用表示方法得到的计算机应用将显著提高准确率、可解释性和可拓展性,这样的应用日益增多,那么在这些基于通用表示方法建立的计算机应用领域,这些理论讨论也将受到很大的影响,需要根据这些应用新的特点进行理论调整和重塑。由于通用表示方法是将法律规则的表示任务按照法学理论进行分解,得到通用要素,再逐一解决,所以这些应用对任务的完成背后遵循一般性的法学理论要求,存在一般性的规律和特点。如此,就有可能出现一般性的理论对这些应用进行一般性的法律分析和评价,就不需要再用场景化理论,分场景分情况加以讨论。在算法规制的理论讨论方面,由于基于通用表示方法建立的应用具有很高的准确率,算法的逻辑和具体运算规则清楚明确,那么对这些应用中算法的规则就不需要再根据算法不可靠、算法偏见、算法黑箱的特点来确定算法规制的必要性和构建一系列间接的算法规制机制,而是可以根据相关的法学理论,直接讨论和修改这些算法的逻辑和具体规则,并据此确定这些应用出错、违法、犯罪等情形下的法律责任体系。
由此可见,通用表示方法不仅从根本上影响场景化理论和算法规制相关理论在该方法建立的计算机应用中的适用和具体内容,还有效地将有关法律规则的分解、解释和司法三段论等法学理论融入计算机在法律领域的应用当中,在具体的法律应用中还会引入部门法的各种理论体系和规范学说,指导具体的部门法法律规则表示任务的分解和通用要素及结构的确定。