Search Posts

Visits: 45

Nobuyuki SAMBUICHI
ISO/TC295 Audit data services/SG1 Semantic model Convener

階層型の整然データ(Hierarchical Tidy Data)はデータ分析と情報管理において重要なコンセプトであり、従来の関係データベースや単純な整然データ(Tidy Data)とは異なる独自の特性を有しています。この記事では、その特性を詳細に解説し、階層型の整然データ(Hierarchical Tidy Data)に基づく標準形式CSVとその周辺技術について説明します。

この記事は概要です。詳しい情報は以下のリンクでご確認いただけます。
『データ変換の新時代: 階層型の整然データ(Hierarchical Tidy Data)による相互運用性の実現』.

1. 階層型の整然データ(Hierarchical Tidy Data)の特性

階層型の整然データ(Hierarchical Tidy Data)は、複数のレベルでの複雑なデータ構造をより良く表現するために、Hadley Wickhamによる整然データ(Tidy Data)の概念を拡張しています。これは、複雑なデータを管理するのに特に役立ちます。整然データ(Tidy Data)は、データセットの意味をその構造にマッピングする標準的な方法です。データセットが乱雑であるか、整然としているかは、観測値、変数、観測単位と行、列、および表がどのように対応しているかによります。

2.3. 整然データ(Tidy Data)

整然データ(Tidy Data)は、データセットの意味をその構造にマッピングする標準的な方法です。データセットが乱雑であるか、整然としているかは、行、列、および表が観測値、変数、および各種類の観測単位とどのように一致しているかによります。整然データ(Tidy Data)では:

  1. 各変数(variable)が列を形成します。

  2. 各観測値(observation)が行を形成します。

  3. 各種類の観測単位(type of observational unit)が表を形成します。

— Wickham
H. . (2014). 整然データ(Tidy Data). Journal of Statistical Software

伝統的な整然データ(Tidy Data)は、同じ種類の観測値を一つのテーブルにまとめます。一方、階層型の整然データ(Hierarchical Tidy Data)は、さまざまな種類の観測値を一つのテーブル内に収容することができます。

従来の関係データベースや単純な整然データ(Tidy Data)では、データはフラットな二次元構造で管理されます。これは一部のデータ分析シナリオでは適切ですが、複雑な階層構造を持つデータを取り扱う場合には制約となり得ます。これに対して、階層型の整然データ(Hierarchical Tidy Data)はデータの階層構造を保持しつつ、関係データベース処理せずとも条件を指定するだけで分析を可能にする独自のデータモデルです。

階層型の整然データ(Hierarchical Tidy Data)とは、データをより明瞭かつ効率的に表現できる形式の一つです。伝統的な関係データベースや単純な整然データ(Tidy Data)と比較すると、階層型の整然データ(Hierarchical Tidy Data)はデータの階層的な関連性を反映することができます。これは、構造的に複雑なデータを扱う際に非常に有効です。

例えば、請求書のデータを考えてみましょう。伝統的な整然データ(Tidy Data)の形式では、請求書の各項目(請求書番号、発行日、売り手、買い手など)を個々の行として扱います。しかし、請求書には項目間に階層的な関連性が存在します。例えば、請求書の明細行は請求書全体に対応し、各明細行はその請求書の一部を構成します。このような関連性を表現するには、階層型の整然データ(Hierarchical Tidy Data)が適しています。

請求書のデータを例に取ります。以下に従来のフラットなデータ構造と、それを階層型の整然データ(Hierarchical Tidy Data)で表現した場合の比較を示します。

従来のフラットなデータ構造では、データは一次元的に並べられます。たとえばTable 1ようになります:

Table 1. 請求書の表

請求書ID

発行日

売り手

買い手

請求書合計

項目ID

項目名

単価

数量

合計金額

001

2023-08-05

株式会社A

株式会社B

5000

Item01

商品A

1000

2

2000

001

2023-08-05

株式会社A

株式会社B

5000

Item02

商品B

3000

1

3000

Table 1の表現はシンプルで一見わかりやすいですが、同じ請求書IDとヘッダー情報(発行日、売り手、買い手、請求書合計)が繰り返し記述されるため冗長です。また、請求書全体と項目との階層的な関係性が表現されていません。

また、請求書データを従来の整然データ(Tidy Data)でTable 2及びTable 3のように表現することもできます:

Table 2. 請求書ヘッダー情報の表

請求書ID

発行日

売り手

買い手

請求書合計

001

2023-08-05

株式会社A

株式会社B

5000

Table 3. 請求書の項目情報の表

請求書ID

項目ID

項目名

単価

数量

合計金額

001

Item01

商品A

1000

2

2000

001

Item02

商品B

3000

