摘要
立法通常采用的语言风格与逻辑编程语言有许多相似之处。然而,1981年《英国国籍法》《密歇根大学租赁终止条款》和《伦敦地铁紧急情况告示》中的法律语言示例表明,逻辑编程的基本模型可以通过几种方式得到有效的扩展。这些扩展包括类型的引入、相关条款、普通否定和击败否定、完整性约束、元推理和程序符号。除立法和编程之间的相似处之外,法律与算法还有其他重要的相似之处。例如,它需要根据社会和政治规范来验证立法,并且需要组织、开发、维护和重复使用大量复杂的法律规范和程序。算法和法律之间的相似性表明,这些不同领域之间有可能实现有效结论与技术手段之间的双向转换。本文探讨的一种可能性是,适当扩展的逻辑程序设计语言的语言结构,是使立法语言本身变得更简单、清晰的可能方式。
The linguistic style in which legislation is normally written has many similarities with the language of logic programming. However, examples of legal language taken from the British Nationality Act 1981,the University of Michigan Lease Termination Clause, and the London Underground Emergency Notice suggest several ways in which the basic model of logic programming could usefully be extended. These extensions include the introduction of types, relative clauses, both ordinary negation and negation by failure, integrity constraints, metalevel reasoning and procedural notation. In addition to the resemblance between legislation and programs, the law has other important similarities with computing. It needs for example to validate legislation against social and political specifications, and it needs to organise, develop, maintain and reuse large and complex bodies of legal codes and procedures. Such parallels between computing and law suggest that it might be possible to transfer useful results and techniques in both directions between these different fields. One possibility explored in this paper is that the linguistic structures of an appropriately extended logic programming language might indicate ways in which the language of legislation itself could be made simpler and clearer.
出处
《地方立法研究》
2019年第4期80-101,共22页
Local Legislation Journal
关键词
立法
法律
逻辑编程
程序
legislation
law
logic programming
program