ナレッジ
【連載】概念モデリングを習得しよう:圏Iのモデルにおける特徴値とリンク(第7回)

目次
【前回の連載記事はこちら】
【連載】概念モデリングを習得しよう:圏I のモデルによるシミュレーション(第6回)
読者の皆さん、こんにちは。Knowledge & Experience 代表の太田 寛です。
この連載コラムでは概念モデリングの解説を行っています。
前回は、概念インスタンス、特徴値、リンクを使って、モデル化対象の意味の場の状態を記述したモデルを、数学の基礎付けで活用されている圏論で精査し、圏Iのモデルと命名しました。
今回は、圏Iのモデルにおける、特徴値とリンクについて詳しく解説していきます。
特徴値
特徴値は、以下の3種類に分類できます。
- 識別子を表す
- 性質・特性を表す
- リンクの参照を表す
識別子を表す特徴値は、それぞれの概念インスタンスの一意性を保持します。概念インスタンスがモデル化対象の何を抽出したかによって、識別子はただ一つの特徴値だったり、複数の特徴値の組み合わせだったりする場合があります。
前の記事で例として挙げた図表1にあるモデルの“リンゴ”にまず着目します。

果樹園で栽培したリンゴの出荷に当たり、それぞれのリンゴに対して、一定のフォーマットでID番号を付けて管理しているとします。一個ずつ管理するということは、よほど高級なリンゴなのでしょう。この例では、“リンゴID” が識別子を意味するただ一つの特徴値として記述されています。この識別子の値を手掛かりに、ある特定のリンゴを指している概念インスタンスを示すことができます。
一方、果樹園のリンゴの木にも、ある決まったフォーマットの ID番号があるとします。その場合、リンゴの時と同じように、リンゴの木(以下、樹木)も、例えば、“樹木ID” というただ一つの識別子を便宜的に定義して、その一意性を表現できます。または、その樹木が植えられている果樹園の識別子を表す“果樹園ID”と組み合わせた、{“樹木ID”, “果樹園ID”}の二つの特徴値の組を識別子とすることもできます。
また、収穫したリンゴを納品した時に、納品先の業者が、別のフォーマットのID(“商品ID”)を付与しているとします。すると、納品後のリンゴは、栽培者側が付与していた“リンゴID”という特徴値に加えて、“商品ID” という識別子を表す特徴値も付与されたことになります。
このリンゴの概念インスタンスを図で表現する際、これらの特徴値をただ単に並べて書くと、どれが識別子か、または、どの特徴値が組なのか分かりません。そこで、図表2のように、{I}や{I2}といった添え字を付けることにします。

ここまで、それぞれを区別して管理しなければならないほど高級なリンゴを例に考えてきました。次は、庶民向けに販売するような、そこまでの管理が必要ない普通のリンゴを考えてみます。
そのようなケースでは、リンゴ一つずつの区別など普通しないでしょう。そんな場合、概念モデリングでは、便宜的な識別子を表す特徴値を一つだけ付与します。圏Iのモデルを図で書く場合は、あまりその必要性を感じないと思われますが、それぞれの概念インスタンスは存在において必ず区別できて、かつ、それを特徴値として明示しなければならない、と考えます。それが概念モデリングの基本であり、識別子を表す特徴値を付与する本質的な理由になっています。
図表化は一見すると無駄な印象がありますが、複数人でディスカッションする場合に、特定の概念インスタンスを具体的に値で指し示すことができるので、実用上のメリットは十分あると言えるでしょう。
次は、性質・特性を表す特徴値です。
リンゴを例にすると、
- 色が赤、黄、青など
- 重さが160グラム、180グラムなど
- 品種がフジ、オウリンなど
- 糖度が16度、18度など
といった特徴値が、この分類に該当します。
例えば、快適で持続可能なスマートシティーをモデル化対象とする場合、部屋という概念インスタンスは、温度や湿度、消費エネルギー量という特徴値を最低限持つことでしょう。
もし、モデル化対象が、ニュートン力学を意識するような「意味の場」の場合、リンゴの加速度や速度が特徴値になるかもしれません。速度や加速度は、x、y、z 軸という3方向のベクトル形式の値になります(図表3)。

圏Iのモデルは、モデル化対象の「意味の場」の、その時々の状態の記述なので、概念インスタンスの特徴値は確定した値を持っています。
次は、参照を表す特徴値です。
リンゴと樹木は、図表4 に示すようなリンクを持っています。

このうち、リンゴを表す概念インスタンス側の樹木ID は、そのリンゴがどの樹木で収穫されたのか、リンクの参照先を示す特徴値になっています。どの樹木とつながっているか、つながっている樹木の識別子を表す樹木ID の値をリンゴ側で特徴値として保持することで、つながりを明示しています。
モデルが図で示されている時は、リンクの線が引かれているため、概念インスタンス間のつながりは分かりやすいのですが、表やJSONで記述した時には、この関係はまったく不明になってしまいます。そのため、リンク先の参照を表す特徴値が必要です(図表5)。
参照を表す特徴値には、参照を表すリンクの名前を添え字として付けるようにします。
参照先の概念インスタンスの識別子を表す特徴値が二つ以上ある場合は、どれか適当な特徴値、あるいは特徴値の組を選んで、参照を表す特徴値とします。
ある概念インスタンスが複数のリンクでつながっている場合は、それぞれの添え字を付与します。

次回は、圏Iのモデルにおける、特徴値のデータ型について解説します。
この記事は面白かったですか?
今後の改善の参考にさせていただきます!