0

In the physical world filters can filter something and:

A) I'm interested in what goes through, what is not filtered out:

B) I'm interested in what remains after applying a filter:

  • processes in chemistry, ... [what else?]

In bits and bytes exists SW with criteria that:

C) filter something out:

  • output of some filter programs using certain options, e.g. cat -s, tr -c|-d|-s|, sed ...d

D) select something, e.g. for display:

  • query languages
  • output of some filter programs, e.g. awk, cut, head, grep, sed [n]q tail
  • "filter" feature in a vast majority of software
    [In fact, I'm not aware of any SW with filtering that works and calls this differently, except processors of the aforementioned QLs.]

(I even know a software–used heavily worldwide–that calls a feature "Filtering" while it's actually string interpolation, i.e. nothing is selected or taken out but something is put in. And some of the filter programs mentioned above use always all, don't have a criterion to filter away anything, e.g. sort, tee, tr, wc – even more confusing.)

Now, with:

  • the majority of well-known physical-world, every-day filter applications at A),
  • many (all?) of the query languages inspired by SQL having a SELECT clause for D),
  • that in CSS and XPath D) is called selector,
  • that JS has .querySelector[All]() for D),

shouldn't a software function that does the latter be better called Selector, thus eliminating the ambiguity?


PS: What a funny coincidence: The first question under Related to the right here is "Multiple selection filter". Is that a compromise? :)

1 Answer 1

2

This question is a typical programmer question :) Yes, the word "filter" is ambiguous, and actually, when you look deeper into it, the way filtering commonly is implemented is hopelessly ambiguous and confusing.

Examples

Let's take a look at a typical filter on a webstore:

a filter screen with various checkboxes grouped into categories

This has tons of ambiguity in theory, but in practice, none of its decisions are unexpected:

  • The filtering could be positive (including the term) or negative (excluding it), but since it's part of a search and I'm looking for something, it's expected to be positive.
  • The brand options could be AND or OR connected, but since a product can't be both from Lindt and from Kinder, it's expected to be OR.
  • The filters at the top (New, Special Offers) are separate from the brands filter, and they can both apply at the same time, so they're expected to be AND.

Another example:

various filter chips grouped into categories

Again, even though in theory all of the above would apply here, in practice it's also very clear - (Washer/Dryer AND Dogs ok) AND (neighborhood 1 OR neighborhood 2). And note that rather than tickboxes, we're using filter chips this time.

And here's a third example, this time Google:

enter image description here

And, surprise!, the filters are tabs now, and within the main filter there now are "Tool"-subfilters!

On filters in general

Filters are always highly context sensitive and - assuming they're designed well - also highly intuitive. While this intuitiveness follows some logic, it doesn't follow a universally applicable logic. But in general:

  • filters are positive, ie the choosen options are included
  • different groups of options are AND-connected
  • mutually exclusive options within a group are OR-connected

Likewise, the word "Filter" adjusts to the context: It can be just "filter" or "filtering options", but drilling down a hierarchical category list, choosing tags, entering search terms, clicking "show nearby results" instead of "search", chips or tabs all can act as filters of some sort. What to use when is not entirely clear, and cannot be determined with logic alone.

User testing is crucial here.

Don't use "selector"

Calling them "selector" may be technically more correct, but "selector" is jargon. Unless your audience is intimately familiar with CSS and SQL, it won't be understood. Note that selector has other meanings in other contexts like music or sport.


As a final note, even in real life, filters are highly context sensitive. In the context of coffee, you're interested in the liquid that passes through, yes. But in case of pasta, it's the solids. Or as Wikipedia puts it:

A strainer [...] is a form of sieve used to separate suspended solids from a liquid by filtration.

3
  • Yes, I'm "a typical programmer", more or less. ATM I don't have an "unfamiliar" audience (apart from SE sites on occasion). It was a question that bothered me for quite a while. Re the final note: I thought about sieves before but it's basically the same there: Interested in fine sand or in the hot pasta you cooked before? Though, there is a (nuance of a) difference in my language, German, just "filter|sieve" refers to that what goes through, "filter|sieve out|away" refers to that what is kept back: "I filter muddy water. I filter the mud out of it." IDK whether this works in English, too. Mar 5 at 1:21
  • 1
    @GeroldBroser It does. "Filtered" water is water with the contaminants "filtered out". Mar 5 at 12:12
  • @LukeSawczak Thx for this info! The logical alternative to the non-"intimately familiar" selector would be out-filterer then, wouldn't it? :) OTH, re logical: There are 10 types of people who think binary. Those who do and those who don't. Mar 5 at 18:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.