簡介
基於專家系統的計算機輔助量刑系統(JUSTICE系統)基於微軟最新編程模型(.NETFramework4.0),以面向對象的程式設計方法開發,程式內部模擬刑事訴訟過程,以對刑事責任及其外圍數據為核心的處理,採用結構化開發,具有高內聚低耦合的特點。程式已經預先為刑法的更新和支持罪名的增加定義了標準化接口,便於適應刑事司法實踐的發展。另外,系統設計之初就將內部邏輯和界面邏輯相分離,兩個部分通過預先定義的數據結構進行數據交換,使得程式易於更新,易於維護,具有跨平台的潛力,符合計算機軟體的發展潮流。
JUSTICE系統採用淡藍色圖形化互動界面,互動方法友好,安裝方式簡單,系統資源占用低,運算過程流暢,支持Windows全系列作業系統,並具有於MacOS、Linux等作業系統運行的潛力。系統特別針對非計算機專業用戶進行了特別的設計,採用更大的字型,更加法律化的文字提示,更加簡便的互動邏輯,同時在界面對程式邏輯進行實時說明,方便用戶在使用過程中了解程式內部運行原理,避免不透明造成使用上的疑慮。
JUSTICE系統設計之初就以全面支持我國刑法各類規定為目標,支持《刑法》規定的全系列主刑與附加刑,對外國人支持適用驅逐出境,支持緩刑的適用判定,支持對未成年人、精神病人、超過75周歲的老人、孕婦的特別規定,支持一般累犯和特別累犯,支持考慮當前的刑事法律政策,支持共同犯罪,犯罪形態,自首情節,立功情節,以及大量違法阻卻性事由,並支持數罪併罰。同時,本系統支持量刑曲線的輸出,自然語言宣告刑的生成等功能。
軟體主要特點
(1)面向法律工作者開發,用戶界面簡潔,友好。
(2)根據刑事訴訟的邏輯設計內部程式和界面,符合法律思維。
(3)以圖形和文字兩種方式輸出量刑過程和結果,以期實現“看得見的正義”。
(4)對各種不同罪名實行抽象與具體相結合的量刑模式,在減少代碼量的同時實現大量公共代碼的重複使用。
(5)邏輯清晰:設計之初就將界面邏輯與內部邏輯徹底分離,易於維護與更新。
(6)罪名結構化:將各個罪名的使所特有的法定情節封裝為不同的類,根據預先定義的接口與程式其他模組連線,方便增加對罪名的支持。
設計說明
模組功能介紹
(1)CriminalResponsibility類:是對刑事責任類的實現,主要任務是保存當前的刑事責任數據,包括犯罪嫌疑人數據、犯罪事實、法定情節、酌定情節、刑罰指數等。同時具有校驗明顯數據錯誤的功能。該類只能由中間層讀取與操作,不對一般用戶界面開放。
(2)BasicClass模組:該模組於命名空間JUSTICE.JFC.Basic下,包含多個類、數據結構與接口的定義,為JUSTICE提供數據結構與類的定義的支持。
(3)accusationDataProvider類:位於命名空間JUSTICE.JFC下,為JUSTICE提供數據讀取的支持,JUSTICE的大部分數據由其負責讀出、轉換形式和處理。
(4)CRXMLManager類:該類位於命名空間JUSTICE.JFC下,主要為JUSTICE提供刑事責任檔案信息的收集、處理與保存。同時為數罪併罰引擎提供讀入、處理刑事責任檔案的功能。
(5)Exception模組:位於命名空間JUSTICE.JFC.Exception下,根據JUSTICE的設計需要提供不同的異常定義,便於主界面為用戶提供合適的異常信息和處理方案。
(6)GUI模組:該模組為用戶界面的主模組,由歡迎界面,單罪名量刑視窗和數罪併罰視窗組成。其中單罪名量刑視窗由視窗框架、共同內容控制項和特別法定情節控制項等部分構成。所有用戶輸入接口均以控制項形式被動態載入到視窗,以提高靈活性。
(7)PMEngine模組:該模組包括Engine和SentencingProcessing兩個部分,前者根據基準刑罰指數和法定酌定情節生成思維鏈並計算最終刑罰指數;後者根據最終刑罰指數生成自然語言宣告刑並繪製刑罰指數的變動曲線圖。
(8)CPEngine模組:該模組根據CRXMLManager提供的刑事責任數據進行數罪併罰的處理。並調用SentencingProcessing獲取自然語言宣告刑。
(9)ChapterX模組:ChapterX模組形式上根據我國《刑法》章節進行邏輯區分,每一章為一個項目。包括多個用戶控制項,為用戶提供不同罪名的基準刑確定界面與基準刑罰指數計算邏輯。是對SpecificLegalCircumstance的實現。
(10)MFC模組:全稱為MamsdsFoundantionClass,是開發者自己對常用功能的總結,實質是對系統函式進行的封裝。包括大量雜項方法。
(11)ComponentFactory.Krypton.Toolkit模組:是ComponentFactory提供的一組用戶控制項集合,用於美化界面,提高界面友好程度。該套集合由ComponentFactory提供並授權開發者免費使用。
資料庫設計
出於易於部署等原因考慮,本程式採用XML格式保存數據,數據內容以表格形式為主。
邏輯設計
(1)罪名,Accusation(罪名ID,罪名中文名,罪名內容,適用的法定情節);
(2)酌定情節列表,DiscretionaryCircumstancesList(情節ID,罪名中文名,情節1,情節2,情節3,情節4,情節5,情節6,情節7);
(3)關鍵字聯想列表,PredictiveKeyword(關鍵字,罪名ID1,罪名ID2,罪名ID3,罪名ID4);
物理設計
罪名
罪名ID | 罪名中文名 | 罪名內容 | 適用的法定情節 |
234 | 故意傷害罪 | 故意傷害他人身體的,處三年以下有期徒刑、拘役或者管制。 犯前款罪,致人重傷的,處三年以上十年以下有期徒刑;致人死亡或者以特別殘忍手段致人重傷造成嚴重殘疾的,處十年以上有期徒刑、無期徒刑或者死刑。本法另有規定的,依照規定 | 1,2,3,4,5,7,8 |
239 | 綁架罪 | 以勒索財物為目的綁架他人的,或者綁架他人作為人質的,處十年以上有期徒刑或者無期徒刑,並處罰金或者沒收財產;情節較輕的,處五年以上十年以下有期徒刑,並處罰金。 犯前款罪,致使被綁架人死亡或者殺害被綁架人的,處死刑,並處沒收財產。 以勒索財物為目的偷盜嬰幼兒的,依照前兩款的規定處罰。 | 1,2,3,4,5 |
274 | 敲詐勒索罪 | 敲詐勒索公私財物,數額較大或者多次敲詐勒索的,處三年以下有期徒刑、拘役或者管制,並處或者單處罰金;數額巨大或者有其他嚴重情節的,處三年以上十年以下有期徒刑,並處罰金;數額特別巨大或者有其他特別嚴重情節的,處十年以上有期徒刑,並處罰金。 | 1,3,4,5 |
酌定情節列表
情節ID | 情節中文名 | C1 | C2 | C3 | C4 | C5 | C6 | C7 |
1 | 認罪態度 | 非常好 | 良好 | 好 | 一般 | 不好 | 堅決否認 | |
2 | 賠償情況 | 積極主動賠償 | 願意賠償 | 不情願賠償 | 不賠償 | |||
3 | 犯罪手段 | 溫和 | 比較溫和 | 一般 | 殘忍 | 非常殘忍 | ||
4 | 主觀惡性 | 顯著輕微 | 小 | 較小 | 一般 | 較大 | 大 | 非常大 |
關鍵字 | 罪名ID1 | 罪名ID2 | 罪名ID3 | 罪名ID4 |
傷 | 234 | 239 | 233 | 263 |
死亡 | 234 | 239 | 233 | 263 |
應用程式設計
刑事責任類(CriminalResponsibilityClass):刑事責任類是JUSTICE最基本的部分,由於JUSTICE的目的在於計算刑罰,因此程式以刑事責任類為核心。邏輯上,程式的工作就是將數據填充入刑事責任類,然後由量刑引擎從刑事責任類讀出數據並計算刑事責任的過程。
(1)JUSTICE基礎類(JFC):JUSTICE基礎類提供基本數據類型與接口的定義、XML數據的讀入與處理、處理用戶輸入並寫入刑事責任類、定義基本異常類型等功能;
(2)刑罰引擎模組(penaltyEngine):刑罰引擎根據刑事責任類的數據計算刑期並生成自然語言宣告刑。分為量刑引擎(PMEngine)和數罪併罰引擎(CPEngine)兩個模組;
(3)特別法定情節模組(SpecificLegalCircumstances):特別法定情節類為每一罪名提供一個用戶控制項和一套基準刑計算的方法,該類以犯罪客體區分模組。
(4)通用用戶界面模組(GraphicUserInterface):該類為所有罪名提供共同的犯罪事實輸入界面與量刑結果界面。
設計難點
三層架構的核心結構
如上文所述,一般法定情節的模式化程度最高,酌定情節次之,特別法定情節最低。可以構想,以搶劫罪和交通肇事罪為例,他們具有完全不同的特別法定情節:犯罪主觀構成要件、犯罪客體與犯罪行為模式均完全不同;他們具有部分相似的酌定情節:賠償情況、被害人態度、犯罪嫌疑人一貫表現;他們具有非常類似的一般法定情節:共同犯罪形式、自首情況、刑事責任年齡等;
為了處理從抽象到具體性質各異的情節,並保持程式對現實社會問題的多樣性處理的靈活性,同時體現程式邏輯的可重用性[1]的特點,JUSTICE系統採用由具體到抽象的三層架構構建。
開發者根據量刑過程的規律性,將法官考慮的量刑情節區分為特別法定情節、一般法定情節與酌定情節三個模組。特別法定情節模組的功能是確定基準刑;一般法定情節模組的功能是獲取於刑法總則規定的若干普遍適用於各罪名的法律情節的數據(例如犯罪完成形態、共同犯罪、被害人過錯、自首情節。立功情節等);酌定情節則是獲取未被刑法明文規定但在量刑過程中應當被考慮的情節的數據(例如被害人的諒解情況、犯罪嫌疑人的一貫表現、賠償情況等)。
三層架構的確立,有利於實現抽象與具體的有機統一,在保證JUSTICE系統能適應刑法分則規定的多種多樣的犯罪與千差萬別的社會實踐的同時,兼顧程式的可重用性,以發揮計算機處理問題的長處。同時,三層架構下,程式每新增對一個罪名的支持,只需要重新編寫特別法定情節模組,其他部分均可以重用原有的框架代碼,極大地提高了程式開發效率。
規則空白與衝突的解決
由於立法者不可能於立法之處就周到地考慮社會生活中可能出現的各種情況,而其立法技術亦非盡善盡美,故我國現行刑事法律規範難免存在部分量刑規則的空白與量刑規則的衝突的問題。
例如我國《刑法》第62條規定:“犯罪分子具有本法規定的從重處罰、從輕處罰情節的,應當在法定刑的限度以內判處刑罰。”;第63條規定:“犯罪分子具有本法規定的減輕處罰情節的,應當在法定刑以下判處刑罰。“。則假定犯罪人甲某犯A罪,A罪的法定刑下限為3年有期徒刑。若甲的基準刑被確定為有期徒刑3年且具有一個從輕情節,按照《刑法》規定,法官將不得在法定最低刑期以下判刑;而若甲某具有一個減輕情節和一個從輕情節,則按照《刑法》規定,法官可在3年有期徒刑以下判處刑罰。此種情況下法官是否能夠根據從輕情節甲某再次降低對甲的刑罰,則屬於一個規則的空白。因為此時法定刑幅度已被突破,法官無論如何不會再在法定刑的限度以內判處刑罰,而按照罪責刑相適應原則,既然甲某具有從輕情節而無禁止從輕的規定,則法官應當予以從輕處罰。可如此一來,則刑法的規定就陷入了“一個從輕情節的適用取決於另一個減輕情節的存在”這一奇怪的結論之中。
在法官量刑的過程中,規則的空白與衝突可以根據刑事司法原則予以彌補,或者憑藉“法律理念”進行自由裁量。此類“自由裁量”往往缺乏一定的成文法條文支撐,而使得法官量刑具有較大的任意性。開發者認為,這種任意性加之刑事司法實踐中普遍存在的“重定罪輕量刑”的不良傾向,很大程度上是我國目前“同案不同判”現象多發高發的重要原因。
因此,計算機量刑系統中,應當確立一套完善的規則。一方面,電腦程式並不接受人類的“感覺”;另一方面,計算機量刑的一個優點就是儘量排除“感覺”因素而儘量引入理性因素,使得量刑結果儘量地能以定量的方式被表述,從而更好地實現程式正義,讓犯罪嫌疑人心服口服認罪伏法,也讓被害人(或其家屬)能接受量刑的結果、撫平其心中的仇恨。
在JUSTICE系統中,開發者主要根據刑法理論、《人民法院量刑指導意見》這一量刑規範化司法解釋與各罪的專門司法解釋進行規則的完善,程式在異種自由刑數罪併罰規則、罰金刑數罪併罰規則、輕處重處規則、刑事司法政策適用規則、緩刑適用規則等多個方面,均對我國刑事法律有一定的補充與調整,力圖實現在定量量刑基礎上實現罪刑責相適應的理想量刑狀態。
用法介紹
本幫助將以《刑法》第二百三十四條故意傷害罪為例介紹軟體的使用方法。
開始使用:
先安裝本程式,並雙擊圖示,則會彈出視窗如下:
此時點擊第一個按鈕“進行新的計算機單罪名輔助量刑“,點擊後將進入量刑的第一個步驟;
第一步:確定犯罪嫌疑人信息與犯罪事實
開始量刑後,將看到如下視窗,首先,在左邊分組框填入犯罪嫌疑人的基本信息。為了體現本程式的優點,建議先假設一個較為複雜的犯罪情節,例如一個17歲的聾啞精神病人犯故意傷害罪。
填寫完成左邊的信息後,將焦點移植右邊的分組框,準備確定罪名。(注意,本幫助檔案以刑法第二百三十四條故意傷害罪為例。)確定罪名的方法可以是:1、在“罪名條數“欄中直接用阿拉伯數字輸入罪名條數;或者2、在”罪名名稱“欄中直接輸入罪名;或者3、在”犯罪事實“欄中輸入犯罪事實;
演示中我們直接輸入罪名條數234,則可以看到備選罪名故意傷害罪,此時應當用滑鼠點擊列表中的“故意傷害罪“一項,使得當前確定的指控罪名欄顯示為”《刑法》第234條【故意傷害罪】“,此時點擊下一步。
第二步:確定法定量刑情節與酌定量刑情節
如無意外,則用戶將看到如下界面。其中,左側分組框為“特別法定量刑情節“,中間為”一般法定量刑情節“,右側為”酌定量刑情節“。首先點擊”增加一個被害人“
此時可以發現,損害情況列表框變成可用,則用戶可以選擇當前被害人的傷害情況,例如選擇,構成被害人5級殘疾。由於犯罪嫌疑人可能傷害多人,若需要輸入傷害多人的情節的則可以再點擊增加一個被害人,並選擇其犯罪情節。如下圖:
在完成特別法定量刑情節的輸入後,則根據下拉選單與列表框選擇一般法定情節與酌定情節。注意酌定情節項目較多,需要使用下拉選單向下拉才能輸入完成。
如下圖是本幫助做出的一個樣例:
此時,點擊“下一步”。
第三部:量刑信息查看
此時,如無例外將得到量刑結果,中部文字是JUSTICE給出的量刑結果,下部的曲線圖是JUSTICE的量刑過程的圖形化表示,右上角的按鈕則是用於保存本次量刑的結果數據,用於數罪併罰。
至此,量刑過程結束。