數據交換
數據交換(Data exchange)是指在數據庫規範模式下構建數據並將其轉換為目標模式構建數據的過程,目的是爲了使目標數據能夠準確的表達源數據內容[1]。數據交換允許在不同的計算機程式之間共用數據 。
單一域數據交換
在某些作用域當中,可能會同時並存多種不同的源以及目標格式(專有數據格式)。通常情況下,爲了實現數據交換,需要為單個域開發「交換方法」或者「交換格式」,然後通過使用交換格式將必要的常式(對映)編寫出來,將每個源模式(間接地)轉換為目標格式[2]。與編寫和除錯將每個源模式直接轉換為每個目標模式所需的數百個不同常式相比,這樣只需要很少的工作就可以實現。
通常常見的數據交換實現有:
- 地理數據交換格式SIF[3];
- 電子表格數據交換格式DIF;
- 電子表格,圖表,演示文稿和文字處理文件ODF[4];
- 用於描述GPS數據的GPX或KML[5][6];
- 描述集成電路佈局的GDSII[7]。
數據交換語言
另見建模語言。
數據交換語言格式無關的的一種語言,其可被用於任何類型的學科數據[8]。它們由標記和面向顯示發展而來,進一步支援描述訊息結構屬性和元數據編碼。
實踐證明,某些正式的形式語言比其他語言更適合這項任務,因為它們的規範是由正式流程而不是特定的軟件實現需求驅動的。例如,XML是一種標記語言,旨在實現方言的創建(特定於域的子語言的定義)[9]。但是, 它不包含特定於域的字典或事實類型。可靠的資料交換的好處是能夠有標準詞典-分類和工具庫 (如解析器、模式驗證器和轉換工具) 的可用性。
用於數據交換的常用語言
以下是用於多個域中的數據交換的流行通用語言的部分列表。
結構化 | 靈活 | 語義校驗 | 字典 | 訊息模型 | 同義詞和同音異義詞 | 轉義語言 | 網絡標準 | 轉換 | 輕量級 | 人類可讀 | 相容性 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
RDF | 是[1] | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 部份 | 語義網的子集 |
XML | 是[2] | 是 | 否 | 否 | 否 | 否 | 是 | 是 | 是 | 否 | 是 | SGML、HTML的子集 |
Atom | 是 | 未知 | 未知 | 未知 | 否 | 未知 | 是 | 是 | 是 | 否 | 否 | XML的特殊形式 |
JSON | 否 | 未知 | 未知 | 未知 | 否 | 未知 | 否 | 是 | 否 | 是 | 是 | YAML的子集 |
YAML | 否[3] | 未知 | 未知 | 未知 | 否 | 未知 | 否 | 否 | 否[3] | 是 | 是[4] | JSON的超集 |
REBOL | 是[7] | 是 | 否 | 是 | 否 | 是 | 是 | 否 | 是[7] | 是 | 是[5] | |
Gellish | 是 | 是 | 是 | 是[8] | 否 | 是 | 是 | ISO | 否 | 是 | 部份[6] | SQL, RDF/XML, OWL |
命名法則
- 模式 - 語言定義是否以計算機可解釋的形式提供;
- 靈活 - 語言是否支援擴展語義表達能力而無需修改模式;
- 語義驗證 - 語言定義是否能夠對語言中表達式的正確性進行語義驗證;
- 字典 - 分類 - 語言是否包含字典和具有繼承的概念的分類(子類型 - 超類型層次結構);
- 同義詞和同音異義詞 - 該語言是否包括並支援在表達式中使用同義詞和同音異義詞;
- 轉義語言 - 語言定義是否以多種自然語言或方言提供;
- Web或ISO標準 - 將語言作為標準認可的組織;
- 轉換 - 語言是否包含對其他標準的翻譯;
- 輕量級 - 除了完整版之外,是否提供輕量級版本;
- 人類可讀 - 語言中的表達是否是人類可讀的(沒有經過培訓的人可讀);
- 相容性 - 使用該語言時可能使用或需要哪些其他工具
用於數據交換的XML
XML在萬維網上進行數據交換的普及有幾個原因。首先,它與先前存在的標準標准通用標記語言(SGML)和超文字標記語言(HTML)密切相關,因此為支援這兩種語言而編寫的解析器也可以輕鬆擴展以支援XML。例如,XHTML已被定義為正式XML格式,但大多數(如果不是全部)HTML解析器都能正確理解[9]。
用於數據交換的YAML
YAML是一種設計為人類可讀的語言(因此可以使用任何標准文字編輯器輕鬆編輯)。它的概念通常類似於reStructuredText或Wiki語法,他們也試圖讓人和計算機都可讀。YAML 1.2還包括一個與JSON相容的簡寫概念,因此任何JSON文件也是有效的YAML; 然而,這並不是其的另一種形式[10]。
用於數據交換的REBOL
REBOL是一種可以使用任何標准文字編輯器設計的人類可讀且易於編輯的語言。為了實現這一點,其使用了一種簡單的自由格式語法,使之具有最小的標點符號和豐富的數據類型集。REBOL的數據類型,如URL,電子郵件,日期和時間值,元組,字串,標籤等,都遵循通用標準。REBOL旨在不需要任何額外的元語言,以元循環方式設計。語言的元環境性是因為例如用於(不僅僅)用於REBOL轉義語言的定義和變換的Parse轉義語言本身也是REBOL的轉義語言[11]。REBOL是JSON範式的靈感來源[12]。
用於數據交換的Gellish
Gellish是自然英語的形式化子集,其包括簡單語法和大型通過分類法而可延伸英語詞典 ,其主要用於定義一般和領域特定術語(概念術語),而概念則按子類型 - 超類型層次結構排列(a分類法),它支援知識和要求的繼承。Dictionary-Taxonomy還包括標準化的事實類型(也稱為關係類型)。術語和關係類型可以用於創建和解釋事實,知識,要求和其他資訊的表達。Gellish可以與SQL,RDF / XML,OWL結合使用和其他各種元語言。Gellish標準是ISO 10303-221(AP221)和ISO 15926的組合[13]。
參考資料
- ^ Doan, AnHai; Halevy, Alon; Ives, Zachary. Principles of Data Integration. Elsevier. 2012-06-25. ISBN 9780123914798 (英語).
- ^ Arenas, Marcelo; Barceló, Pablo; Libkin, Leonid; Murlak, Filip. Foundations of Data Exchange. Cambridge University Press. 2014-03-06 [2018-11-24]. ISBN 9781107016163. (原始內容存檔於2021-08-15) (英語).
- ^ Wang, P. C. C. Advances in CAD/CAM: Case Studies. Springer Science & Business Media. 2012-12-06 [2018-11-24]. ISBN 9781461328193. (原始內容存檔於2021-08-15) (英語).
- ^ About ODF. opendocumentformat.org. [2018-11-24]. (原始內容存檔於2018-11-15) (英語).
- ^ Zhu, Xuan. GIS for Environmental Applications: A practical approach. Routledge. 2016-05-26 [2018-11-24]. ISBN 9781134094509. (原始內容存檔於2021-08-15) (英語).
- ^ KML Reference Keyhole Markup Language Google Developers. Google Developers. [2018-11-24]. (原始內容存檔於2018-11-20) (英語).
- ^ Martins, Ricardo M. F.; Lourenço, Nuno C. C.; Horta, Nuno C. G. Generating Analog IC Layouts with LAYGEN II. Springer Science & Business Media. 2012-12-16 [2018-11-24]. ISBN 9783642331466. (原始內容存檔於2021-08-15) (英語).
- ^ ISPRS Archives. www.isprs.org. [2018-11-25]. (原始內容存檔於2018-11-25).
- ^ 9.0 9.1 Lewis, Joe; Moscovitz, Meitar. AdvancED CSS. Apress. 2009-07-29 [2018-11-25]. ISBN 9781430219323. (原始內容存檔於2021-08-15) (英語).
- ^ JSON is YAML, but YAML is not JSON - Eli Bendersky's website. eli.thegreenplace.net. [2018-11-25]. (原始內容存檔於2018-05-30).
- ^ The REBOL Scripting Language. Dr. Dobb's. [2018-11-25]. (原始內容存檔於2018-11-13).
- ^ On JSON and REBOL. www.rebol.com. [2018-11-25]. (原始內容存檔於2018-11-25).
- ^ Andries, van Renssen,; E., Vermaas, Pieter; D., Zwart, Sjoerd. A Taxonomy of Functions in Gellish English. The Design Society - a worldwide community. 2007 [2018-11-25]. (原始內容存檔於2018-11-25) (英語).