
EXPRESSは、製品データ用の汎用データモデリング 言語の標準です。EXPRESSは、製品交換モデルSTEP(ISO 10303)のISO標準で形式化され、ISO 10303-11として標準化されています。[1]
概要
データモデルは、関心のあるドメインのデータオブジェクトとデータオブジェクト間の関係を正式に定義します。データモデルの一般的な用途には、データベースの開発をサポートし、特定の関心領域のデータ交換を可能にすることなどがあります。データモデルは、データモデリング言語で指定されます。[2] EXPRESSは、ISO 10303-11、EXPRESS言語リファレンスマニュアルで定義されているデータモデリング言語です。[3]
EXPRESS データ モデルは、テキストとグラフィカルの 2 つの方法で定義できます。形式検証やSDAIなどのツールの入力には、 ASCIIファイル内のテキスト表現が最も重要です。一方、グラフィカル表現は、説明やチュートリアルなど、人間が使用するのに適している場合が多くあります。EXPRESS-G と呼ばれるグラフィカル表現では、テキスト形式で表現できるすべての詳細を表現できるわけではありません。
EXPRESS はPascalなどのプログラミング言語に似ています。SCHEMA 内では、構造上の制約やアルゴリズムのルールとともに、さまざまなデータ型を定義できます。EXPRESS の主な機能は、データ型の集合を正式に検証できることです。つまり、すべての構造ルールとアルゴリズムのルールをチェックします。
エクスプレスG
EXPRESS-G は、情報モデルの標準的なグラフィカル表記法です。[4]これは、エンティティとタイプの定義、関係、カーディナリティを表示するための EXPRESS 言語の補助です。 [5]このグラフィカル表記法は、EXPRESS 言語のサブセットをサポートしています。EXPRESS ではなく EXPRESS-G を使用する利点の 1 つは、データ モデルの構造をより理解しやすい方法で表現できることです。EXPRESS-G の欠点は、複雑な制約を正式に指定できないことです。図 1 はその一例です。図に示されているデータ モデルは、オーディオ コンパクト ディスク (CD) コレクションのデータベースの要件を指定するために使用できます。[2]
簡単な例

単純な EXPRESS データ モデルは図 2 のようになり、コードは次のようになります。
SCHEMA ファミリー;
エンティティ 人物
抽象スーパータイプ (ONEOF (男性、女性))
名前: 文字列;
母親: 任意 女性;
父親: 任意 男性;
END_ENTITY;
エンティティ女性
(人)のサブタイプ;
END_ENTITY;
エンティティ 男性
(人) のサブタイプ。
END_ENTITY;
END_SCHEMA;
データ モデルは、EXPRESS スキーマFamily内に格納されています。これには、2 つのサブタイプMaleとFemaleを持つスーパータイプ エンティティPerson が含まれています。PersonはABSTRACT として宣言されているため、サブタイプMaleまたはFemaleのいずれか (ONEOF) のみが存在できます。人物のすべての出現には、必須のname属性と、オプションのmotherおよびfather属性があります。一部のエンティティ タイプの属性には、固定の読み取りスタイルがあります。
- 女性は男性にとって母親の役割を果たすことができる
- 男性は男性にとって父親の役割を果たすことができる
EXPRESS ビルディングブロック
データ型
EXPRESSは一連のデータ型を提供しており、特定のデータ型シンボルはEXPRESS-G表記法で表されます。[2]

