Computational Law
Law
without
Lawyers
 

Portico Rules


This assignment is focussed on the formalization of building codes as rules in Portico. Click on the following links for more information about the system.

Overview of Portico
Portico System
Rule Editor for Portico
English Description of Rules

In this assignment, we start with our 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 mission in this assignment is to write rules to define the four unary predicates for allowable values in terms of the vocabulary used to describe the raw data. Your definitions should faithfully capture the rules informally described in the English description mentioned above.

To develop, test, and demonstrate your rules, load up a copy of the Rule Editor for Portico (mentioned above). This page is similar to the regular Portico System (mentioned above), but in this case there are two additional widgets at the bottom of the page.

On the left is a window showing the raw data corresponding to the current state of the design. As you change the raw data, the contents of the this window are automatically updated. Try it. Note that you cannot modify the data in this window directly; you can change it only indirectly - by making selections, checking boxes, pushing buttons, or dragging the building around the parcel.

On the right at the bottom of the page is an editor for rules defining derived results. In this version of the system, there are are no definitions for the four derived value mentioned above and so the cells are empty in the analysis table above. It is your job to add rules for the four view predicates.

To add rules to the system, click in the editor and type the text of your rules. You will note that the editor is highlighted in green, indicating that the content is being edited and the rules have not yet been added to the system. When you are finished, click Save. If you have a syntax error, you will get an error warning. Otherwise, the system will replace its rules by the ones you entered. In this case the green highlight will go away indicating that your work has been saved. If you want to change he rules, simply click in the box, edit your text, and click Save once again.

Use the editor to define the four view predicates mentioned above in terms of the base predicates. If you have done this correctly, values should appear in the analysis table, and those values should be used in reddening the display and placing exes in the Status column on violations. Once you have values appearing in the column of allowed values, change values of the qualitative features change teh size or height of the building, try moving it around, and check that your analysis faithfully defines the rules described informally in the simplified building code.

Suggestion: 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.