In user interface, what users should see are two things: "What language is mostly used for websites you visit?", "What do you want to block?" Answers will be (English, Russian, Turkish) and (Ads, Social Widgets) etc.
Each filter rules will have two tags: Language and Function(?).
common
, common.eng
, common.rus
eng
, rus
, tur
, ....
The purpose of something like common
tags is to provide minimal needed filters for users e.g. who don't visit English sites and want to block ads on certain language websites only. It would consists of common ad servers and element hiding rules. Or we can just use optimized filter for it, or use filters usage stats. I guess it could be handy for users who don't want to use memory for all those exotic ad domains.
If user enable (Turkish) only, it will enable rules with tags common
, common.rus
, tur
(because presumably turkish websites would also use some russian ad providers because they are close?)
If user enable (English, Russian, Turkish), it will enable common
, common.eng
, eng
, common.rus
, rus
, tur
, ...
Tag names can be changed to be conceptually easier to grasp.
ad
, tracker
(spyware
?), social
, annoyance.cookie
, annoyance.popup
, annoyance.self_promo
, ...
What I am thinking of is that we could subdivide social
into social.widget
, social.tracker
, social.widget.comment
(blocks things like disqus widget)
For our filters, what rules belongs to what tag would be straightforward. When it is not straightforward e.g. regional trackers in Spyware filter, we can first put everything on common
, and gradually move regional rules to more appropriate categories.
For 3rd-party filters, most of them falls in a category with (language, ad)
.