We give a thorough exposition of our natural language database interface that produces result sets ranked according to the degree to which database records fulfill our intuitions about vague expressions in natural language such as `a small rainy city near San Francisco'. We present our toolset supporting the rapid prototyping of such database interfaces by means of a meta-level description of a data model and a lexicon for a query language.