Data exchange: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
m Citation error
First part of data echange languages
Line 15: Line 15:
== Data exchange languages == <!-- redirect target, if you change this, fix the redirect, too! -->
== Data exchange languages == <!-- redirect target, if you change this, fix the redirect, too! -->
{{see also|Modeling language}}
{{see also|Modeling language}}
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.<ref name="BillingsleyGeneral88">{{cite journal |title=General Data Interchange Language |journal=ISPRS Archives |author=Billingsley, F.C. |volume=27 |issue=B3 |pages=80–91 |year=1988 |url=http://www.isprs.org/proceedings/XXVII/congress/part3/default.aspx |accessdate=25 May 2018 |quote=The transformation routines will constitute a language and syntax which must be discipline and machine independent.}}</ref> They have "evolved from being markup and display-oriented to further support the encoding of metadata that describes the structural attributes of the information."<ref name="NurseitovComparison09">{{cite journal |title=Comparison of JSON and XML Data Interchange Formats: A Case Study |journal=Scenario |author=Nurseitov, N.; Paulson, M.; Reynolds, R.; Izurieta, C. |pages=157–162 |year=2009}}</ref>
A data exchange language{{citation needed|date=May 2016}} 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.


Practice has shown that certain types of [[formal language]]s are better suited for this task than others, since their specification is driven by a formal process instead of a 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) and a popular choice now in particular on the internet. 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 [[parser]]s, schema [[validator]]s and transformation tools.{{Citation needed|date=September 2016}}
Practice has shown that certain types of [[formal language]]s 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).<ref name="LewisAdvanced09">{{cite book |url=https://books.google.com/books?id=HTtFEKPBtcsC&pg=PA5&lpg=PA5 |title=AdvancED CSS |author=Lewis, J.; Moscovitz, M. |publisher=APress |pages=5–6 |year=2009 |isbn=9781430219323 |accessdate=25 May 2018}}</ref> 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 [[parser]]s, schema [[validator]]s, and transformation tools.{{Citation needed|date=May 2018 |reason=While I can recognize the use of these tools as part of the data exchange process, I can't find a source (May 2018) that says all of these together are beneficial to data exchange.}}


=== Popular languages used for data exchange ===
=== Popular languages used for data exchange ===

Revision as of 19:42, 25 May 2018

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.[1] 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.

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.[2][3] 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.

Examples of these transformative interchange formats include:

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.[10] They have "evolved from being markup and display-oriented to further support the encoding of metadata that describes the structural attributes of the information."[11]

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).[12] 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.[citation needed]

Popular languages used for data exchange

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

Schemas Flexible Semantic verification Dictionary Information Model Synonyms and homonyms Dialecting Web standard Transformations Lightweight Human readable Compatibility
RDF Yes[1] Yes Yes Yes Yes Yes Yes Yes Yes Yes Partial Subset of Semantic web
XML Yes[1] Yes No No No No Yes Yes Yes No Yes subset of SGML, HTML
Atom Yes Un­known Un­known Un­known No Un­known Yes Yes Yes No No XML dialect
JSON No Un­known Un­known Un­known No Un­known No Yes No Yes Yes subset of YAML
YAML No[2] Un­known Un­known Un­known No Un­known No No No[2] Yes Yes[3] superset of JSON
REBOL Yes[6] Yes No Yes No Yes Yes No Yes[6] Yes Yes[4]
Gellish Yes Yes Yes Yes[7] No Yes Yes ISO No Yes Partial[5] SQL, RDF/XML, OWL

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.[citation needed]
  • Compatibility - Which other tools are possible or required when using the language.[citation needed]

Notes:

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

XML for data exchange

The popularity of XML for data exchange on the World Wide Web has several reasons. First of all, it is closely related to the preexisting standards Standard Generalized Markup Language (SGML) and Hypertext Markup Language (HTML), and as such a parser written to support these two languages can be easily extended to support XML as well. For example, XHTML has been defined as a format that is formal XML, but understood correctly by most (if not all) HTML parsers. This led to quick adoption of XML support in web browsers and the toolchains used for generating web pages.[citation needed]

YAML for data exchange

YAML is a language that was designed to be human-readable (and as such to be easy to edit with any standard text editor). Its notion often is similar to reStructuredText or a Wiki syntax, who also try to be readable both by humans and computers. YAML 1.2 also includes a shorthand notion that is compatible with JSON, and as such any JSON document is also valid YAML; this however does not hold the other way.[citation needed]

REBOL for data exchange

REBOL is a language that was designed to be human-readable and easy to edit using any standard text editor. To achieve that it uses a simple free-form syntax with minimal punctuation, and a rich set of datatypes. REBOL datatypes like URLs, e-mails, date and time values, tuples, strings, tags, etc. respect the common standards. REBOL is designed to not need any additional meta-language, being designed in a metacircular fashion. The metacircularity of the language is the reason why e.g. the Parse dialect used (not exclusively) for definitions and transformations of REBOL dialects is also itself a dialect of REBOL. REBOL was used as a source of inspiration by the designer of JSON.[citation needed]

Gellish for data exchange

Gellish English is a formalized subset of natural English, which includes a simple grammar and a large extensible English Dictionary-Taxonomy that defines the general and domain specific terminology (terms for concepts), whereas the concepts are arranged in a subtype-supertype hierarchy (a Taxonomy), which supports inheritance of knowledge and requirements. The Dictionary-Taxonomy also includes standardized fact types (also called relation types). The terms and relation types together can be used to create and interpret expressions of facts, knowledge, requirements and other information. Gellish can be used in combination with SQL, RDF/XML, OWL and various other meta-languages. The Gellish standard is being adopted as ISO 15926-11.[citation needed]

See also

References

  1. ^ A. Doan, A. Halevy, and Z. Ives. "Principles of data integration", Morgan Kaufmann, 2012 pp. 276
  2. ^ Friedenthal, S.; Moore, A.; Steiner, R. (2011). A Practical Guide to SysML: The Systems Modeling Language. Elsevier. pp. 543–44. ISBN 9780123852069. Retrieved 25 May 2018.{{cite book}}: CS1 maint: multiple names: authors list (link)
  3. ^ Arenas, M.; Barceló, P.; Libkin, L.; Murlak, F. (2014). Foundations of Data Exchange. Cambridge University Press. pp. 1–11. ISBN 9781107016163. Retrieved 25 May 2018.{{cite book}}: CS1 maint: multiple names: authors list (link)
  4. ^ Clancy, J.J. (2012). "Chapter 1: Directions for Engineering Data Exchange for Computer Aided Design and Manufacturing". In Wang, P.C.C. (ed.). Advances in CAD/CAM: Case Studies. Springer Science & Business Media. pp. 1–36. ISBN 9781461328193. Retrieved 25 May 2018.
  5. ^ Kalish, C.E.; Mayer, M.F. (November 1981). "DIF: A format for data exchange between application programs". BYTE Magazine: 174.{{cite journal}}: CS1 maint: multiple names: authors list (link)
  6. ^ "About ODF". OpenDoc Society. Retrieved 25 May 2018.
  7. ^ Zhu, X. (2016). GIS for Environmental Applications: A practical approach. Routledge. ISBN 9781134094509. Retrieved 25 May 2018.
  8. ^ "KML Reference". Google Developers. 21 January 2016. Retrieved 25 May 2018.
  9. ^ Martins, R.M.F.; Lourenço, N.C.C.; Horta, N.C.G. (2012). Generating Analog IC Layouts with LAYGEN II. Springer Science & Business Media. p. 34. ISBN 9783642331466. Retrieved 25 May 2018.{{cite book}}: CS1 maint: multiple names: authors list (link)
  10. ^ Billingsley, F.C. (1988). "General Data Interchange Language". ISPRS Archives. 27 (B3): 80–91. Retrieved 25 May 2018. The transformation routines will constitute a language and syntax which must be discipline and machine independent.
  11. ^ Nurseitov, N.; Paulson, M.; Reynolds, R.; Izurieta, C. (2009). "Comparison of JSON and XML Data Interchange Formats: A Case Study". Scenario: 157–162.{{cite journal}}: CS1 maint: multiple names: authors list (link)
  12. ^ Lewis, J.; Moscovitz, M. (2009). AdvancED CSS. APress. pp. 5–6. ISBN 9781430219323. Retrieved 25 May 2018.{{cite book}}: CS1 maint: multiple names: authors list (link)