Abstract: A method of facilitating construction of a user interface for policing input of user-defined data to a database. An ontology expressed in a first-order logic language is obtained, the ontology describing one or more predefined classes, a plurality of predefined properties and at least one predefined restriction. Data useable to identify a first class is received, and in response, an intermediate data structure is generated for the first class, the intermediate data structure configured to facilitate construction of a user interface for policing input of user-defined data to the database. Generating the intermediate data structure comprises identifying a property from the ontology that is applicable to the first class, determining a property restriction function indicating whether the at least one restriction is applicable to the property, and associating the at least one restriction with the property in the intermediate data structure.