Describir: A pattern language