[5] > :3.39 [DFN[[RUBYB[木立設計][grove plan]]]]: どの[[モジュール]], [RUBY[[[級]]][[[クラス]]]], [[特性]]を[[木立]]に含めるかの[[仕様]]。 木立設計は[[木立]]を[[構築]]するためにも、 既存の[[木立]]を見るためにも用いる。 出典: -[[ISO/IEC 10744]]:1997 --[CSECTION[3 Definitions]] [1] > :グローブ設計 (grove plan): [[特性集合]]から選択した[[クラス]]及び[[特性]]の[[集合]]。 ([[JIS X 4153]]:1998 4.14) [2] [[グローブ構築処理]]は、[[結果グローブ]]の特性集合のすべての[[級]]および特性のすべての[[実現値]]を認識し、含める必要はありません。特性集合のうちで、[[グローブ]]にどの級および特性を含め、どれを含めないかは、[DFN[[RUBYB[グローブ設計][grove plan]]]]で指定します。 特性集合中のすべての級種・特性を含むグローブ設計のことを、[DFN[[[完全グローブ設計]]]]といいます。 仕様書: - [[ISO/IEC 10744]]:1997 A.4.1 - ISO/IEC 10744:1997 A.4.1.6 グローブ設計を記述する構文は色々です。 [3] グローブ設計は、任意の処理の文脈で、 その文脈においてどの[[節]]の級やどの特性が重要であるのかを示すために使うことができます。 グローブ設計の情報は、グローブの構築に当たって取るに足らないデータの処理で資源の浪費を抑えるために使用したり、 既存のグローブから興味のない部分を隠すのに使用したりできます。 [4] グローブ設計を適用すると、理論上は構築されるはずの[[完全グローブ]]から、 グローブ設計に含まれないすべての級の実現値や特性を削除したグローブが得られます。 グローブから級の実現値 (節) を削除する時、 - 削除される節は、すべての[[節的特性]]から削除されます。 - 節が[[子供特性]]を持ち、その節が削除される理由が、 その級がグローブ設計から除外されているからだけである時は、 -- 級が、その級の節を根とする[[内容木]]が[Q[[RUBYB[刈られる][pruned]]]]と規定している時は、 その節の子供特性の値である節はすべてグローブから削除します。 -- 刈られないと規定している時は、 子供特性の節または節並びは、 その節が出現した [[subnode特性]]値中の、 その節が出現した地点に挿入します。 - 節が子供特性を持ち、その節が削除される理由が、 その級がグローブ設計から除外されているから以外である時は、 その節の子供特性の値である節はすべてグローブから削除します。 - その節が示している、子供特性以外の subnode 特性値中の節は、 グローブから削除します。 特性の実現値 ([[特性割当]]) が節から削除される時、 - 特性名は[[全特性名]][[内在特性]]から削除します。 - Subnode 特性なら、[[subnode特性名]]内在特性から削除します。 - 子供特性なら、[[子特性名]]内在特性を [[null]] 値にします。 - [[データ特性]]なら、[[データ特性名]]内在特性を null 値にします。 - [[データ分離子特性]]なら、[[データ分離子特性名]]内在特性を null 値にします。 - Subnode 特性なら、値に出現する節をグローブから削除します。 - 非[[節的特性]]なら、関連節の特性の並びからその特性を削除します。