Computational Law
Law
without
Lawyers
 

Portico Actions


This assignment is focussed on user interaction in Portico. Click on the following links for more information about the system.

Overview of Portico
Portico System
Rule Editor for Portico

As in the previous assignment, we start with the following ontology for Portico. Our symbols include names for three zones (r1, r2, rmd) and strings of digits representing numbers (e.g. 23). To represent qualitative features of a property, we have four unary base predicates for qualitative features (zone, substandard, flaglot, and floodzone) and six unary base predicates for quantitative features (bxmin, bxmax, bymin, bymax, bzmin, and bzmax). For example, we would write zone(r2) to say that the parcel is in zone R-2; and we would write bxmin(200) and bxmax(600) to say that the building's leftmost and rightmost points have x-coordinates 200 and 600, respectively. In addition, we have four unary view predicates (allowablefootprint, allowableheight, allowablesetback, and allowableshadow).

Your first goal in this assignment is to define legality of the eight button actions with the idea that an action is deemed illegal if it leads to an illegal state. For example, the user should not be allowed to heighten the building if doing so would violate the height rule or the shadow rule. The user should not be allowed to move West or enlarge the building if doing so would violate the setback rules or the shadow rule.

To develop, test, and demonstrate your rules, load up a copy of the Editor for Portico (mentioned above). Use the editor to define the four legality of the eight button actions mentioned above in terms of the base predicates. If you have done this correctly, buttons corresponding to illegal actions should appear with a red background while other buttons will remain white / grey.

Suggestion: As mentioned before, you might want to keep a copy of your rules in a file somewhere. That way, when you load up a new starter editor, you can cut and paste them into the Rules box rather than typing them in all over again.