propertyinfo("Address",X) :- addresstext(X) propertyinfo("Parcel Number",X) :- apn(X) propertyinfo("Zoning District",X) :- zonelist(X) formattedlocation(L) :- evaluate( if( someformattedaddress, choose(A,formattedaddress(A)), true, stringappend("Parcel Number: ", choose(A,apn(A))) ), L ) someformattedaddress :- formattedaddress(X) formattedaddress(X) :- address(A) & ~empty(A) & city(J) & evaluate( capitalizeone( stringappend( A,", ",J ) ), X ) %To be shown in property information addresstext(X) :- evaluate( if( someformattedaddress, stringappend(choose(A,formattedaddress(A)),", CA"), true, "—" ), X ) zonelist(ZL) :- evaluate(setofall(Z,displayzone(Z)),S) & map(divify,S,L) & joinall(L,"",ZL) displayzone(T) :- zone(Z) & evaluate(display_url(Z), T) display_url(Z) := if ( zone_url(Z,_), stringappend("",Z,""), true, Z ) divify(X,Y) :- stringappend("
",X,"
",Y) projectreport("Eligibility",E) :- statusmessage(X,Y,Z) & evaluate(inlinestatusicon(X,Y),E) inlinestatusicon(X,Y) := stringappend( "
", Y, if( split_zone_with_different_status, "
This property is located in more than 1 zoning district.
", true, "" ), "
" ) projectreport("Proposed Use",X) :- use(U) & evaluate( if( ~somedescription(U), U, true, stringappend( "
",U,"
", "
", "
",choose(D,description(U,D)),"
" ) ), X ) somedescription(U) :- description(U,X)