assert> forbid(anyone-in(nz), sale(illegitimately-labelled-product("Bourbon Whiskey"))
query> prohibitions-for(anyone-in(nz))
Or something. Semi-logical legal code.
assert> forbid(anyone-in(nz), sale(illegitimately-labelled-product("Bourbon Whiskey"))
query> prohibitions-for(anyone-in(nz))
Or something. Semi-logical legal code.
And like any code, real-world applications are much harder to read than textbook examples.
Code should be executable, queryable, checkable, and so on. Legal code translated into a logical skeleton would obviously be more amenable to visualization and other interesting things. Then everyone wouldn't have to learn the language; we could develop tools for people to query the data at different levels of sophistication.
But I suspect we're decades away from actually making the shift you want in the primary documents. Computer languages are made to be executed by computers. But the execution medium for human laws is human minds. And most of the relevant human minds have law degrees. So a computer-friendly translation of laws will be always be extra work until the execution medium changes.
Machine translation is making great progress, though, so perhaps we can automate away the problem.
What do you mean by "anyone"? What does "sale" mean? How do you define "illegitimately labelled"? etc.
And before you know it you're writing your own legalese to cover every possible question.
A formal definition created by some "objective" third party would make it clear which concepts are axiomatic. If "sale" is an axiom, there is no further explanation except perhaps a link to a legal dictionary (or whatever). But maybe it can be clarified with explicit relationships.
This would all amount to another kind of legalese: a formal one based on explicit logic. It won't solve the inherent messiness of law, but it might clarify some things.
http://research.microsoft.com/en-us/um/people/simonpj/Papers...
language intended for verbal communication (ie. english) seems like a really poor option.