工業製品データの交換を円滑にするための国際標準規格であるSTEP(ISO 10303)において、その基盤となるデータモデリング言語として定義されているのがEXPRESSです。具体的にはISO 10303-11として標準化されており、特定のドメインにおけるデータオブジェクトとその相互関係を厳密に定義するために使用されます。
データモデルの主な役割は、データベース開発の支援や、特定の分野におけるデータ交換の実現です。EXPRESSは、Pascalのようなプログラミング言語に近い構文を持ち、スキーマ内でデータ型、構造的制約、およびアルゴリズム的なルールを定義できる点が特徴です。これにより、データ集団が定義されたルールに適合しているかを形式的に検証することが可能になります。
Key Facts
- 国際標準: ISO 10303-11として標準化された汎用データモデリング言語。
- 二面的な表現: ツール処理や検証に適した「テキスト形式」と、人間が理解しやすい「グラフィカル形式(EXPRESS-G)」が存在する。
- 強力な検証機能: 構造的制約やWHEREルールを用いた形式的なデータ検証が可能。
- 柔軟なデータ構造: 多重継承をサポートするエンティティ構造や、多様な集約型(SET, BAG, LIST, ARRAY)を備える。
EXPRESS-G:視覚的な情報モデル
EXPRESS-Gは、EXPRESS言語で定義されたエンティティ、型、関係性、およびカーディナリティ(多重度)を視覚的に表現するための標準的な表記法です。テキスト形式のEXPRESSが持つ詳細な仕様のすべてを表現できるわけではありませんが、モデルの全体構造を直感的に把握できるため、解説書やチュートリアルに最適です。
一方で、複雑な制約条件を形式的に記述できないという制限があります。例えば、オーディオCDコレクションのデータベース要件を定義する場合、EXPRESS-Gを用いることでデータのつながりを明確に視覚化できます。

データモデルの具体例と構造
EXPRESSでは、データモデルを「スキーマ」という単位で管理します。例えば「Family(家族)」スキーマを想定した場合、最上位に「Person(人)」という抽象エンティティを置き、そのサブタイプとして「Male(男性)」と「Female(女性)」を定義する構造が考えられます。
このモデルにおいて、PersonをABSTRACT(抽象)として宣言すれば、実体として存在できるのはMaleまたはFemaleのいずれかのみとなります。また、各個人には必須属性として「名前」を持たせ、任意属性として「父」や「母」を定義することで、家族間の関係性を記述します。具体的には、「FemaleはPersonにとっての母の役割を果たす」「MaleはPersonにとっての父の役割を果たす」といった定義が可能です。



EXPRESSを構成する基本要素
データ型(Datatypes)
EXPRESSは多種多様なデータ型を提供しており、これらを再帰的に組み合わせて複雑な型を構築できます。
- エンティティ型: 最も重要な型であり、属性やサブタイプ・スーパータイプ関係を通じて定義されます。
- 列挙型(Enumeration): 「赤、緑、青」のような固定的な文字列の集合を定義します。拡張可能に設定することも可能です。
- 定義型(Defined): 既存の型をさらに専門化させたものです(例:整数型に「0より大きい」という制約を加えた正の整数型)。
- 選択型(Select): 異なる型(主にエンティティ型)のいずれかを選択的に指定します。
- 基本型: 文字列(Unicode対応)、論理型(TRUE/FALSE/UNKNOWN)、ブーリアン型、数値型(整数および実数)が含まれます。
- 集約型(Aggregation): 複数の値をまとめる型で、順序のないSET(集合)やBAG(多重集合)、順序のあるLIST(リスト)やARRAY(配列)があります。
エンティティと属性
属性を用いることで、エンティティにプロパティを付与したり、他のエンティティとの役割ベースの関係を構築したりできます。属性には以下の3種類があります。
- 明示的属性(Explicit): STEPファイルなどで直接値として確認できる属性。
- 派生属性(Derived): 他の属性やEXPRESS関数を用いた式によって算出される値。
- 逆属性(Inverse): 相手側のエンティティにある明示的属性に名前を付け、逆方向からの参照を定義するもの。
継承と制約
EXPRESSでは、あるエンティティを他の1つまたは複数のエンティティのサブタイプとして定義できる多重継承が認められています。大規模なモデルでは100以上のエンティティが複雑に絡み合うグラフ構造になることもあります。
このような複雑な組み合わせを制御するため、「ONEOF(いずれか一つ)」や「TOTALOVER(完全被覆)」といった制約が導入されています。また、WHEREルールを用いることで、「週の値は7を超えてはならない」や「面積単位の長さ指数は2でなければならない」といったアルゴリズム的な制約を課し、データの妥当性を厳格に検証できます。
主要仕様まとめ
| 項目 | 内容 | 備考 |
|---|---|---|
| 標準規格 | ISO 10303-11 | STEPの基盤言語 |
| 表現形式 | テキスト形式 / EXPRESS-G(図解) | 用途に応じて使い分け |
| 継承モデル | 多重継承をサポート | ABSTRACTによるインスタンス制限可 |
| 制約定義 | WHEREルール / 関数 / プロシージャ | 形式的な妥当性検証が可能 |
| 集約型 | SET, BAG, LIST, ARRAY | 順序や重複の有無で使い分け |
Frequently Asked Questions
EXPRESSとEXPRESS-Gの決定的な違いは何ですか?
EXPRESSはコンピュータが処理し検証するための完全なテキストベースの言語であり、すべての詳細な制約を記述できます。対してEXPRESS-Gは、人間が構造を理解しやすくするための視覚的な表記法であり、複雑な制約などの一部の詳細は表現できないという制限があります。
WHEREルールとはどのような機能ですか?
データ型やエンティティに対して課される論理的な制約条件のことです。このルールがTRUEと評価されない限り、そのデータは不適切(無効)であると判断されます。関数やプロシージャを呼び出すことで、高度な計算や条件判定を組み込むことができます。
多重継承とは具体的にどのような仕組みですか?
一つのエンティティが、複数の異なるスーパータイプ(親エンティティ)から特性を引き継ぐことができる仕組みです。これにより、複雑な工業製品の属性を効率的に整理して定義することが可能になります。
集約型の中で「SET」と「BAG」の違いは何ですか?
どちらも順序を持たないデータの集まりですが、SET(集合)は重複する値を許容しません。一方、BAG(多重集合)は同じ値を複数保持することが可能です。
EXPRESSはどのような分野で利用されていますか?
主にISO 10303 (STEP) に基づく工業製品データの交換に利用されています。具体的にはCADデータの交換、切削工具データの標準化(ISO 13399)、建築情報モデル(IFC / ISO/PAS 16739)などの論理モデル定義に採用されています。
References
- ISO 10303-11:2004 Industrial automation systems and integration -- Product data representation and exchange -- Part 11: Description methods: The EXPRESS language reference manual
- Michael R. McCaleb (1999). "A Conceptual Data Model of Datum Systems". National Institute of Standards and Technology. August 1999.
- ISO International Standard 10303-11:1994, Industrial automation systems and integration — Product data representation andexchange — Part 11: Description methods: The EXPRESS language reference manual, International Organization for Standardization, Geneva, Switzerland (1994).
- 4 EXPRESS-G Language Overview Archived 2008-11-09 at the . Accessed 9 Nov 2008.
- For information on the EXPRESS-G notation, consult Annex B of the EXPRESS Language Reference Manual (ISO 10303-11)
📸 フォトギャラリー



