Describing Google Search, I would say that it takes a formated string of words and returns a set of (links to) documents. I want do design a program that does the opposite: take an arbitrary text document (and maybe, at one time, a set of them), compute a formated string of words, and return that. This shall work by passing the text of the input document to a hierarchy of pattern matchers, looking for and extracting certain values and their relations. Next comes a function that takes these values and relations and knows how to distribute these data to the appropriate subfunctions, each of which computes and returns a substring; the parent then puts the substrings in the right order, formating them for the return.<p>I'm looking for a name for this concept, and wondered whether "reduce-map" would be a good one - maybe I could say that I reduce the document to a function, which returns a map (the formated string). To find out whether a "reduce-map" moniker had any currency, and if it did, in which context, I googled <i>program "reduce-map"</i>:<p>http://www.google.com/search?hl=en&q=program+%22reduce-map%22<p>But due to the fact that Google doesn't search for an exact string or substring even if you format it using doublequotes (which it does seem to promise; compare 'M.I.A.'s album "/\/\/\Y/\" is ungoogleable', http://news.ycombinator.com/item?id=1363489 ), what I got back was a slew of ordinary map-reduce tutorials. So I still don't know whether "reduce-map" would mean to other people what I want it to mean. I would be thankful for your take on that.