Having had to draw reports from databases spawned by an application centric approach, I've concluded that semantics must be of the domain of the database and NEVER that of the application. The application holding such responsibilities only means all other applications must reimplement the same logic leading to fractured definitions and cryptic errors in large systems.