If I’m using a schema, which comes first: the schema or the data?
Whatever you like! I consider a schema without data to be a schema proposal, because you don’t know how well it will work until you have some data that matches it. A typical approach is to assemble a small amount of data, develop a schema for it, test how well it fits into any necessary applications, and to then incrementally add to the data and the schema. This agile approach goes over well with software developers, who have good reasons to be suspicious of starting off with a large complex schema. (If you’re taking advantage of an existing schema that is large and complex, remember that you can start off with small pieces of it and grow from there.)