Обмен данными - Data exchange
Обмен данными это процесс взятия данных, структурированных под источник схема и преобразовав его в данные, структурированные под цель схема, так что целевые данные являются точным представлением исходных данных.[1] Обмен данными позволяет обмениваться данными между разными компьютерные программы.
Это похоже на родственную концепцию интеграция данных за исключением того, что данные фактически реструктурируются (с возможной потерей содержимого) при обмене данными. Возможно, не существует способа трансформировать пример учитывая все ограничения. И наоборот, может существовать множество способов преобразования экземпляра (возможно, бесконечно много), и в этом случае необходимо определить и обосновать «лучший» выбор решений.
Однодоменный обмен данными
В некоторых доменах может существовать несколько десятков различных исходных и целевых схем (проприетарные форматы данных). «Обмен» или «формат обмена» часто разрабатывается для одного домена, а затем записываются необходимые процедуры (сопоставления) для (косвенного) преобразования / преобразования каждой исходной схемы в каждую целевую схему с использованием формата обмена как промежуточный шаг.[2] Это требует гораздо меньше работы, чем написание и отладка сотен различных подпрограмм, которые потребовались бы для прямого преобразования каждой исходной схемы непосредственно в каждую целевую схему.
Примеры этих трансформирующих форматов обмена включают:
- Стандартный формат обмена для геопространственных данных;[3]
- Формат обмена данными для данных электронной таблицы;[4]
- Формат открытого документа для электронных таблиц, диаграмм, презентаций и текстовых документов;[5]
- Формат обмена данными GPS или же Язык разметки Keyhole для описания данных GPS;[6][7] и
- GDSII для макета интегральной схемы.[8]
Языки обмена данными
Язык / формат обмена (или обмена) данными - это язык, который не зависит от предметной области и может использоваться для данных из любой дисциплины.[9] Они «превратились из ориентированных на разметку и отображение, чтобы дополнительно поддерживать кодирование метаданных, описывающих структурные атрибуты информации».[10]
Практика показала, что некоторые виды формальные языки лучше подходят для этой задачи, чем другие, поскольку их спецификация определяется формальным процессом, а не конкретными потребностями реализации программного обеспечения. Например, XML это язык разметки который был разработан для создания диалектов (определение подъязыков, зависящих от предметной области).[11] Однако он не содержит тематических словарей или типов фактов. Для надежного обмена данными выгодно наличие стандартных словарей-таксономий и библиотек инструментов, таких как парсеры, схема валидаторы, и инструменты преобразования.[нужна цитата ]
Популярные языки, используемые для обмена данными
Ниже приведен частичный список популярных общих языков, используемых для обмена данными в нескольких доменах.
Схемы | Гибкий | Семантическая проверка | Словарь | Информационная модель | Синонимы и омонимы | Диалект | Веб-стандарт | Трансформации | Легкий | Человек читаемый | Совместимость | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
RDF | да[1] | да | да | да | да | да | да | да | да | да | Частичное | Подмножество Семантическая сеть |
XML | да[2] | да | Нет | Нет | Нет | Нет | да | да | да | Нет | да | подмножество SGML, HTML |
Атом | да | Неизвестно | Неизвестно | Неизвестно | Нет | Неизвестно | да | да | да | Нет | Нет | XML диалект |
JSON | Нет | Неизвестно | Неизвестно | Неизвестно | Нет | Неизвестно | Нет | да | Нет | да | да | подмножество YAML |
YAML | Нет[3] | Неизвестно | Неизвестно | Неизвестно | Нет | Неизвестно | Нет | Нет | Нет[3] | да | да[4] | надмножество JSON |
REBOL | да[7] | да | Нет | да | Нет | да | да | Нет | да[7] | да | да[5] | |
Gellish | да | да | да | да[8] | Нет | да | да | ISO | Нет | да | Частичное[6] | SQL, RDF / XML, OWL |
Номенклатура
- Схемы - Доступно ли определение языка в компьютерной интерпретируемой форме.
- Гибкость - позволяет ли язык расширить возможности семантического выражения без изменения схемы.
- Семантическая проверка - позволяет ли определение языка семантическую проверку правильности выражений на языке.
- Словарь-Таксономия - включает ли язык словарь и таксономию (иерархию подтипов-супертипов) понятий с наследованием.
- Синонимы и омонимы - включает ли язык и поддерживает ли использование синонимов и омонимов в выражениях.
- Диалектирование - доступно ли определение языка на нескольких естественных языках или диалектах.
- Интернет или стандарт ISO - Организация, одобрившая язык в качестве стандарта.
- Преобразования - включает ли язык перевод на другие стандарты.
- Легковесность - доступна ли облегченная версия в дополнение к полной версии.
- Удобочитаемы - являются ли выражения на языке человек читаемый (читается людьми без обучения)[12]
- Совместимость - какие другие инструменты можно использовать или которые требуются при использовании языка
Примечания:
- ^ RDF - это язык с гибкой схемой.
- ^ Схема XML содержит очень ограниченный грамматический и словарный запас.
- ^ Доступен как расширение.
- ^ В формате по умолчанию, а не в компактном синтаксисе.
- ^ Синтаксис довольно прост (язык был разработан для удобства чтения); диалекты могут потребовать базовые знания.
- ^ Стандартизированные типы фактов обозначаются стандартными английскими фразами, интерпретация и использование которых требует некоторого обучения.
- ^ В Разбирать диалект используется для определения, проверки и преобразования диалектов.
- ^ Английская версия включает Gellish English Dictionary-Taxonomy, которая также включает стандартизованные типы фактов (= виды отношений).
XML для обмена данными
Популярность XML для обмена данными на Всемирная паутина есть несколько причин. Прежде всего, это тесно связано с существующими ранее стандартами. Стандартный обобщенный язык разметки (SGML) и язык гипертекстовой разметки (HTML), и поэтому синтаксический анализатор, написанный для поддержки этих двух языков, может быть легко расширен для поддержки XML. Например, XHTML был определен как формат, который является формальным XML, но правильно понимается большинством (если не всеми) анализаторами HTML.[11]
YAML для обмена данными
YAML - это язык, который был разработан для удобства чтения (и поэтому его легко редактировать с помощью любого стандартного текстового редактора). Его понятие часто похоже на reStructuredText или синтаксис Wiki, который также пытается быть читаемым как людьми, так и компьютерами. YAML 1.2 также включает сокращенное понятие, совместимое с JSON, и поэтому любой документ JSON также является допустимым YAML; это, однако, неверно.[13]
REBOL для обмена данными
REBOL - это язык, который был разработан для удобства чтения и редактирования с помощью любого стандартного текстового редактора. Для этого используется простой синтаксис произвольной формы с минимальным количеством знаков препинания и богатым набором типов данных. Типы данных REBOL, такие как URL-адреса, электронные письма, значения даты и времени, кортежи, строки, теги и т. Д., Соответствуют общим стандартам. REBOL спроектирован так, чтобы не нуждаться в каком-либо дополнительном метаязыке, поскольку он разработан метакругом. Метациркулярность языка является причиной того, что, например, диалект Parse, используемый (не исключительно) для определений и преобразований диалектов REBOL, также сам по себе является диалектом REBOL.[14] REBOL послужил источником вдохновения для JSON.[15]
Gellish для обмена данными
Gellish English представляет собой формализованное подмножество естественного английского языка, которое включает простую грамматику и большой расширяемый Английский Словарь-Таксономия который определяет общую и специфичную для предметной области терминологию (термины для понятий), тогда как понятия организованы в иерархию подтипа-супертипа (таксономия), которая поддерживает наследование знаний и требований. Словарь-таксономия также включает стандартизованные типы фактов (также называемые типами отношений). Термины и типы отношений вместе могут использоваться для создания и интерпретации выражений фактов, знаний, требований и другой информации. Gellish можно использовать в сочетании с SQL, RDF / XML, СОВА и различные другие метаязыки. Стандарт Gellish представляет собой комбинацию ISO 10303-221 (AP221) и ISO 15926.[16]
Смотрите также
- Atom (формат файла)
- Легкий язык разметки
- RSS
Рекомендации
- ^ А. Доан, А. Халеви и З. Айвз. "Принципы интеграции данных ", Морган Кауфманн, 2012 стр. 276
- ^ Арены, М .; Barceló, P .; Либкин, Л .; Мурлак, Ф. (2014). Основы обмена данными. Издательство Кембриджского университета. С. 1–11. ISBN 9781107016163. Получено 25 мая 2018.
- ^ Клэнси, Дж. Дж. (2012). «Глава 1: Направления обмена инженерными данными для автоматизированного проектирования и производства». In Wang, P.C.C. (ред.). Достижения в области CAD / CAM: примеры из практики. Springer Science & Business Media. С. 1–36. ISBN 9781461328193. Получено 25 мая 2018.
- ^ Kalish, C.E .; Майер, М.Ф. (Ноябрь 1981 г.). «DIF: формат для обмена данными между прикладными программами». Журнал BYTE: 174.
- ^ "О ODF". Общество OpenDoc. Получено 25 мая 2018.
- ^ Чжу, X. (2016). ГИС для экологических приложений: практический подход. Рутледж. ISBN 9781134094509. Получено 25 мая 2018.
- ^ «Справочник по KML». Google Inc. 21 января 2016 г.. Получено 25 мая 2018.
- ^ Martins, R.M.F .; Лоуренсу, Северная Каролина; Орта, Северная Каролина (2012). Создание схем аналоговых ИС с помощью LAYGEN II. Springer Science & Business Media. п. 34. ISBN 9783642331466. Получено 25 мая 2018.
- ^ Биллингсли, Ф.С. (1988). «Общий язык обмена данными». Архивы ISPRS. 27 (B3): 80–91. Получено 25 мая 2018.
Подпрограммы преобразования будут составлять язык и синтаксис, которые должны быть дисциплинированными и независимыми от машины.
- ^ Нурсеитов, Н .; Полсон, М .; Reynolds, R .; Изуриета, К. (2009). «Сравнение форматов обмена данными JSON и XML: пример из практики». Сценарий: 157–162.
- ^ а б Lewis, J .; Московиц, М. (2009). Продвинутый CSS. АПресс. С. 5–6. ISBN 9781430219323. Получено 25 мая 2018.
- ^ "человек читаемый". Оксфордские словари. Oxford University Press. Получено 29 мая 2018.
- ^ Бендерский, Э. (22 ноября 2008 г.). «JSON - это YAML, но YAML - это не JSON». Сайт Эли Бендерски. Получено 29 мая 2018.
- ^ Сассенрат, К. (2000). "Язык сценариев REBOL". Журнал доктора Добба. 25 (314): 64–8. Получено 29 мая 2018.
- ^ Сассенрат, К. (13 декабря 2012 г.). «На JSON и REBOL». REBOL.com. Получено 29 мая 2018.
- ^ van Renssen, A .; Vermaas, P.E .; Зварт, С. (2007). «Таксономия функций в гелландском английском». Материалы Международной конференции по инженерному проектированию 2007 г.: DS42_P_230. Получено 29 мая 2018.