El intercambio de datos es el proceso de tomar datos estructurados según 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. El intercambio de datos permite compartir datos entre distintos programas informáticos.
Es similar al concepto relacionado de integración de datos, excepto que los datos se reestructuran (con posible pérdida de contenido) en el intercambio de datos. Es posible que no haya forma de transformar una instancia dadas todas las restricciones. Por el contrario, puede haber numerosas formas de transformar la instancia (posiblemente infinitas), en cuyo caso se debe identificar y justificar una "mejor" opción de soluciones.
Intercambio de datos de dominio único
En algunos dominios, pueden existir unas pocas docenas de esquemas de origen y destino diferentes (formatos de datos propietarios). A menudo se desarrolla un "formato de intercambio" o "de intercambio" para un solo dominio y, a continuación, se escriben las rutinas necesarias (mapeos) para transformar/traducir (indirectamente) 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 paso intermedio. Eso requiere mucho menos trabajo que escribir y depurar los cientos de rutinas diferentes que se requerirían para traducir directamente todos y cada uno de los esquemas de origen a todos y cada uno de los esquemas de destino.
Algunos ejemplos de estos formatos de intercambio transformador incluyen:
- Formato de intercambio estándar para datos geoespaciales;
- Formato de intercalación de datos para datos de hojas de cálculo;
- Formato de documento abierto para hojas de cálculo, gráficos, presentaciones y documentos de procesamiento de texto;
- Formato de intercambio GPS o lenguaje de marcado Keyhole para describir datos GPS;
- GDSII para diseño de circuitos integrados.
Métodos de intercambio de datos
Existen dos tipos de intercambio de datos: intercambio de datos de difusión e intercambio de datos punto a punto (unicast). [1]
En una red de difusión, los datos se transmiten simultáneamente a todos los participantes. Al igual que en una llamada en conferencia, todos los participantes reciben exactamente la misma información del orador al mismo tiempo. [2]
En un modelo de intercambio de datos entre pares (unicast), los datos se envían únicamente al receptor de destino definido por una dirección específica. Al igual que en una llamada telefónica o un correo electrónico, la información solo fluye entre dos participantes de la red. [3]
Lenguajes de intercambio de datos
Un lenguaje o formato de intercambio de datos es un lenguaje que no depende del dominio y que puede utilizarse para datos de cualquier tipo de disciplina. [4] Han "evolucionado desde su orientación al marcado y la visualización hasta ofrecer un mayor soporte para la codificación de metadatos que describen los atributos estructurales de la información". [5]
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). [6] Sin embargo, no contiene diccionarios específicos del dominio ni tipos de hechos. La disponibilidad de diccionarios-taxonomías estándar y bibliotecas de herramientas como analizadores sintácticos , validadores de esquemas y herramientas de transformación es beneficiosa para un intercambio de datos confiable . [ 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.
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 lenguaje permite la verificación semántica de la corrección de las expresiones en el lenguaje.
- Diccionario-Taxonomía – Si el lenguaje incluye un diccionario y una taxonomía (jerarquía de subtipos-supertipos) 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
- Dialecto: si la definición del idioma está disponible en varios idiomas naturales o dialectos.
- Estándar web o ISO: organización que respaldó el lenguaje como estándar
- Transformaciones – Si el idioma incluye una traducción a otros estándares
- Ligero: si hay una versión liviana disponible, además de una versión completa
- Legible para humanos: si las expresiones en el lenguaje son legibles para humanos (legibles por humanos sin entrenamiento) [7]
- Compatibilidad: ¿Qué otras herramientas son posibles o necesarias al utilizar el lenguaje?
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 requerir conocimiento del dominio .
- ^ Los tipos de hechos estandarizados se denotan mediante frases en inglés estandarizadas, cuya interpretación y uso requieren cierta capacitación.
- ^ El dialecto Parse se utiliza para especificar, validar y transformar dialectos.
- ^ La versión en inglés incluye un Diccionario-Taxonomía Gellish de Inglés 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 se debe a 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 que admita también XML. 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. [6]
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 concepto es a menudo similar al de reStructuredText o una sintaxis Wiki, que también intentan ser legibles tanto por humanos como por computadoras. YAML 1.2 también incluye un concepto abreviado que es compatible con JSON, y como tal, cualquier documento JSON también es YAML válido; sin embargo, esto no se aplica al revés. [8]
REBOL para intercambio de datos
REBOL es un lenguaje que fue diseñado para ser legible por humanos y fácil de editar utilizando cualquier editor de texto estándar. Para lograrlo, utiliza una sintaxis simple de formato libre con puntuación mínima y un amplio 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, ya que está diseñado de manera metacircular. La metacircularidad del lenguaje es la razón por la que, por ejemplo, el dialecto Parse utilizado (no exclusivamente) para las definiciones y transformaciones de dialectos REBOL también es en sí mismo un dialecto de REBOL. [9] REBOL se utilizó como fuente de inspiración para JSON. [10]
Gellish para intercambio de datos
El inglés Gellish es un subconjunto formalizado del inglés natural, que incluye una gramática simple y un diccionario-taxonomía extensible de inglés 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 subtipos-supertipos (una taxonomía), que admite 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 los tipos de relación juntos se pueden utilizar 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. [11]
Véase también
- Atom (formato de archivo)
- Transferencia de datos
- Lenguaje de marcado ligero
- RRSS
- Valores separados por comas (CSV)
Referencias
- ^ Heidarzadeh, A.; Sprintson, A. (30 de marzo de 2017). "Intercambio óptimo de datos a través de redes de difusión con adversarios". Taller de teoría y aplicaciones de la información (ITA) de 2016. ISBN 978-1-5090-2529-9– a través de IEEE.
- ^ "¿Qué es una transmisión?". Guía digital de IONOS . 2023-03-20 . Consultado el 2024-04-03 .
- ^ "Unicast". Guía digital de IONOS . 23-03-2023 . Consultado el 3-04-2024 .
- ^ Billingsley, FC (1988). "General Data Interchange Language". Archivos 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 de la máquina.
- ^ Nurseitov, N.; Paulson, M.; Reynolds, R.; Izurieta, C. (2009). "Comparación de los formatos de intercambio de datos JSON y XML: un estudio de caso". Escenario : 157–162.
- ^ ab Lewis, J.; Moscovitz, M. (2009). AdvancED CSS. APress. págs. 5-6. ISBN 9781430219323. Recuperado el 25 de mayo de 2018 .
- ^ "legible para humanos". Oxford Dictionaries . Oxford University Press. Archivado desde el original el 30 de mayo de 2018 . 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 programación REBOL". Dr. Dobb's Journal . 25 (314): 64–8 . Consultado el 29 de mayo de 2018 .
- ^ Sassenrath, C. (13 de diciembre de 2012). "Sobre 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 .