Data are often contextualized, and therefore trapped, by software created for particular context. For data to become reusable outside its intended context, it must be self-describing elevating the data schema to the data layer. Furthermore, some cases require software processes be described as data using techniques such as the PROV data model.