One of the current major developments of computer science is a trend away from procedural programming languages, towards the creation of non-procedural languages. The paper examines the implications of this trend on large-scale mathematical modelling. In a procedural program, the basic rule is the assignment statement. In contrast, a non-procedural program consists of an underdetermined system of equations and nothing else. Consequently a non-procedural program is far more flexible and powerful than its procedural counterpart. While the latter describes only one problem the former may be used to solve every legitimate problem about the object represented by the program. The first major difficulty in designing a non- procedural modelling system is to specify the information to be derived from the non- procedural program. An interactive solution to this problem is presented,based on a purely structural analysis of the program. This solution fully exploits thesparsity of the program, can be efficiently implemented, and enables the user both to identify and to solve every legitimate problem associated with the program.