Data exchange is the process of taking data structured under a source schema and transforming it into data structured under a target schema, so that the target data is an accurate representation of the source data. Data exchange allows data to be shared between different computer programs. It is similar to the related concept of data integration except that data is actually restructured (with possible loss of content) in data exchange. There may be no way to transform an instance given all of the constraints. Conversely, there may be numerous ways to transform the instance (possibly infinitely many), in which case a "best" choice of solutions has to be identified and justified. Often there are a few dozen different source and target schema (proprietary data formats) in some specific domain. Often people develop an exchange format or interchange format for some single domain, and then write a few dozen different routines to (indirectly) translate each and every source schema to each and every target schema by using the interchange format as an intermediate step. That requires a lot less work than writing and debugging the hundreds of different routines that would be required to directly translate each and every source schema directly to each and every target schema. (For example, Standard Interchange Format for geospatial data, Data Interchange Format for spreadsheet data, GPS eXchange Format or Keyhole Markup Language for indicating GPS coordinates on the globe, Quicken Interchange Format for financial data, GDSII for integrated circuit layout, etc.) A data exchange language is a language that is domain-independent and can be used for any kind of data. Its semantic expression capabilities and qualities are largely determined by comparison with the capabilities of natural languages. The term is also applied to any file format that can be read by more than one program, including proprietary formats such as Microsoft Office documents. However, a file format is not a real language as it lacks a grammar and vocabulary.