1

3000

Table 2及びTable 3では、各階層が個別の表で管理されるため、データの冗長性を避けつつ、データ間の階層的な関係性を維持することができます。
しかし、それぞれ個別の表で記録されているので請求書IDをキーとしたJOIN操作といった関係データベース処理が必要になり、そのままでは利用できません。

階層型の整然データ(Hierarchical Tidy Data)は、複数の階層での情報を適切に表現するために設計されています。階層的な構造を維持しつつ、冗長性を避けることが可能です。
例えば、階層型の整然データ(Hierarchical Tidy Data)では、請求書全体とその項目の階層的な関連性を列の構造で表現します。Table 4にその例を示します:

Table 4. 階層型の整然データ(Hierarchical Tidy Data)による請求書の表

請求書ID

発行日

売り手

買い手

請求書合計

品目ID

品目名

価格

数量

合計金額

001

2023-08-05

株式会社A

株式会社B

5000

001

Item01

商品A

1000

2

2000

001

Item02

商品B

3000

1

3000

Table 4の請求書のヘッダー情報の行では明細行のデータは空白(またはnull)です。Table 4の明細行には、請求書IDと品目IDが定義されており、指定されたヘッダーに属する明細行であるという階層構造を表しています。明細行では、ヘッダー情報は空白(またはnull)です。この方法では、データの冗長性を排除し、同時にデータ間の階層的な関係性を保持することができます。

以上が、従来のデータ構造と階層型の整然データ(Hierarchical Tidy Data)の違いの一例です。

階層型の整然データ(Hierarchical Tidy Data)による標準形式CSVは、このような階層的な関連性を列の構造に反映させることで、データをより理解しやすく、扱いやすい形にすることができます。また、論理バインディングと構文バインディングを用いることで、標準形式CSVと固有のCSV形式との間の相互変換が可能となり、データの交換を円滑に行うことができます。

さらに、これらのバインディングをタクソノミ(分類体系辞書)と連携させることで、異なるソフトウェアやプラットフォーム間でのデータの互換性を確保することが可能となります。

2. 標準形式CSVとデータバインディング

階層型の整然データ(Hierarchical Tidy Data)を用いた標準形式CSVは、データを一貫性のある形式で管理する基盤となります。その標準化された構造により、データの意味(セマンティクス)と構造(シンタクス)を結びつける論理バインディングと構文バインディングの適用が可能となります。

具体的には、論理バインディングにより、会計ソフトから提供される固有形式のCSVファイルと標準形式CSVとの間でデータの意味内容を維持しながら相互変換が可能となります(Pythonプログラムcsv2tidyとtidy2csv)。これにより、標準形式CSVが一種の「通訳」の役割を果たし、異なる形式間のデータ交換を容易にします。

同様に、構文バインディングにより、標準形式CSVを中心に、同じ意味内容を異なる構文規則で表現したXMLファイルとの間で相互変換が可能となります(JavaプログラムInvoice2csvとCsv2invoice)。

Figure 1は、このデータと処理の関連を示しています。

**論理バインディングと構文バインディングそして階層型の整然データ(Hierarchical Tidy Data)を用いた標準形式CSV
Figure 1. **論理バインディングと構文バインディングそして階層型の整然データ(Hierarchical Tidy Data)を用いた標準形式CSV

Figure 1は、論理バインディングと構文バインディングがどのようにしてデータ変換の中心的な役割を果たしているかを示しています。会計ソフトからの固有形式CSVは、論理バインディングを用いて標準形式CSVに変換され、その逆もまた可能です。同様に、異なる構文規則を持つXMLファイルも、構文バインディングを用いて標準形式CSVに変換され、その逆もまた可能です。

3. タクソノミとの連携

この階層型の整然データ(Hierarchical Tidy Data)による標準形式CSVと、その周辺の論理バインディング及び構文バインディングをタクソノミと連携させることで、データ交換の信頼性と一貫性を向上させることができます。タクソノミは、データの意味と構造の関係を定義する辞書のようなもので、この辞書を使うことでデータの解釈と交換が自動化され、より効率的かつ確実に行われます。

4. 結論

階層型の整然データ(Hierarchical Tidy Data)とその周辺技術は、データ交換の新しいパラダイムを提供します。それはデータの形式や構文規則が異なるシステム間でも、標準形式CSVを通じて一貫性のあるデータ交換を可能にし、データの利用価値を高める有力な手段となります。今後、この技術はデータ駆動型の経済社会の核心となり、新たな価値創造の源泉となります。

このように階層型の整然データ(Hierarchical Tidy Data)を中核としたバインディングの設計と実装により、データの標準化と交換が実現され、その結果、データの利活用と共有が進みます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です