One other point of response... Ambrose Li wrote: > ... if simply > referring to the names would be infringement, how can any scheme > work at all? And wouldn't the average person commit trademark > infringement even during normal use? > I sent Enrique a private response to a private message on this thread - the following is an excerpt: Let's imagine that fontconfig will allow you to: . give a name as input to a request to "describe" what is named, for which it returns a collection of "abstract" style keywords and possibly also some detailed metric information (Call this "name_to_style(name) => style [,details]") . give a collection of abstract style keywords, possibly as a logical expression (e.g., "monospace not serif"), for which it returns a list of names. (Call this "style_to_names(style) => names") . give either a name or a collection of abstract style keywords, possibly as an expression which expresses preference in some way, and possible also some detailed metric information that also expresses preference, for which it returns a single specific font (not a name only, but a font). (Call this "specific_font(name|style[,details]) => font") And you will be able to do what you desire to do. Moreover, fontconfig will not be ever be substituting names for names, but only associating names to descriptions and/or descriptions to names, thus avoiding the trademark issue quite well. I.e. style_to_names(name_to_style(name)) => names without even having a mechanism that directly maps a name to other names.