A general language called the resource allocation problem specification (RAPS) language, for specifying resource allocation and timetabling problems is presented. The language is based on the expert-system paradigm which enables the solution of resource allocation problems by using experts' knowledge and heuristics. The language enables the specification of a problem in terms of resources, activities, allocation rules, and constraints. The language syntax is powerful and allows the specification of rules and constraints which are very difficult to formulate with the more traditional approaches. The language is independent of the inference engine that performs the allocation and can therefore be used to evaluate different allocation strategies. RAPS and the expert system for resource allocation (ESRA) shell were used to solve several resource allocation problems, which include staff allocation for air force missions and class scheduling in a university.