- エンティティ データ型: これは EXPRESS で最も重要なデータ型です。これについては、以下で詳しく説明します。エンティティ データ型は、サブスーパータイプ ツリーと属性の 2 つの方法で関連付けることができます。
- 列挙データ型: 列挙値は、RGB 列挙の赤、緑、青などの単純な文字列です。列挙型が拡張可能と宣言されている場合は、他のスキーマで拡張できます。
- 定義されたデータ型: これにより、他のデータ型がさらに特殊化されます。たとえば、値が 0 より大きい整数型のデータ型 positive を定義します。
- 選択データ型: 選択は、さまざまなオプション間の選択または代替を定義します。最も一般的に使用されるのは、異なるエンティティ タイプ間の選択です。定義済みのタイプを含む選択はまれです。列挙型が拡張可能と宣言されている場合は、他のスキーマで拡張できます。
- シンプルなデータ型
- 文字列: これは最もよく使用される単純な型です。EXPRESS 文字列は任意の長さにすることができ、任意の文字 (ISO 10646/Unicode) を含めることができます。
- バイナリ: このデータ型はほとんど使用されません。これはビット数 (バイト数ではありません) をカバーします。一部の実装では、サイズは 32 ビットに制限されます。
- 論理: ブール データ型と同様に、論理には TRUE と FALSE の他に UNKNOWN という値があります。
- ブール値: ブール値 TRUE と FALSE を使用します。
- 数値: 数値データ型は、整数と実数の両方のスーパータイプです。ほとんどの実装では、実際の値が整数であっても、real_type を表すために double 型を使用します。
- 整数: EXPRESS 整数は原則として任意の長さにすることができますが、ほとんどの実装では符号付き 32 ビット値に制限されています。
- Real: 理想的には、EXPRESS 実数値の精度とサイズは無制限です。ただし、実際には、実数値は double 型の浮動小数点値で表されます。
- 集約データ型: aggregation_types の種類は、SET、BAG、LIST、および ARRAY です。SET と BAG は順序付けされていませんが、LIST と ARRAY は順序付けされています。BAG には特定の値が複数回含まれる場合がありますが、これは SET では許可されません。ARRAY は、未設定のメンバーを含むことができる唯一の集約です。これは SET、LIST、BAG では不可能です。集約のメンバーは、他の任意のデータ型にすることができます。
データ型については、いくつかの一般的な事項について説明します。
- 構築されたデータ型は、EXPRESS スキーマ内で定義できます。これらは主に、エンティティを定義し、エンティティ属性と集約メンバーのタイプを指定するために使用されます。
- データ型は、より複雑なデータ型を構築するために再帰的に使用できます。たとえば、いくつかのエンティティまたは他のデータ型の SELECT の ARRAY のリストを定義することができます。このようなデータ型を定義することが理にかなっているかどうかは別の問題です。
- EXPRESS は、データ型をさらに特殊化する方法についていくつかのルールを定義します。これは、エンティティの再宣言された属性にとって重要です。
- GENERIC データ型は、プロシージャ、関数、抽象エンティティに使用できます。
エンティティ属性
エンティティ属性を使用すると、エンティティに「プロパティ」を追加し、特定のロールで 1 つのエンティティを別のエンティティに関連付けることができます。属性の名前によってロールが指定されます。ほとんどのデータ型は、属性のタイプとして直接機能できます。これには集約も含まれます。
属性には、明示的属性、派生属性、逆属性の 3 種類があります。これらはすべてサブタイプで再宣言できます。さらに、明示的属性はサブタイプで派生属性として再宣言できます。属性の種類をこれ以外に変更することはできません。
- 明示的な属性は、STEP ファイルで表示される直接的な値を持つ属性です。
- 派生属性は式から値を取得します。ほとんどの場合、式はこのインスタンスの他の属性を参照します。式では EXPRESS 関数を使用することもできます。
- 逆属性はエンティティに「情報」を追加するのではなく、反対側からエンティティに明示的な属性の名前を付けて制約するだけです。
EXPRESS-G表記法の特定の属性記号: [2]

