エンベロープパターン

概要

MarkLogicデータハブは、エンベロープパターンを使用してデータをカプセル化します。エンベロープパターンでは、元のコンテンツと関連するメタデータが同じエンベロープ(エンティティ)に格納されますが、分離性は維持されます。これにより、元のコンテンツを維持しながら、メタデータを追加できます。

{ "envelope": { "headers": [], "triples": [], "instance": { "your original data": "goes here" } } }
<envelope><headers/><triples/><instance> your original data goes here </instance></envelope>

例:エンベロープパターン

MarkLogicデータハブでは、元のデータを維持しながら、メタデータをエンベロープに追加して、フィールド名や形式の異なるデータをハーモナイズできます。

例えば、2つのデータソースに性別情報があり、格納されているフィールドの名前と形式が異なっている場合を考えます。

source-1.json source-2.json
{ "gender": "f", "age": "32", ..., "firstName": "Rebecca" }
{ "gndr": "female", "age": "39", ..., "firstName": "Leona" }

エンベロープを使用すると、フィールドを1つのフィールドに標準化して、同じエンベロープ内にメタデータとして保存できます。

harmonized-1.json harmonized-2.json
{ "headers": [ { "normalizedGender": "female" } ], "triples": [], "instance": { "gender": "f", "age": "32", ..., "firstName": "Rebecca" } }
{ "headers": [ { "normalizedGender": "female" } ], "triples": [], "instance": { "gndr": "female", "age": "39", ..., "firstName": "Leona" } }

アプリケーションは、データソースにかかわらず、同じフィールド名(normalizedGender)を使用してデータハブに対してクエリを実行し、同じ形式(female)で結果を取得できるようになります。