EDW(Enterprise Data World)では半構造化データをどう管理・活用するかが多く語られていました。前回のブログでは、構造化データや非構造化データとの比較を通して『半構造化データとは何か?』をテーマにお伝えしましたが、今回は半構造化データの定義についてお伝えします。
半構造化データに関するブログ
① 半構造化データとは何か?
https://jp.drinet.co.jp/blog/datamanagement/semi-structured-data
② マクロとミクロ:2つのレベルで半構造化データを定義する
本ブログ
③ 半構造化データのマクロレベルとミクロレベルの関連と注意点の考察 ~非構造化データの意味を定義する~
https://jp.drinet.co.jp/blog/datamanagement/4d0z9nnj60
半構造化データのマクロレベル
半構造化データに関するカンファレンスではセマンティック技術を前提に、半構造化データの構造をマクロとミクロの2つのレベルで理解する必要があると語られていました。まずはマクロレベルとミクロレベル、それぞれについてお話します。
マクロレベルではデータがどんな種類なのかを表す「クラス」と、クラス同士がどのように関係しているのかを表す「プロパティ」の、2種類の要素を持ちます。例えば「人が対価を支払う」というデータの場合、クラスは「人」と「対価」、プロパティは「支払う」となります。またクラスは階層的に定義でき、例えば「人」というクラスは上位に「生物」、下位に「労働者」「経営者」などのクラス持つことができますこのような定義の仕方はOntologyの考え方に基づいています。またマクロレベルのデータはOWL(※1)というデータ記述言語で定義されます。
※1:OWL(Web Ontology Language)
ウェブ上に存在するOntologyを用いてデータ交換を行うためのデータ記述言語。OWLはRDF(後述)の拡張版であり、メタデータ構造を表現するために使用される。
半構造化データのミクロレベル
一方、ミクロレベルでは特定の1つのものを表す「主語」、特定の1つのものまたは文字列を表す「目的語」、主語と目的語がどのように関係しているのかを表す「述語」の、3種類の要素を持ちます。例えば「田中さんが1000円を支払う」というデータの場合、主語は「田中さん」、目的語は「1000円」、述語は「支払う」となります。このような定義の仕方はTripleの考え方に基づいています。またミクロレベルのデータはRDF(※2)という、リソースを記述する枠組みで定義されます。
※2:RDF(Resource Desctiption Framework)
標準化団体であるW3Cによって規格化された、ウェブ上のメタデータを記述するための枠組み。書式や記述方法が物理的な表現に依存しない形でゆるく定義されている。物理的な表現にはRDF/XML、N-Triples、Notation3などを用いる。
半構造化データの扱い方
マクロレベルとミクロレベルの定義には、いくつかの共通点があります。まずマクロレベルの「プロパティ」とミクロレベルの「述語」はどちらも2物間の関係を表現しているため、呼び方は異なりますが同じものであると言えます。またマクロレベルもミクロレベルも、2物の間を「指向性のある」プロパティ/述語で結ぶため、いずれもグラフ構造の形をとることになります。
非構造化データを扱うためには複数のモノの間にある関係を定義する必要があります。2物間の関係を表現するのに適したグラフ構造で非構造化データを半構造化することで、柔軟性と拡張性を実現しつつ、より忠実にデータ構造を表現できます。またマクロとミクロの2つのレベルで定義することで、データとデータの意味もまた、より忠実に表現することができます。
次回は「半構造化データのマクロレベルとミクロレベルの関連と注意点の考察」についてお話します。
半構造化データの参考情報
ブログ「半構造化データとは何か?」
半構造化データとは?構造化データ、非構造化データとの違いを解説します。
https://jp.drinet.co.jp/blog/datamanagement/semi-structured-data
ブログ「半構造化データのマクロレベルとミクロレベルの関連と注意点の考察 ~非構造化データの意味を定義する~」
非構造化データは、マクロとミクロの2つのグラフ構造で定義しますが、EDW(Enterprise Data World)でこれら2つのグラフ構造の関係がどう語られていたのかをお伝えします。