El intercambio de datos es el proceso de tomar datos estructurados bajo un esquema de origen y transformarlos en un esquema de destino , de modo que los datos de destino sean una representación precisa de los datos de origen. [1] El intercambio de datos permite que los datos se compartan entre diferentes programas informáticos.
Es similar al concepto relacionado de integración de datos, excepto que los datos se reestructuran realmente (con posible pérdida de contenido) en el intercambio de datos. Puede que no haya forma de transformar una instancia dadas todas las restricciones. A la inversa, puede haber numerosas formas de transformar la instancia (posiblemente infinitas), en cuyo caso se debe identificar y justificar una "mejor" elección de soluciones.
Intercambio de datos de dominio único
En algunos dominios, pueden existir algunas docenas de esquemas de origen y destino diferentes (formatos de datos propietarios). Un "intercambio" o "formato de intercambio" a menudo se desarrolla para un solo dominio, y luego se escriben las rutinas necesarias (mapeos) para transformar (indirectamente) / traducir todos y cada uno de los esquemas de origen a todos y cada uno de los esquemas de destino utilizando el formato de intercambio como un paso intermedio. [2] Eso requiere mucho menos trabajo que escribir y depurar los cientos de rutinas diferentes que serían necesarias para traducir directamente todos y cada uno de los esquemas de origen directamente a todos y cada uno de los esquemas de destino.
Ejemplos de estos formatos de intercambio transformadores incluyen:
- Formato de intercambio estándar para datos geoespaciales; [3]
- Formato de intercambio de datos para datos de hojas de cálculo; [4]
- Formato de documento abierto para hojas de cálculo, gráficos, presentaciones y documentos de procesamiento de texto; [5]
- Formato de intercambio de GPS o lenguaje de marcado de ojo de cerradura para describir datos de GPS; [6] [7] y
- GDSII para diseño de circuitos integrados. [8]
Idiomas de intercambio de datos
Un idioma / formato de intercambio (o intercambio) de datos es un idioma que es independiente del dominio y se puede utilizar para datos de cualquier tipo de disciplina. [9] Han "evolucionado de estar orientados al marcado y la visualización para apoyar aún más la codificación de metadatos que describen los atributos estructurales de la información". [10]
La práctica ha demostrado que ciertos tipos de lenguajes formales son más adecuados para esta tarea que otros, ya que su especificación está impulsada por un proceso formal en lugar de por necesidades particulares de implementación de software. Por ejemplo, XML es un lenguaje de marcado que fue diseñado para permitir la creación de dialectos (la definición de sublenguajes específicos del dominio). [11] Sin embargo, no contiene diccionarios o tipos de hechos específicos del dominio. Un beneficio para un intercambio de datos confiable es la disponibilidad de diccionarios, taxonomías y bibliotecas de herramientas estándar, como analizadores , validadores de esquemas y herramientas de transformación. [ cita requerida ]
Idiomas populares utilizados para el intercambio de datos
La siguiente es una lista parcial de lenguajes genéricos populares utilizados para el intercambio de datos en múltiples dominios.
Esquemas | Flexible | Verificación semántica | Diccionario | Modelo de información | Sinónimos y homónimos | Dialecting | Estándar web | Transformaciones | Ligero | Legible por humanos | Compatibilidad | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
RDF | Sí [1] | sí | sí | sí | sí | sí | sí | sí | sí | sí | Parcial | Subconjunto de web semántica |
XML | Sí [2] | sí | No | No | No | No | sí | sí | sí | No | sí | subconjunto de SGML , HTML |
Átomo | sí | Desconocido | Desconocido | Desconocido | No | Desconocido | sí | sí | sí | No | No | Dialecto XML |
JSON | No | Desconocido | Desconocido | Desconocido | No | Desconocido | No | sí | No | sí | sí | subconjunto de YAML |
YAML | No [3] | Desconocido | Desconocido | Desconocido | No | Desconocido | No | No | No [3] | sí | Sí [4] | superconjunto de JSON |
REBOL | Sí [7] | sí | No | sí | No | sí | sí | No | Sí [7] | sí | Sí [5] | |
Gellish | sí | sí | sí | Sí [8] | No | sí | sí | YO ASI | No | sí | Parcial [6] | SQL, RDF / XML, OWL |
Nomenclatura
- Esquemas: si la definición del lenguaje está disponible en un formato interpretable por computadora
- Flexible: si el lenguaje permite la extensión de las capacidades de expresión semántica sin modificar el esquema
- Verificación semántica: si la definición del idioma permite la verificación semántica de la exactitud de las expresiones en el idioma.
- Diccionario-taxonomía: si el idioma incluye un diccionario y una taxonomía (jerarquía subtipo-supertipo) de conceptos con herencia.
- Sinónimos y homónimos: si el idioma incluye y admite el uso de sinónimos y homónimos en las expresiones.
- Dialección: si la definición del idioma está disponible en varios idiomas naturales o dialectos
- Estándar web o ISO: organización que aprobó el idioma como estándar
- Transformaciones: si el idioma incluye una traducción a otros estándares
- Ligero: si está disponible una versión liviana, además de una versión completa
- Legibles - expresiones ya sea en el lenguaje son legible por humanos (legible por humanos sin capacitación) [12]
- Compatibilidad: qué otras herramientas se pueden usar o se requieren al usar el idioma.
Notas:
- ^ RDF es un lenguaje de esquema flexible.
- ^ El esquema de XML contiene una gramática y un vocabulario muy limitados.
- ^ Disponible como extensión.
- ^ En el formato predeterminado, no en la sintaxis compacta.
- ^ La sintaxis es bastante simple (el lenguaje fue diseñado para ser legible por humanos); los dialectos pueden requerirconocimientos de dominio.
- ^ Los tipos de hechos estandarizados se indican mediante frases en inglés estandarizadas, cuya interpretación y uso requieren cierta capacitación.
- ^ Eldialecto Parsese utiliza para especificar, validar y transformar dialectos.
- ^ La versión en inglés incluye un diccionario-taxonomía de Gellish English que también incluye tipos de hechos estandarizados (= tipos de relaciones).
XML para intercambio de datos
La popularidad de XML para el intercambio de datos en la World Wide Web tiene varias razones. En primer lugar, está estrechamente relacionado con los estándares preexistentes Standard Generalized Markup Language (SGML) y Hypertext Markup Language (HTML) y, como tal, un analizador escrito para admitir estos dos lenguajes se puede ampliar fácilmente para admitir XML también. Por ejemplo, XHTML se ha definido como un formato que es XML formal, pero que la mayoría de los analizadores HTML (si no todos) lo entienden correctamente. [11]
YAML para intercambio de datos
YAML es un lenguaje que fue diseñado para ser legible por humanos (y como tal, fácil de editar con cualquier editor de texto estándar). Su noción a menudo es similar a reStructuredText o una sintaxis Wiki, que también intenta ser legible tanto por humanos como por computadoras. YAML 1.2 también incluye una noción abreviada que es compatible con JSON y, como tal, cualquier documento JSON también es YAML válido; sin embargo, esto no es válido al revés. [13]
REBOL para el intercambio de datos
REBOL es un lenguaje que fue diseñado para ser legible por humanos y fácil de editar usando cualquier editor de texto estándar. Para lograrlo, utiliza una sintaxis simple de forma libre con puntuación mínima y un rico conjunto de tipos de datos. Los tipos de datos REBOL como URL, correos electrónicos, valores de fecha y hora, tuplas, cadenas, etiquetas, etc. respetan los estándares comunes. REBOL está diseñado para no necesitar ningún metalenguaje adicional, y está diseñado en forma metacircular. La metacircularidad del lenguaje es la razón por la cual, por ejemplo, el dialecto Parse usado (no exclusivamente) para las definiciones y transformaciones de los dialectos REBOL es también en sí mismo un dialecto REBOL. [14] REBOL se utilizó como fuente de inspiración para JSON. [15]
Gellish para el intercambio de datos
Gellish English es un subconjunto formalizado del inglés natural, que incluye una gramática simple y una gran taxonomía de diccionario de inglés extensible que define la terminología general y específica del dominio (términos para conceptos), mientras que los conceptos están organizados en una jerarquía de subtipo-supertipo (un taxonomía), que respalda la herencia de conocimientos y requisitos. El Diccionario-Taxonomía también incluye tipos de hechos estandarizados (también llamados tipos de relación). Los términos y tipos de relación juntos se pueden usar para crear e interpretar expresiones de hechos, conocimientos, requisitos y otra información. Gellish se puede utilizar en combinación con SQL , RDF / XML , OWL y varios otros metalenguajes. El estándar Gellish es una combinación de ISO 10303-221 (AP221) e ISO 15926. [16]
Ver también
- Atom (formato de archivo)
- Lenguaje de marcado ligero
- RSS
Referencias
- ^ A. Doan, A. Halevy y Z. Ives. " Principios de integración de datos ", Morgan Kaufmann, s 2012 págs. 276
- ↑ Arenas, M .; Barceló, P .; Libkin, L .; Murlak, F. (2014). Fundamentos del intercambio de datos . Prensa de la Universidad de Cambridge. págs. 1-11. ISBN 9781107016163. Consultado el 25 de mayo de 2018 .
- ^ Clancy, JJ (2012). "Capítulo 1: Instrucciones para el intercambio de datos de ingeniería para el diseño y la fabricación asistidos por computadora". En Wang, PCC (ed.). Avances en CAD / CAM: estudios de casos . Springer Science & Business Media. págs. 1-36. ISBN 9781461328193. Consultado el 25 de mayo de 2018 .
- ^ Kalish, CE; Mayer, MF (noviembre de 1981). "DIF: formato para el intercambio de datos entre programas de aplicación". Revista BYTE : 174.
- ^ "Acerca de ODF" . Sociedad OpenDoc . Consultado el 25 de mayo de 2018 .
- ^ Zhu, X. (2016). SIG para aplicaciones ambientales: un enfoque práctico . Routledge. ISBN 9781134094509. Consultado el 25 de mayo de 2018 .
- ^ "Referencia KML" . Google Inc. 21 de enero de 2016 . Consultado el 25 de mayo de 2018 .
- ^ Martins, RMF; Lourenço, NCC; Horta, NCG (2012). Generación de diseños de circuitos integrados analógicos con LAYGEN II . Springer Science & Business Media. pag. 34. ISBN 9783642331466. Consultado el 25 de mayo de 2018 .
- ^ Billingsley, FC (1988). "Lenguaje general de intercambio de datos" . Archivos de ISPRS . 27 (B3): 80–91 . Consultado el 25 de mayo de 2018 .
Las rutinas de transformación constituirán un lenguaje y una sintaxis que deben ser independientes de la disciplina y la máquina.
- ^ Nurseitov, N .; Paulson, M .; Reynolds, R .; Izurieta, C. (2009). "Comparación de formatos de intercambio de datos JSON y XML: un estudio de caso". Escenario : 157-162.
- ^ a b Lewis, J .; Moscovitz, M. (2009). CSS avanzado . APulse. págs. 5-6. ISBN 9781430219323. Consultado el 25 de mayo de 2018 .
- ^ "legible por humanos" . Diccionarios de Oxford . Prensa de la Universidad de Oxford . Consultado el 29 de mayo de 2018 .
- ^ Bendersky, E. (22 de noviembre de 2008). "JSON es YAML, pero YAML no es JSON" . Sitio web de Eli Bendersky . Consultado el 29 de mayo de 2018 .
- ^ Sassenrath, C. (2000). "El lenguaje de secuencias de comandos REBOL" . Diario del Dr. Dobb . 25 (314): 64–8 . Consultado el 29 de mayo de 2018 .
- ^ Sassenrath, C. (13 de diciembre de 2012). "En JSON y REBOL" . REBOL.com . Consultado el 29 de mayo de 2018 .
- ^ van Renssen, A .; Vermaas, PE; Zwart, SD (2007). "Una taxonomía de funciones en inglés gellish" . Actas de la Conferencia Internacional sobre Diseño de Ingeniería 2007 : DS42_P_230 . Consultado el 29 de mayo de 2018 .