select(keyword,K) & ~empty(K) ==> newkeyword(K)
select(keyword,K) & newkeyword(X) ==> ~newkeyword(X)
click(browseuse) & newkeyword(X) ==> ~newkeyword(X)
empty(X) :- matches(X,"^\s*$")
somekeyword :- keyword(K)
somenewkeyword :- newkeyword(K)
value(keyword,K) :- newkeyword(K)
attribute(keyword,class,X) :- evaluate(
if(
somenewkeyword,
"search semi-bold hascontent",
true,
"search semi-bold"
), X
)
attribute(searchbusiness,href,X) :- evaluate(
if(
somenewkeyword,
stringappend("/business/milpitas/search?keyword=",encodeParameter(choose(K,newkeyword(K)))),
true,
""
), X
)
attribute(searchbusiness,onclick,X) :- evaluate(
if(
somenewkeyword,
"return true;",
true,
"document.querySelector('.search').focus(); return false;"
), X
)
attribute(browseuse,href,"/business/milpitas/search")
attribute(keyword,placeholder,"Enter your business type")
load & evaluate(searchkeyword(),[X,Y]) & ~empty(X) & empty(Y) ==> keyword(X) & newkeyword(X) & searchbykeyword
load & evaluate(searchkeyword(),[X,Y]) & ~empty(X) & ~empty(Y) ==> keyword(Y) & newkeyword(Y) & use(Y)
load & evaluate(searchkeyword(),[X,Y]) & ~empty(Y) ==> use(Y)
attribute(scroll,class,X) :- evaluate(
if(
somekeyword,
"scroll",
true,
"scroll bycategory"
), X
)
attribute(searchbar,class,Y) :- evaluate(
if(
searchbykeyword,
"searchbar",
true,
"searchbar hidden"
), Y
)
attribute(searchbar(X),class,Y) :- evaluate(
if(
searchbar(X),
"full-height",
true,
"hidden"
), Y
)
searchbar(X) :- evaluate(
if(
somekeyword,
keyword,
true,
browse
), X
)
attribute(searchfooter,class,X) :- evaluate(
if(
searchbykeyword,
"hidden",
someuse,
"hidden",
true,
"continue text-right"
), X
)
attribute(continue,disabled,X) :- evaluate(
if(
somecandidate,
"no",
true,
"yes"
), X
)
attribute(continue,href,X) :- evaluate(
if(
somecandidate,
stringappend("/business/milpitas/search?keyword=",encodeParameter(choose(A,candidate(A))),"&use=",encodeParameter(choose(B,candidate(B)))),
true,
"#"
), X
)
innerhtml(searchHeader,X) :- evaluate(
if(
searchbykeyword,
if(
somematch,
"Select the best match for your proposed business.",
true,
"We are unable to locate business types that match your search."
),
someuse,
stringappend("Your proposed business:","<br>",choose(U,use(U))),
true,
""
), X
)
style(legend,display,X) :- evaluate(
if(
someuse,
"",
somecandidate,
"",
true,
"none"
), X
)
select(use,X) ==> use(X)
select(use,X) & use(Y) ==> ~use(Y)
select(use,X) ==> newkeyword(X)
select(use,X) & newkeyword(Y) ==> ~newkeyword(Y)
value(use,X) :- use(X)
select(candidate,X) ==> candidate(X)
select(candidate,X) & candidate(Y) ==> ~candidate(Y)
select(candidate,X) ==> newkeyword(X)
select(candidate,X) & newkeyword(Y) ==> ~newkeyword(Y)
value(candidate,X) :- candidate(X)
somecandidate :- candidate(X)
attribute(usematch,class,X) :- evaluate(
if(
searchbykeyword,
"",
true,
"hidden"
), X
)
section(browse) :- ~somekeyword
section(use) :- somekeyword
section(location) :- someuse
section(status) :- someuse & somelocation
attribute(section(X),class,Y) :- evaluate(
if(
section(X),
"",
true,
"hidden"
), Y
)
attribute(location,placeholder,"Search by address")
attribute(location,class,X) :- evaluate(
if(
somelocation,
"search semi-bold hascontent",
true,
"search semi-bold"
), X
)
attribute(clearlocation,class,X) :- evaluate(
if(
somelocationtext,
"clear-btn clickable",
true,
"clear-btn clickable hidden"
), X
)
clearlocation :- click(clearlocation)
clearlocation & location(X) ==> ~location(X)
select(location,X) & ~empty(X) ==> location(X)
select(location,X) & location(Y) ==> ~location(Y)
value(location,X) :- somelocation & evaluate(
if (
someaddress,
capitalizeone(choose(A,address(A))),
true,
choose(A,apn(A))
), X
)
value(location,L) :- ~somelocation & location(L)
someaddress :- address(X) & ~empty(X)
%apn or address
select(locationtype,X) ==> locationtype(X)
select(locationtype,X) & locationtype(Y) ==> ~locationtype(Y)
%`some_questionss_not_answered` will never be in the model for SM since there are no additional questions
attribute(viewreport,disabled,X) :- evaluate(
if(
some_questionss_not_answered,
"yes",
true,
"no"
), X
)
attribute(viewreport,href,X) :- evaluate(
if(
somereportlink,
choose(X,reportlink(X)),
true,
"#"
), X
)
somereportlink :- reportlink(X)
reportlink(X) :- apn(A) & address(B) & use(U) & evaluate(
stringappend(
"/business/milpitas/report?apn=",encodeParameter(A),"&address=",encodeParameter(B),"&use=",encodeParameter(U)
), X
)
attribute(status(header),class,X) :- statusmessage(A,B,C) & evaluate(stringappend("h4 status status-",A),X)
innerhtml(status(header),B) :- statusmessage(A,B,C)
innerhtml(status(message),C) :- statusmessage(A,B,C)
innerhtml(marker,Y) :- statusmessage(X,Y,Z)
attribute(marker,"class",C) :- statusmessage(X,Y,Z) & evaluate(stringappend("marker ",X), C)
marker("allowed") :- ~unknown & minmaxstatus(3,3)
someuse :- use(X)
somematch :- usematch(X)
somelocation :- apn(X)
somelocationtext :- location(X)
allusedescr(CATEGORY,USE,DESCR) :- classifiedas(USE,CATEGORY) & evaluate(
if(
somedescription(USE),
choose(Z,description(USE,Z)),
true,
""
), DESCR
)
usematchdescr(X,Y) :- usematch(X) & evaluate(
if(
somedescription(X),
choose(Z,description(X,Z)),
true,
""
), Y
)
somedescription(X) :- description(X,Y)
usematch(X) :- searchspace(X,Y) & ~onlyMatch(X) & keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch(Y,LK),1) & ~doNotMatch(X) & ~someOnlyMatch
usematch(X) :- ~someOnlyMatch & doMatch(X)
usematch(X) :- onlyMatch(X)
%searchspace(X,X) :- classifiedas(X,C)
%searchspace(X,C) :- classifiedas(X,C)
%searchspace(X,T) :- description(X,D) & evaluate(html2text(D),T)
%searchspace(X,K) :- keywordOf(X,K)
%searchspace(X,D) :- keywordOf(X,K) & meaningOf(K,D)
%Do Match means match all words - not unique result
doMatch("Family day care home") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("nursery",LK),1) & evaluate(fuzzymatch("school",LK),1)
doMatch("Office") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("co-working",LK),1)
doMatch("Office") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("co",LK),1) & evaluate(fuzzymatch("work",LK),1)
doMatch("Office") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("interior",LK),1) & evaluate(fuzzymatch("design",LK),1)
doMatch("Office") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("graphic",LK),1) & evaluate(fuzzymatch("design",LK),1)
doMatch("Office") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("real",LK),1) & evaluate(fuzzymatch("estate",LK),1)
doMatch("Office") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("law",LK),1) & evaluate(fuzzymatch("firm",LK),1)
doMatch("Office") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("title",LK),1) & evaluate(fuzzymatch("company",LK),1)
doMatch("Instruction - Group") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("muay",LK),1) & evaluate(fuzzymatch("thai",LK),1)
doMatch("Instruction - Private") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("muay",LK),1) & evaluate(fuzzymatch("thai",LK),1)
doMatch("Restaurant") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("coffee",LK),1) & evaluate(fuzzymatch("shop",LK),1)
doMatch("Restaurant") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("fast",LK),1) & evaluate(fuzzymatch("food",LK),1)
doMatch("Retail") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("shop",LK),1)
doMatch("Retail") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("office",LK),1) & evaluate(fuzzymatch("supplies",LK),1)
doMatch("Dry-cleaning plant") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("dry",LK),1) & evaluate(fuzzymatch("clean",LK),1)
doMatch("Dry-cleaning plant") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("dry",LK),1) & evaluate(fuzzymatch("cleaning",LK),1)
doMatch("Repair and cleaning") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("dry",LK),1) & evaluate(fuzzymatch("clean",LK),1)
doMatch("Check cashing and payday loan businesses") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("check",LK),1) & evaluate(fuzzymatch("cashing",LK),1)
%Do not match
doNotMatch("Repair and cleaning") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("car",LK),1)
doNotMatch("Repair and cleaning") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("vehicle",LK),1)
doNotMatch("Repair and cleaning") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("machinery",LK),1)
doNotMatch("Repair and cleaning") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("computer",LK),1)
doNotMatch("Repair and cleaning") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("appliance",LK),1)
doNotMatch("Repair and cleaning") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("furniture",LK),1)
doNotMatch("Repair and cleaning") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("dry",LK),1) & evaluate(fuzzymatch("cleaning",LK),1) & evaluate(fuzzymatch("plant",LK),1)
doNotMatch("Repair and cleaning") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("business",LK),1) & evaluate(fuzzymatch("equipment",LK),1)
doNotMatch("Repair and cleaning") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("heavy",LK),1) & evaluate(fuzzymatch("equipment",LK),1)
doNotMatch("Recycling processing facility") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("cleaning",LK),1)
doNotMatch("Recreation center or facility") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("construction",LK),1) & evaluate(fuzzymatch("material",LK),1)
doNotMatch("Business support services") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("vehicle",LK),1) & evaluate(fuzzymatch("repair",LK),1)
doNotMatch("Alcoholic beverage sales") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("restaurant",LK),1)
doNotMatch("Auction hall") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("personal",LK),1)
doNotMatch("Bank or other financial institution") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("personal",LK),1)
doNotMatch("Banquet hall") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("personal",LK),1)
doNotMatch("Catering establishment") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("personal",LK),1)
doNotMatch("Freestanding ATM") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("personal",LK),1)
doNotMatch("Funeral services") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("personal",LK),1)
doNotMatch("Health and athletic facility") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("personal",LK),1)
doNotMatch("Instruction - Group") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("personal",LK),1)
doNotMatch("Instruction - Private") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("personal",LK),1)
doNotMatch("Massage establishment") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("personal",LK),1)
doNotMatch("Medical or dental office") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("personal",LK),1)
doNotMatch("Movie theater") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("personal",LK),1)
doNotMatch("Office") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("personal",LK),1)
doNotMatch("Office") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("medical",LK),1)
doNotMatch("Office") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("dental",LK),1)
doNotMatch("Transportation service facility") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("personal",LK),1)
doNotMatch("Sauna or steam bath") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("personal",LK),1)
doNotMatch("Funeral services") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("home",LK),1)
doNotMatch("Recreation center or facility") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("loose",LK),1)
doNotMatch("Auditorium or conference center") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("accessory",LK),1)
doNotMatch("Auditorium or conference center") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("office",LK),1)
doNotMatch("Family day care home") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("school",LK),1)
doNotMatch("Hospital") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("dental",LK),1)
doNotMatch("Trade and vocational school") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("auto",LK),1)
doNotMatch("Smoke/tobacco shop (does not include cannabis sales)") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("cannabis",LK),1)
doNotMatch("Radio or television station") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("gas",LK),1) & evaluate(fuzzymatch("station",LK),1)
doNotMatch("Radio or television station") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("gasoline",LK),1) & evaluate(fuzzymatch("station",LK),1)
doNotMatch("Instruction - Group") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("private",LK),1)
doNotMatch("Instruction - Private") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("private",LK),1)
doNotMatch("Instruction - Group") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("school",LK),1)
doNotMatch("Instruction - Private") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("school",LK),1)
doNotMatch("Restaurant") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("shop",LK),1)
doNotMatch("Trade and vocational school") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("weight",LK),1) & evaluate(fuzzymatch("training",LK),1)
doNotMatch("Retail") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("leather",LK),1)
doNotMatch("Contractor or construction business") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("medical",LK),1) & evaluate(fuzzymatch("supply",LK),1)
%Only Match means match all words - unique result
someOnlyMatch :- onlyMatch(_)
onlyMatch("Bank or other financial institution") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("personal",LK),1) & evaluate(fuzzymatch("banker",LK),1)
onlyMatch("Pawnshop") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("pawn",LK),1) & evaluate(fuzzymatch("shop",LK),1)
onlyMatch("Kennel") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("doggie",LK),1)
onlyMatch("Kennel") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("doggy",LK),1)
onlyMatch("Adult business") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("adult",LK),1) & evaluate(fuzzymatch("entertainment",LK),1)
onlyMatch("Alcoholic beverage sales") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("without",LK),1) & evaluate(fuzzymatch("restaurant",LK),1)
onlyMatch("Emergency shelter") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("support",LK),1) & evaluate(fuzzymatch("service",LK),1)
onlyMatch("Health and athletic facility") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("court",LK),1)
onlyMatch("Farmers market") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("certified",LK),1) & evaluate(fuzzymatch("organic",LK),1)
onlyMatch("Retail") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("leather",LK),1) & evaluate(fuzzymatch("good",LK),1)
onlyMatch("Retail") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("sporting",LK),1) & evaluate(fuzzymatch("good",LK),1)
onlyMatch("Home occupation") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("home",LK),1) & evaluate(fuzzymatch("occupation",LK),1)
onlyMatch("Home occupation") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("home",LK),1) & evaluate(fuzzymatch("business",LK),1)
onlyMatch("Home occupation") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("home",LK),1) & evaluate(fuzzymatch("office",LK),1)
onlyMatch("Home occupation") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("professional",LK),1) & evaluate(fuzzymatch("office",LK),1) & evaluate(fuzzymatch("home",LK),1)
onlyMatch("Recreation center or facility") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("recreation",LK),1) & evaluate(fuzzymatch("facility",LK),1)
onlyMatch("Recreation center or facility") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("recreation",LK),1) & evaluate(fuzzymatch("center",LK),1)
onlyMatch("Instruction - Group") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("driving",LK),1) & evaluate(fuzzymatch("school",LK),1)
onlyMatch("Instruction - Group") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("martial",LK),1) & evaluate(fuzzymatch("art",LK),1)
onlyMatch("Instruction - Group") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("heritage",LK),1) & evaluate(fuzzymatch("school",LK),1)
onlyMatch("Instruction - Group") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("private",LK),1) & evaluate(fuzzymatch("class",LK),1)
onlyMatch("Instruction - Group") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("private",LK),1) & evaluate(fuzzymatch("tutor",LK),1)
onlyMatch("Instruction - Group") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("private",LK),1) & evaluate(fuzzymatch("instruct",LK),1)
onlyMatch("Instruction - Group") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("personal",LK),1) & evaluate(fuzzymatch("train",LK),1)
onlyMatch("Instruction - Private") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("driving",LK),1) & evaluate(fuzzymatch("school",LK),1)
onlyMatch("Instruction - Private") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("martial",LK),1) & evaluate(fuzzymatch("art",LK),1)
onlyMatch("Instruction - Private") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("heritage",LK),1) & evaluate(fuzzymatch("school",LK),1)
onlyMatch("Instruction - Private") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("private",LK),1) & evaluate(fuzzymatch("class",LK),1)
onlyMatch("Instruction - Private") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("private",LK),1) & evaluate(fuzzymatch("tutor",LK),1)
onlyMatch("Instruction - Private") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("private",LK),1) & evaluate(fuzzymatch("instruct",LK),1)
onlyMatch("Instruction - Private") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("personal",LK),1) & evaluate(fuzzymatch("train",LK),1)
onlyMatch("Newsstand") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("news",LK),1)
onlyMatch("Newsstand") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("newspaper",LK),1)
onlyMatch("Rentals (medical supplies, costumes, party equipment, office equipment)") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("office",LK),1) & evaluate(fuzzymatch("equipment",LK),1)
onlyMatch("Trade and vocational school") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("construction",LK),1) & evaluate(fuzzymatch("trade",LK),1)
onlyMatch("Thrift store") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("used",LK),1)
onlyMatch("Social organization or place of assembly") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("private",LK),1) & evaluate(fuzzymatch("club",LK),1)
onlyMatch("Social organization or place of assembly") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("religious",LK),1) & evaluate(fuzzymatch("assembly",LK),1)
onlyMatch("Social organization or place of assembly") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("fraternal",LK),1) & evaluate(fuzzymatch("organization",LK),1)
onlyMatch("Social organization or place of assembly") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("social",LK),1) & evaluate(fuzzymatch("organization",LK),1)
onlyMatch("Smoke/tobacco shop (does not include cannabis sales)") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("head",LK),1) & evaluate(fuzzymatch("shop",LK),1)
onlyMatch("Restaurant") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("coffee",LK),1)
onlyMatch("Restaurant (with other live entertainment/dancing)") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("coffee",LK),1)
onlyMatch("Restaurant (with drive-in or drive-through)") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("coffee",LK),1)
onlyMatch("Restaurant (with ancillary on-premise beer & wine with no separate bar)") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("coffee",LK),1)
onlyMatch("Restaurant (with drive-in or drive-through)") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("fast",LK),1) & evaluate(fuzzymatch("food",LK),1)
onlyMatch("Restaurant") :- keyword(K) & lowercase(K,LK) & evaluate(fuzzymatch("fast",LK),1) & evaluate(fuzzymatch("food",LK),1)
%locationselected & location(X) ==> ~location(X)
locationselected & address(X) ==> ~address(X)
locationselected & apn(X) ==> ~apn(X)
locationselected & basezone(X) ==> ~basezone(X)
locationselected & overlayzone(X) ==> ~overlayzone(X)
locationselected & within_1000ft_of(X) ==> ~within_1000ft_of(X)
locationselected & within_300ft_of(X) ==> ~within_300ft_of(X)
locationselected & generalplan(X) ==> ~generalplan(X)
attribute(page,class,X) :- evaluate(
if(
cat_party,
"cat-party",
true,
""
), X
)
cat_party :- value(keyword,"10 cats")