スーパータイプとサブタイプ
エンティティは、1 つまたは複数の他のエンティティのサブタイプとして定義できます (多重継承が許可されています)。スーパータイプは、任意の数のサブタイプを持つことができます。STEP では非常に複雑なサブスーパータイプ グラフを構築するのが一般的です。一部のグラフは、100 以上のエンティティを相互に関連付けます。
エンティティ インスタンスは、単一のエンティティ (抽象的でない場合) またはサブスーパータイプ グラフ内のエンティティの複雑な組み合わせのいずれかに対して構築できます。大きなグラフの場合、可能な組み合わせの数は天文学的な範囲で増加する可能性があります。可能な組み合わせを制限するために、ONEOF や TOTALOVER などの特別なスーパータイプ制約が導入されました。さらに、エンティティを抽象として宣言して、このエンティティのみでインスタンスを構築できないようにし、非抽象サブタイプが含まれている場合にのみインスタンスを構築できるようにすることができます。
アルゴリズムの制約
エンティティと定義済みデータ型は、 WHEREルールでさらに制約できます。WHEREルールもグローバル ルールの一部です。WHEREルールは式であり、TRUE と評価される必要があります。そうでない場合、 EXPRESSスキーマの集合は無効になります。派生属性と同様に、これらの式は EXPRESS 関数を呼び出すことができ、さらに EXPRESS プロシージャを呼び出すことができます。関数とプロシージャを使用すると、プログラミング言語と非常によく似た、ローカル変数、パラメーター、定数を含む複雑なステートメントを作成できます。
EXPRESS 言語は、ローカル ルールとグローバル ルールを記述できます。例:
ENTITY area_unit
SUBTYPE OF ( named_unit ); WHERE WR1 : ( SELF \ named_unit . dimensions . length_exponent = 2 ) AND ( SELF \ named_unit . dimensions . mass_exponent = 0 ) AND ( SELF \ named_unit . dimensions . time_exponent = 0 ) AND ( SELF \ named_unit . dimensions . electric_current_exponent = 0 ) AND ( SELF \ named_unit . dimensions . thermodynamic_temperature_exponent = 0 ) AND ( SELF \ named_unit . dimensions . amount_of_substance_exponent = 0 ) AND ( SELF \ named_unit . dimensions . luminous_intensity_exponent = 0 ); END_ENTITY ; -- area_unit
この例では、area_unit エンティティの長さの平方値が必須であることを示しています。このため、属性 dimensions.length_exponent は 2 に等しく、基本 SI 単位の他のすべての指数は 0 にする必要があります。
別の例:
TYPE day_in_week_number = INTEGER ; WHERE WR1 : ( 1 <= SELF ) AND ( SELF <= 7 ); END_TYPE ; -- day_in_week_number
つまり、週の値は 7 を超えることはできません。
そして、エンティティにいくつかのルールを記述することができます。与えられた例の詳細については、ISO 10303 -41 を参照してください。
参照
- ISO関連科目
- ISO 10303 : 工業製品データのコンピュータ解釈可能な表現および交換に関する ISO 規格。
- ISO 10303-21 : ASCII構造を持つSTEPのデータ交換形式
- ISO 10303-22 : 標準データ アクセス インターフェイス、STEP の実装方法の一部
- ISO 10303-28 : STEP-XMLは、EXPRESSスキーマを表現するための拡張マークアップ言語(XML)の使用を規定する。
- ISO 13584 -24: PLIBの論理モデルはEXPRESSで規定されている
- ISO 13399 : 切削工具データの表現と交換に関する ISO 規格
- ISO/PAS 16739 :インダストリーファウンデーションクラスはEXPRESSで規定されています
- STEP (ISO 10303) 部品リスト
- その他の関連テーマ
参考文献
この記事には、国立標準技術研究所の
パブリックドメイン資料が組み込まれています。
- ^ ISO 10303-11:2004 産業オートメーションシステムと統合 - 製品データの表現と交換 - パート11: 記述方法: EXPRESS言語リファレンスマニュアル
- ^ abcd Michael R. McCaleb (1999). 「データムシステムの概念データモデル」. 米国国立標準技術研究所. 1999 年 8 月.
- ^ ISO 国際規格 10303-11:1994、産業オートメーションシステムと統合 - 製品データの表現と交換 - パート 11: 記述方法: EXPRESS 言語リファレンスマニュアル、国際標準化機構、ジュネーブ、スイス (1994)。
- ^ 4 EXPRESS-G 言語の概要 Archived 2008-11-09 at the Wayback Machine . 2008 年 11 月 9 日にアクセス。
- ^ EXPRESS-G表記法の詳細については、EXPRESS言語リファレンスマニュアル(ISO 10303-11)の付録Bを参照してください。
さらに読む
- ISO 10303 、製品モデルデータ交換標準 STEPのメインページ
- ダグラス A. シェンク、ピーター R. ウィルソン著『情報モデリング EXPRESS 方式』オックスフォード大学出版局、1993 年、ISBN 978-0-19-508714-7
- EXPRESS Language Foundationは、EXPRESS言語ファミリーの推進に取り組んでいる組織です。
