モデリング言語とは、データ、情報、知識、またはシステムを、一貫した一連の規則によって定義された構造で表現するための表記法である。
モデリング言語は、グラフィカルなものとテキスト形式のものがある。[ 1 ]グラフィカルなモデリング言語は、概念を表す名前付きシンボルと、シンボルを結び関係を表す線、および制約を表すその他のさまざまなグラフィカル表記法を用いた図式化手法を使用する。テキスト形式のモデリング言語は、標準化されたキーワードとパラメータ、または自然言語の用語やフレーズを使用して、コンピュータが解釈可能な式を作成する。グラフィカルなモデリング言語とそれに対応するテキスト形式のモデリング言語の例は、EXPRESSである。
すべてのモデリング言語が実行可能であるとは限らず、実行可能な言語であっても、それらを使用することでプログラマーが不要になるわけではありません。むしろ、実行可能なモデリング言語は、熟練したプログラマーの生産性を向上させ、並列コンピューティングや分散システムといった、より高度な問題に取り組むことを可能にすることを目的としています。
文献には数多くのモデリング言語が登場する。
コンピュータサイエンス、プロジェクト管理、システムエンジニアリングの分野におけるグラフィカルモデリング言語の例:
他の科学分野におけるグラフィカルモデリング言語の例。
情報モデルは、ゲリッシュなどの形式化された自然言語でも表現できます。[ 4 ]ゲリッシュには、ゲリッシュ形式英語やゲリッシュ形式オランダ語(ゲリッシュ形式オランダ語)などの自然言語バリアントがあります。ゲリッシュ形式英語は、ゲリッシュ英語辞書分類体系で定義されている情報表現言語または意味モデリング言語であり、分類体系オントロジーの形式をとります(オランダ語も同様)。ゲリッシュ形式英語は、知識、要件、辞書、分類体系、オントロジーだけでなく、個々の事物に関する情報を表現するのにも適しています。これらの情報はすべて1つの言語で表現されるため、中央データベース、分散データベース、または統合データベースのいずれに格納されているかに関係なく、すべて統合できます。ゲリッシュ形式英語の情報モデルは、自然言語の用語と形式化されたフレーズを使用するゲリッシュ形式英語表現の集合で構成されます。たとえば、地理情報モデルは、次のような多数のゲリッシュ形式英語表現で構成される場合があります。
エッフェル塔はパリに位置しています。 - パリは都市として分類されています
一方、情報要件と知識は、例えば以下のように表現できる。
- タワーは地理的な区域内に設置されなければならない。 都市は地理的な地域の一種です
こうしたゲリッシュの正式な英語表現では、概念名(「都市」など)や関係タイプを表すフレーズ(「⟨は⟩に位置する」や「⟨は⟩に分類される」など)を使用します。これらのフレーズは、ゲリッシュ英語辞書分類体系(または独自のドメイン辞書)から選択する必要があります。ゲリッシュ英語辞書分類体系には、600 を超える標準的な関係タイプと 40,000 を超える概念の定義が含まれているため、意味的に豊かな情報モデルを作成できます。ゲリッシュの情報モデルは、事実を表現したり、ステートメント、クエリ、および回答を作成したりできます。
近年、コンピュータ科学の分野では、より具体的な種類のモデリング言語が登場している。
代数モデリング言語(AML)は、大規模な数学的計算(すなわち、大規模な最適化問題)における複雑な問題を記述および解決するための高水準プログラミング言語です。AIMMS 、AMPL、GAMS、Gekko、Mosel、OPL、MiniZinc、OptimJなどのAMLの特長の一つは、その構文が最適化問題の数学的表記法と類似していることです。これにより、最適化領域における問題を非常に簡潔かつ読みやすく定義することが可能になり、集合、インデックス、代数式、強力な疎インデックスおよびデータ処理変数、任意の名前を持つ制約などの言語要素によってサポートされます。モデルの代数的定式化には、その処理方法に関するヒントは含まれていません。
ビヘイビア言語は、並行して実行されるコンポーネントから構成される複雑なシステムの観測可能な動作を記述するために設計されています。これらの言語は、並行性、非決定性、同期、通信といった重要な概念の記述に重点を置いています。ビヘイビア言語の意味論的基盤は、プロセス計算またはプロセス代数です。
分野別モデリング(DspM)言語は、特定のソフトウェア開発ライフサイクル段階に関連する成果物に焦点を当てています。そのため、この言語は、発見、分析、設計、アーキテクチャ、構築など、各段階ごとに独自の語彙、構文、表記法を提供します。例えば、プロジェクトの分析段階では、モデラーは分析命題図を作成するために特定の分析表記法を使用します。一方、設計段階では、ソフトウェアエンティティ間の関係を示すために論理設計表記法が使用されます。さらに、分野別モデリング言語のベストプラクティスでは、実務者がさまざまな表記法を単一の図に組み合わせることを妨げるものではありません。
ドメイン固有モデリング(DSM)は、システム、特にコンピュータソフトウェアなどのITシステムを設計・開発するためのソフトウェアエンジニアリング手法です。これは、グラフィカルなドメイン固有言語(DSL)を体系的に使用して、システムの様々な側面を表現することを特徴としています。DSM言語は汎用モデリング言語よりも高レベルの抽象化をサポートする傾向があるため、特定のシステムを定義する際に必要な労力や低レベルの詳細が少なくて済みます。
フレームワーク固有モデリング言語(FSML)は、オブジェクト指向アプリケーションフレームワーク向けに設計されたドメイン固有モデリング言語の一種です。FSMLは、フレームワークが提供する抽象概念をFSML概念として定義し、その抽象概念を機能に分解します。機能は、実装手順または選択肢を表します。
FSMLの概念は、機能を選択し、それぞれの機能に値を指定することで構成できます。このような概念構成は、コード内で概念をどのように実装すべきかを表します。言い換えれば、概念構成は、概念の実装を作成するためにフレームワークをどのように完成させるべきかを記述するものです。
リンクデータとオントロジーエンジニアリングでは、エンティティとそれらの間の関係、エンティティと関係のプロパティ間の制約、およびメタデータ属性を表現するための「ホスト言語」が必要です。JSON -LDとRDFは、この文脈において主要な(そして意味的にほぼ同等の)2つの言語です。これは主に、モデルについて推論するために必要な高階論理をサポートする上で不可欠な特性である、ステートメントの具体化と文脈化をサポートしているためです。モデル変換は、このような推論の一般的な例です。
オブジェクト指向モデリング(OOM)言語とは、システムをオブジェクト指向としてモデル化するための表記法です。組織はOOMを使用して、システムアーキテクチャと設計を開発者とステークホルダーの両方に文書化し、説明することができます。モデリング言語は視覚的で、コードよりも抽象度が高いため、モデルを使用することで共通のビジョンが生まれやすくなり、開発後半での解釈の相違による問題を未然に防ぐことができます。多くの場合、これらのモデルの構築にはソフトウェアモデリングツールが使用され、構築されたモデルは自動的にコードに変換される可能性があります。
仮想現実モデリング言語(VRML)は、1995年以前は仮想現実マークアップ言語として知られており、3次元(3D)のインタラクティブなベクターグラフィックスを表現するための標準ファイル形式であり、特にワールドワイドウェブを念頭に置いて設計されています。
様々なモデリング言語は、コンピュータサイエンス、情報管理、ビジネスプロセスモデリング、ソフトウェアエンジニアリング、システムエンジニアリングなど、様々な分野で応用されています。モデリング言語は、以下のようなことを記述するために使用できます。
モデリング言語は、システムを正確に記述するために用いられるものであり、それによって利害関係者(顧客、運用者、アナリスト、設計者など)が、モデル化されているシステムをより深く理解できるようになる。
より成熟したモデリング言語は、正確で一貫性があり、実行可能です。描画ツールを使用して非公式な図解手法を適用すると、システムの要件、構造、動作の有用な図解表現が生成されることが期待されます。これは、コミュニケーション、設計、問題解決に役立ちますが、プログラム的に使用することはできません。 [ 5 ] : 539一方、適切なツールサポートを使用して適用される実行可能なモデリング言語は、同じ表現からシステムの検証と妥当性確認、シミュレーション、コード生成を自動化することが期待されます。
モデリング言語の見直しは、さまざまなモデリング環境に適した言語を特定するために不可欠です。ここでいう環境とは、ステークホルダー、ドメイン、および関連する知識を含みます。言語の品質を評価することは、より優れたモデルを実現するための手段です。
ここで言語品質は、Krogstie、Sindre、Lindland (2003) によって開発されたモデル品質のためのSEQUAL フレームワークに従って記述されます。これは、言語品質を一般的なモデル品質のフレームワークに結びつけるフレームワークだからです。このフレームワークでは、言語品質を記述するために 5 つの領域が使用され、これらは言語の概念的表記と視覚的表記の両方を表現するものとされています。ここでは、モデルの品質フレームワークの根底にある詳細な説明は行わず、言語品質フレームワークを説明するために使用される領域に焦点を当てます。
このフレームワークでは、ドメインを表現する能力をドメインの適切性として定義しています。適切性という表現はやや曖昧ですが、この文脈では、表現できることを意味します。理想的には、ドメインに含まれるものだけを表現できる必要がありますが、ドメインに含まれるものすべてを包含できるほど強力である必要があります。この要件はやや厳格に思えるかもしれませんが、目的は、ドメインに関連するものすべてを含み、ドメインに不適切なものすべてを除外した、視覚的に表現されたモデルを得ることです。これを実現するには、言語が、どの表記法と構文を提示するのが有利かを明確に区別できる必要があります。
参加者の適切性を評価するために、私たちはその言語が関係者の知識をどれだけ適切に表現しているかを特定しようと試みます。関係者の知識は主観的なものであるため、これは困難を伴います。関係者の知識は暗黙知と明示知の両方を含みます。どちらのタイプの知識も動的な性質を持っています。この枠組みでは、明示知のみが考慮されます。その言語は、その領域に関連する関係者の明示知をほぼ完全に表現する必要があります。
最後の段落では、関係者の知識を適切に提示する必要があると述べました。さらに、言語は関係者のあらゆる明示的な知識を表現できるものでなければなりません。言語の不備によって、いかなる知識も表現されないまま放置されてはなりません。
理解可能性の適切性は、言語の一貫した使用によって社会的主体がモデルを理解できるようにするものです。これを実現するために、フレームワークには一連の基準が含まれています。これらの基準が示す一般的な重要性は、言語が柔軟で、整理しやすく、言語内のさまざまな部分を内部的にも他の言語とも容易に区別できる必要があるということです。さらに、目標はできるだけ単純であるべきであり、言語内の各記号は一意の表現を持つべきです。
これは、開発要件の構造にも関連しています。
実際にモデル化されたドメインが分析や後続処理に利用できることを保証するためには、言語が自動的に推論できることを保証する必要がある。そのためには、形式的な構文と意味論を含める必要がある。形式化によるもう一つの利点は、エラーを早期に発見できることである。技術的な関係者にとって最適な言語が、社会的な関係者にとって最適な言語と必ずしも同じであるとは限らない。
使用されている言語は組織の状況に適切である。例えば、組織内で言語が標準化されている、あるいは組織内で標準として選択されたツールによってサポートされている、といった場合である。