1. A computer-implemented method of database access comprising: receiving, at a processor, an identifier of a database; annotating a schema of the database with a plurality of expressions which describe probability distributions over entries in the database; using the annotated schema to access the database and to obtain, as a result of inference on the accessed data according to the annotated schema, one or more predictive probability distributions over entries of cells in the database; and the result of the inference being generated by an inference engine, generating the result of the inference comprising sending to the inference engine at least one of: database column types; or an indication of whether the database columns are input, latent, or observable.