Data exchange is the process of taking data structured under a source schema and transforming it into 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.

Data exchange

Single-domain data exchange

In some domains, a few dozen different source and target schema (proprietary data formats) may exist. An "exchange" or "interchange format" is often developed for a single domain, and then necessary routines (mappings) are written to (indirectly) transform/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.

Data exchange

Examples of these transformative interchange formats include:

Data exchange

Standard Interchange Format for geospatial data; Data Interchange Format for spreadsheet data; Open Document Format for spreadsheets, charts, presentations and word processing documents; GPS eXchange Format or Keyhole Markup Language for describing GPS data; and GDSII for integrated circuit layout.

Data exchange languages

A data interchange (or exchange) language/format is a language that is domain-independent and can be used for data from any kind of discipline. They have "evolved from being markup and display-oriented to further support the encoding of metadata that describes the structural attributes of the information."

Practice has shown that certain types of formal languages are better suited for this task than others, since their specification is driven by a formal process instead of particular software implementation needs. For example, XML is a markup language that was designed to enable the creation of dialects (the definition of domain-specific sublanguages). However, it does not contain domain-specific dictionaries or fact types. Beneficial to a reliable data exchange is the availability of standard dictionaries-taxonomies and tools libraries such as parsers, schema validators, and transformation tools.

Popular languages used for data exchange

The following is a partial list of popular generic languages used for data exchange in multiple domains.

Nomenclature

Schemas – Whether the language definition is available in a computer interpretable form Flexible – Whether the language enables extension of the semantic expression capabilities without modifying the schema Semantic verification – Whether the language definition enables semantic verification of the correctness of expressions in the language Dictionary-Taxonomy – Whether the language includes a dictionary and a taxonomy (subtype-supertype hierarchy) of concepts with inheritance Synonyms and homonyms – Whether the language includes and supports the use of synonyms and homonyms in the expressions Dialecting – Whether the language definition is available in multiple natural languages or dialects Web or ISO standard – Organization that endorsed the language as a standard Transformations – Whether the language includes a translation to other standards Lightweight – Whether a lightweight version is available, in addition to a full version Human-readable – Whether expressions in the language are human-readable (readable by humans without training) Compatibility – Which other tools are possible to use or required when using the language

Notes:

RDF is a schema-flexible language. The schema of XML contains a very limited grammar and vocabulary. Available as an extension. In the default format, not the compact syntax. The syntax is fairly simple (the language was designed to be human-readable); the dialects may require domain knowledge. The standardized fact types are denoted by standardized English phrases, which interpretation and use needs some training. The Parse dialect is used to specify, validate, and transform dialects. The English version includes a Gellish English Dictionary-Taxonomy that also includes standardized fact types (= kinds of relations).