JP4307501B2 - 媒体でデザインするためのコンテンツの自動的なレイアウトおよび書式設定 - Google Patents

媒体でデザインするためのコンテンツの自動的なレイアウトおよび書式設定 Download PDF

Info

Publication number
JP4307501B2
JP4307501B2 JP2007257787A JP2007257787A JP4307501B2 JP 4307501 B2 JP4307501 B2 JP 4307501B2 JP 2007257787 A JP2007257787 A JP 2007257787A JP 2007257787 A JP2007257787 A JP 2007257787A JP 4307501 B2 JP4307501 B2 JP 4307501B2
Authority
JP
Japan
Prior art keywords
media
content
design
tree
component
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2007257787A
Other languages
English (en)
Other versions
JP2008052746A (ja
Inventor
オー・マイケル・ビー.
ブリンツェンホフ・キース・エス.
キング・ジョセフ・ディー.
マクドナルド・マーク・ビー.
ボン・リンバッハ・ジオフリー
ウェイル・スティーブン・イー.
エベレット・ネイサン・ダブリュ.
ガードナー・ゲイ・リンダ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US08/709,633 external-priority patent/US5956737A/en
Priority claimed from US08/745,557 external-priority patent/US5895477A/en
Priority claimed from US08/709,649 external-priority patent/US5895476A/en
Priority claimed from US08/709,782 external-priority patent/US5903902A/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2008052746A publication Critical patent/JP2008052746A/ja
Application granted granted Critical
Publication of JP4307501B2 publication Critical patent/JP4307501B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/131Fragmentation of text files, e.g. creating reusable text-blocks; Linking to fragments, e.g. using XInclude; Namespaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/174Form filling; Merging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Document Processing Apparatus (AREA)
  • Processing Or Creating Images (AREA)

Description

発明の分野
本発明は、一般に、コンピュータシステムによるデータの処理に関するものである。さらに具体的に言えば、特定媒体のデザインに対するコンテンツの自動的なレイアウトおよび書式設定と、デザインの変更に対する自動的な書式設定に関する。
発明の背景
1980年代末にPC利用のレイアウトおよびパブリッシング・ソフトウェアが導入されて以来、このような市場の爆発的な成長により、効果的なビジネス文書に不可欠な要素としてグラフィックデザインが強まってきた。このような情報激増の結果、何百もの広告(多くは、クリップアート、カスタム・イラスト、走査画像の内容を向上させたもの)が、多種多様な媒体(印刷媒体、電子媒体、マルチメディアなど)を通じて、注目を得ようと競い合うこととなった。ビジネスは、このような市場の騒音よりも、文書を視覚的に差別化することがきわめて必要である。ページは、書式設定、イラスト、レイアウト、視覚的アピールに最低限注意を払ってコンテンツを目立たせたところで、もはや、ますます洗練されてきたビジネス信奉者の注意を引かなくなる。読み手の度数を競い合うビジネスユーザは、現在、グラフィックで人目を引く文書を作成し出版することを重視している。
ソフトウェア・ツール、レディーメードのコンテンツ(例えば、オンラインのフォト・ライブラリや、クリップアートのCD−ROMディスク)、デスクトップ周辺装置(例えば、カラープリンタやスキャナ)の急増により、人目を引くコンテンツや出力が、パソコンを持っているどんな人にも手ごろになった。さらに、インターネットは、コンテンツの大きさにも配布機会にも強い影響を及ぼしている。しかしながら、インターネットを含む異種の媒体に対してプロ品質の素材を作成するには、デザインの専門知識、様々なオーサリング・ツール、高度のコンピュータ・スキル(たいていのビジネスマンにとってはまれな組合せ)が必要となる。とくに在宅ビジネスや小ビジネスのユーザは、雑多な業務役割にかかわる時間がすでに重い負担となったため、デザインおよびコンピュータの専門知識を高めるのに必要な時間やツールを得ることは、困難である。
素材の作成に役立てるために、いくつかのワープロ・プログラム、デスクトップ・パブリッシング・ツール、インタネット・オーサリング・ツールなどが開発されてきた。これらのワープロ・プログラムのうちの多くから、ユーザは、文書の中に表、カラム(段)、初歩的なグラフィックを含めることができる。ただし、これらのものは、一般に、高度な文書書式設定を楽にできるようには設計されていない。デスクトップ・パブリッシング・ツールのおかげで、ユーザは、印刷ページ、コンピュータ画面などの媒体に文書を出力するだけでなく、さらに高度な文書を作成し、かつ書式設定することもできる。とはいえ、文書を別の媒体に出力する必要がある場合には、現行ソフトウェア・パブリッシング・ツールはさらに、ユーザに、手作業によるレイアウトおよび書式設定の変更、あるいはコンテンツの変更を求めている。同様に、ユーザが、デザインの変更を希望するか、あるいはレイアウトおよび書式設定の変更を希望する場合には、ユーザは、新規のデザインまたはレイアウトに合うように、しばしば文書のコンテンツを手作業で変更しなければならない。このような手作業によるコンテンツまたはレイアウトの変更は、時間がかかり、ユーザをうんざりさせる。
様々なワープロ、デスクトップ・パブリッシング、インターネット・オーサリングのアプリケーションは、文書作成を簡素化することを求めている。これらのアプリケーション製品はそれぞれ、部分的にはうまくいくが、ただし著しい制限がある。例えば、現行のソフトウェア・パブリッシング・パッケージを用いれば、ユーザは一度、文書をオーサリングすることができるが、ただし、ユーザによる何らかの手作業の介入がなければ、所望の書式に合わせて自動的に編集することはできない。例えば、アドビシステム社のソフトウェア「ページメーカー」は、手作業による貼り付けの自動化問題を解決する1手法である。ユーザがすでに熟練グラフィック・デザイナであれば、「ページメーカー」を使用すれば、精巧な文書を作成できる。しかしながら、「ページメーカー」は、それだけでは自動的にテキストやピクチャを高度なデザインに変えることはできない。同様に、アドビ社のソフトウェア「アクロバット」は、画面上に紙の文書を模倣する問題に取り組んでいる。とはいえ、「アクロバット」はまだ、出力媒体の変更に基づく自動的なデザイン変更または書式変更を考慮に入れていない。マイクロソフト社から入手できるソフトウェア「インターネットスタジオ」は、ある文書を得て、フォームをコンテンツから切り離すことができる。しかしながら、このソフトウェアは、ウェブページを作成することだけしかできない。ユーザが同一情報を得て、それをデータシート、マニュアル、またはパンフレットなどの別の媒体に変えたいと思う場合には、ユーザは、手作業により書式変更を全部、自力で行わなければならない。
従来技術のソフトウェア・ツールは、所望の媒体に対して、コンテンツおよび/またはデザインを自動的に調整できないことに加え、一般に文書のフォームとコンテンツとの二様の区分しか行えない。これらの従来技術のツールでは、コンテンツ構造は、一般に出力媒体と関係があり、このコンテンツ構造には、その構造を出力媒体に提示すべき方法に関するタグも付けられる。これは、同一コンテンツを、様々な出力媒体に表現しなければならない時に問題を起こす。さらに、別の出力媒体に文書を表現できるソフトウェア・ツールも他にあるかもしれないが、これらのツールは、もとのデザイン、および、もとのデザインのコンテンツ要素間の関係を維持することができない。
さらに、SGMLを基本とするツールやスタイルシート・ツール(多くのワープロ・ツールやデスクトップ・パブリッシング・ツールに添付されている)により、コンテンツ構造の意図をタグとして記録できる。ただし、特定のデザインを保存して再使用したり、自動的に媒体に表現することはできない。さらに、データベース・パッケージ、他のフォーム・パッケージ、レポート・パッケージ、「長い文書」システム(例えば、Interleaf)には、様々な欠点がある。これらのものは、全体的な統一、柔軟なデザイン変更、または媒体変更などのデザイン問題に対しては、コンピュータによる一括処理による解決策を提供しない。また、これらのものは、豊富なデザイン構造をサポートしてないし、また対話形式の実験法もサポートしていない。さらに、これらのものは、様々な媒体の中で再目的化/多目的化することを考慮に入れていない。
それゆえ、ユーザは、一度、文書をオーサリングし、文書のコンテンツ要素間の関係を維持しながら、コンテンツ、デザイン、または出力媒体を変更するように自動的に文書を合わせてゆくシステムを持てることが望ましいであろう。
発明の要約
本発明は、文書の情報を三様に区分できるようにしている。特定の実施例では、文書は、コンテンツ、デザイン、媒体の面に分けられる。このような表現を通じて、本発明の実施例は、複数形式の媒体への自動レンダリングをさらに適切にサポートすることができる。例えば、本発明の実施例は、印刷媒体、イントラネット、インターネットなどの媒体で、またOLE埋め込みで直ちに編集できるインテリジェント・ダイナミック文書テンプレートに対して、複数のソースからコンテンツの自動的な統合、構成、レイアウトをサポートしている。
第1の実施例では、コンピュータ構築法は、選択されたデザインを有する構成にコンテンツを追加して、その構成について、レイアウトを自動的に計算する。この構成は、デザインツリーの構成要素(以下、コンポーネントと呼ぶ)で表され、これらのコンポーネントに対応づけられたコンテンツ要素を含んでいる。最初に、コンテンツ・オブジェクトが構成の受取り側のコンポーネント上にドロップされる。ドロップされるコンテンツ・オブジェクトは、少なくとも1つのタイプ(ポテンシャル・タイプ)を潜在的に有する。このコンテンツ・オブジェクトのポテンシャル・タイプを、受取り側のコンポーネントのコンパチブルなタイプと照合させる。次に、デザインツリーを変更してこのコンテンツ・オブジェクトを取り入れて、この構成の各コンテンツ要素について、媒体レイアウト値を計算する。この計算にデザインツリーを使用して、前記選択されたデザインでコンテンツ要素をレイアウトするようにしている。ドロップされるコンテンツは、現行コンテンツを変更するか、完全に現行コンテンツに取って代わるか、あるいは現行コンテンツに差しはさまれる。さらに、ドロップされるコンテンツは、現行コンテンツのプロパティを変更するか、あるいは新規コンポーネントをデザインツリーに生成する。コンテンツを、誤った場所にドロップした場合には、本発明のツリー構造を使用すれば、該当するコンテンツがどこにあるのか判定できる。
第1の実施例に関連する実施例では、コンテンツ・ドロップ・テーブルのデータ構造を使用して、コンテンツを構成上にドロップするのに役立てる。このドロップ・テーブルは、構成の受取り側のコンポーネント・タイプと対応づけられる。ドロップ・テーブルは、コンテンツ・ドロップ・テーブルが、どのコンポーネント・タイプと対応づけられているのか示すコンポーネント・タイプ標識を含んでいる。このテーブルは、2カラムのタイプを照合することができる。ドロップされるポテンシャル・コンテンツ・タイプの第1のリストは、構成の受取り側のコンポーネント・タイプ上にドロップできるコンテンツ・タイプを表している。
第2のリストには、この受取り側のコンポーネント・タイプとコンパチブルなサブコンポーネント・タイプが記載されている。このようにして、第1のリストに記載のドロップされるポテンシャル・コンテンツ・タイプのそれぞれについては、ドロップされるポテンシャル・コンテンツ・タイプに合うサブコンポーネント・タイプを示すサブコンポーネント・タイプの第2のリストから、少なくとも1つのサブコンポーネント・タイプの対応グルーブがある。ドロップされるポテンシャル・コンテンツ・タイプを有するコンテンツ・オブジェクトを、この構成の1コンポーネントにドロップする時には、照合サブコンポーネント・タイプは、コンテンツ・ドロップ・テーブルを参照すれば決定できる。
第2の実施例では、ある方法が、特定の媒体に表現される現行デザインを有する構成のデザインを変える。この構成は、現行デザインツリーのコンポーネントで表され、これらのコンポーネントと対応づけられたコンテンツ要素を含んでいる。コンテンツ要素は、現行デザインに関連して、互いに一組の関係を有している。最初に、いくつかの新規デザイン・コンポーネントを含む新規デザインを受け取る。新規デザイン・コンポーネントに基づく構成に対して、新規デザインツリーを生成する。次に、コンテンツ要素はそれぞれリンクされて、新規デザイン・コンポーネントの1つと対応づけが行われ、新規デザインに関連してコンテンツ要素間の関係の組を維持するようにしている。構成の各コンテンツ要素に対して、媒体レイアウト値が計算される。この計算にデザインツリーを使用して、コンテンツ要素を新規デザインでレイアウトし、かつその新規デザインが、特定の媒体に表現される構成を保持するようにしている。
第2の実施例に関連する実施例では、ある方法が、現行デザインを有する構成の媒体を変える。この構成は、現行デザインツリーのコンポーネントで表され、これらのコンポーネントと対応づけられたコンテンツ要素を含んでいる。最初に、この構成に対して新規媒体が識別される。新規媒体を表し、かつ媒体ツリーのコンポーネントを含む構成に対して、新規媒体ツリーを生成する。次に、コンテンツ要素をそれぞれ、媒体ツリーのコンポーネントの1つと対応づけて、コンテンツ要素をそれぞれ、その新規媒体の領域と対応づけるようにしている。構成の各コンテンツ要素に対して媒体レイアウト値を計算して、各コンテンツ要素の媒体レイアウト値がそれぞれ、新規媒体の領域の1つを画成するようにし、またこれらのコンテンツ要素が現行デザインでレイアウトされるようにしている。
第3の実施例では、ある方法が、構成のコンテンツ要素を媒体レイアウトに合わせている。各コンテンツ要素は、対応コンテンツ・タイプを有し、また媒体レイアウトは、コンテンツ要素に入っている情報を提示するためのコンテンツ・レンダリング・スペースを有している。それぞれのコンテンツ・タイプでは、そのコンテンツ・タイプで利用されるコンテンツ・レンダリング・スペースの一部を示すコンテンツ基準倍率を初期設定する。さらに、それぞれのコンテンツ要素では、コンテンツ基準倍率を用いて、範囲値を計算する。これらの範囲値は、コンテンツ要素で占められるコンテンツ・レンダリング・スペースの一部を示している。コンテンツ要素が、媒体レイアウトのコンテンツ・レンダリング・スペースに収まるかどうか判定される。関連する方法が、デザインツリーを用いて再帰的なやり方で構成のレイアウトを計算する。デザインツリーは、対応コンテンツ要素をそれぞれ有するデザイン・コンポーネントを含む。別の関連方法は、選択された媒体について、構成のレイアウトを計算する。構成は、コンポーネントを有する媒体ツリーの中に、少なくとも部分的に表現され、各コンポーネントを、選択された媒体の媒体領域と対応づけている。
第4の実施例では、情報のデータ構造は、対応コンテンツと対応デザインを有する構成を表すようになっている。この構成は、少なくとも1つの特定の媒体に表現するのに適切である。このデータ構造には、3つのツリー構造がある。デザインツリー構造は、構成のデザインを表し、デザイン・コンポーネントを含んでいる。コンテンツツリー構造は、構成のコンテンツを表し、コンテンツ要素を含んでいる。コンテンツツリー構造は、デザインツリー構造にリンクされている。媒体ツリー構造は、構成の選択媒体を表し、媒体コンポーネントを含んでいる。媒体ツリー構造は、デザインツリー構造にリンクされている。デザインツリー構造、コンテンツツリー構造、媒体ツリー構造は1つしかないが、少なくともいくつかの共通コンポーネントを互いに利用している。関連する実施例では、コンポーネントのデータ構造は、構成の中のコンテンツ要素を表している。この構成は、いくつかのコンテンツ要素とコンポーネントを有する。このコンポーネントは、コンテンツ要素と対応づけられたコンテンツ・ファセット、デザイン・ファセット、媒体ファセットを含む。コンテンツ・ファセットは、対応コンテンツ要素に関連するコンテンツ・プロパティを含む。デザイン・ファセットは、対応親デザイン・コンポーネントを示すデザイン親ポインタと、対応コンテンツ要素に関連するいくつかのデザイン・プロパティを含む。媒体ファセットは、対応親媒体コンポーネントを示す媒体親ポインタと、構成の中の対応コンテンツ要素で占められる領域を示すいくつかの領域プロパティを含む。
さらに別の実施例では、媒体区分のデータ構造が提供される。媒体区分のデータ構造は、構成の媒体ツリー構造の親コンポーネントと対応づけられている。媒体ツリー構造は、構成を表現できる選択媒体を表している。親コンポーネントは、選択媒体の親領域と対応づけられており、子コンポーネントを有し、また各子コンポーネントは、選択媒体の子領域と対応づけられている。媒体区分のデータ構造は、リンク、タイプ標識、フラグ、適合値を含む。リンクは、媒体区分を親コンポーネントと対応づけるようになっている。タイプ標識は、親コンポーネントの子コンポーネントの数を示している。方向フラグは、親コンポーネントの親区域が子コンポーネントに水平に割り当てられるか、あるいは垂直に割り当てられるかどうか示している。適合値は、親コンポーネントの親領域との関係で子コンポーネントの各子領域が、どんな具合に合わされるか示している。
本発明と、さらに他の利点は、以下の説明を参照して添付図面といっしょに読めば、よく理解できる。
発明の詳細な説明
本発明は、デザイン記述、コンテンツ要素、出力媒体仕様を含むプログラム・オブジェクトの自動的および動的な構成や組直しが楽にできるいくつかの特徴に関するものである。従来のワープロ・ソフト、デスクトップ・パブリッシング・ソフト、あるいはウェブ・オーサリング・ソフトとは異なって、本発明は、少なくとも三様に文書作成を大幅に向上させる。本発明は、多種多様なタイプおよび組合せのコンテンツ(例えば、テキスト、ピクチャ、データ、グラフィックス、OLEオブジェクト、ビデオ、サウンドなど)を自動的に統合することができる。さらに、本発明は、文書のレイアウト、スタイル設定、および選択デザインへの指定コンテンツ要素の合わせを自動的に行う。さらに、本発明は、コンテンツを、新規の文書タイプまたはデザインに自動的に書式変更すれば、例えば、OLE埋め込みオブジェクトとして印刷ページ、コンピュータ画面表示を含め、あるいはHLMLページとしてインターネットを通じて、多種多様な配布機構をサポートすることができる。本発明の様々な実施例は、コンテンツ、デザイン、媒体の機能を組み合わせて使用して、文書作成を向上させる。
いくつかの実施例では、コンテンツ処理能力が大きいために、多種多様な資源(例えば、別のディスク、ネットワーク上、インターネット)からのコンテンツの組立てが、ドラッグ・アンド・ドロップ操作を実行するのと同じくらい簡単になる。このようなコンテンツ処理能力により、(1)異種のファイル形式からのデータを取り入れるというありふれた問題点、(2)マルチフォーマットのコンテンツを手作業で作成する時に、一般に必要となる厄介で、かつ時間のかかるコンテンツ準備作業(例えば、プログラムに固有の書式設定のコマンドおよび記号を除去する)、といった2つの主要なユーザ問題に取り組めば、ユーザには著しい利益がもたらされる。
組み込まれたグラフィック・デザイン専門的知識を用いて、自動的なレイアウトおよび書式設定も行うことができる。本発明の実施例は、コンテンツを、選択デザイン(ニューズレター − 最新、ヨーロッパ、有線、伝統など)に自動的に合わせ、それを選択メディア・ビュー(印刷ページ、画面、HTMLなど)に表示し、テキストとグラフィックスの位置を決め、タイプ仕様を変更し、階層を飛び越し、ページを追加し、グラフィックスのサイズを決め、あるいは、その他の必要なレイアウト調整を行う。ユーザが文書中のテキストまたはグラフィックスのスキーマ、あるいは総合デザインまでも変更する場合には、その適合値を自動的に計算し直して、書式設定および/またはスタイル設定に必要な調節を行う。このようなインテリジェント・デザイン機能により、高度なデザイン専門的知識をデザイン専門家以外の人に、「破れない文書」の形で渡すことができる。このような機能のおかげで、ユーザは、一定水準のデザインまたはツールの専門的知識から制約を受けることはなく、適切で、かつ「良いと思われる」ものに基づいて、デザインの決定を行うことができる。
「適合値」という概念はまた、文書を特定の媒体に表現する方法のあらゆる面をさす。例えば、コンテンツ要素の様々なプロパティは、その要素のデザイン、または全体の文書のデザインを表現するのに役立つ。これらのプロパティは、ある要素のレイアウト/書式に影響を及ぼすが、ただし、文書全体の総合レイアウトには必ずしも影響を及ぼすとは限らない。言い替えれば、これらのプロパティが、ある文書の総合「適合値」には影響を及ぼさなくとも、それでもデザインの面には影響がある。テキストでは例として、フォント・サイズ、書体、イタリック、ボールド、アンダーライン、ドロップ・キャプ文字、前景色と背景色、文字間隔/行間隔がある。イメージでは例として、クロップ長方形、パン位置、ズーム倍率、ビット・マスク、パレットがある。一般コンテンツでは例として、境界線、向き、サブコンポーネントの直列/並列配置がある。
本発明の実施例は、マルチメディア出力用の自動書式変更もサポートしている。代りの媒体での編集の目的で文書を全面的に書式変更または作成変更する(すなわち、印刷したニューズレターを、グラフィックの豊富なインターネット文書に変換する)複雑な作業を排除することにより、「一度書き込めば、どこででも編集可能」のワークフローが、サポートされている。このようなメディア・インテリジェントな自動書式変更により、PageMaker、Express(Quark社製品)、Publisher(マイクロソフト社製品)、ウェブとマルチメディアのオーサリング・ツール、または他のDTPアプリケーションなどのコンテンツ組立て用の複数のオーサリング・ツールを持つ必要がなくなる。この自動書式変更のおかげで、多種多様なメディア環境への出力を自動的に作り直すことにより、前述の複数のツールを用いる必要がなくなる。本発明の実施例により、基本的なコンピュータ・スキルのあるビジネスユーザであればだれでも、印刷媒体、画面、インターネットなどの様々な媒体にすぐ使えるプロなみの文書をすばやく、かつ容易に作成することができる。
本発明の実施例は、様々なアプリケーション・プログラムの中に使用できる。
ここで図1に移って、本発明の用途の実施例が10に示されている。本発明を具現するアプリケーション・プログラム12は、デザイン・エンジン・モジュール14とファセット・エンジン・モジュール16を有する。さらに、アプリケーション・プログラム12は、ここでは、構成20を提示しているユーザ・インタフェース18も含む。ユーザがこの構成を変更したいと思う場合には、ユーザは、ユーザ・インタフェースなどを通じて、新規コンテンツ要素、新規デザイン記述、または新規媒体仕様を追加して、それらをアプリケーション・プログラム12で処理させる。処理が完了すると、そのアプリケーション・プログラムは、新規のコンテンツ、デザイン、媒体を出力し、それらを、ユーザ・インタフェース18’を通じて、表示させる。
この例では、ユーザは、この時、ユーザ・インタフェース18’上のコンテンツ要素20’の右側に表示されている新規コンテンツ要素22を追加した。さらに、ユーザは、コンテンツ要素に対して、新規デザイン記述も指定した。ここでユーザ・インタフェース18’に示されているコンテンツ要素20’は、テキストが、ユーザ・インタフェース18のもとのコンテンツ要素20のように右側に表示されているのではなく、イメージの下に表示されているデザインを有している。さらに、ユーザは、コンテンツを変えずに、構成のデザインか、出力される媒体のいずれかを変更することもできる。一般に、ユーザは、構成のコンテンツ面、デザイン面、媒体面のうちの1つ、または全部を変更し、その構成をアプリケーション・プログラム12で自動的に調整させることができる。
構成に追加されるコンテンツ要素は、どんなタイプのものでもよく、多種多様なフォームを取ることができる。例示として、代表的なタイプのコンテンツには、テキスト、イメージ、データ、グラフィックス、OLEオブジェクト、ビデオ、サウンドなどがある。さらに、これらのコンテンツ要素は、ユーザ・インタフェース内のどこにでも、任意の適切なやり方でドロップしたり、あるいは位置付けることができる。ユーザで指定されたデザイン記述も、どんな種類のものでもよい。例示として、ユーザが指定するデザインは、アプリケーション・プログラム12の使用を通じてユーザが作成したカスタム・デザインであるか、あるいは、アプリケーション・プログラム12のデザイン・カタログに記憶されているデザイン・テンプレートから得られるものである。多種多様なデザインが可能である。例示として、ユーザは、横書きパンフレット形式、縦書きパンフレット形式、単一ページまたは複数ページ形式、または他のデザイン、例えばレポート、ニューズレター、メモ、ホームページ、白紙、予定表、プログラム、アジェンダ、カレンダ、ビラ、表、カタログ、ギャラリー、ウェブサイト、地図、組織図、スライド・プレゼンテーションなどを指定できる。
さらに、ユーザは、構成を表現する所望の媒体はどんなものでも指定できる。
例示として、媒体は、一般に、コンピュータの一連の画面ページ、紙ページ、HTLM言語または他の任意の適切な言語で書かれたインターネット上のウェブサイト、イントラネット上のサイト、またはOLE埋め込みオブジェクトである。
他のタイプの媒体も可能である。例えば、この構成は、ライブHTLM(おそらく、JAVAアプレット、またはShockwaveオブジェクトなどを組み込んでいる)、複数ページOLE形式、マルチメディア形式、三次元HTLM形式(VRML)、オーディオ形式、TAPI形式、汎用インボックス形式、あるいは、さらなる自動化処理を受ける任意の抽象媒体(例えば、ユーザが直接には使用できないExcelモデルに出力されるデータ)に表現できる。
ユーザ・インタフェース18’は、コンピュータ画面形式用に、ユーザ指定のコンテンツ、デザイン、媒体を表現するアプリケーション・プログラム12の一例を示している。この構成は、標準ウィンドウ・ドライバと当業界で既知のAPIの利用といった適切なやり方で、画面形式に表現できる。この構成は、書式とスタイルを含め、コンテンツ要素を印刷する領域を、紙ページ上に指定することにより、紙媒体に表現できる。構成は、さらに、書式とスタイルを含め、コンテンツ要素を位置付ける領域を、ウェブページ内に指定することにより、またこの情報をHTLM言語に変換することにより、HTLM形式に表現できる。この構成のデザインには、HTLMが表現できるもの、従ってHTLMに変換できるようにするものに関する知識が入っている。言い替えれば、HTLM形式で利用できる表現可能な形態が、構成の多数のコンポーネントのデザイン・ファセットに含まれている。この情報は、当該系統の個々のプロトタイプ・コンポーネントから引き継がれる。構成は、標準の一組の編集インタフェース(例えば、マイクロソフト社から入手されるもの)を用いて、OLE埋め込みオブジェクトに表現される。
デザイン・エンジン・モジュール14を含むアプリケーション・プログラム12は、デザイン・エンジンの機能を利用できる適切なアプリケーション・プログラムと言える。もう1つの方法としては、アプリケーション・プログラム12は、デザイン・エンジン14の実施例を含むか、あるいはデザイン・エンジン14を含む(または呼び出す)サーバ・アプリケーションを呼び出すか、いずれかとなる。例示として、アプリケーション・プログラム12は、HTMLページの自動的なサーバ側生成、または他のプレゼンテーションを行うことができる。これは、ユーザの介入なしに動的に行うことができる。また使用されるコンテンツは、データベース、あるいは他のデータ源から得られる。さらに、本発明のデザイン・エンジンは、多種多様なユーザ・インタフェース(例えば、ユーザ・インタフェース18)とともに使用できる。
デザイン・エンジン14は、構成の枠組と、文書およびそのコンポーネントを表すための枠組ルールを定めている。さらに、デザイン・エンジン14には、とりわけこの目的で就役させるプロの文書およびコンポーネントのデザインの知識ベースも入っている。一実施例では、このデザイン・エンジンは、コンテンツ要素、デザイン記述、媒体仕様という3つの次元の深くネストされた組合せとして文書をモデル化している。このデザイン・エンジンは、これらの次元を別々に管理しており、そのことから、文書を作成するユーザには、対話処理が、さらに効率的で豊富となり、さらに柔軟となり、また、さらに自動化される。このデザイン・エンジンは、ユーザが、これらの次元のどれかを変更する時はいつも、その構成を自動的に調整する。この機能があれば、デザイン・エンジンは、印刷素材やスクリーン・プレゼンテーションから、ワールド・ワイド・ウェブなどの他の媒体まで様々である構成をサポートするために、同一インタフェースを使用できる。
このデザイン・エンジンは、デザイン記述と媒体仕様を入力コンテンツ要素とみなし、このコンテンツを、デザイン記述に従って媒体に表現する。このデザイン・エンジンは、固有に、様々な媒体のどれか1つに情報を提示する能力があるように、構成されている。好ましくは、このデザイン・エンジンは、参照によって全体がここに組み入れられている、発明者マークB.マクドナルド氏とマイケルB.オア氏により1995年10月20日に提出された「ソフトウェア・オブジェクトを実装するための方法およびシステム」と題する米国特許出願第08/546,316号に記述される通りにファセット・エンジンで提供される技術に基づいて構築される。ファセット・エンジンは、デザイン・エンジンの構築の基礎となるオブジェクト指向プラットフォームを提供する。読み手が本発明の個々の実施例を理解するのに役立つように、ここで、ファセット技術の簡潔な説明が与えられる。とはいえ、他の実施例では、デザイン・エンジンの機能は、ファセット・エンジンで提供されるものとは別の技術を用いて実現できることはいうまでもない。
図1A,図1B,図1B,図1C,図1Dは、「中国旅行」パンフレットといっしょに表示されるユーザ・インタフェース18の例を示している。図1Aは、2枚の写真/目的地と添付テキストを載せている1ページの「中国旅行」パンフレットといっしょに、利用できるコンテンツのリストが左側に付いているユーザ・インタフェース25を示している。図1Bは、1ページのパンフレットの下端に第3の写真/目的地と添付テキスト(ここでは、空白)が追加されている類似ユーザ・インタフェース26を示している。このレイアウトは、1ページに、3枚全部の写真とテキストを収めるように、調整されている。図1Cは、小さなロゴ(図1Aのパンフレットの上端からのもの)が、ここでは「中国旅行」パンフレットのそれぞれの写真のすぐそばに表示されている当該パンフレットの別のデザインを詳細に見せた類似ユーザ・インタフェース27を示している。この図では、それぞれの写真は、ウェブページ形式で提示される可能性があるように、ここでは、それ自体のページに表示されている。図1Dは、利用できるコンテンツが左側に、さらに当該パンフレット用のデザインと、それぞれのデザイン・コンポーネントに対応するコンテンツの階層のリストが右側に付いているユーザ・インタフェース28の変形例を示している。
ファセット技術
上に引用された出願「ソフトウェア・オブジェクトを実装するための方法およびシステム」に記述される通り、ファセットを使用すると、オブジェクト指向システムの多重継承にかかわる重大問題(例えば、不確実なクラスと導出矛盾)が排除される。このような問題から、オブジェクト指向プログラミングは、ソフトウェア生産性とコード再使用の約束された変革を果たせなくなる。しかしながら、ファセットを使用することにより、プログラマは、ネーティブのクラス・ライブラリの継承には左右されないが、それでもネーティブのクラス・オブジェクトのプロパティと挙動のすべてを利用できるようなオブジェクトを容易に生成することができる。言い替えれば、ファセットにより、オブジェクト指向システムの継承にかかわる重大な問題が排除される。
カプセル化と継承の方法の向上から、プログラマが、オブジェクトの基礎となっているクラス・ライブラリの完全理解を必要とせずにオブジェクトのプロパティと挙動を理解できることにより、ファセットの使用を通じて、プログラマの能率が向上して、複雑なモデルの実現が容易となった。さらに、ファセットを使用すると、プログラマが、継承階層の複雑なアービトレーション・ルールに頼らずにオブジェクトを定められる技法に従って継承を指定することで、継承の異常事態が避けられる。再使用可能なコードと、単一および多重の継承を含め、オブジェクト指向コーディングの十分な恩恵を受ければ、プログラマは、複雑なアプリケーションでも設計し、コンパイルし、理解することができる。
具体的に言えば、ファセットの使用により、あるオブジェクトの様々なプロパティを、様々な親オブジェクトから断定的に継承することができる。あるオブジェクトの中の一組のプロパティは、まとめて、そのオブジェクトの1特定面と見なすことができる。このような面は、当該オブジェクトのファセット型プロパティのサブグルーブ(あるいは、もっと簡単に、当該オブジェクトの「ファセット」)と呼ばれ、ファセットは、様々なオブジェクトから継承できる。ファセット内のプロパティの継承は、「Is−a」か、「Has−a」のいずれかの関係に基づいている。「Is−a」の関係に基づいて継承されるプロパティ値は、当該オブジェクトの場所とは無関係であり、各ファセットの親は、宣言により決定される。「Has−a」の関係に基づいて継承されるプロパティ値は、子オブジェクトが置かれている親オブジェクト(1つ、または複数)から得られる。
あるオブジェクトが、2つ以上のコンテナ親に入れられ、そのオブジェクトのファセットのそれぞれの中にあるプロパティが、その親コンテナの別の1つから継承される。各ファセットを継承する親は、指定できる。もう1つの方法としては、子オブジェクトが、複数の親に包含されている時に、各子オブジェクト・ファセットは、その子オブジェクト・ファセットと同一名の親オブジェクト・ファセットに当該子オブジェクトが包含されている親から継承される。あるファセットの中の個々のプロパティは、継承されるものとして、あるいは継承されないものとして宣言できる。継承されないプロパティの値は、親オブジェクトの中のブロパティ値とは無関係となる。従って、子オブジェクトが継承するプロパティは、子オブジェクト自体により、すなわち、コンテナ・オブジェクトの中の子オブジェクトの場所により、またプロパティが継承される親の子の中での宣言により、管理される。
ファセットと個々のプロパティのレベルで継承を指定することにより、プログラマは、所望のやり方で働くオブジェクトを定めることができる。従って、あるオブジェクトのプロパティと挙動は、複雑な多重継承階層に効果があるアービトレーション・ルールには左右されない。プログラマは、あるオブジェクトのプロパティと挙動を、そのオブジェクトの基礎となっている全クラス・ライブラリを理解する必要もなく、その宣言を調べることで理解することができる。従って、デザイン・エンジンの一実施例では、ファセット技術の使用が好ましいが、ただし、要求されてはいない。
文書コンポーネント枠組
次に図2を参照して、本発明の一実施例によるアプリケーション・プログラム12、文書32、構成38、その情報プレゼンテーション36の関係を、さらに詳しく説明する。文書32は、コンピュータ・システム内の持続記憶装置にユーザが保存している情報を表している。この文書には、コンテンツ要素、デザイン記述、媒体仕様を任意に組み合わせたものが含まれる。アプリケーション・プログラム12が実行しようとすると、文書32は、オーブン文書32’として当該アプリケーション・プログラムにロードされ、またユーザにはユーザ・インタフェース18を通じて、見ることができる。文書32’が、特定の媒体向けに組まれると、この文書は、特定のレイアウト39を有する構成38として表示される。ずなわち、構成38は、特定のレイアウト/書式(またはスタイル)の文書32’を表す。
ユーザが、アプリケーション・プログラム12に、構成を表現する(「編集」
コマンドなどを通じて)ように指示すると、構成38は、情報プレゼンテーション36の形式で特定の媒体に表現される。この情報プレゼンテーションは、最初は、コンピュータ画面上で見るのにふさわしい形式で表示される。例えば、この情報プレゼンテーションを、紙媒体向けに表現している場合には、ユーザ・インタフェースは、この紙媒体を印刷プレビュー形式で示すことができる。同様に、この情報プレゼンテーションを、ウェブサイト向けに表現している場合には、ユーザ・インタフェースは、ユーザが見られるように、コンピュータ画面上に、このウェブページを示すことができる。情報プレゼンテーション36は、紙、HLML、または他の任意の媒体に向けて、アプリケーション・プログラムが作成した実際のページを表している。
以下に、本発明を理解するのにふさわしい用語の定義を述べる。文書コンポーネント枠組は、最後に、情報プレゼンテーションの構成をサポートすることにより、値を生成する。情報プレゼンテーションは、一般に、人間または自動処理装置が利用できるようにするやり方で、情報を具体化することである。プレゼンテーションは、物理的(例えば、一連の印刷ページ)、一時的(例えば、画面上のイメージ)、分散形(例えば、ハイパーメディア・ウェブ)、抽象的(例えば、ソースコード・ファイル)であるか、あるいは何か他の形式を取る。さらに、プレゼンテーションは、静的(例えば、印刷ページ)であるか、または動的(例えば、チッカー)である。本発明の1実施例では、プレゼンテーションは、順番に並んだ一連の印刷ページ、ユーザ・インタフェースの中から見ることのできる順番に並んだ一連の画面イメージ、OLEオブジェクト埋め込み、または、ルートがただ1つの一連のリンクHLMLページである。
構成は、一般に、使用可能な形式でコンテンツ、デザイン、媒体を組み合わせる。一般に、コンテンツは、情報を伝えるテキスト、イメージ、記号、データ構造などのような形式を取る情報実体である。媒体は、一般に、紙、順番に並んだコンピュータ画面、リンクされたハイパーテキスト・ページなどのような形式を取るプレゼンテーション・スペースである。デザインは、一般に、許容されるコンテンツと媒体の組合せの定義や、特定のコンテンツのプレゼンテーションを特定の媒体に表現するための方法などの形式を取る情報プレゼンテーション仕様である。従って、構成は、指定情報の指定プレゼンテーションを指定形式で作成できるコンパチブルなコンテンツ、媒体、デザインのオブジェクトの組合せと見なすことができる。本発明の一実施例では、デザイン、媒体、コンテンツは、構成の主要なファセットである。構成は、一般に、オーブン文書の媒体固有のプレゼンテーションを表現する要請から生まれたものである。本発明は、十分明確なレイアウトと図面情報を計算するのに必要なものとして文書構造を詳しく述べることができる。
構成は、様々なやり方で見ることができる。ある面では、構成の持続して保管可能な形式が、文書と呼ばれている。文書は、多くの形式で保管できる。例示として、文書は、構成の基礎の働きをするように設計されたコンピュータ・ファイル(または、他の長持ちするオブジェクト)である。構成と文書の概念は、密接な関係にある。とはいえ、構成(プレゼンテーションの表現の基礎となる特定の形態)は、目標媒体と明確なレイアウトを完全に指定できるが、一方、文書は、様々な時に様々なユーザ選択をサポートするために、これらのプロパティを未定のままにしておきがちである。文書オブジェクトは、サポートされた多種多様な媒体へのプレゼンテーションをサポートすることができる。これは、一般に、身元が確認できる編集というユーザの考えに一致している。また一方では、構成の完全に解明された性質により、構成は、コンポーネント枠組の構造を理解する上で、さらに都合の良い基準点となっている。言い替えれば、文書は、一般に、複数の媒体をサポートできる持続オブジェクトであるが、一方、構成は、一般に、単一の媒体のプレゼンテーションを表している。
コンテンツ、媒体、デザインのファセット
前のセクションで提案されている通り、本発明の一実施例では、文書コンポーネント枠組のモデル化戦略は、構成を、独立したコンテンツ、媒体、デザインのファセットに分解する必要がある。この手法は、次のように多くの利点がある。
強力な機能、例えば、デザイン変更のある1段階実験法、様々な媒体に対してコンテンツの容易な再目的化、伝統的なテンプレートよりもはるかに適応できるデザイン表現を保存する能力、を把握し約束することが簡単である。これらのファセットはそれぞれ、それ自体の階層構造を持つこともあるが、これらの階層は必ずしも一致するとは限らない。
従って、情報は、多くの場合に、コンテンツ、媒体、デザインと見なされるために、コンテンツ・ファセット、媒体ファセット、デザイン・ファセットで構成を表すことの様々な利点がある。以下では、これらの利点がさらに考察され、あわせて、コンテンツ、媒体、デザインのファセットについて、さらに詳しく説明される。
構成のコンテンツ・ファセットは、少なくとも原理的には、純粋な情報として他のファクタから切り離してもよいテキスト、イメージ、記号などの形式で入っている情報実体と見なすことができる。本体デキストの一節では、言葉が、一般にコンテンツの働きをするが、書体は、一般にコンテンツの働きをしない。とくにテキスト(および、テキストに「添付された」他の要素)の場合には、コンテンツは、媒体(プレゼンテーション・スペース)またはデザインの構造に影響し合う(ただし、その構造では決定されない)固有の構造を持っている。例えば、雑誌の記事では、タイトル、見出し、本体の節、イラスト、および他の要素は、思いがけなくページやカラムの区切りなどの他の構造とぶつかることもある階層構造を成している。従って、このような純粋なコンテンツを、例えば、紙媒体のページ区切りの人為的な締つけから切り離すことは道理にかなっている。
さらに、いかなる文書でも、コンテンツ、および他のプレゼンテーション機能は、個々のテキストの文字やイメージの画素から、文書全体、あるいは1シリーズまたは1ファミリの文書に至るまで、大きさの階層を横断して、総合調整されなければならない。大きさのあらゆるレベルでは、特定の文書または文書タイプから何らかの独立がある認識可能な機能が存在する。一例は、特定の関係でタイトル、イメージ、キャプションが入っているイラストの配列である場合がある。このような構造は、同一の関係を保ってカタログ、レポート、ニューズレター、および他の文書にわたって再使用されることになるが、各要素の特定の書式設定は、文脈により変わる可能性もあろう。この例では、機能および関係の階層全体が、媒体ごとに保存されるが、そのプレゼンテーションは、様々な設定で、様々に解釈される。これは、文書要素の再使用にかかわる状況の特徴を示している。
従って、コンテンツと媒体とを分ければ、コンテンツは、関係を保ちながら様々な媒体に再使用することができる。
構成の媒体ファセットは、プレゼンテーション・スペース(または領域)を、構成の様々な機能(またはコンテンツ要素)に割り当てることにより、階層的に構造化されている。これにより、レイアウトおよび局所性の問題を、デザインおよびレンダリングの問題から分けることができ、上記の通り、プレゼンテーション・スペースの階層構造が、コンテンツの構造から区別可能であるという事実が認識される。このような解釈において、構成の従属部分は、従属部分自体の媒体オブジェクトと対応づけられ、またそれらの媒体オブジェクトは、おそらく集団の複数レベルにおいて組み合わされて、構成レベルの媒体ファセットを成す。もっとも簡単な事例では、これは、構成の様々な部分に割り当てられる領域に各ページ(プレゼンテーション・スペース)を区分するようなレイアウトとして、ファセット指向の技術用語に置き換えられる。
任意の選択プレゼンテーション・スペースでは、どんなコンテンツ群も、限定されてない様々なやり方で表現できるが、ただし、特定の構成は、特定のやり方で表現されている。コンテンツに対して可能なあらゆるものの中で、特定のレンダリングを定める構成に関するすべてのものが、その構成のデザイン・ファセットを構成するものと見なされる。従って、その枠組は、デザインを、レンダリング選択が「どたん場になって」表面的なやり方で行われたという意味で「スタイル」と解しているだけでなく、文書、および文書がサポートする構成の全論理構成の制御ファクタとも解している。
コンテンツや媒体のように、構成のデザインは、認識できる部分が、テキストやグラフィック・コンテンツ要素のプリミティブなプレゼンテーション・スタイルから、上に、中間構造の組織モードとプレゼンテーション・モードを経て、構成全体の総合構造と外観まで及ぶ階層構造を示すことができる。この階層の最下位以外のすべてのレベルでは、デザインは、さらにプリミティブな性質のコンポーネントを集めて、コンテンツおよび媒体との対応づけを行うことによって、表される。次に、コンポーネントの使用をさらに詳しく考察する。
コンポーネント・アーキテクチュア
本発明を実施するために、様々なオブジェクト指向プログラミング技法が使用できる。例示として、クラス・インスタンス・モデル、オブジェクト・プログラミング・モデル、オブジェクト・プロトタイプ・モデルなどの技法が用いられる。好適な実施例では、コンポーネント枠組に特化する考えは、クラス・インスタンスの関係ではなくて、オブジェクト・プロトタイプの関係に基づいている。さらに、オブジェクトが、その基礎となっているプロトタイプ・オブジェクトからプロパティ・バイディングを継承する導出ベースの継承に加えて、コンポーネント枠組は、Apple ComputerのHypercardやAsymetrixのToolBookなどのシステムに開発されている格納ベースの継承に頼っている。格納ベースの継承では、オブジェクトは、コンテナまたはオーナ・オブジェクトからプロパティ・バイディングを継承する。
この枠組をサポートする基本抽象化が、そのコンポーネントである。問題ドメインの点から見て、コンポーネントは、文書または構成の中で、別々に生成および破壊し、挿入および除去し、および/または状態を変更することのできるコヒーレントな主体である。すなわち、全体の文書または構成は、そのようなコンポーネントと見なされる。またソフトウェア・アーキテクチュアの点から見て、コンポーネントは、構成のコンテンツ、媒体、デザインの階層の中のノードのような主体を表すソフトウェア・オブジェクトであある。
もっとも典型的なコンポーネントは、段落、リスト、イラスト、または記事などの直接の文書部分である。しかしながら、あらゆる枠組オブジェクトに共通のプロトタイプとして役立つように、コンポーネントの概念を一般化して、カプセル化コンテンツ・オブジェクト(トリビアルな媒体とデザインのファセット)、カプセル化媒体(トリビアルなコンテンツとデザイン)、パレット上の文書およびコンポーネントの「空白」(プレース・ホルダ・コンテンツ)、全体の文書および構成(デザイン階層にはコンテナはない)を定めている。このようにして、このコンポーネント・プロトタイプは、全体の文書および構成、中間レベルのオブジェクト、プリミティブなコンテンツ要素、媒体を、単一の相互連結構造に導く共通の表現を提供する。
コンポーネントは、同時に、いくつかの独立した階層(それゆえ、いくつかの異なるコンテナ・オブジェクト)にある場合がある。例えば、カタログ項目の記述テキスト本体は、同時に、テキストのファイル(コンテンツ)内にも、1ページ以上のページ(媒体)の1つ以上の領域内にも、またカタログ項目(デザイン)内にもある。プロトタイプ・オブジェクトからの導出とともに、ファセット固有の3つの格納文脈は、コンポーネントのプロパティ・バインディング、従って、ソフトウェア・オブジェクトとしてのコンポーネントの状態を決定するのに役立つ合計4つのオブジェクト関係を定めている。
コンポーネントのこのような見方は、構成のコンテンツ、媒体、デザインのファセットの属性が、コンポーネント・オブジェクトの状態の間で分散されることを意味する。この枠組のアーキテクチュアは、逆のプロパティも保存している。
すなわち、コンポーネントの属性は、構成全体のさらに大きく包容したファセットの中にあるコンポーネント・レベルのコンテンツ、媒体、デザインのファセットに区分される。コンポーネントの様々なファセットのさらに詳細なイラストは、図5A,図5B,図6,図7を参照して、以下で考察される。こうして、コンポーネントの様々なファセットは、様々な構造(例えば、コンテンツツリー、媒体ツリー、デザインツリー)を示すだけでなく、独立した組のプロパティ(状態変数)を用いて表すこともできる。
デザイン・コンポーネントの多数の可能なタイプの一例が、図4Aと図4Bに示されている。130の図4Aと図4Bは、ユーザがデザインの中に使用されるか、あるいは当該システムのデザイン・カタログの標準デザインの中に使用されるデザイン・コンポーネントの共通タイプのうちの多くを含むコンポーネント・クラス導出ツリーを示している。例えば、基部コンポーネント「表の」の下には、葉コンポーネント「表」がある。ユーザが、表を、文書中の特定の個所に載せたいと思う場合には、ユーザは、このコンポーネント「表」をデザインの中に含めることができる。一般に、ユーザは、葉コンポーネントを使用して、特定のデザインをまとめる。もう1つの方法としては、システム・カタログからの標準デザインは、これらの葉コンポーネントを使用して、特定のデザインを構築する。
ユーザは、カスタム・デザインを作成しようとする時、新規デザインを作成するために、ユーザ・インタフェースを通じて、これらのコンポーネントから選択することができる。さらに、ユーザは、システム・デザイン・カタログから事前に取り決められたコンポーネントを含む標準デザインを選択することができる。
各コンポーネントには、特定の媒体にコンポーネントを表現する方法についての知識が入っている。例えば、HTMLに表現するには、特定の形態に表現する時に、HTML要素にマクロを使用できる。さらに詳しい考察は、図12A〜図12Cを参照して、以下に記載する。
ここで一般的なコンポーネントの考察に話を戻して、プロトタイプ・コンポーネントの他のタイプを次に説明する。コンテンツ、媒体、デザインの区分した表現をサポートしている他の3種類のプロトタイプが、コンポーネント・プロトタイプから得られる。これらの他のプロトタイプは、コンテンツ・オブジェクト、媒体・オブジェクト、デザイン・オブジェクトであって、コンポーネントのあらゆるタイプである。
コンテンツ・オブジェクトは、コンテンツ・カプセル化を、束縛されてない媒体ファセットおよび指定されてないデザイン・ファセットと結び付ける。コンテンツは、外部オブジェクトへのリンクとして、あるいは埋め込みとして、カプセル化できる。組込みコンテンツ・カプセル化は、自立オブジェクト(例えば、テキストのファイル)と、ネストされたサブオブジェクト(例えば、テキストのファイルの節と段落)を両方とも表している。コンテンツ・オブジェクトは、コンポーネントであるために、ファセットに関して非対称なものであっても、コンテンツ・ファセット・コンテナ(親)としてアプリケーション・レベルのコンポーネントに指定されれば、格納継承に加わることもできる。
媒体オブジェクトは、媒体オブジェクト・カプセル化を束縛されていないコンテンツ・ファセットおよび指定されていないデザイン・ファセットと結び付ける。組み込み媒体カプセル化は、自立オブジェクト(例えば、印刷された文書)と、ネストされたサブオブジェクト(例えば、印刷された文書のコンポーネントと関連する個々のページ領域)を両方とも表わしている。媒体オブジェクトは、コンポーネントであるために、ファセットに関して非対称なものであっても、媒体ファセット・コンテナ(親)としてアプリケーション・レベルのコンポーネントに指定されれば、格納継承に加わることもできる。
デザイン・オブジェクトは、サポートされた媒体に、コンパチブルなコンテンツを提示するための特定のスタイルを実装する。デザインは、実体化を、主としてコンテナ文脈を必要としない自立文書と見なす場合には、文書シェルであるか、もしくは単にシェルであると考えられる。ほとんどの文書シェルは、入っている文書の中にも構築できるから、前述の事項は、ほとんど区別がない。デザインは、実体化を、主としてさらに大きい文書のサブコンポーネントと見なす場合には、コンポーネット書式であるか、もしくは単に書式であると考えられる。いくつかのコンポーネット書式は、自立文書としても構築できるから、しばしば、前述の事項は、ほとんど区別がない。
コンテンツ、媒体、デザインのファセット三つ組の一実施例では、デザインは、少なくともデザインを中心とする枠組アプリケーションの見地から、独立しているが、わずかに異なる状態を持っている。これは、デザイン・ファセット格納を、構成の論理コンポーネット構造と解釈できるものや、アプリケーション・コンポーネント・インスタンスをデザイン・プロトタイプから導き出す好適な技法に反映されている。従って、この実施例では、3つ全部のファセットについてトリビアルでないバインディングを有するコンポーネントは、一般にデザイン・ファセット(諭理構造)を通じて別のコンポーネントに包含されているだけでなくて、ある組込みデザイン・タイプを特化したものでもある。コンテンツと媒体のファセットでは、格納関係だけが利用できる。このために、文書コンポーネントから、「特定の」コンテンツおよび媒体のオブジェクトに達するのに必要な臨時の遠回りがある。臨時レベルの格納は、コンテンツと媒体を表現するための導出路を提供するために、使用されている。これは、コンポーネント・インスタンスが、それ「自体」のコンテンツと媒体のファセットに包含されると表明するものと見なすことができる。
このような格納を例示した例42は、図6Aに示されている。これは、いくつかのリスト項目を付けたリストしか載せてないメモの一例である。コンポーネント「特定のリスト項目」は、このリストからの1項目を示しており、コンテンツ、媒体、デザインの階層のそれぞれに包含されている。さらに、この「特定のリスト項目」コンポーネントは、総称コンポーネント・プロトタイプを特化したものである。「特定のリスト項目」のコンテンツ・ファセットは、この項目のテキスト「aaa」が本体テキストの中に包含され、さらに、この本体テキストがテキストのファイルに包含されていることを示している。「特定のリスト項目」の媒体ファセットは、特定の項目が特定の領域(サイズを有する)の中に包含され、さらに、この特定の領域がページ内に包含され、またこのページが印刷ページ・セット内に包含されていることを示している。「特定のリスト項目」のデザイン・ファセットは、どのように、特定の項目がリストの中に包含され、さらに、このリストがメモ内に包含されているのか示している。
コンテンツツリー、デザインツリー、媒体ツリーの例
上で考察された通り、情報は、コンテンツ、デザイン、媒体の面で見られるために、この情報を、図5Aと図5Bに示される通り、構成内のコンテンツツリー、デザインツリー、媒体ツリーで表すことが役に立つ。図5Aと図5Bは、構成と、コンテンツツリー、デザインツリー、媒体ツリーと、コンポーネントの関係を線図で示している。以下の図6は、コンテンツ、デザイン、媒体のファセットを有するコンポーネントを用いてテキストを表現する特定の例を与えている。
図5Aは、図2の構成38をさらに詳しく示している。構成38は、コンピュータシステムに、保存文書32として記憶させるか、あるいは、情報プレゼンテーション36の形式で、特定の媒体に表現する。構成38の中に包含される情報は、様々なやり方で分けられる。好ましくは、この構成は、コンテンツツリー52、デザインツリー54、媒体ツリー56の形式で表現される。これらのツリーは、好ましくは、以下でさらに詳しく説明される通りに、ある方法57でリンクされる。これらのコンテンツツリー、デザインツリー、媒体ツリーは、上で考察された通り、適切なオブジェクト指向技術に基づくが、ただし、上述の通りにファセット技術を使用することが好ましい。
図5Aのこの構成38は、図5Bでさらに詳しく示されている。図5Bは、構成38の中で、コンテンツ、デザイン、媒体のファセットツリーが、一般的にどのように表現されるか示している。一実施例では、構成の根オブジェクト60は、コンテンツ・ファセットツリー62、デザイン・ファセットツリー64、媒体ファセットツリー66のそれぞれに対して、根の働きをする。これらのツリーはそれぞれ、中間の1組のコンポーネント68の中に、独立しているが、重なり合う可能性のある階層の子コンポーネント(例えば、コンポーネント70)がある。すなわち、これらの3つのツリーは、前記1組のコンポーネント68を通る様々な経路をたどることができる。言い替えれば、個別のコンポーネント70は3つのツリーのうちのただ1つに固有のものであるか、これらのツリーの2つで分け合うか、あるいはこれらのツリーすべてに共通である。葉72のような葉ノードは、一般に、3つのツリーのそれぞれに共通であって、特定の媒体でのコンテンツのレイアウトのために実際のコンテンツ要素や座標などの情報が入っている。好適な実施例では、構成の根オブジェクトや葉は、3つ全部のツリーに共通である。他の実施例では、3つのツリーのそれぞれに、大部分または全部のコンポーネントが現れる場合がある。
文書全体も含め、イメージ画素、文字、図形記号、言葉などの構成の各要素は、1コンポーネントと対応づけられる。一般に、粒状度の大きいコンポーネントは、ユーザが構成上にテキストの1段落をドロップするというようなユーザ処置によって、生成される。この段落は、最初は、段落コンポーネントによって表現されることになる。この段落コンポーネントは、コンテンツをレイアウトに合わせるために、必要に応じて断片化される。例えば、この段落の各行は、サブコンポーネントとして表現できる。この断片化処理もまったく動的である。例えば、段落を合わせるには、多くの可能な断片化を試みたり、放棄することが必要であり、また、毎回の重要なユーザ処置の後で、このような合わせが再び行われる。さらに、編集は、属性変更を行ったり、または強制的に修正することにより、新規のサブコンポーネントを生成することもできる。例えば、テキストのうちの1行の中央部分がイタリック体で記されるように選択される場合には、テキストの該当行が、3つのサブコンポーネントに断片化されることになる。この行の新たにイタリック体にした部分が1つのサブコンポーネントになるが、一方、該当部分の前後の部分は、他の2つのコンポーネントになる。
本発明の一実施例では、各コンポーネントは、コンテンツ・ファセット、デザイン・ファセット、媒体ファセットを有する。ただし、特定のコンポーネント用のファセットは、媒体ファセットツリーのコンポーネントが、デザイン・ファセットツリーの2つのノードの間にあって、実際にはデザイン・ファセットツリーにはない場合と同様、使用できない。この例では、この媒体コンポーネントのデザイン・ファセットは、デザイン・ファセットツリーにリンクがないために、使用できない。
図6は、本発明のコンテンツ、デザイン、媒体のファセットツリーの一実施例を用いて、1つの構造化テキスト80が、どのように表現されるのか示している。80に示される構造化テキストは、タイトル「キルロイは誰であったか?」、第1の見出し「あるとき、ここに」、および、第2の見出し「行動中に消えた
を付けている。第1の見出しはテキストAの本体も載せており、また第2の見出しはテキストBの本体を載せている。
この構造化テキスト80は、以下の通り、コンポーネントのコンテンツ・ファセットとデザイン・ファセットを用いて表現できる。この例では、この構造化テキスト用の根オブジェクトは、構造化テキスト・コンポーネント84である。このコンポーネント84は、コンテナ文書へのリンク(図には示されていない)も可能である。この構造化テキスト80用のデザインツリーの表現は、構造化テキスト・コンポーネント84からデザイン・ファセット・リンクをたどって、デザイン・ファセット・リンクの階層を下ってゆくことで、決定される。例えば、構造化テキスト・コンポーネント84には、タイトル・コンポーネント86が入っている(デザイン・ファセット・リンクとして)。しかしながら、タイトル・コンポーネント86には、見出し1コンポーネント90と見出し2コンポーネント92が両方とも、それぞれのデザイン・ファセット・リンクとして入っている。
次に、見出し1コンポーネント90には、本体テキストAコンポーネント94が入っており、また見出し2コンポーネント92には、本体テキストBコンポーネント96が入っている。このようにして、特定の構成の中の様々なコンポーネントのデザイン・ファセットを通じて形成されたリンクにより、この構成用のデザインツリーがどのように表現されるのか、わかる。
同様に、構造化テキスト80のコンテンツツリーの表現は、それぞれのコンポーネントからコンテンツ・ファセット・リンクをたどることにより、決定される。タイトル・コンポーネント86は、構造化テキスト80のタイトル(すなわち、「キルロイは誰であったか?」)へのコンテンツ・ファセット・リンクがある。コンポーネント見出し190は、第1の見出し「かって、ここで」へのコンテンツ・ファセット・リンクがある。同様に、他の見出しのそれぞれと、本体テキストは、当該コンポーネントで表される特定のコンテンツを指すコンテンツ・ファセット・リンクを有する。あるコンポーネントから別のコンポーネントへのリンク、またはコンポーネントからコンテンツへのリンクは、適切などんなやり方でも形成できる。所定のツリー構造に、どの継承リンクが使用されるかは、プロパティごとに、各コンポーネントに対して、オブジェクト定義の一部により決定される。コンポーネントのこれらのプロパティは、分けられて、様々な経路を通って継承される。上述の通り、ファセットの概念は、コンポーネントのプロパティを区分して、そのコンポーネントの様々なファセットが、3つの異なる格納階層、すなわちコンテンツ・ファセットツリー、デザイン・ファセットツリー、媒体ファセットツリーに加わるようにする考えをもたらす。文書の実物との一致が高まるという理由で、ファセットの概念を使用することが好ましい。
さらに、これらのコンポーネントは、図6には示されていないが、それらの媒体ファセットを通じてリンクされる。タイトル86などのコンポーネントの媒体ファセットには、タイトルの位置決めと、タイトルの大きさを含め、プロパティが入っている。構成の中には、媒体ファセットを通じて媒体ファセットツリーだけに加わり、またコンテンツ・ファセットツリーの一部でも、デザイン・ファセットツリーの一部でもない他のコンポーネントがある可能性がある。同様に、コンテンツツリー、デザインツリー、媒体ツリーのそれぞれに、それぞれのコンテンツ・ファセット、デザイン・ファセット、媒体ファセットを通じて加わるコンポーネントがある可能性がある。構成用の媒体ファセットツリーを示すさらなる例を、以下で説明する。
図7は、コンテンツ・ファセット、デザイン・ファセット、媒体ファセットを詳しく示すフッターコンポーネント120の一例である。フッターコンポーネント120は、ここに定められたプロパティ、あるいは、ある階層のコンポーネントを通じて継承したプロパティをいくつでも持つことができる。例示として、このフッターコンポーネントには、コンテンツ・ファセット、デザイン・ファセット、媒体ファセットと対応づけられた選択プロパティが示されている。多数の他のタイプのプロパティが、これらのファセットのそれぞれと対応づけられていること、また他のプロパティが、これらのファセットのどれにも対応づけられないフッターコンポーネント上に定められることを認識すること。
図7のこの例では、フッター用のテキストが入っているテキスト・ストリングのポインタを、ある値として持つテキストと名づけられたプロパティが、当該コンテンツ・ファセットに入っている。このフッターコンポーネント用のデザイン・ファセットには、テキスト・フェース、テキスト属性、ジャスティフィケーション、相対サイズのプロパティが含まれている。これらのプロパティに対応する値の例は、図7に示されている。このコンポーネント用の媒体ファセットには、X位置、Y位置、幅、高さのプロパティが含まれており、それらのプロパティは、このフッターが表示されているページ上の地理的領域を定めるのに役立つ。これらの地理的プロパティは、一般に、媒体ファセット・コンテナによって決まる。例えば、座標は、特定の包含領域によって決まる。すなわち、ある領域が、どの特定ページに表示されるかは、あるページ・コンポーネントに出会うまで、メディア・ファセット・リンクを探索すれば、決定できる。
当該コンポーネントの範囲を定めるのに役立つように、また当該コンポーネントを特定の媒体用のコンテンツ・レンダリング・スペースの中に位置づけるように、媒体ファセット内に、他の多種多様なプロパティが存在し得ることを認識すること。例示として、媒体表面の色、きめ、透明度などのプロパティは、媒体ファセットと対応づけられる。コンポーネントの範囲の考察は、図34のステップ758を参照して、以下に詳述する。
パンフレットの構成の例
以下の図8〜図12Cは、本発明の様々な実施例において作成され再配置されるパンフレットの一例を提供している。このパンフレットの構成を表現する可能なコンテンツツリー、デザインツリー、媒体ツリーの例は、以下の図13〜図18に示される。図19〜図28Eは、本発明の用途のさらなる例と、本発明の特徴を与えているが、一方、図29〜図38は、本発明の実施例を実施するための手順を説明している。
システム・デザイン・カタログから標準デザインをロードすることにより作成された空白構成の一例が、図8に示されている。空白(または空の)構成は、デデインはあるが、コンテンツが追加されていないものである。この空白構成140には、銘板142とタイトル144が含まれる。イメージ146と150には、それぞれ、対応するテキスト領域148と152も添えられている。フッター154は、空白構成140の下端にある。空白構成のこれらの要素は、今までのところ、どのコンテンツも対応づけられてない該当コンポーネントにより、構成用のデザインツリーに表現される。ここで、構成の作成中に、ユーザは、さらに精巧な構成を作成するために、画面の様々な部分にコンテンツをドラッグ・アンド・ドロップしたいと思う場合がある。もう1つの方法としては、ユーザは、カスタム・デザインを生成するために、示されたデザインを再配置することができる。
ユーザが埋めて完成させたデザインの一例は、図9に示されている。この文書デザインは、長さが1ページに固定された紙ページ媒体を指定している。ユーザは、様々なソースから、テキストとイメージをドラッグ・アンド・ドロップして、コンテンツをこのデザインに追加したかもしれない。もう1つの方法としては、ユーザは、ユーザ・インタフェースを通じて、構成の中で、直接にコンテンツの編集を行うこともできる。図9は、釣り具の通信販売業に利用される場合のあるパンフレット構成160を示している。パンフレット構成160は、タイトル「Bass Products,Inc」162、魚のロゴ164、2つの製品、フッターを載せている。第1の製品は、釣ざおの絵166、キャプション「釣ざお」168、製品テキスト170を載せている。第2の製品は、網の絵172、キャプション「網」174、製品テキスト176を載せている。フッター「本日、電話での注文承ります」178は、この構成の下端にある。この例では、このパンフレット構成は、紙媒体の1ページ向けに表現されている。
図10は、ユーザが、新製品の形式を取る新規コンテンツをパンフレット構成160’に追加した後の結果を示している。この例では、ユーザは、図9のパンフレット構成の下端に向けて新製品をドラッグ・アンド・ドロップし、また、本発明の1方法は、自動的に書式変更して、紙媒体の単一ページ上に、現行製品といっしょに新製品を載せている。図10に示される通り、製品テキスト184といっしょに、釣針180の新たな絵180、キャプション「釣針」182が、この構成に追加されている。
図11は、追加の例を示しており、この例では、ユーザは、新たなコンテンツは追加していないが、その代わり、パンフレット構成のデザインを変更している。この例では、ユーザは、パンフレット構成160”を作成するために、縦書きデザインを選択している。ここでは、本発明の1方法が、紙媒体の単一ページ上で、各製品に関する絵、キャプション、製品テキストの向きを自動的に縦に揃えている。例えば、キャプション「釣ざお」168は、ここでは、絵166の下に記されており、さらに、このキャプションの下には、ここでは、製品テキスト170が記されている。同様に、第2の製品も縦方向に揃えられている。本発明の1方法は、紙ページ媒体に選択された縦書きデザインに基づいて、このパンフレットのレイアウトを自動的に計算し直している。
図12A、図12B、図12Cは、HLML媒体に表現された図9のパンフレット構成を190に示している。この例では、図9の単一ページの紙媒体のレイアウトが、例えばWWW上でのプレゼンテーションにふさわしい3ページHLMLレイアウトに自動的に変換されている。ユーザがユーザ・インタフェースからのコマンドを実行して、新規媒体への構成を編集する時に、別の媒体へのこのようなレンダリングが行われる場合がある。
図12Aは、タイトルページ192を示し、図12Bは、第1の製品に対して第1のページ194を示し、図12Cは、第2の製品に対して第2のページ196を示している。図12Aのタイトルページ192は、図9からのタイトル「Bass製品」162と魚のロゴ164を含むが、ただし、これらのコンテンツ要素は、自動的に縮小拡大されて、タイトルページ上の別の位置に置かれている。ここでは、タイトルページには、ユーザを別のウェブページにリンクする「新製品」リンク198も含まれる。さらに、「釣ざお製品」200および「網製品」202への順方向リンクを含むパンフレット目録198も自動的に作成される。さらに、このタイトルページ192には、「当社との談話」ウェブ・ページ204へのリンクも含まれる。第1のページ194は、もとの図9からのイメージ、キャプション、製品テキストを含む。さらに、この第1のページには、図9からのタイトルと魚のロゴ、および、タイトルページ192への逆方向リンクのある新規リンク「ホームページ」206も添えられている。第2の製品に対する第2のページ196も同様に、図9からのオリジナル・イメージ、キャプション、製品テキストを含み、さらに、タイトル、魚のロゴ、新規「ホームページ」リンク208も含む。
本発明の様々な方法により、図9のパンフレット構成のコンテンツとデザインは、HTML媒体に対しては自動的に表現されている。図9の構成の各コンポーネントは、様々な媒体において、当該コンポーネントがどのように現れるのか決定する対応プロパティを持っている。例えば、一般のプロパティは、コンポーネントがどのように現れるべきか示す目的で用いられる。これらのプロパティには、複雑と単純、古典と現代とポストモダン、精力的/動的と静穏、暖かいと冷たい、暗いと明るい、上品/裕福と質素、速いと遅いなどがある。他のプロパティ(例えば、上で考察されたもの)も使用できることを認識すること。
さらに、本発明に組み込んだ様々なデザイン選択により、構成を表現できる各媒体には、構成がどのように現れるのかに関する知識が入っている。オブジェクトのプロトタイプにも、知識が入っている。例えば、具体的に媒体オブジェクトのプロトタイプにプログラムされるものは、プリミティブなコンテンツ・タイプのデフォルトである。コンテンツ・オブジェクト用のプロトタイプには、特定媒体用のプリミティブなレンダリング・ルーチンに影響を及ぼしかねない抽象属性(例えば、「強調された」、「滑稽な」など)がある。すなわち、これらのコンテンツ・タイプは、コンポーネントによりオンまたはオフにすることができ、かつ媒体で読み取られる属性をセットアップする。さらに、コンポーネント・プロトタイプは、レンダリング・デフォルトを設定する(継承により)属性をセットする。さらに特殊なプロトタイプ、および、コンポーネントの特定のインスタンスは、継承された属性を、適宜、選択的に無効にする。特定のインスタンス・レベルでの無効化も、ユーザにより対話形式で指定することができる。例えば、プロパティ・シートを通じて。無効化は、プリミティブな媒体依存パラメータにも向けることができる。一般のプロトタイプの一例は「テキスト」である場合もあるが、一方、特殊なプロトタイプの一例は、「タイトル」となる。特定のインスタンスの一例は、特定の文書の特定のタイトルとなる。当業界で知られている通り、「プロトタイプ」は、相対的にオブジェクト導出ツリーの根の近くにある組込みオブジェクトをさす。プロトタイプは、ユーザ無効化の可能性をなおも認めながらも、ユーザ専用オブジェクトに、あらかじめ構築された挙動を伝える目的で使用される。
例えば、様々な新規要素が、タイトルページ192上の「新製品」リンクおよびページ194と196の「ホームページ」リンク206と208などの新規HTML媒体ページに自動的に追加されている。
もつ1つの方法として、図9のパンフレット構成は、他の適切などんな媒体にも表現できる。例示として、パンフレット図9は、後のプレゼンテーションに向けてスライドを作る目的で、コンピュータの画面で見るのにふさわしい画面媒体に表現できる。画面媒体形式は、図12A、図12B、図12CのHTMLページと同様である場合がある。さらに、ユーザは、所定の時節に構成の2つ以上の面を変更したいと思うことが考えられる。例えば、ユーザは、構成にコンテンツを追加したいと思うかもしれないし、またそれを別の媒体に表現したいと思うかもしれない。
ここで、図13〜図18に移って、図9〜図12Cに示されるパンフレット構成の一実施例が、コンテンツツリー、デザインツリー、媒体ツリーの実施例に表されているものとして示される。図13〜図18のツリー構造は、パンフレット構成のコンテンツ、デザイン、媒体をリンクする一方法の図解例であることを認識すること。これらのツリーは、構成のコンテンツ、デザイン、媒体のファセットを見る象徴的なやり方であり、従って、これらのツリーは、なおも構成を表現しながらも、他の形式で現れる場合がある。これらのツリーを、独立した主体として示せば、ファセット技術を使って、構成のコンテンツ、デザイン、媒体を、どのようにして区分できるのか理解するのに役立つ。
言い替えれば、図13〜図18に示されるツリーの実施例は、パンフレット構成の内部表現である。上で説明される通り、コンテンツツリー、デザインツリー、媒体ツリーは、必ずしも完全に区別可能なツリーであるとは限らないが、中間ノードを共有することができる。さらに、コンテンツツリー、デザインツリー、媒体ツリーは、一般に、共通の根を共用することができ、また以下の図18の例で示されるように、葉を共有することができる。オブジェクト指向プログラミングの当業者により理解されるどんな適切なやり方でも、これらのコンポーネントを階層ツリーに作ることができる。好ましくは、コンテンツツリー、デザインツリー、媒体ツリーは、ファセット技術を利用するオブジェクト・プロトタイプ・モデルに基づいて、格納関係を表現する。
図13は、図9のパンフレット構成のコンテンツツリーの1つの可能な表現220を示している。このコンテンツツリーは、根、文書コンテンツ、パンフレットのタイトルを表す第1のノード「Bass製品」を持っている。このタイトルの下には、魚のロゴ、第1の製品(釣ざお)、第2の製品(網)を表すノードがある。釣ざおのイメージの下には、キャプション「釣ざお」と、その製品に関する製品テキストを表すノードがある。網のイメージの下には、キャプション「網」と、その製品に関する製品テキストを表すノードがある。このコンテンツ情報は、なおも同一情報を表すが、別の階層的なやり方で編成できることが考えられる。例示として、各製品のキャプションは、そのキャプションを葉モードとせずに、製品のイメージと、その下の製品テキストを、葉ノードとする中間ノードである場合がある。もう1つの方法としては、「Bass製品」の下の中間ノードには、「製品1」の標識が付けられ、そのノードは、3つの子葉ノード、すなわち釣ざおのイメージ、キャプション、製品テキストを持つことになる。本発明の一実施例では、コンテンツが入っている各ノードは、デザインツリーの特定のコンポーネントと対応づけられている。例えば、デザインツリーの中の「絵」の標識が付けられたコンポーネントは、釣ざおのイメージへのリンクを持つことになる。デザイン・コンポーネントからコンテンツ要素への上記リンクも、図6に示されている。
このようにして、コンテンツツリーは、文書と解釈することに加えて、パンフレット構成の情報を表している。とはいえ、コンテンツツリーは、そのツリーを表現する媒体によって変わる場合がある。例えば、構成をHTML形式に表現する時には、「新製品」リンクまたは「当社との談話」リンクなどの要素を、図12Aに示される通りにタイトル・ページに追加し、従って、新規コンテンツ要素をコンテンツツリーに追加することができる。
図14は、紙媒体に対して表現された図9のパンフレット構成用のデザインツリー230の一実施例を示している。このデザインツリーの中のノードは、図4Aと図4Bに記されるようなコンポーネントを表している。デザインツリーの葉ノードは、パンフレット構成のコンテンツを表し、図13のコンテンツツリーの葉ノードと共用されている。このようにして、どんな具合に、コンテンツツリーとデザインツリーが、様々な中間ノードを持つのに、同一葉ノード、すなわちコンテンツ情報を共用できるのか理解できる。さらに、葉ノードには、デザイン情報と媒体情報が入っている。例えば、テキストの1行を印刷するのには、デキスト(コンテンツ)だけでなく、フォントとスタイルの情報(小規模デザイン)と特定ページ上の1領域(媒体)も必要である。従って、葉は、そのコンテンツを特定の情報プレゼンテーションに表現するために、API、ドライバ呼出し、HTML出力ルーチンなどによる直接のレンダリングにふさわしい情報を入れることができる。
デザインツリー230は、銘板、製品リスト、フッターという3つのコンポーネント子を有する根である文書デザインを持っている。コンポーネントの銘板は、対応するコンテンツにそれぞれリンクされているサブコンポーネントのタイトルとロゴを持っている。フッターのコンポーネントは、その対応するコンテンツ、すなわちストリング「本日、電話での注文承ります」へのリンクを持っている。コンポーネントの製品リストは、サブコンポーネントの製品0と製品1を有する。コンポーネントの製品0は、製品イラストと製品テキストという2つのサブコンポーネントを有する。コンポーネントの製品テキストは、その対応するテキストにリンクされる。コンポーネントの製品イラストは、絵とキャプションという2つのサブコンポーネントを有し、それらのサブコンポーネントはそれぞれ、該当するコンテンツと対応づけられている。製品1用の階層構造は、図14でわかるように、製品0用の階層構造と同様である。
このデザインツリーから、コンテンツを表現できる媒体とは無関係にデザインのコンポーネントが表されることを認識すること。すなわち、コンポーネントは、構成の要素が紙ページ上のどこに現れるのか厳密に指定する必要もなく、その要素を表す。しかしながら、デザインツリーは、コンテンツを表現する媒体により変わる可能性があるが、ただし、デザインツリーはなおも、その媒体内のコンテンツの正確な場所と無関係である。例えば、パンフレット構成が、HTML媒体に表現されるとしても、2つの新規コンポーネントが、コンポーネントの製品0と製品1のそれぞれの下に現れることがある。例えば、コンポーネントの製品0は、付加的なサブコンポーネントの製品順方向リンクと製品逆方向リンクを持つことになる。製品順方向リンクは、タイトルページから製品0のページへの順方向リンクを提供する「釣ざお製品」の標識を付けたコンテンツが入ることになる(図12Aの200で見られる通り)。同様に、コンポーネントの製品逆方向リンクは、テキスト「ホームページ」と対応づけられて、製品0が現れるページから、逆方向に、HTML媒体のタイトルページへのリンクを形成することになる(図12Bの206で見られる通り)。
さらに、HTML媒体では、新規ページのそれそれに対して、3つの付加的なタイトルのコンポーネントを生成することができる。本発明の一実施例では、新規媒体の各ページに対して、新規「Bass製品」コンポーネントが生成される。特定の媒体用の「Bass製品」コンポーネントのイラストが、以下の図17に示されている。コンテンツが、特定の媒体に収まらない場合には、デザインツリーも変わる場合がある。例えば、大きいテキスト段落が、このページの下端に収まらない場合には、この段落を2つに分割する。1つのコンポーネントに、この大きいパラグラフを表させるのではなく、新規デザイン・コンポーネントを生成して、第2のページ上に、その段落の後半を表させる。このような新規コンポーネントも、デザインツリーに追加されることになる。他のタイプの媒体およびコンテンツの再配置のために、デザインツリーへの他のコンポーネントの追加も可能である。
図15は、パンフレットを紙媒体に表現している図9のパンフレット構成用の媒体ツリー240の一実施例を表している。媒体ツリーの目的は、レイアウト、すなわち、パンフレット構成の各コンテンツ項目に対する場所を提供することにある。この媒体ツリーは、子コンポーネントのページ0を1つ持っている根である紙ページ・セットを有する。この例では、パンフレット構成は単一の紙ページに表現されており、それゆえ、子コンポーネントのページ0が1つだけある。ページ0のコンポーネントのすぐ下には、このパンフレット構成用のコンテンツ、すなわちタイトル「Bass製品」、魚のロゴ、釣ざおの絵などがある。この媒体ツリーは、これらの葉コンポーネントを、図13のコンテンツツリーと共用している。さらに、図15には、単一の紙ページ上で、そのコンテンツのレイアウト位置を示す各コンテンツ項目の媒体ファセット座標も示されている。
このような単純な例では、レイアウト座標が、そのコンテンツ項目の範囲を形成している。一般に、あるコンテンツ項目の範囲は、そのコンテンツが占有する特定の媒体の中にコンテンツ・レンダリング・スペースがどの程度であるか示している。例示として、コンテンツ項目の範囲は、その項目の直交座標であり、三次元の位置、時間の長さ、サウンドのセグメント、ビデオのセグメント、または特定の媒体の他の部分を示すことができる。この例では、各コンテンツ項目の範囲は、X座標とY座標、およびその項目の幅と高さである。例えば、タイトル「Bass製品」は、10のX座標、10のY座標、50の幅(dx)、5の高さ(dy)を有する。他のコンテンツ項目の座標は、図15の各コンテンツ項目の下に示される通り、同様なやり方で提供される。
本発明の一実施例では、これらの座標は、コンテンツ項目を表すコンポーネント用の媒体ファセットのプロパティとして表されている。座標ではない仕様に加えて、直交座標系とは別に他の座標系(例えば、極座標など)が使用できることを認識すること。従って、媒体ファセットツリーは、パンフレット構成用のデザインとは異なるが、どのようにしてパンフレット構成のコンテンツ用のレイアウトを表すのか理解できる。
図16は、HTML媒体に対して構成が表現された後で現れる、図9のパンフレット構成用の媒体ツリー250の一実施例を示している。この媒体ツリーは、構成を紙媒体に表現する図15の媒体ツリーと比較できる。図16のこの例では、媒体ツリー250は、根のHTMLページ・セットと、3つの子コンポーネント、すなわちページ0、ページ1、ページ2を有する。HTML媒体用のこの媒体ツリーは、紙媒体用に単一ページではなくて、3ページを有する。なぜなら、HTML形式で表現される構成が、紙媒体用のものと比較して、異なる要件と、異なるレイアウトを持っているからである。この例では、図9のパンフレット構成は、HTML媒体に表現される時に、図12A、12B、12Cに示される通りに現れることになる。それゆえ、図16の媒体ツリーは、3つの異なるページ、すなわちページ0、ページ1、ページ2を有する。特定の媒体レイアウトに対して、特定の構成が使用するページの数は、コンテンツと、この媒体用のデザイン選択の問題であって、この構成が、特定の媒体に対して複数の形式を取る場合もある。例えば、明確に設定できるプロパティは、ページ数を一定にするか、またはコンテンツの大きさに応じて変えさせるかどうか、制御できる。HTML媒体のパンフレット構成のレイアウトは、図12A、図12B、図12Cに示される通り、また図16の媒体ツリーで表現される通りのものであって、ある構成に対して、レイアウトおよび媒体ツリーがどのように現れる可能性があるかを示す図解例の1つである。
図16の媒体ツリーは、戻って図12A、図12B、図12Cを参照すれば、その解釈が最適となる。媒体ツリーのページ0は、図12Aに示されるレイアウトを表し、ページ1は図12Bを表し、またページ2は図12Cを表す。ページ0は、7つの子、すなわちタイトル「Bass製品」、魚のロゴ、「釣ざお製品」、「網製品」、「新製品」、「パンフレット」、「当社との談話」を有する。最初の4つの子は、図16のレイアウト座標を用いて示されるが、一方、最後の3つの子は示されない。ただし、最後の3つの子は、252としてリンクを持つことになる。媒体ツリーの中のこれらの子は、図12Aに示されるコンテンツ項目を表す。各コンテンツ項目は、図15の紙媒体ツリーの中にある通り、そのコンテンツ項目の範囲(この場合、そのX座標とY座標、およびその高さと幅)と対応づけている。
HTML媒体ツリーのページ1は、図12Bからのコンテンツを表す6つの子が示されている。同様に、これらのコンテンツ項目のそれぞれは、図16の各コンテンツ項目の下に、対応範囲が示されている。同様に、媒体ツリーのページ2は、図16で見られる対応範囲とともに、図12Cのコンテンツ項目に対応する6つの子を有する。ページ0、ページ1、ページ2に見られるように、タイトルとロゴが繰り返される。最適化は、単一のインスタンスを参照することにより、コンテンツ要素を共用することにある。さらに、このHTML媒体に関する要件が固有であるために、このような媒体に対して新規コンテンツ項目を生成していることも指摘されること。例えば、新規コンテンツ項目である「釣ざお製品」と「網製品」が生成されており、ページ0の中に現れている。同様に、コンテンツ項目である「ホームページ」は、ここでは、ページ1にもページ2にも現れている。
図17は、ページ0からのコンテンツ項目「Bass製品」を260に、さらに詳細に示している。このコンテンツ項目は、オブジェクト、または他の類似データ構造として、内部表現できる。好ましくは、このコンテンツ項目は、1コンポーネントとして表される。とくに、コンテンツ項目「Bass製品」については、様々な媒体と関係のある様々なプロパティを、そのコンテンツ項目とどのように対応づけた可能性があるのか示されている。前述の様々な媒体に対する様々なプロパティの働きは、所定の媒体に対して、当該コンテンツ項目を適切に表現できるようにすることにある。例えば、このコンテンツ項目は、図16に示される通りにHTML媒体に表現されているから、ここでは、HTML媒体のプロパティに対して値を持つ。それゆえ、紙媒体プロパティと関係のあるプロパティは、空白のままにするか、あるいは使用されない。HTML媒体または紙媒体に固有の、あるいはそれらの媒体に適切な、その他多数の異なるタイプのプロパティ(ここには、図示されていない)を、このコンテンツ項目に添えることができる。
さらに、このコンテンツ項目「Bass製品」については、コンテンツ項目をVRML媒体に表現する可能性があることと関連のある一組のプロパティも示される。コンテンツ項目のX座標、Y座標、Z座標、および、その高さ、幅、奥行きを表すプロパティが示される。VRML媒体の性質が三次元であるから、VRML媒体に表現されるコンテンツ項目に対しては、Z座標と奥行きの追加プロパティが適切となる。この媒体に適切である他のプロパティは、色、明るさ、回転、サウンドである。例えば、音楽サウンドもしくはビデオクリップは、構成内の特定のコンテンツ項目と対応づけられ、またこれらのサウンドとビデオは、コンテンツのプロパティを通じて、当該コンテンツと対応づけられる。その他多数の異なる種類のプロパティは、特定の媒体タイプと対応づけられることが認識されること。
図18は、270において、図15の紙媒体ツリーのページ0からのタイトルとロゴをさらに詳細に示している。媒体ツリーのこの部分とともに、図13と図14のコンテンツツリーとデザインツリーの関連部分も、3つのツリーの間の関係を実証するために示されている。
この例では、パンフレットの構成の根は、コンテンツ・ファセット、デザイン・ファセット、媒体ファセットを有する構成コンポーネント271である。これらの3つのファセットは、コンテンツツリー、デザインツリー、媒体ツリーのそれぞれの根である。図18に示されているこれら3つの部分ツリーは、これら3つのツリーのうち図13、図14、図15に示されている部分である。例えば、コンテンツツリーの根は、子コンテンツ項目「Bass製品」にリンクされる文書コンテンツである。「Bass製品」のコンテンツ項目は、魚のロゴにリンクされ、さらに、釣ざおのイメージに、またリンク276を通じて網のイメージ(図には示されていない)にリンクされる。
デザインツリーの根は、子コンポーネントの銘板、および、コンポーネントの製品リストとフッター(図には示されていない)へのリンク272を有する文書デザインである。図14に示される通り、銘板のコンポーネントは、そのサブコンポーネントのタイトルとロゴがそれぞれのコンテンツ項目へのリンクを持ち、さらに、これらのコンテンツ項目がコンテンツツリーとも共用されている。媒体ツリーの根は、1つの子コンポーネントのページ0を有するコンポーネントの紙ページ・セットである。ページ0は、図15に示される(ここ、図18には示されていない)他のコンテンツ項目へのリンク274だけでなく、子としてタイトル「Bass製品」や魚のロゴも持っている。従って、図18は、コンテンツツリー、デザインツリー、媒体ツリーが、概念的に別々なものと見なされても、どのようにして、これらのツリーが、共通の根と共通の葉を持ち、また時々、共通の中間コンポーネント(この例にはない)を共用できるのか例証している。
コンテンツを構成に追加する例
コンテンツを構成に追加する時に、どのようにコンテンツツリー、デザインツリー、媒体ツリーを処理するのかを示す一例が、図19〜図22に示されている。これらの図は、どのようにしてコンテンツを構成に追加できるのか、またどのようにして各ツリーを適宜に変更するのか、本発明の一実施例で図解している。このような処理に関係するステップのさらに詳細な考察は、以下の図29〜図36の流れ図に記載されている。一般に、図19は、現行構成上にドロップされているコンテンツを示し、図20は、ドロップ前のコンテンツツリー、デザインツリー、媒体ツリーを示し、さらに図21は、構成上にコンテンツがドロップされた後のこれらのツリーを示している。
図19は、コンテンツを構成に追加するための1技法280を示している。図19には、構成282を含むコンピュータシステムのユーザインタフェース281が示されている。構成282の中には、目下、写真284と空テキスト領域286がある。空テキスト領域286は、ここでは文脈が対応づけられていない特定のテキスト・コンポーネントで表される。この例では、ユーザは、コンテンツをワープロ288から構成282上にドロップしたいと思っている。ワープロのコンテンツ288には、タイトル、テキストの本体「xxx」を添えた第1の小見出し、2つのテキスト項目「yyy」と「zzz」を添えた第2の小見出しが含まれる。
第1のステップ290では、このワープロのコンテンツは、292に示される構造の本発明の一実施例に取り入れられる。このコンテンツの取入れ(インポート)は、多種多様なやり方で行われる。例示として、コンテンツ取入れ(インポート)は、コンテンツを認識し、定義し、コンテンツを特定のオブジェクトに分けることのできるオブジェクト・ブローカによって行われる。
この例では、オブジェクト・ブローカは、ワープロのコンテンツを構造化テキストとして認識して、このコンテンツを、テキスト段落コンポーネントの1階層に分けている。例えば、コンポーネントのテキスト段落296は、このコンテンツのタイトルである「キルロイは誰であったか?」に対応し、テキスト段落298は、第1の小見出し「かって、ここで」に対応し、さらにテキスト段落300は、テキスト本体「xxx」に対応している。
このコンテンツは、どんな適切なやり方でも、技法294を通じて構成282上にドロップされる。このようなドロップ処理は、多種多様なやり方で行われることが考えられる。例示として、コンテンツは、マウスなどの任意の適切なポインティング・デバイスを用いて、ユーザ・インタフェース上のある場所からドラッグして、構成の該当場所にドロップすることができる。もう1つの方法としては、このドロップは、ユーザがポインティング・デバイスをダブルクリックするか、あるいは、ユーザが、他の任意の適切なやり方で、構成内の別の場所でコンテンツを特定することにより、行われる。さらに、コンテンツは、任意の適切なソースから得ることもできる。例示として、コンテンツは、ユーザ・インタフェースの中に現れ、またファイル名、URLアドレス、データベースの一部、または、コンピュータシステムを用いてコンテンツを指定するのに用いられる他の任意の類似手段により、特定される。さらに、コンテンツは、コンピュータ・インタフェース、ネットワーク接続、モデム・インタフェース、赤外線または無線リンク・インタフェース、サウンド認識インタフェース、ビデオ・インタフェース、または、データをコンピュータシステムに入力する他の任意の類似手段を通じて、コンピュータシステムに自動的に入力される。さらに、コンテンツは、メイル/メッセージ処理システム、データ収集装置、電話システム、スキャナなどを通じて、入力される。
ここで図20と図21に移って、図20は、コンテンツがドロップされる前のコンテンツツリー、デザインツリー、媒体ツリーの内部表現を示しているが、一方、図21は、コンテンツが構成上にドロップされた後のこれらのツリーの表現を示している。
図20は、図19の構成282について、コンテンツツリー、デザインツリー、媒体ツリーのそれぞれの実施例310を示している。コンテンツツリー312は、構成の写真284用のデータ316である唯一のコンテンツ項目(ここでは、コンテンツツリーの中にある)へのリンクが1つある根の文書コンテンツを持っている。デザインツリー314は、子コンポーネントの製品が1つある根の文書デザインを有する。製品は、2つのサブコンポーネント、すなわち製品イラストと製品テキストを有し、それぞれ、構成の写真284用のプレース・ホルダと、構成の空テキスト領域286を表している。この例の製品イラストは、1つのサブコンポーネントのイメージを有する。この例では、製品イラストはキャプションがなく、従って、デザインツリーの中のコンポーネントの製品イラストの下には、キャプション用の追加サブコンポーネントはない。デザインツリーのイメージのコンポーネントは、データのタイプを示す量JPEGや、写真が縁取り(ボーダ)を持てないことを示す「縁取りなし」フラグなどの様々なプロパティが対応づけられている。特定の媒体について、どのようにして写真を、この構成に載せるべきか記述した多種多様な他のプロパティが可能である。
デザインツリーの中の製品の製品テキストのサブコンポーネントは、テキスト用の1領域と、「構造化される」や「左詰めされる」のように配置されるテキスト用の様々なプロパティを示す1つのサブコンポーネントのテキストフローを有する。この例では、テキストフローのコンポーネントは、X座標とY座標55と30、および幅と高さ40と35で特定されるテキスト用の1領域を示している。ここで、この領域にはコンテンツがないために、テキストフローへのサブコンポーネントはない。コンテンツを、どのように所定の媒体に載せるべきか指示するために、テキストフローなどのデザイン・コンポーネントと関連させて、「構造化される」や「左詰めされる」に加えて、多種多様な他のプロパティも使用できることが認識されること。他のこのようなプロパティの代表的な例は、上に説明されている。
図20の媒体ツリー316は、サブコンポーネントのページ0が1つある根の紙ページ・セットを有する。ページ0には、イメージ316とテキストフローのコンポーネントに対して、それぞれ媒体領域318と319を当てる1つのサブコンポーネントの製品矩形がある。言い替えれば、コンポーネントの製品矩形の座標(すなわち、10、30、85、35)で画成される媒体領域は、2つの領域に分けられ、その1つは写真を含み、また別の1つは、目下、空テキスト領域である。この時点では、構成は、いつでもコンテンツをドロップすることができる。図19に示される通り、ドロップ技法294を通じて、コンテンツを構成上にドロップすると、本発明の一実施例により、図21に示される通りに、コンテンツツリー、デザインツリー、媒体ツリーが現れる。
図21は、図19のコンテンツ288が構成282上にドロップされた後のコンテンツツリー、デザインツリー、媒体ツリーの実施例330を示している。以下に詳細に説明される通り、これら3つのツリーはそれぞれ、ドロップされたコンテンツのために、変更された。デザインツリーの階層において、デザインツリー314’から始めて、コンポーネントのテキストフローは、その下に多数のサブコンポーネントが追加されている。図19の階層292に示されるテキスト段落のコンポーネントは、テキストフローのコンポーネントへのサブコンポーネントと同じ階層で追加されている。例えば、テキストフローのコンポーネントの下には、コンテンツのタイトルである「キルロイは誰であったか?」を表す単一のサブコンポーネントのテキスト段落がある。この第1のテキスト段落のコンポーネントの下には、2つのサブコンポーネント、すなわち、第1の小見出し「かって、ここで」と第2の小見出し「戦闘中に行方不明」を表す2つ以上のテキスト段落のサブコンポーネントである。同様に、デザイン階層において、これら2つのテキスト段落のコンポーネントは、それらの下に、それぞれのテキスト本体「xxx」、「yyy」、「zzz」を表すコンポーネントが付いている。
コンテンツツリー312’には、イメージ316へのリンクを持つ根の文書コンテンツがまだ入っているが、ここでは、さらに、コンテンツのタイトルである「キルロイは誰であったか?」へのリンクも設けられている。次に、このタイトルは、その下に、第1と第2の小見出しに連絡するコンテンツ・リンクを持ち、さらに、これらの小見出しは、それぞれのテキスト本体へのリンクを持っている。例えば、第2の小見出し「戦闘中に行方不明」は、2つのコンテンツ・リンクを持ち、その1つはテキスト本体「yyy」に、また別の1つはテキスト本体「zzz」に連絡される。
同様に、媒体ツリー316’は、ここでは、追加された新規コンテンツ項目のそれぞれについて、新たな領域を画成する追加リンクを持っている。この媒体ツリーは、イメージとテキストフローのコンポーネントに対してそれぞれ、もとの媒体領域318と319へのリンクを、まだ持っている。ただし、フィッティング(合わせ)に対する新規コンテンツの影響を反映して、テキストフロー用の位置がわずかに変わった。さらに、製品矩形のコンポーネントは、ここでは、新規コンテンツの1つ1つについて、製品矩形の媒体領域内に、指定媒体領域を画成する新規テキスト段落のコンポーネントそれぞれへの媒体リンクを持っている。例えば、製品矩形のコンポーネントは、ここでは、媒体のX座標とY座標がそれぞれ70と45であって、幅と高さがそれぞれ20と10であるテキスト本体「xxx」を表すテキスト段落のコンポーネントへのリンクを持っている。同様に、製品矩形の媒体コンポーネントは、図21に示される通り、それぞれのコンテンツ項目に対して特定の媒体領域を画成する他の新規のテキスト段落のコンポーネントそれぞれへのリンクを持っている。ドロップされたコンテンツのために、製品矩形用の座標も、(10,30,85,35)から(10,30,85,55)に変わった。さらに、テキストフローの高さも35から55に変わった。もう1つの方法として、別のデザインでは、以上のコンポーネントのそれぞれの範囲を変えないようにすることが求められる場合もあり、この場合には、同じ広さのスペースでテキストを表現するために、ドロップされたテキストの様々な属性(例えば、フォントやテキストサイズ)が変更されることになる。
コンテンツが構成上にドロップされる(例えば、図19〜図21に示される)
時には、本発明の一実施例は、コンテンツが特定の場所にドロップされるかどうか確認し、もしそうであれば、ドロップされたテキストに対して、どんなタイプのコンポーネントを生成すべきかを決めるために、図22に示されるコンテンツ・ドロップ・テーブル350を利用する。コンテンツ・ドロップ・テーブルは、多種多様なやり方で実装される。例示として、図22のコンテンツ・ドロップ・テーブル350は、このような実装の1つである。構成の受取り側のコンポーネントによるコンテンツ・ドロップ・テーブルの特定利用の一例は、以下で、図29のステップ512と、図30のステップ554を参照して、さらに詳しく考察する。
本発明の一実施例では、構成のそれぞれのコンポーネントに対して、コンテンツ・ドロップ・テーブル(例えば、図22に示されるもの)が存在する。もう1つの方法としては、一群のコンポーネントまたは全文書に、コンテンツ・ドロップ・テーブルの概念が用いられる。構成の中で、ドロップを受け取ることのできるコンポーネント・タイプは、受取り側のコンポーネント・タイプと呼ばれる。
コンテンツ・ドロップ・テーブル350は、識別セクション352と本体353から成り、さらに、この本体は、カラム354と356から成っている。コンテンツ・ドロップ・テーブルの識別セクション352は、コンテンツ・ドロップ・テーブルが、どの受取り側のコンポーネント・タイプに対して用いられるか示している。この例では、コンテンツ・ドロップ・テーブル350が、タイプ「テキスト本体」の受取り側のコンポーネント・タイプ向けのドロップ・テーブルである。
コンテンツ・ドロップ・テーブルの目的は、ドロップされるポテンシャル・コンテンツ・タイプを、おそらく所定の受取り側のコンポーネント・タイプにとって適切なサブコンポーネント・タイプに合わせようとすることにある。この例では、タイプ「テキスト本体」の受取り側のコンポーネントは、タイプ「テキスト」か、タイプ「OLEオブジェクト」のいずれかのコンテンツを受け入れて、これらの特定のコンテンツ・タイプを、特定の新規サブコンポーネント・タイプに対応づけるように設計されている。このドロップ・テーブルは、タイプ「テキスト」のドロップされるコンテンツが、インライン見出しのコンポーネントか、あるいは、新規サブコンポーネント用のインライン本体段落のコンポーネントと一致することを示している。タイプ「OLEオブジェクト」のドロップされるコンテンツは、インライン・イラストのサブコンポーネントとしか一致しない。ドロップされるコンテンツ項目は、おそらく、様々なコンテンツ・タイプと解されるから、第1のカラム354は、「ドロップされるポテンシャル・コンテンツ・タイプ」の標識が付けられる。このドロップされるコンテンツを認識するオブジェクト・アダプタは、ドロップされるコンテンツのポテンシャル・コンポーネント・タイプを識別できる。例えば、構成上にドロップされる短いテキストは、キャプション、本体テキスト、見出しなどのタイプと解される場合がある。
コンテンツ・ドロップ・テーブルは、以下のやり方で使用される。ワープロ・クリップを構成上にドロップすると仮定する。汎用オブジェクト・アダプタが、まず、テキスト、OLEオブジェクトなどのような可能なタイプのリストを作る。次に、このテーブルを、一度に1行だけ進める。左側のカラムにリストされたタイプが、ドロップされるコンテンツの特定された可能なタイプとコンパチブルではない場合には、その行を改行する。しかしながら、もしコンパチブルである場合には、ドロップされるコンテンツを用いて、右側のカラムにリストされる1タイプのコンポーネントの構築が行われる。この試みがうまくいった場合には、この処理は終了し、もしうまくいかなければ、このテーブルの次の行を試みる。さらに、ユーザは、ドロップ技法、またはユーザ・インタフェースとの他の対話処理を通じて、どのコンポーネント・タイプを生成すべきか、明確に決めることもできる。コンテンツ・タイプを解釈し、照合するための他の優先方式があり得ることが、当業者には認識されるであろう。このドロップ・テーブルの用途は、さらに、以下の図29と図30を参照して、考察する。
媒体区分
本発明の別の有用な特徴は、媒体区分の概念である。媒体区分により、媒体の特定領域は、一組のルールとプロパティに従って、他の関連領域に分けることができる。媒体区分の概念は、ここでは、図23〜図28を参照して考察する。図23と図24は、本発明の範囲内で媒体区分をどのように使用できるかを示す一実施例を例示し、また図25〜図28は、様々な種類の媒体区分の図解例を与えている。つぎに、本発明の一実施例に関連しての媒体区分の使用が、以下で図34と図35を参照して、さらに詳しく説明される。
図23a〜図23dは、媒体区分の使用の動機づけを示すために、簡単な製品例を与えている。図23aは、図に示される通り、構成372に載せられる特定製品について、製品レイアウトの一例370を示している。この製品例は、構成の左側に絵の領域があり、また当該領域の右側には名称と本体テキストが載せられている。絵の領域の中には、そのイメージ自体があり、さらに当該イメージの下には、キャプションと説明文が両方とも付けられている。この構成の右側には、製品名の下に本体テキストが載せられている。
図23bは、図23aの製品例に対してデザイン階層を表すデザインツリー380の一実施例を示している。最上位コンポーネントの製品は、3つの子、すなわち絵、名称、本体を有する。この中間コンポーネントの絵には、3つのサブコンポーネント、すなわちイメージ、キャプション、説明文が入っている。デザインツリー380は、製品例の編成の階層的分類を与えているが、ただし、個々のコンポーネントのレイアウトに関する情報の提供は求められていないことに注目すること。これに反して、図23cの媒体ツリー390は、各コンポーネントの媒体ファセットのプロパティとして、デザインツリーの中のコンポーネントそれぞれのレイアウトについて、さらに詳細な情報を提供している。図には示されていないが、媒体ツリーの各コンポーネントは、様々なプロパティで画成される対応範囲を持ち、その範囲が、媒体の中でそのコンポーネントが置かれている位置を示す。
図23cの媒体ツリー390は、領域内への領域の形態的格納を固有に表すものと見なされる。言い替えれば、当該媒体ツリーの各ノードまたは各コンポーネントは、ページ(紙ページ媒体の場合)上の1領域に対応するか、あるいは、別の媒体では、他の何らかの領域に対応している。媒体ツリー390は、絵とテキストエリアという2つの子がある根の製品を有する。絵のコンポーネントは、絵の情報が載っている構成の左側を示す。テキストエリアのコンポーネントは、適切なテキストが現れる構成の右側を示す。テキストエリアのコンポーネントは、名称と本体という2つの子がある。絵のコンポーネントは、イメージと絵テキストエリアという2つのサブコンポーネントを持っているが、一方、絵テキストエリアは、キャプションと説明文という子を持っている。形態的な意味では、コンポーネントの絵は、それが、イメージと絵テキストエリアという2つの子を持つという理由で、横方向に2つの領域に分けられた。このことは、絵のテキスト(キャプションのテキストと、説明文のテキストを含む)の上にイメージが載せられている図23aの製品例からわかる。規定により、横線により上部と下部に分けられる領域は「横区分」と呼ばれるが、一方、縦線により左側と右側に分けられる領域は「縦区分」と呼ばれる。
絵用の領域の横区分は、全体の製品のコンポーネントの縦区分と対照させることができる。すなわち、絵のコンポーネント(左側に絵の領域を表す)と、テキストエリアのコンポーネント(右側にテキストの領域を表す)との間には、図23aからわかるように、絵とテキストエリアとの情報の縦区分がある。図23aでは、絵の情報が、構成の左側に載せられているが、一方、テキストエリアには、構成の右側に載せられているテキスト情報が入っている。さらに、コンポーネントの絵テキストエリアは、キャプションと説明文という2つのサブコンポーネントも有する。キャプションと説明文は上下に並べて載せられているために、絵テキストエリアの領域は、横に分けられている。同様に、テキストエリアのコンポーネントは、横に名称のコンポーネントと本体のコンポーネントに分けられる。以上の様々のコンポーネントを、縦に、横に、または他の方法で、どのように分けるか指定する技法の一実施例は、以下で、図24を参照して考察する。
この簡単な例では、デザインツリーも媒体ツリーも、だいたい同じように思われる。しかしながら、さらに複雑な構成では、デザインツリーと媒体ツリーとはまったく異なる場合がある。例えば、図23aの本体テキストを考えてみる。ここでは、この本体テキストは、1ページにのみ載せられている。従って、本体テキストは、このページの1つの媒体領域に包含され、また、この1ページ上に本体テキストの位置を表すには、図23cで媒体コンポーネントがただ1つ必要となる。しかしながら、もし、この本体テキストを、2ページ目に広げるか、あるいはカラム間で分割するとしたら、この本体テキストは、媒体ツリーの中の様々な媒体コンポーネントで表されることになる。けれども、デザインツリーは、本体テキストを、単一コンポーネントである本体で、なお表すことになる。この場合には、デザインツリーと媒体ツリーは、異なるように思われるであろう。さらに、デザインツリーと媒体ツリーにおいて、他のさらに複雑な情報表現が可能であることも認識されること。別の例では、後続するページに様々の製品を載せているホームページがあるHTML版のパンフレットでは、ホームページ上にあるライブ・リンクは、デザインでは製品の1部であるが、媒体では1ページ目の一部である(すなわち、他の製品コンポーネントとはまったく異なる)。
例示のために、図23bのデザインツリーと図23cの媒体ツリーは、別々のツリーとして示されている。しかしながら、これらのツリーは、いくつかのコンポーネントを共有している。例えば、製品、絵、名称、本体、イメージ、キャプション、説明文のコンポーネントは、双方のツリーに共通のコンポーネントである。それゆえ、図23bと図23cのデザインツリーと媒体ツリーは、図23dの単一であるが、さらに複雑なツリー構造で、さらに見ることができる。この例では、どのようにして、様々なコンポーネントを、これら2つのツリーで共用するのかわかるが、とはいえ、この媒体ツリーは、テキストエリアと絵テキストエリアなどの追加コンポーネントを有する。例えば、特定の媒体領域では、図23aの製品例の名称と本体がともに現れるために、それらは、媒体ツリーの中のコンポーネントの製品の下で、媒体コンポーネントのテキストエリアの下に表される。この追加媒体コンポーネントは、名称と本体の両方の媒体領域を画成するのに役立つ。同様に、図23aの絵は、形態的意味で、イメージを表す上部媒体領域と、絵用のテキスト(この場合、キャプションと説明文)を表す下部媒体領域に分けられるものと見なせる。従って、媒体ツリーでは、図23aのキャプションと説明文は両方とも、媒体ツリーの中で、適宜、絵テキストエリアと称される特定の媒体領域に包含される。
媒体領域を分ける概念を表す技法の一実施例は、図24に示されている。図24は、図23cの媒体ツリー390に加えて、そのコンポーネントに対して媒体の区分に役立つ対応媒体区分も、さらに詳細に示している。媒体ツリーは、各コンポーネントに利用できる領域を、各コンポーネントの子の間で分ける方法を決定するために、各コンポーネントに媒体区分を使用している。言い替えれば、特定の領域または範囲を表す各親コンポーネントは、その子を当該領域内に入れるか、あるいは当該領域と何らかの関係に置く役割を負っている。
媒体区分は、特定コンポーネントの子に関するレイアウトを決定する一組のルールを記述した当該コンポーネントの一組のプロパティと見なされる。媒体区分は、様々なプロパティをいくつでも含むことができ、また様々なやり方で、あるコンポーネントの範囲を分けることができる。例示として、特定の媒体区分が図24に示されており、また特定タイプの媒体区分が、以下で、図25〜図28を参照して説明される。媒体区分に関するプロパティ、ルール、値は、どんな適切なやり方でも、特定のコンポーネントと対応づけられるものとして、表すことができる。例示として、媒体区分は、特定のコンポーネントにリンクされる別のオブジェクトとして表すことができる。図24の媒体ツリー390は、製品、テキストエリア、絵、絵テキストエリアのコンポーネントがそれぞれ、どのようにして対応媒体区分を持つのか示している。次に、これらの様々な媒体区分の用途を説明する。
製品のコンポーネントと対応づけられる媒体区分392は、製品向けの媒体領域が、どのようにして製品の子の間で分られるか定めるのに役立つプロパティがいくつでも対応づけられる。媒体区分392は、製品のコンポーネントと対応づけられる様々なプロパティおよび値を示している。例示として、媒体区分392は、値「二様」を持つプロパティを有し、この値は、製品向けの媒体領域を、2つの異なる子のために2つに分けるべきことを示している。値「縦」は、製品向けの媒体領域を、図23aでわかるように、縦線で左側と右側に分けるべきことを示している。値「適合25%」は、製品のコンポーネントに当てられる領域の左側の第1の子を、この領域の25%という絶対測定値に収めるべきことを示している。「余白12ポイント」の値は、各子向けの領域の間隔が、余白12ポイント幅であることを示している。「偽」の値を持つプロパティ「スワップ」は、25%の適合値が、親領域の左端から(右端ではない)測られるべきことを示している。
コンポーネントのテキストエリアは媒体区分396を有し、この媒体区分は、二様区分でもあり、従って、親コンポーネントのテキスト領域内に、名称と本体のコンポーネント向けの2つの領域を備えている。媒体区分396は、媒体区分392とは異なって、横線が、テキストエリアを、名称と本体のテキストに対して、それぞれ上端部分と下端部分に分けることを意味する横区分である。さらに、この媒体区分は、「正確適合」プロパティ値も持っており、この値は、名称と本体テキストが、親の領域の特定割合部分または絶対測定部分には割り当てられるべきでないが、ただし、第1の子(例えば、名称)には、その子が必要とするだけのスペースが割り当てられるべきであることと、その残りのスペースを、第2の子、例えば本体テキストに割り当てるべきことを示している。
コンポーネントの絵は媒体区分394を有し、この媒体区分も、その領域を、その2つの子であるイメージと絵テキストエリアに対して、横に2つの部分に分けるべきことを示している。コンポーネントの絵テキストエリアは媒体区分398を有し、この媒体区分も、そのコンポーネントに当てられた領域を、その子であるキャプションと説明文に対して、横に2つの部分に分ける。
子が親の範囲内にどのようにして入れられるか指定するために、あるいは、どのようにして子が親との関係に置かれるか指定するために、他の多くのタイプのプロパティおよび値を媒体区分に含めることが認識されること。子が親の領域内に入れられることや、さらに、子が、親に割り当てられた領域の外に置かれることも必ずしも必要ではない。一例として、媒体区分向けの適合プロパティは、絶対適合か、正確適合のいずれかである。絶対適合は、子に割り当てられるべき領域の割合を与えるか、どれくらいの領域を占有すべきかを示す指定媒体単位を与えるか、あるいは子に対して縦横比を与えるか、いずれかである。媒体区分内の正確適合値は、配置された第1の子に、その子が必要とするだけの領域が与えられ、それ以外の領域を、第2の子と、それに続く子に残しておくことを示している。二様の媒体区分に有用な他のプロパティには、上昇形と下降形の適合、バランスのタイプ(例えば、絶対、正確、折衝される)、区分線に最適な場所、最小または最大の許容区分線、最適な場所から外れる区分線の許容度、別のページに流れる子のテキスト/コンテンツを処理するオプション(例えば、第2の子を最初のページに置いておく、第2の子を、別のページの流れ終了点に移す)、ページの区切りなし、強制される場合にページを区切る、つねにページを区切る、などがある。
図25〜図28は、本発明の実施例で使用される様々なタイプの媒体区分を示している。他の種類および形式の媒体区分が可能であると考えられる。図25a〜図25fは、一様の媒体区分の例400を示す。親コンポーネントが、ただ1つの子コンポーネントを持ち、親コンポーネントが、当該子コンポーネントを、親コンポーネントで占有された領域との何らかの関係に置こうとしている時に、一様の媒体区分が使用される。
図25aは、親コンポーネント404で占有される領域の中に入れられている子コンポーネント402の一例である。このような一様の媒体区分は、親領域の端縁のそれぞれから余白を測ることで、子を親との関係に置くことができる。図25bは、親コンポーネント408のコーナ領域に置かれている子コンポーネント406の一例である。図25cは、親コンポーネント412で占有される1領域の端縁に沿って配置されている子コンポーネント410の一例である。図25dは、親コンポーネント416で占有される領域と重なり合う場所に置かれている子コンポーネント414の一例である。図25eは、親コンポーネント420で占有される領域に、親の向きとは異なる向きに入れられた子コンポーネント418の一例である。図25fは、親コンポーネント424で占有される領域から離して配置されている子コンポーネント422の一例である。さらに、子コンポーネントは、親コンポーネントで占有される領域と完全に一致するか、あるいは、親コンポーネントの領域のどの一部も(例えば、左側または右側)占有する場合もある。
図26a〜図26hは、二様の媒体区分の例430を示している。2つの子コンポーネントを、親コンポーネントで占有される領域と何らかの関係に置かなければならない時に、二様の媒体区分が用いられる。さらに、二様の媒体区分は、図25a〜図25fに示される通りに現れることもあり、ここでは、1つの子コンポーネントが、図25に示される子コンポーネントに一致し、また第2の子が、図25の親領域に一致している。さらに、二様の媒体区分の2つの子コンポーネントは、親領域の場所に関係なく、どんなやり方でも互いに重なり合う場合もある。図26gは、2つの子領域の重なり合いについて、考えられる一例である。
図26aは、子1が親領域432の左領域を占有し、また子2が右領域を占有している縦の二様媒体区分の一例である。図26bは、子1が親領域434の上端部を占有し、また子2が下端部を占有している横の二様媒体区分の一例である。図26cは、33%の絶対値が子1に対する領域436を示し、またその他の領域437を子2に残しておいている絶対適合の二様媒体区分の一例である。図26dは図26cと同様であるが、ただし、この例では、スワップ・プロパティが「真」に設定されており、右端から33%の絶対値を測るべきことを示している。この例では、つぎに、子2が親領域442の33%(領域440)を占有するが、一方、子1が残りの領域441を占有している。図26eは、親領域444の中で、子1と子2の間に余白のある横区分の一例である。図26fは、子1に隣接して子2が配置されている二様媒体区分446の一例である。この例では、子1が親領域と一致している。図26gは、子1が、子2で占有される領域と重なり合う二様媒体区分448の一例である。図26hは、子1が、子2で占有された領域から離れて配置されている二様媒体区分450の一例である。ここでは、子1は、親領域と一致している。
図27a〜27eは、三様の媒体区分の例460を示している。図27aは、親領域462を、どのようにして子1、子2、子3の間で分けるのか示す第1の例である。図27bは、親領域464を、どのようにして3つの子の間で分けるのか示す第2の例である。図27cは、親領域466を、どのようにして3つの子の間で分けるのか示す第3の例である。図27dは、親領域468を、どのようにして3つの子の間で分けるのか示す第4の例である。図27eは、親領域470を、矩形でないやり方で、どのようにして3つの子の間で分けるのか示す第5の例である。任意の媒体区分では、子で占有される領域は、どんなやり方でも指定でき、必ずしも直交座標系によらないことが認識されること。例えば、二様の媒体区分は、山形線または曲線を使って親領域を分けることができ、必ずしも垂直線や水平線を使うとは限らない。
さらに、三様の媒体区分は、第3の矩形(または、他の形状)を、他の2つの子領域と何らかの関係に置いている(例えば、内部に、隣りに、または重なり合わせて)二様媒体区分の任意のものとして現れる場合がある。さらに、三様の媒体区分は、親領域の場所に関係なく、ただ3つの子領域の関係を指定することができる。例えば、三様の媒体区分は、3つの子領域が、何らかのやり方で隣接しているか、重なり合っているか、あるいは、それぞれ、一定のスペースで隔てられている関係を指定できる。
図28a〜図28eは、N様の媒体区分の例480を示している。N様の媒体区分は、任意の数の子に当てられている媒体領域を示している。好適な実施例では、N様の媒体区分は、横区分を用いる親媒体領域の割当てをさす。例えば、図28aは、親領域482を、その子(数はいくらでもよい)それぞれについて、絶対割合に分けているN様の媒体区分の一例である。図28bは、親領域484が、正確適合のやり方で、その4つの子で満たされており、またその余分の媒体が親領域484の下端に残されている下降形の正確適合割当ての一例である。図28cは、親領域486が、その3つの子を当該領域にちょうど収めることで満たされ、また当該領域内の余分のスペースが等しく分けられて、各子の前後に散在している正確適合媒体区分の別の一例である。図28dは、3つの子が、親領域488内に求めるスペースにちょうど収められ、また当該領域内のどんな余分のスペースも子と子の間に挟まれている正確適合媒体区分の別の一例である。図28eは、親が持てる任意の数の子に対して、任意の数の領域に分けられている抽象親領域490の一例である。親領域は多くの形式を取り、また親領域の外に子領域を割り当てることも含め、どんなやり方でも分けられるものと認識されること。
他の多くのタイプの媒体区分が可能である。例えば、三次元媒体は、三次元単位に分けられる。サウンドまたはビデオから成る媒体は、サウンドまたはビデオのタイムユニットに分けられる。さらに、媒体の全体のページを表す媒体区分も検討される。
本発明の手順実施例
上述の本発明のツリー表現、媒体区分、他の実施例に加えて、本発明の追加実施例は、構成のコンテンツ、デザイン、媒体を自動的に調整する技法に関するものである。例えば、ユーザが、構成にテキストまたは絵(例として)の形式でコンテンツを追加する場合には、本発明は、コンテンツを調整するか、デザインを変更するか、またはそのコンテンツに対して媒体レイアウトを書式変更するか、いずれかにより、そのコンテンツを媒体に自動的に合わせることができる。さらに、構成内の所定のコンテンツでは、ユーザは、そのコンテンツに対して新規のデザインを選択することもあり、本発明は、その新規のデザインでコンテンツを自動的に書式変更する。さらに、ユーザが、指定デザインでの特定のコンテンツを指定した場合には、ユーザは、そのコンテンツを、画面媒体、紙ページ媒体、HTML媒体などのような様々な媒体に直すために、本発明の実施例を利用できる。
以下の図29〜図38は、指定したデザインを有する特定のコンテンツを特定の媒体に自動的に収めるための様々な実施例および技法に関するものである。図29は、新規コンテンツが構成に追加されて、本発明が、そのコンテンツを媒体に自動的に合わせることのできる実施例を説明している。図37は、ユーザが、特定の構成に新規デザインを選択する一実施例に関し、また図38は、ユーザが、特定のコンテンツを新規媒体に直したいと思っている一実施例に関するものである。次にこれらの実施例の流れ図を考察する。
図29は、新規コンテンツを構成に追加する技法の一実施例を説明している。
このコンテンツを追加している構成は、空白デザイン形式などの文書シェルであるか、あるいは、作成中の構成、または、テキストやイメージなどのコンテンツがすでに完全に入っている構成である。第1のステップ504では、1つのコンテンツを、その構成のコンポーネントにドロップする。例えば、ユーザは、コンテンツを、ドラッグ・アンド・ドロップ、または他の技法を通じてドロップする構成内のある場所を指示できる。この場所は、一般に、構成のデザインツリーの受取り側のコンポーネントに対応している。例えば、ユーザは、構成内のイメージ用の1領域の空白アウトラインに写真をドロップすることができる。
次のステップ508では、汎用オブジェクト・アダプタが、ドロップされたコンテンツのポテンシャル・オブジェクト・タイプを特定する。ドロップされるコンテンツは、複数のタイプを有する単一オブジェクトと解されるか、あるいは、単一オブジェクト内の様々なタイプの集合体である。多種多様なポテンシャル・オブジェクト・タイプが可能である。例示として、標準のタイプは、テキスト、ハイパーテキスト、データベース・レコード、オブジェクト/アプレット/コンポーネント、オーディオ/ビデオ、三次元モデル(例えば、VRML)、リアルタイム・データ、イメージ、テーブルなどである。他のタイプも可能である。例えば、テキストはプレーン・テキスト、リッチ・テキスト、ビットマップなどである。絵は、ビットマップ、ベクトル作図、GIF、JPEGなどである。さらに、所定のコンテンツ・オブジェクトは、おそらく、様々なポテンシャル・タイプのものと解される可能性がある。例えば、イメージは、一般に、まさに1つのタイプ「イメージ」であるが、それに反して、コンテンツのテキスト段落は、タイプ「テキスト」、ビットマップ・タイプ、メタ・ファイルなどである。
次に、ステップ512では、ポテンシャル・コンテンツ・オブジェクト・タイプの1つを、受取り側のコンポーネントで受け入れられたタイプに合わせようとする。このステップは、以下のステップ516で処理される照合作業からの結果を戻す。この照合作業は、ドロップされるコンテンツ・オブジェクトのタイプを、受取り側のコンポーネントが処理できるかどうか判定する目的で利用される。各受取り側のコンポーネントは、受取り側のコンポーネントが好ましい順序で受け取ることのできるタイプのリストを含んだコンテンツ・ドロップ・テーブルを使用している。このコンテンツ・ドロップ・テーブルは、上で図22を参照して考察されている。さらに、この照合ステップは、ドロップされるコンテンツを、誤ったタイプにドロップした場合には、そのコンテンツを正しい場所に入れることもできる。例えば、受取り側のコンポーネントが絵またはテキストを受け取ることができ、かつ、このコンポーネントに製品をドロップする場合には、当該コンポーネントは、このドロップされる製品をテキストと見なすように決めることができる。さらに、イメージしか受け取れない絵にテキストをドロップする場合には、このテキストは、キャプションとして、その絵の下に現れる場合がある。このような照合作業を行わせるプロセスは、以下で、図30を参照して考察する。
ドロップ点を含まない位置にコンテンツを配置する他の状況は、デザイン選択により処理できる。例えば、パンフレットのデザインでは、絵の上に絵をドロップすると、つねに、そのコンテンツが、完全に入れ替えられる。レポートのデザインでは、ある段落を現行の段落にドロップすると、ドロップされる段落が、そのドロップ点に挿入される。以下で、図30を参照して説明される通り、受取りコンポーネントがドロップを受け取ることができない場合には、適切なコンポーネントを見つけるために、受取り側のコンポーネントの媒体ファセット・コンテナを探索する。例えば、絵をパンフレットのテキストにドロップする場合には、テキストは、その絵を受け付けない。このテキストが入っている製品は、その製品に対して現行の絵のコンテンツを取り替えるということで、この絵を受け付ける。さらに、全製品をテキストにドロップする場合には、テキスト・コンポーネントはそれを受け付けず、そのテキストが入っている現行製品もまた、そのドロップされる製品を受け付けない。しかし、文書は、そのドロップされる製品を受け付けて、他の現行製品に加えて、新規の製品コンポーネントも挿入する。さらに、例えばレポートのデザインでは、テキストにドロップされる絵は、上述の例とは異なって、受け付けられる。すなわち、レポートのデザインでは、テキストのコンポーネントは、ドロップされる絵を受け付けて、インライン・イラストのコンポーネントを生成できる。様々な場所で、ドロップされるコンテンツを処理する方法に関して、他のプロトコルやデザイン選択が可能であることを認識しなければならない。
ステップ512の照合作業が終わると、この照合作業の結果をステップ516で処理する。この照合作業から得られる結果のうち4つの例が、ステップ516に示されている。他の結果も可能である。このコンテンツのポテンシャル・オブジェクト・タイプをまったく受け付けないコンポーネントにコンテンツをドロップしようとする場合には、拒否の結果が現れる場合がある。このような筋書において、このシステムは、ドロップが行われないことをユーザに指示することで対処するか、あるいは、ドロップを受け付けた後に、それを何らかのやり方で拒否して、この結果をユーザに指示するか、いずれかである。拒否の結果の一実施例では、ドロップされるアイテムを、ドロップを処理できない受取り側のコンポーネントの上に位置づけると、警告アイコンが当該アイテムの上に表示される場合がある。このようなフィードバックは、ユーザが、コンテンツを構成上でドラッグしている時に、リアルタイムで発生する場合がある。
第2の結果は、受取り側のコンポーネントから子コンポーネントを生成する必要があることであるかもしれない。これは、すでに所定の場所にあるテキスト領域に、構造化テキストまたは他のテキストが追加されている場合に現れることがある。第3の結果は、受取り側のコンポーネントのコンテンツを変更する必要があることを示す場合がある。これは、1つの現行コンテンツを取り替えるつもりで、この現行コンテンツの上に全面的に新規の1つのコンテンツをドロップしようとする場合に現れる場合がある。第4の結果は、受取り側のコンポーネントの様々なプロパティを変更する必要があることであるかもしれない。これは、別のフォントのテキストをすでに有している受取り側のコンポーネント上に新規フォントをドロップする場合に現れる場合がある。この場合には、受取り側のコンポーネントのフォント・ブロパティを変える必要があるであろう。ステップ516のいくつかの結果では、デザインツリーは、コンポーネントの追加または削除により、変更される場合がある。このステップ516は、以下で、図31を参照して、さらに詳しく考察する。
ステップ520では、構成の現行コンテンツを、指示された媒体に合わせる。
このステップは、特定のデザインの中でユーザが指定した現行コンテンツを取り上げて、そのコンテンツを適切なやり方で調整して、当該コンテンツを所要の媒体領域に合わせるようにする。このステップは、以下の図33を参照にして、さらに詳しく考察する。このステップは、デザインのプロパティで可能となれば、媒体の全体サイズと形式を変更することになるかもしれない。例えば、パンフレットでは、総ページ数が決められるが、レポートのデザインでは総ページ数を増やすことができる。
次に、ステップ524では、コンテンツツリー、デザインツリー、媒体ツリーを含む全体の構成を、指定媒体に表現する。例えば、指定媒体が画面媒体であれば、当該システムは、コンピュータ画面で見れるように、構成を表現する。同様に、指定媒体が紙ページ媒体であれば、当該システムは、紙ページ上に印刷するが、ただし、印刷プレビュー・オプションを通じて、コンピュータ画面で紙ページ媒体を見れるようにする場合もある。同様に、HLML媒体に表現される構成は、ウェブページ形式でのプレゼンテーション向けに書式設定されて、HTML言語に変換されるが、ただし、これら同一のウェブページは、印刷プレビュー・オプションを通じて、コンピュータ画面で見られる準備がしてある。構成は、各コンテンツ要素用のデザインツリーから得られた情報とともに、各コンテンツ用の範囲を取り上げて、この情報を所望の媒体に出力することにより、表現される。例えば、構成は、コンピュータ・システムの標準ドライバを使用して情報を出力することにより、紙媒体に表現される。
構成は、多種多様なやり方で、媒体に表現される。例示として、オペレーティングシステムおよび/またはデバイスAPIとドライバを用いて、紙媒体への表現が行われる。コンピュータ画面への表現も、オペレーティングシステムおよび/またはデバイスAPIとドライバを用いて行われる。HLML形式への表現は、媒体ファセット・プロトタイプのマクロを用いて、また公式に利用できるHTML仕様を用いて行われる。OLEオブジェクトへの表現は、公表OLEインタフェースを参照して行われる。さらに、他のアプレットへの表現も、公表仕様を参照して行われる。
図30は、図29の照合コンテンツのステップ512を説明している。コンテンツ・オブジェクトが、受取り側のコンポーネント上にドロップされると、このステップは、構成のコンテンツ・タイプを、ドロップされるコンテンツに合わせようとする。例えば、ユーザは、コンテンツ・オブジェクトを、誤った場所、すなわち、そのコンテンツを受け付けない受取り側のコンポーネント上にドロップする場合がある。このステップは、ドロップされるコンテンツを受取り側のコンポーネントに合わせるのに役立つように、図22のコンテンツ・ドロップ・テーブルを利用する。ステップ554では、ドロップされるコンテンツ用のポテンシャル・コンテンツ・オブジェクト・タイプの1つに関する新規サブコンポーネント・タイプ順位付けリストとの第1の照合を見つけるために、受取り側のコンポーネントのコンテンツ・ドロップ・テーブルを探索する。
例えば、戻って図22のコンテンツ・ドロップ・テーブルを参照すると、ドロップされるコンテンツ・タイプが、「テキスト」のポテンシャル・タイプを有する場合には、インライン本体段落の最高優先順位の新規サブコンポーネント・タイプが、最初に一致して、インライン本体段落の新規サブコンポーネント・タイプを生成すべきことを示す。しかしながら、ドロップされるコンテンツがタイプ「イメージ」のものでしかない場合には、そのドロップ・テーブルが、最初にインライン本体段落およびインライン見出しをコンテンツ・タイプに合わせようとし、失敗し、次にインライン・イラストを「イメージ」に合わせる。一般に、好ましい照合を見つけるために、コンテンツ・ドロップ・テーブルの逐次探索が行われる。高位優先順位のテーブル項目をポテンシャル・オブジェクト・タイプのどれかに合わせるのが好ましい。言い替えれば、このテーブルは、最高優先順位のコンテンツ・ドロップ・テーブル項目をポテンシャル・オブジェクト・タイプのどれかに合わせてから、低位優先順位のテーブル項目をポテンシャル・オブジェクト・タイプのどれかに合わせようとする。
ステップ558は、コンテンツ・ドロップ・テーブルの中で照合が見つけられたかどうかテストする。照合が見つけられた場合には、ステップ562において、コンテンツ・ドロップ・テーブルからの当該照合と対応づけられた結果が取り出されて、処理のために図29のステップ516に戻される。コンテンツ・ドロップ・テーブルから得られた結果は、必要に応じて生成される新規タイプのコンポーネントとともに、ステップ516の可能な結果のうちの1つも示している。他の多くのタイプの結果が、コンテンツ・ドロップ・テーブルでの照合と対応づけられ、またステップ516でも処理されることを認識しなければならない。結果は、特定のコンポーネントまたはコンポーネント・タイプと対応づけられた特殊コードでも処理される場合がある。
それに反して、照合がステップ558で見つけられない場合には、制御がステップ566に移る。例えば、ユーザが、ごく小さいキャプション上に大きな絵をドロップしようとする場合には、照合はない。ステップ566は、ドロップされるコンテンツ・オブジェクトのタイプに、媒体ファセットツリーを発展させることで、一致することのできる受取り側のコンポーネントを見つけようとする。受取り側のコンポーネントには媒体ファセット親がない場合には、ステップ570において、拒否の結果を戻して、図29のステップ516で処理させる。しかしながら、媒体ファセット親が実際に存在する場合には、ステップ574において、これらのポテンシャル・コンテンツ・オブジェクト・タイプを、受取り側のコンポーネントの媒体ファセット親に渡して、その媒体ファセット親か、またはその親の他の子のうちの1つを用いて照合が見つけられるかどうか調べる。このプロセスの一例は、図23cを参照して、例示される。例えば、テキストが、イメージのコンポーネント上にドロップされる場合には、ステップ558は、照合を見つけられないが、それなら、ドロップされるテキストを、上方に、絵である親媒体コンポーネントに渡すことになる。次に、絵は、ドロップされるテキストを、下方に、その子のうちの1つ(例えば、キャプションまたは説明文)に渡して、そのテキストを、この位置にドロップする。このようにして、ドロップされるコンテンツ・オブジェクトは、たとえ、誤った地点にドロップされても、正しい場所にルートを決め直すことができる。絵が、まだキャプションの子を持たない場合には、ドロップされるテキストのフォントは、キャプション構築の1パラメータとなることができる。
ポテンシャル・コンテンツ・オブジェクト・タイプが媒体親(この場合、受取りコンポーネントと見なされる)に渡されると、このプロセスは、ステップ554までループバックして、この新規受取り側のコンポーネントを求めてコンテンツ・ドロップ・テーブルを探し、ドロップされるコンテンツに対して可能な照合を見つける。その流れは、このようにして、可能な結果のうちの1つがステップ516に戻されるまで続く。この手順がループするために、媒体ファセットツリーのすべての親は、結果が照合か、拒否のいずれかとなるまで、照合チェックをする。
図31は、図29の照合作業のステップ516の処理結果を、さらに詳しく説明している。このステップは、照合作業の前回ステップからの結果を受け取って、その結果を処理する。第1のステップ604は、結果がドロップの試みを拒否することであったかどうか決定する。答えがイエスであれば、ステップ608において、ドロップを無視するか、または何らかのやり方で不能にし、そのあと、図29の手順が終了する。ユーザにドロップを実行できるようにしているか、あるいは、ユーザがコンテンツを構成上にドロップしようとする時にリアルタイムでドロップを不能にできる場合には、ドロップは無視される。
ステップ612は、結果が、「子のコンポーネントを生成する」であるかどうかテストする。それが結果であれば、ステップ616において、受取り側のコンポーネント用の子コンポーネントは、新規子コンポーネント用のコンテンツを提供するドロップされるコンテンツ・オブジェクトを用いて、さらにドロップ・テーブルから提供されるタイプを用いて生成される。このような状況では、新たな場所に新規コンテンツが追加されているために、これは、「配置」操作と見なされる。例えば、絵の上にテキストがドロップされる場合には、テキストを構成の絵に取り替えずに、新規のキャプションを生成できる。新規コンポーネントは、適切などんなやり方でも生成できる。例示として、構築手順は、それぞれのコンポーネント・タイプと対応づけられている。新規コンポーネントを生成するためには、そのコンポーネントのファクトリが見つけられ、コンポーネントが生成され、ドロップされるコンテンツが、新規コンポーネントと対応づけられる。新規コンポーネントはまた、その親オブジェクトからも、情報とプロパティを継承することもある。好適な実施例では、生成法は、コンポーネントのプロトタイプにより処理される。ステップ616は、配置操作として、以下で図32を参照して、さらに詳しく考察する。このステップ616が終了すると、制御は、図29のステップ520に戻る。
ステップ620は、結果が、「受取り側のコンポーネントのコンテンツを変更する」であるかどうかテストする。もし、そうであれば、ステップ624において、ドロップされるコンテンツ・オブジェクトを、受取り側のコンポーネントの現行コンテンツ・オブジェクトに渡して、そのコンテンツ・オブジェクトをコンテンツ編集として処理する。この例では、新規子コンポーネントは生成されてなくて、受取り側のコンポーネントと対応づけられたコンテンツが、変更されているか、または取り替えられている。言い替えれば、旧コンテンツは取り除かれて、新規コンテンツに取り替えられる。このステップでは、様々なタイプの編集が可能である。例えば、旧コンテンツを完全に取り替えるか、新規コンテンツを旧コンテンツに挿入するか、あるいは新規コンテンツを旧コンテンツと連結するか、いずれかである。このステップは、「取替え」操作として、以下で図32を参照にして、さらに詳しく考察する。このステップ624が終了すると、制御は、図29のステップ520に戻る。
ステップ628は、結果が、「受取り側のコンポーネントのプロパティを変える」であるかどうかテストする。もしそうであれば、ステップ632において、ドロップされるコンテンツ・オブジェクトから新規プロパティ名・値対を取り出す。例えば、現行コンテンツ・オブジェクト上に新規フォントをドロップしている時に、このような状況が発生することがある。別の例では、製品リスト・タイプのコンポーネント上にフォントがドロップされる場合には、そのサブコンポーネントが、当該新規フォントを継承する。これは、製品リスト・コンポーネント・タイプが、それ自体のテキストはまったく持たないが、そのサブコンポーネントの意志を持つからである。すなわち、これらのサブコンポーネントは、対応テキストを持つが、それ自体のテキスト・フェース・プロパティは持たない。さらに、取り出されたプロパティ名・値対は、現行プロパティに対して新たな値を単に指定するだけであるか、あるいは、現行コンテンツ・オブジェクトに対して、新規のプロパティと値も定める。さらに、これは、コンテンツの1プロパティが変更されていること、あるいは、多くのプロパティが変更されていることの、いずれかである。
次に、ステップ640では、受取り側のコンポーネントの現行プロパティは、ドロップされるコンテンツ・オブジェクトから取り出されたプロパティと値に変更する。この操作は、取り出された値を、受取り側のコンポーネントの対応プロパティに合わせることで行われる。例えば、フォント「Helvetica」を有する現行コンテンツ・オブジェクト上に、新規フォント「Times」がドロップされている場合には、取り出されたプロパティ・フォントを、現行プロパティ・フォントに合わせ、新たな値「Times」が、旧プロパティ値「Helvetica」に取って替わる。
新規プロパティ値を設定すると、デザインツリーが変更される可能性がある。
すなわち、デンザイン変更は、プロパティ値の特定の設定と対応づけられる場合がある。例えば、文書は、ページ数と、これらのページ数が表示されているかどうかを示すスタイル設定プロパティとを含むことがある。文書にページ数を添えるべきでないことを示すために、スタイル設定プロパティを変更する場合には、この文書を表すデザインツリーを変更して、ページ数を表すコンポーネントを文書から取り除くことになる。その他のプロパティやそれらの値は、同様に、デザインツリーの変更を必要とする場合がある。プロパティ値がデザインツリーの変更を示す場合には、デザインツリーは、ここで、適宜に変更される。ステップ640が終了すると、制御は、図29のステップ520に戻る。ステップ628への答えがノーであれば、他の結果をここで処理してから、制御をステップ520に戻す。
図32は、図31のステップ616またはステップ624のいずれかから呼び出される配置/取替えステップを説明している。配置/取替え操作は、新規コンテンツを構成に入れるか、あるいは、特定の編集操作により現行コンテンツを新規コンテンツに取り替えるために、使用される。ステップ654は、これが配置操作であるか、取替え操作であるかどうか決定する。配置操作は、新規コンポーネントが生成される必要がある時に使用されるが、一方、取替え操作は、一般に現行コンポーネントが再使用される時に使用される。現行コンポーネントは、そのプロパティを保存することが望ましいために、再使用されるか、あるいは、その現行コンテンツの一部が再使用される。これが配置操作である場合には、ステップ662において、新規コンポーネントが割り当てられる。新規コンポーネントは、図30のステップ554からのドロップテーブルで照合されたタイプを用いて、割り当てられる。
これが取替え操作である場合には、ステップ658において、当該システムは、ドロップ・テーブルで照合されたものと合致したタイプを有する新規コンポーネントの現行サブコンポーネントがすでにあったかどうか判定する。図32は、必要なだけの数の新規コンポーネントを生成するルーピング操作であるから、ステップ658に示される新規コンポーネントは、初めてループを通る初期受取り側のコンポーネントだけでなく、ループがさらに繰り返される任意の再使用コンポーネントもさす。ドロップ・テーブルで照合されたタイプと合致する現行サブコンポーネントは、どんなものでも適切となる。この照合は、ドロップ・テーブルにおいて最高優先順位タイプである必要はないが、高位の優先順位照合が選好される。取替え操作か、配置操作のいずれかを選択する場合には、好適な実施例では、取替え操作の方が好ましい。
再使用されることのある現行サブコンポーネントの一例は、以下の通り説明される。タイトルの付いた文書のことを考えよう。この文書では、タイトルが、ユーザでデザインされた独特のフォント・スタイルで表示されている。ユーザは、文書を取り替えるかもしれないが、タイトルは変えないようにしたいと思っている。しかしながら、新規の取替え文書は、きわめて普通のフォント・スタイルのタイトルを持っていることもある。ユーザは、あらかじめ、タイトルを独特のフォント・スタイルに変更しているために、このタイトルをずっと独特のフォント・スタイルにしておくことが望ましいであろう。この例では、独特のフォント・スタイルを保存するために、旧タイトル(またはコンポーネント)を再使用することが望ましいであろう。従って、このタイトルを独特のフォントで表す現行サブコンポーネントを再使用することになる。しかしながら、ユーザが、つねに旧フォント・スタイルを保存したいと思うか、現行のフォント・スタイルを新規フォント・スタイルに取り替えたいと思うかどうかは、デザイン選択の問題であるかもしれない。
照合するタイプを有する現行サブコンポーネントがステップ658には見つけられない場合には、ステップ662において、新規コンポーネントが割り当てられる。しかしながら、再使用される現行サブコンポーネントがある場合には、ステップ666において、可変の新規コンポーネントを、再使用されるこのサブコンポーネントに等しくなるように設定する。ステップ662か、ステップ666のいずれかが終了すると、そのあと、デザインツリー、コンテンツツリー、媒体ツリーのそれぞれを変更して、この新規のコンポーネントを挿入する必要がある(新規コンポーネントが新たに生成されるにしても、新規コンポーネントが再使用コンポーネントであるにしても)。
ステップ670では、この新規コンポーネントのデザインツリー親ポインタは、ドロップされるコンテンツ・オブジェクトを受けた元のコンポーネントを指すように設定されている。このようにして、新規コンポーネントは、元の受取り側のコンポーネントのサブコンポーネントとなる。これが、図32のループ手順を経る第1の繰返しではない場合には、この新規コンポーネントのデザインツリー親ポインタは、その直近の親(ループの前回の繰返しで生成された可能性のあるもの)を指すように設定されている。こうして、デザインツリーは、新規コンポーネントを取り入れるように変更される。次に、ステップ674では、新規コンポーネントのデザインツリー親ポインタは、ドロップされるコンテンツ・オブジェクトを指すように設定されている。これが、図32のルーピング手順を経る第1の繰返しではない場合には、この新規コンポーネントのコンテンツ親ポインタは、ドロップされるコンテンツ・オブジェクトの、次のコンテンツ・サブオブジェクトに設定されることになる。格納階層の点から、新規コンポーネントは、ドロップされるコンテンツ・オブジェクトに包含される。このようにして、コンテンツツリーは、ドロップされるコンテンツ・オブジェクト(または、次のコンテンツ・サブオブジェクト)を含むように、更新される。
次に、ステップ678において、新規コンポーネントの媒体ツリー親ポインタは、ヌルに設定され、また新規コンポーネントの全媒体ファセットは、割当無しに設定される。この媒体親ポインタをヌルに設定して、新規コンポーネントがレイアウトの中のどこに現れるか、デザイン・ファセット親に決定または計算できるようにするが、一方、媒体ファセットは割り当てられない。次に、新規コンポーネントを表現する試みが、レイアウトの変更を起こし、その結果、新規コンポーネント向けのスペースが割り当てられる。3つのツリーが更新されると、新規コンポーネントが初期設定される。ステップ682では、新たに割り当てられたコンポーネントに対して、初期設定手順が実行される。この初期設定手順は、再使用されたコンポーネントではなく、割り当てられたコンポーネントに対して実行される。一般に、初期設定手順は、コンポーネントのプロパティを、そのデフォルト値に設定する。
ここで、図32のルーピング手順では、この手順は、ドロップされるコンテンツ・オブジェクト内に含まれるあらゆるサブストラクチャのウォークを実行して、これらのサブオブジェクトに一致するコンポーネントを生成する態勢を整えている。ドロップされるコンテンツ・オブジェクトがサブストラクチャを含まない場合には、この配置/取替え操作が終わり、制御が図29のステップ520に戻される。しかしながら、ドロップされるコンテンツ・オブジェクトが実際にサブストラクチャを含むことが、ステップ686で判定された場合には、この配置/取替え操作は、ドロップされるコンテンツ・オブジェクト内のサブオブジェクトのそれぞれに対して、コンポーネントを割り当てるか、または再使用するために、ルーピング操作を実行する。例えば、簡単なイメージでは、サブストラクチャはなく、操作は終了する。しかしながら、図6に示される構造化コンテンツ80では、新規コンポーネントは、タイトル、小見出し、本体テキストのそれぞれに対して割り当てられるか、または再使用される。構造化テキストは、サブストラクチャを有するコンテンツ・オブジェクトの一例である。サブストラクチャがある場合には、ステップ690において、ドロップされるコンテンツ・オブジェクトの、次のコンテンツ・サブオブジェクトが取り出される。次に、ステップ694において、配置/取替え操作は、ステップ654までループバックすることにより、再び呼び出される。取り出された次のコンテンツ・サブオブジェクトは、次のコンテンツ・オブジェクトとして配置/取替え操作に渡され、また新規コンポーネント(新たに割り当てられたコンポーネントか、再使用されるコンポーネントのいずれか)は、受取り側のコンポーネントに代わって、配置/取替え操作に渡される。
図19〜図21の例は、図32のこの状況を例示するために使用される。取り入れられたワープロ・コンテンツ292が、最初に、空テキスト領域286上にドロップされる時に、図21のテキスト・フローのコンポーネントは、受取り側のコンポーネントと見なされ、また新たに生成されたコンポーネントは、タイトル「キルロイは誰であったか?」を表すテキスト段落である。配置/取替え操作を経る第2の繰返しでは、ドロップされるコンテンツの、次のコンテンツ・サブオブジェクトは、第1の小見出し「かって、ここで」であり、また受取り側のコンポーネントに代わるコンポーネントは、ちょうど割り当てられたコンポーネント、すなわちタイトル「キルロイは誰であったか?」を表すテキスト段落のコンポーネントとなる。このようにして、図32のルーピング手順は、図19のワープロ・コンテンツ288で見つけられた構造化コンテンツのすべてを、デザインツリー、コンテンツツリー、媒体ツリーの適切な場所に収めることができる。ドロップされるコンテンツのサブオブジェクトのすべてが、配置されているか、または取り替えられている時には、このルーピング手順はステップ686後に終了し、図29のステップ516が終わって、制御がステップ520に戻される。
次に、図33は、図29のコンテンツ・媒体適合ステップ520を説明している。ここで図29では、構成に新規コンテンツが追加されている。ただし、ほとんどの媒体が、何らかの意味で制限されている(すなわち、紙媒体は、一定のページ数に限定される場合がある)から、情報を媒体に収めるために、構成のコンテンツ、デザイン、または媒体をいずれか調整し直すことが必要であるかもしれない。この情報は、多種多様なやり方で、所望の媒体に収まるように調整される場合がある。例示として、利用できる媒体にコンテンツを収めることができるように、デザインを調整し直すことがある。もう1つの方法としては、媒体にコンテンツを収めることができるように、媒体を調整することがある。すなわち、媒体を伸ばすことがある。すなわち、文書のページ数が変更されるか、あるいは、媒体区分を計算することで、別のレイアウトが決定される。さらに、画成された媒体領域に収まるように、何らかのやり方でコンテンツ自体を調整することもある。例えば、全部を1ページに収めるように、フィラーイメージを、さらに大きいストック・イメージからクリップすることがある。これらの技法はどれも、単独で使用されるか、あるいは他の技法とともに使用されることを認識しなければならない。ステップ520は、コンテンツとデザインを調整することにより、構成の情報を媒体領域に収める方法を説明している。
構成に新規コンテンツが追加されると、使用可能な媒体に、構成の全部のコンテンツを収めるように、そのコンテンツを調整しなければならない様々な理由がある場合がある。例えば、テキストの1ページがほぼいっぱいであって、かつ絵をこのページ上にドロップする場合には、この絵のために新規コンポーネントを生成するために、デザインツリーが変更されることになる。このような状況では、デザインツリーとコンテンツツリーが変更されるだけでなく、媒体ツリーも、その新規領域が、新たにドロップされる絵に対して、計算されることになる。別の例では、追加のテキストだけが、テキストの1ページ上にドロップされる場合には、デザインツリーは、変更されないであろう。なぜなら、現行テキストが、単に取り替えられているにすぎず、またデザインツリーでは、新規コンポーネントを生成する必要がなくなるからである。しかしながら、新規テキストを追加すると、デキストの本体が2ページ目にはみ出る場合には、新規ページを作成して、新規ページ用の新規テキスト・コンポーネントを、デザインツリーの中に生成する。さらに、媒体ツリーは、第2ページ上に新たに追加されたテキストの領域を計算する。同様に、テキストの1ページに追加された絵で、テキストが2ページ目に押し出されることがある。このような状況のすべてにおいて、ツリーのうちの1つ、2つ、または3つが変更されており、また、利用できる媒体に合うように、レイアウトを調整し直さなければならない。
一般に、コンテンツ・媒体適合のステップは、各コンポーネント要素のレイアウトを必要とする。コンテンツ・媒体適合は、デザインツリーを上から下にたどってゆき、必要に応じて、デザインツリーの中の現行コンポーネントの間に新規媒体コンポーネントを生成することにより、スタートする。最適化では、部分ツリーだけを計算する必要があるかもしれない。ツリーを下にたどる途中で現行媒体コンポーネントについて仮領域を計算し、また再帰的アルゴリズムがツリーをたどってポップ・バックアップする時に、これらの仮領域が、最終領域と取り替えられる。特定のレイアウトが合わない場合には、各コンポーネント・タイプを調整するために、グローバルな基準倍率が使用される。
第1のステップ704では、コンテンツ基準倍率のすべてを、公称値に初期設定する。利用できる媒体にコンテンツのすべてを収めるのに役立つように、特定のタイプのコンテンツをどのように拡大または縮小することができるのか示している。多種多様な基準倍率を使用できる。一実施例では、各タイプのコンテンツに対して、1つ基準倍率を使用する。言い替えれば、各タイプのコンテンツ(例えば、テキストまたはグラフィックス)は、このコンテンツ・タイプのすべてのコンテンツ項目を拡大するか、あるいはそのコンテンツ・タイプのすべてのコンテンツ項目を縮小するために、特定の率で調整することができる。さらに、各コンテンツ項目に対応しているコンテンツ基準倍率があること、あるいは基準倍率が、コンテンツ項目やコンテンツ・タイプのどんな並べ換えにも適用されることも考えられる。さらに、基準倍率は、タイプによるコンテンツの拡大縮小に影響を及ぼすことに加えて、むしろ特定のデザイン・コンポーネント、または媒体内の特定領域をさすこともある。好適な実施例では、タイプ・テキストのコンテンツ用のコンテンツ基準倍率、タイプ・グラフィックスのコンテンツ用の基準倍率、不透明コンテンツ基準倍率(OLE埋め込みオブジェクトなどのオブジェクト用)、ホワイトスペース基準倍率、重なり基準倍率、レイアウト・プレッシャー基準倍率がある。初めに、以上のコンテンツ基準倍率は、公称値に設定される。例えば、各基準倍率は100%に設定される。
コンテンツ基準倍率が初期設定されると、ステップ708では、媒体ツリーは、構成の根からスタートして計算される。媒体ツリーは、デザイン・コンポーネント間に新規の媒体コンポーネントを生成するため(必要に応じて)、また現行および新規の媒体コンポーネントのそれぞれに対して媒体領域を計算するために、デザインツリーに織り込まれているデザイン階層を媒体ツリーに渡し、このデザインツリーをたどってゆくことにより、計算される。このステップ708は、デザインツリーの各コンポーネントを独自に要求する再帰的ステップである。このステップが完了すると、各コンテンツ項目は、使用可能な媒体の中で、どれくらいのスペースをコンテンツが用いるのかを示す対応範囲(すなわち、画成された領域)を持つことになる。このステップ708は、以下で図34を参照して、さらに詳しく説明される。
さらに、媒体ツリー計算ステップ708は、媒体ツリーのあらゆる子孫の総合範囲を含む全体の豊富な範囲情報も戻す。この情報が戻されると、当該システムは、文書が、使用可能な媒体に収まる(全体的であろうとなかろうと)かどうかを知り、さらに特定のコンポーネントがまったく合わないかどうかも知ることになる。すなわち、戻される情報は、特定の葉コンポーネントが合わないかどうかを示し、もし合わなければ、どの程度合わないかも示すことになる。
次に、ステップ712は、コンテンツが、使用可能な媒体に十分ぎっしりと収まっているかどうか判定する。コンテンツがぎっしりと収まっている場合には、制御が図29のステップ524に移り、コンテンツの調整は必要でない。しかしながら、コンテンツが十分ぎっしりと収まっていなければ、コンテンツを調整して、それが、使用可能な媒体に収まるようにすることができる。コンテンツが、使用可能な媒体の上方にある場合(上方適合)には、コンテンツは収まっていないと定められる。コンテンツが、使用可能な媒体の下方にある場合(下方適合)には、コンテンツは収まるが、ただし、特定のデザインにより、できる限り多くの使用可能な媒体にコンテンツを詰め込むように求められている場合には、この限りではない。この状況では、使用可能な媒体に、さらにぎっしりと収めるように、コンテンツを拡大することができる。さらに、「十分ぎっしりと」の意味を定めるために、いくつかのしきい値が用いられる。「余り」媒体しきい値は、コンテンツが下方適合である場合に、どのくらい余分の媒体が許容できるか示すものとして定義できる。さらに、「時間・回数」しきい値は、このプロセスが、コンテンツを媒体に合わせるのに、どのくらいの時間または何回、試みたか示す目的でも使用できる。その他のしきい値も使用できる。コンテンツが収まらない場合には、この流れは、ステップ716に進む。
ステップ716では、全体の構成に対して、各コンテンツ・タイプの適合カルプリットを計算する。言い替えれば、このステップは、どのタイプのコンテンツが、総合上方適合または総合下方適合に寄与するか決定する。不適合に寄与する各コンテンツ・タイプでは、そのコンテンツ・タイプが寄与する程度を示す値(例えば、パーセントまたは絶対単位で)が与えられる。適合カルプリットは、各媒体コンポーネントの媒体区分を参照して決定される。例えば、対応するテキスト本体の隣りに配置されている絵が、さらに縦方向のスペースを占有する場合には、テキスト、次に絵は、特定の局限領域用の適合カルプリットであると判定される。これに反して、テキスト領域が、その隣りにある絵よりもずっと長い場合には、テキスト領域は、局所適合カルプリットであると判定される。なぜなら、このテキスト領域は、絵よりもずっと、構成の上方適合の方に寄与しているからである。それゆえ、縦媒休区分では、一般に、この縦区分内のコンポーネントのうちの1つだけが、適合カルプリットであると判定される。
横媒体区分(ここでは、領域が横線で区分される)では、横区分内のコンポーネントの1つまたは全部が適合カルプリットであるかもしれない。例えば、絶対適合を使用する横媒体区分では、テキスト本体が絶対領域を完全に満たさない場合には、このテキスト本体は、全体の領域を満たしていないから、適合カルプリットではない。しかしながら、絶対領域を完全に満たす別のテキスト本体は、適合カルプリットであると判定される。同様に、正確適合を使用する横区分では、この領域に正確に収まるコンポーネントはすべて、その領域を完全に満たし、かつ余分のスペースをまったく残しておかないから、適合カルプリットと見なされる。
以上の適合カルプリットはすべて、局所レベルで計算される。しかしながら、子は局所適合カルプリットであるが、もし親が適合カルプリットでなければ、この局所適合カルプリットは無意味であると言えるかもしれない。例えば、縦区分においては、一群の絵が縦区分の左部分を占有し、またテキストが右部分を占有する場合には、この一群の絵のどれも、左側で局所適合カルプリットであると判定される。しかし、この一群の絵が、全体として、右側の対応するテキスト本体よりも小さい縦スペースを占有している場合には、テキストは、この一群の絵ではなく、前記領域に対して適合カルプリットと見なされる。
一実施例では、このステップは、媒体ツリーに沿って行くことにより、また媒体区分を見て局所適合カルプリットを判定し、その局所適合カルプリットが高位まで沸き上げられるかどうか判定することにより、実行される。このステップの結果は、各コンテンツ・タイプが、上方適合(または下方適合)に対して、どの程度役割を負っているか示す値である。例えば、コンテンツが5インチだけはみ出る単一ページ紙媒体では、このステップの結果は、全体として、テキスト・コンテンツが2インチだけはみ出ることと、グラフィック・コンテンツが3インチだけはみ出ることを示す値を戻すことができる。各コンテンツ・タイプに対して、上方適合または下方適合の大きさが計算されると、制御は、ステップ720に移る。
ステップ720では、各コンテンツ・タイプに対してコンテンツ基準倍率を計算し直す。このステップは、コンテンツ基準倍率の1つ、多数、または全部を変更する。このステップの目的は、コンテンツを上向きに、または下向きに調整して、その結果得られたコンテンツを、使用可能な媒体に収まるように最適化することにある。ある意味では、媒体ツリー計算ステップ708は、いくぶん、様々なコンテンツ基準倍率を入力するブラックボックスと見なされる。ステップ720は、特定のやり方で、以上の基準倍率を調整して、媒体ツリー計算ステップ708から、別の結果を得る。所望の結果は、ステップ712で決定される通り、可能な限り十分ぎっしりと収められたということである。ステップ720は、各コンテンツ・タイプの上方適合または下方適合、現行の適合の精度、前回適合作業の精度、用いられた前回コンテンツ基準倍率、現行コンテンツ基準倍率などの様々な入力を考慮に入れている。ステップ720は、様々なやり方で実行される。このステップは、非線形不連続関数用の関数マキシマイザにより、行われる。
例示として、このステップは、擬似アニーリング技法か、または汎用アルゴリズムなどの他の技法を用いて行われる。このステップを行う1技法は、以下で、図36を参照して、さらに詳しく考察する。
ステップ720において、各コンテンツ・タイプについて、コンテンツ基準倍率が計算し直されると、図33の手順は、ステップ708にループバックして、そこで、媒体ツリーが、新規コンテンツ基準倍率を用いて構成の根から、再び計算される。この手順は、コンテンツが、使用可能な媒体に十分にぎっしりと収まるとステップ712が判定するまで、上記のやり方でルーピングを続ける。
図34は、図33の媒体ツリー計算ステップ708を説明している。このステップは、手順がデザインツリーを下にたどってゆくと、デザインツリーの中の各コンポーネントに対して再帰的に呼び出される。デザインツリーをたどってゆく時には、特定のコンポーネントが地理的にページ上にあって、また当該コンポーネントがデザイン階層内に現れるコンテンツは、当該コンポーネントのレイアウト・オプションに影響を及ぼす。
第1のステップ754は、現行コンポーネントがプリミティブであるかどうかテストする。このテストは、この再帰的手順の終了状態として使用される。コンポーネントは、一般にイメージ、テキスト、またはデータなどのコンテンツが入っている葉ノードである場合に、プリミティブ(またはアトミック)である。コンポーネントがプリミティブである場合には、ステップ758において、当該コンポーネントを測って、その範囲を戻す。このようにして、再帰的にデザインツリーをたどってゆくと、葉ノードに到達した時に、その範囲が、後方にその親まで戻されて、親がそれ自体の範囲を計算できるようにする。
コンポーネントの範囲は、媒体において、当該コンポーネントで占有されているN次元スペースである。例えば、紙ページなどの二次元媒体では、コンポーネントの範囲は、そのX座標とY座標、および、幅と高さである。VRML媒体では、コンポーネントの範囲は、前述のものであり、さらに奥行きと向きを含む場合もある。従って、コンポーネントの範囲は、様々な情報を含み、コンテンツを表現する媒体によって決まる。さらに、コンポーネント用に戻される範囲情報には、コンポーネントがその割当て領域に収められるかどうか、また、もし収められなければ、それがどの程度、上方適合または下方適合となるかについての情報も含められる。コンポーネントの範囲は、一般に、「一定幅」や「一定高さ」などのプロパティによって決まる。例えば、イメージのプロパティにより、そのイメージが一定幅でなければならないことが決定されると、次に、そのプロパティに基づいて、イメージが、特定の領域に収まるようにそれ自体を調整する。すなわち、イメージは、その縦横比を保って、その領域に収まるように、自動的にその高さを調整する。コンポーネントの範囲に影響を及ぼす他のプロパティは、テキストの縦横比変更の許容差、視覚的な装飾(縁取り、フレームなど)、向き、文字間、行間、または段落間の間隔、および、ユーザ仕様(例えば、対話形式で、さらに大きい、または小さいサイズを割り当てる)である。
次に、ステップ762では、この手順は、現行コンポーネントのあらゆるデザイン子を識別することにより、デザインツリーの奥行き優先探索を続ける。これは再帰的手順であるので、このステップは、デザインツリーの各ノードに対して実行される。このステップでは、以下のステップ770で説明される通り、現行コンポーネントと、その直近デザイン子との間に、新規の媒体コンポーネントを生成できるように、現行コンポーネントの直近デザイン子だけが特定される。
次に、ステップ766では、ユーザ・デザイン選択、構成のコンテンツ、デザインツリーのアスペクトなどに基づいて、仮レイアウト・オプションが選択される。特定のデザイン選択では、多くの異なるレイアウト・オプションが可能となる。この仮レイアウト・オプションは、様々なファクタに基づいている。例えば、ユーザ・デザイン選択は、この構成に対してユーザが選択した初期デザインである。この初期デザイン選択は、どのレイアウト・オプションが選ばれるか影響を及ぼす。さらに、この構成のコンテンツは、特定のレイアウト・オプションを決定できる。例えば、きわめて縦に細長い絵、非常に幅の広い絵、またはきわめて短いテキストでは、特定のレイアウト・オプションが、特定のコンテンツには、さらに適切であることが示される。さらに、親コンポーネントのプロパティは、特定のレイアウト・オプションを示すことができる。例えば、親コンポーネントのプロパティから、どんな子の絵も、できる限り幅を広くすることが決定される。
このコンテンツの他の面が、レイアウト・オプションにも影響を及ぼすことがある。例えば、新規製品は、特定の構成に追加されていてもよく、あるいは、カラムが多すぎる場合には、カラムは、カラムからロウに変える必要がある。さらに、非常に小さいキャプションおよび説明文は、非常に縦に細長いイメージの右側にはふさわしくなく、またデザインをさらに対称的にするために、適切な方法としてイメージの下に置くこともある。仮レイアウト・オプションを選択するこのステップは、最適なオプションを選択することにより、当該システムで自動的に実行される。もう1つの方法としては、レイアウト・オプションをいくつでもユーザに与えることができ、ユーザは、好みで特定のオプションを選択できる。
次に、ステップ770では、現行コンポーネントと、現行コンポーネントのあらゆる直近デザイン子との間に、必要に応じて、新規媒体コンポーネントを生成する。このステップの目的は、新規媒体コンポーネントを生成し、これらの新規媒体コンポーネントと、それらの親および子との間にリンクを形成することにより、デザイン・コンポーネント間に媒体ツリーの一部を生成することにある。デザイン・コンポーネント間の新規媒体コンポーネントの一例は、図23dに見られる。この図では、最上位デザイン・コンポーネントの製品は、デザイン子コンポーネントの絵、名称、本体を持っていることがわかる。しかしながら、この構成用の媒体ツリーは、最上位コンポーネントの製品と、その子の名称および本体との間にリンクを直接には形成しない。媒体領域は、構成の右側に割り当てられるから、テキストエリアの標識を付けた新規媒体コンポーネントを、製品のコンポーネントと、そのデザイン子コンポーネントの名称および本体との間に生成する。
これらの新規媒体コンポーネントが、ステップ770に生成されると、ステップ774では現行コンポーネントから新規媒体コンポーネントを経て現行コンポーネントのデザイン子までに、所要の媒体ツリーリンクのすべてが形成される。例えば、新規媒体コンポーネントのテキストエリアが図23dに示される通りに生成されると、このテキストエリアは、その親コンポーネントの製品にも、またその子の名称および本体にもリンクされる。このようにして、媒体ツリーは、デザインツリーを下にたどりながら、媒体ファセットの使用を通じて、生成され構築される。
以上の新規媒体コンポーネントが生成されてリンクされると、ステップ778では、媒体区分プロパティを含む仮レイアウト・プロパティが、現行コンポーネントにも、新規媒体コンポーネントにも割り当てられる。これらの仮レイアウト・プロパティは、ステップ766において選択された仮レイアウト・オプションに一部、基づいている。割り当てられた媒体区分プロパティには、媒体区分タイプ(例えば、一様、二様など)を選択することと、「縦」、「横」、「適合」、または「スワップ」などの媒体区分プロパティをどれでも設定できることが含まれる。仮レイアウト・プロパティを割り当てるステップには、これらの媒体区分プロパティを設定することだけでなく、その子のレイアウトに影響を及ぼす現行コンポーネントの他のどんなプロパティも設定できることも含まれる。
現行コンポーネントとその子媒体コンポーネントに対して、これらの仮レイアウト・プロパティが割り当てられると、現行コンポーネントの媒体区分プロパティを求めることが必要である。言い替えれば、現行コンポーネントの範囲を計算するために、各子の範囲を計算する必要がある。現行コンポーネントの媒体区分プロパティを求めるこのステップ782は、様々なやり方で実行できる。例示として、このステップを実行する1技法は、以下で、図35を参照して、さらに詳しく考察する。ステップ782を実行した結果は、現行コンポーネントの範囲を戻すこととなる。このステップの目的は、現行コンポーネントの媒体コンポーネント子を見ることと、現行コンポーネントに割り当てられたレイアウト・プロパティにより、特定の媒体区分(または、領域)を媒体コンポーネント子に割り当てることにある。現行コンポーネントの媒体区分プロパティを求めることにより、このプロセスは、現行コンポーネントとそのデザイン子との間でレイアウトを決定する。ただし、デザイン子のレイアウトは、それらの子をどのようにしてレイアウトするのかに基づいて、一部決定されるから、このステップは、最後には再帰的に手順「媒体ツリー計算」(図34)を呼び出すことになる。
ステップ782が完了すると、ステップ786は、この総合レイアウトが適切であるかどうか判定する。このレイアウトが適切である場合には、制御を図33のステップ712に戻して、コンテンツが、使用可能な媒体に十分にぎっしり収まるかどうか判定する。しかしながら、レイアウトが適切でないと判定される場合には、この手順がステップ766までループバックして、別の仮レイアウトを選び、必要に応じて、新規媒体コンポーネントを生成しリンクするようにしている。
このレイアウトは、多種多様なファクタにより、ステップ786において適切であるか、あるいは適切でないか判定される。例示として、様々なファクタは、適合性を決定するのに役立ち、それぞれ別々に加重することができる。これらのファクタには、選ばれたデザインに対する特定レイアウト・オプションの適合性、コンテンツが本来のデザイン目的に一致する場合に、コンポーネントの範囲が、使用可能な媒体にどの程度うまく収まるかということ、コンポーネントの媒体区分のプロパティ、試用された代替レイアウト・オプションの数、適切なレイアウト・オプションの選択にかかった時間、特定媒体に対するレイアウト・オプションの適合性、考慮されるレイアウト・オプションのすべての中で、特定レイアウト・オプションがどのように位置しているかということ、がある。レイアウトの適合性を判定するために、他のファクタも考慮に入れられる。
図35は、図34の媒体区分解決ステップ782を説明している。この図は、媒体区分を求める技法の一実施例を説明している。このステップは、現行コンポーネントを取り上げて、その直接の子についてのみ媒体区分を計算する。言い替えれば、これは、媒体区分のプロパティを求める特定の数値アルゴリズムである。親コンポーネントと、その子コンポーネントとの関係の抽象表現を使う他の技法が利用できる。
第1のステップ804では、現行コンポーネントの直接媒体子がそれぞれ、決定される。ステップ808では、仮媒体領域は、現行コンポーネントのレイアウト・プロパティに基づいて、さらに現行コンポーネントに割り当てられた媒体領域に基づいて、各媒体子に割り当てられる。仮媒体領域は、以下のステップ816で調整されるから、割り当てられる。一実施例では、現行コンポーネントと特定の関係にある特定の矩形媒体領域が、媒体子に対して割り当てられる。例えば、二様の縦媒体区分では、ある子には、現行コンポーネントの媒体領域の左側部分が割り当てられ、また第2の子には、その右側部分が割り当てられる。
媒体領域が各媒体子に割り当てられると、ステップ812において、図34の手順「媒体ツリー計算」が、各媒体子コンポーネントに対して、呼び出される。この手順は、再帰的に呼び出され、各子の範囲を戻す。この再帰的呼出しは、奥行き優先方式で行われる。このようにして、仮媒体領域は、その手順がデザインツリーを下にたどる時に媒体子に割り当てられ、また当該手順が、デザインツリーをたどって再帰的にポップ・バックアップする時に、各子の実際の範囲が戻される(図34の終了ステップ758で計算される通り)。各子のこれらの実際の範囲が戻されると、特定の媒体コンポーネントに、最終媒体領域が割り当てられる。ステップ816では、戻された各子の範囲に基づいて、現行コンポーネントの各媒体子に最終媒体領域が割り当てられる。
ステップ820は、現行コンポーネントの媒体区分で与えられた制約条件が満たされるかどうかテストする。ステップ816において、各子の媒体領域が変更されたかもしれないから、上記の媒体区分の制約条件を、再度、チェックしなければならない。例えば、イメージが、その割り当てられたスペースには大きすぎ、また当該イメージに対して、さらに大きい嵌め込みスペースが与えられた場合には、そのイメージの下方または上方の他のコンポーネントに対するスペースを計算し直すことが必要であるかもしれない。別の例では、会社レターヘッド用のアドレスは、それがページの下端にフッタとして付けられている場合には、予想される以上に高い位置に付けられたかもしれない。もしそうであれば、このフッタより上の領域を計算し直す必要があるかもしれない。これらの制約条件が満たされない場合には、この手順は、ステップ808までループバックして、各媒体子に対して、新規の仮媒体領域を割り当てるようにする。
しかしながら、これらの制約条件が満たされる場合には、ステップ824において、直接媒体子すべてからの媒体範囲は、現行コンポーネントの範囲を決定するために組み合わされる。言い替えれば、現行コンポーネントの子で占有される領域が決定されると、この現行コンポーネントで占有される総合領域を決定することが可能である。例えば、製品領域に、絵および本体テキストが入っている場合には、まず最初に、絵および本体テキストが必要とするスペースの大きさを決定して、全体の製品にどれくらいのスペースを割り当てなければならないか決定する必要がある。現行コンポーネントの範囲が決定されると、当該現行コンポーネント用の媒体区分の値を求めるこのステップが終了し、制御を、図34のステップ786に戻す。
このステップ824は、現行コンポーネントの直接媒体子すべてからの範囲を全部組み合わせることを含む。また、各媒体子が、その媒体子からの範囲の知識を含むから、このような豊富な範囲情報はすべて、この手順が再帰的にポップ・バックアップする時に、組み合わされる。言い替えれば、現行コンポーネントの範囲を決定するためには、あらゆる子孫からの範囲の知識が利用される。このような豊富な範囲情報は、子のサイズに関する情報に加えて、その子が所定の領域に収まるかどうかについての情報も含む。従って、現行コンポーネント向けの豊富な範囲情報は、現行コンポーネントに割り当てられる領域が十分であるかないかについての知識を含む。
図36は、図33のコンテンツ基準倍率再計算ステップ720を説明している。このステップの目的は、コンテンツの上方適合または下方適合に寄与する各コンテンツ・タイプの相対カルパビリティを考慮に入れることと、より良い適合を達成するために、各タイプのコンテンツ基準倍率を適正な規模にし直すことにある。第1のステップ854では、この手順に対して、様々なパラメータを入力する。これらのパラメータには、現行コンテンツ基準倍率、現行総合適合(上方適合または下方適合と、程度)、すべてのコンポーネント向けの豊富な範囲情報、各コンポーネントの全過失性(例えば、各タイプの超過インチ数)、用いられた前回の基準倍率、前回の適合結果がある。次に、ステップ858では、現行適合が、最適適合と比較される。現行適合が、使用可能な媒体には小さすぎる場合には、制御はステップ862に移るが、一方、現行適合が大きすぎる場合には、制御はステップ866に移る。
ステップ862の結果に基づいて、コンテンツ基準倍率は、様々なやり方で調整される。例えば、現行適合が小さすぎ、また前回の適合もまた小さすぎた場合には、これは、コンテンツ基準倍率が、前回上方に調整されたが、上げ幅が十分でなかったことを示す。従って、ステップ870では、コンテンツ基準倍率が、事前設定値だけ、もう一度、上方に調整される。この事前設定値は、コンテンツ基準倍率のすべてを調整するか、あるいは1つずつ別々に調整するのに適切な数値であればどんなものでもよい。ある最適化では、下方適合が、その領域の90%以上である場合には、事前設定値以外のものを用いて基準倍率を上方に調整するために、入力パラメータに基づいて、情報による推測が利用できる。これらの基準倍率を調整するために、他の発見的方法も利用できる。例えば、デザイン選択により、イメージは、コンテンツを小さくする必要がある場合にはテキストよりも縮小することができるが、一方、テキストは、コンテンツを大きくする必要がある場合にはイメージよりも拡大することができる。さらに、一実施例では、テキストとグラフィックスの基準倍率は、テキスト・コンテンツが寄与し、またグラフィックス・コンテンツが寄与する上方適合のパーセントにより、テキストか、グラフィックスのいずれかの不必要な縮小を避けるために、別々に調整することもできる。一実施例では、新規テキスト基準倍率と新規グラフィック基準倍率を決定するために、公式を使用できる。例えば、新規テキスト基準倍率=(パーセント・テキスト)/((パーセント・テキスト)2+(パーセント・グラフィックス)2)であるが、一方、新規グラフィックス基準倍率=(パーセント・グラフィックス)/((パーセント・テキスト)2+(パーセント・グラフィックス)2)である。この公式では、パーセント・テキストとパーセント・グラフィックスは、総合適合に寄与するこれらのコンテンツのそれぞれの割合(それぞれ、どれくらいの適合カルプリットであるか)をさす。
また一方では、現行適合が小さすぎるが、前回適合が大きすぎた場合には、これは、このコンテンツ基準倍率が、前回小さくされたが、それも大幅に小さくされたことを示している。この場合、ステップ874では、コンテンツ基準倍率は、前回基準倍率までの中点に上げて調整し直される。ステップ870か、ステップ874のいずれかが終了した後で、制御を図33のステップ708に戻す。
ステップ866、ステップ878、ステップ882は、ステップ862、ステップ870、ステップ874と同様なやり方で、実行される。例えば、ステップ866の結果に基づいて、コンテンツ基準倍率は、様々なやり方で調整される。例えば、現行適合が大きすぎ、また前回の適合もまた大きすぎた場合には、これは、コンテンツ基準倍率が、前回下方に調整されたが、下げ幅が十分でなかったことを示す。従って、ステップ878では、コンテンツ基準倍率が、事前設定値だけ、もう一度、下方に調整される。これらの基準倍率は、ステップ870に関して説明されたものと同様なやり方で、下方に調整される。
また一方では、現行適合が大きすぎるが、前回適合が小さすぎた場合には、これは、このコンテンツ基準倍率が、前回大きくされたが、それも大幅に大きくされたことを示している。この場合、ステップ882では、コンテンツ基準倍率は、前回基準倍率までの中点に下げて調整し直される。ステップ878か、ステップ882のいずれかが終了した後で、制御を図33のステップ708に戻す。
図29〜図36は、新規コンテンツを構成に追加する技法の一実施例を説明している。次に、図37は、構成に新規デザインを選ぶ技法を説明しているが、一方、コンテンツと媒体は変わらない。例えば、文書用の1デザインは目次を含むが、一方、別のデザインは目次を含まない。目次を必要とする新規デザインが選択される場合には、その新規デザインは、目次コンポーネント、新規タイトルページ・コンポーネント、目次と文書の他の部分との間のリンクを有する。このようなデザイン変更が、コンテンツ変更や媒体変更に無関係に行われても、あるいは、コンテンツ変更や媒体変更といっしょに行われてもよいことが認識されること。
構成に新規デザインを選ぶこの手順は、ステップ902で新規デザインを選ぶことからスタートする。この新規デザインは、ユーザ・インタフェースを用いて現行デザインを変更することで選択されるか、あるいは、ユーザが、当該システム内のデザインのカタログから、1デザインを選択するか、いずれかである。例えば、ユーザは、現行の横書き形式でなく、パンフレット用の縦書き形式を選択することができる。もう1つの方法として、他の実施例では、当該システムは、様々な基準に基づいて、ユーザ向けのデザインを自動的に選択できる。
ステップ904では、構成のコンテンツツリーとデザインツリーの双方の表現は、当該システム内の一時記憶場所に保存される。これらのツリーは、当業者により認識されるような、適切などんなやり方でも保存できる。このようにして、コンテンツ要素は、コンテンツ要素向けのデザイン・プロパティも利用できる対応するコンポーネントといっしょに保存される。
次に、ステップ908では、ユーザが選ぶ新規デザイン記述は、システム・カタログから受け取る。デザインのシステム・カタログに入っているデザインは、標準デザインであるか、あるいは、ユーザが前に生成して、保存したカスタム・デザインである。新規デザイン記述は、いくつかのコンポーネントを有する根を含むか、あるいは、単に根のコンポーネントにすぎないか、いずれかである。この新規デザインは、様々なプロパティのために、あるいは、様々なドロップ・テーブルが使用されるために、異なるように見える場合がある。例えば、この新規デザインの根は、サブコンポーネントのすべてが継承する様々なプロパティが定められている可能性がある。同様に、最初に根に結び付けられたコンポーネントはどれも、特定のプロパティと値が割り当てられている可能性がある。さらに、根(または、そのコンポーネントの任意のもの)は、旧デザインで用いられるものとは別のコンテンツ・ドロップ・テーブルを利用する場合がある。このようにして、新規デザインは、旧デザインとは異なるように見える場合がある。
次に、ステップ912では、構成のデザインツリーは、新規デザイン記述を用いて再保存される。このステップでは、新規デザイン記述を用いて、新規デザインツリーを形成する。すなわち、新規デザインツリーの根(および、この根の任意のサブコンポーネント)は、現行デザインツリーとして、構成に織り込まれる。ここで、この構成(ただし、これがまさに根であることもある)向けに、デザインツリーがあるが、ただし、コンテンツは追加されていない。
この構成のデザインツリーが再保存されると、ステップ916では、保存されたコンテンツツリーからの保存コンテンツを、再保存された構成に戻して収める。この保存コンテンツは、どんな適切なやり方でも、構成に再保存される。例示として、保存コンテンツは、コンテンツをドロップするシミュレーションにより、新規デザインツリーに追加される。すなわち、保存コンテンツは、新規デザインツリーが入っている構成上にドロップされる。このように、構成上にコンテンツをドロップする操作は、図29〜図32で考察される通りに実行される。さらに、旧ユーザ文書設定を保存するために、最適化が実行される。例えば、旧デザインツリーの中の特定コンポーネントのオーバライド・プロパティが、同一コンテンツと対応づけられる新規コンポーネントに用いられる。
この最適化は、以下のやり方で行われる。コンテンツが新規デザイン上にドロップされている時に、このコンテンツ用に、新規コンポーネントが生成される。例えば、パンフレットからの製品には、その新規コンポーネントが生成される。また、特定のコンテンツ項目が、旧デザインツリーからのデザイン・コンポーネントと対応づけられているために、このコンポーネントの旧デザイン・プロパティ(そのコンテンツ項目に用いられる)が、検査に利用できる。例示として、コンテンツは、図6、図18、図21に示される通りに、あるいは、他の技法を用いて、デザインツリーコンポーネントと対応づけられる。言い替えれば、コンテンツツリー(コンテンツがドロップされている時)をたどってゆくことにより、なお旧デザイン・コンポーネントおよびプロパティを利用できる。生成された新規コンポーネント(製品)が、旧コンポーネント(製品)と同一タイプである場合には、旧コンポーネント向けのオーバライド・プロパティがすべて、新規コンポーネントに移される。このようにして、あるコンポーネント用の局所プロパティ・オーバライド(特定のコンテンツ項目に用いられる)が保存される。
ユーザが製品用の横書き形式から縦書き形式に切り換えているパンフレットの例を考えてみる。第1の製品は、局所的に設定された強調プロパティを持つことができ、このプロパティは、文書プロパティを無効にして、その製品をすべてボールド体で表す(文書のうちの他の部分のように正規のフォントでは表さない)。旧コンテンツが新規縦書きデザイン上にドロップされる時には、新規文書は、正規のフォントしか指定できない。第1の製品がドロップされる時には、その新規コンポーネント(製品)が、その旧コンポーネント(製品)と同じであることに留意する。旧コンポーネント上に定められたプロパティの中には、プロパティ「横書き」とプロパティ「ボールド体」が含まれている。「横書き」は、文書から継承され、局所的には定められていないプロパティであるから、このプロパティは、新規コンポーネントにはコピーされない。ただし、「ボールド体」は、局所的に定められたオーバライド・プロパティである。このプロパティは、新規コンポーネントにコピーされ、従って、第1の製品を、すべてボールド体で、新規縦書き形式を取るものとして保存する。ここで、新規構成に対して、コンテンツツリーとデザインツリーがある。
次に、ステップ920では、新規デザインのコンテンツは、図33のコンテンツ・媒体適合ステップを呼び出すことにより、適切な媒体に合わされる。このステップは、新規デザインツリーをたどって、媒体ツリーを生成し、各コンテンツ項目に領域を割り当てる。媒体にコンテンツを合わすこのステップは、上でさらに詳しく考察されてきた。このステップが終了すると、構成に対して新規デザインを選ぶこの手順が完結する。
新規コンテンツを構成に追加するか、または構成のデザインを変更することに加えて、ユーザは、構成を別の媒体に表現したいと思うことがある。図38は、この機能を果たす手順の一実施例を説明している。例えば、ユーザが、紙媒体向けに表現される構成を作成した場合には、ユーザは、この同一文書をHTML形式で、あるいはその逆で編集したいと思うこともある。この構成は、コンテンツまたはデザインのどんな変更にもかかわりなく、新規媒体に表現することができる。もう1つの方法としては、コンテンツおよび/またはデザインも変更されている場合には、新規媒体に構成を表現することも可能である。
第1のステップ954では、新規媒体が特定される。この新規媒体は、ユーザが、ユーザ・インタフェースにコマンドを出すことにより特定できるか、あるいは、新規媒体に編集することが望ましい時には、コンピュータ・システムを使って自動的に特定できる。多種多様な新規媒体を特定できる。例示として、これらの新規媒体は、紙媒体、HTML、OLEオブジェクト、VRML、または前に考察した媒体のどれでもよい。次に、ステップ958では、新規媒体ツリーの根オブジェクトは、新規選択媒体に基づいて構築される。このステップは、組込みファクトリ・オブジェクトのメソッドとして提供されたあらかじめプログラムされた機能である。
ここで、ステップ962は、上述の図33のコンテンツ・媒体適合手順を呼び出す。このコンテンツ・媒体適合手順は、構成のデザインツリーをたどって、新規媒体ツリーを生成し、各コンテンツ項目のレイアウト領域を割り当てる。このステップは、現行のコンテンツツリーとデザインツリーを利用し、スクラッチから新規媒体ツリーを計算し直す。旧媒体ツリーは、全体的に無効にする。このコンテンツ・媒体適合ステップは、上で詳しく考察されてきた。ステップ962が完了すると、ステップ966では、構成が、新規媒体に表現される。ステップ966は、上で図29のステップ524において考察された通りに実行できる。
図39は、本発明の一実施例によるコンピュータ・システム100を示している。コンピュータ・システム100には、一次記憶装置106(例えば、ランダム・アクセス・メモリ、すなわちRAM)と、一次記憶装置104(例えば、リードオンリー・メモリ、すなわちROM)を含む記憶装置に接続された任意の数のプロセッサ102(中央処理装置、すなわちCPUとも呼ばれる)が含まれる。当業界で既知の通り、一次記憶装置104は、データと命令を単方向にCPUに転送する働きをし、また一次記憶装置106は、一般に、データと命令を双方向に転送する目的で用いられる。これらの一次記憶装置は両方とも、以下で説明されるコンピュータ読取り可能媒体のうち、適切なものはどんなものでも含むことができる。大容量記憶装置108もまた、CPU102に対して双方向に接続され、追加データ記憶容量を提供し、さらに、以下に説明されるコンピュータ読取り可能媒体のどれでも含むことができる。大容量記憶装置108は、プログラム、データなどを記憶させるのに使用できるものであって、一般に、一次記憶媒体よりも速度が遅い二次記憶媒体(例えば、ハードディスク)である。大容量記憶装置108内に保存された情報は、適切な場合には、仮想記憶装置として一次記憶装置106の一部に、標準的なやり方で取り入れられることが認識される。
CD−ROM114などの特定の大容量記憶装置は、データを単方向にCPUに渡す。
さらに、CPU102は、ビデオモニタ、トラックボール、マウス、キーボード、マイクロフォン、タッチスクリーン、トランジューサ・カードリーダ、磁気デープ・リーダまたは紙テープ・リーダ、タブレット、スタイラス、音声または手書き認識装置、バイオメトリックス・リーダ、あるいは他のコンピュータなどの1つ以上の入出力装置を含むインタフェース110にも接続されている。CPU102はオプションとして、概ね112に示される通り、ネットワーク接続を用いて、別のコンピュータまたは電気通信網に任意に接続することもできる。このようなネットワーク接続を用いれば、CPUは、ネットワークから情報を受け取るか、あるいは、上述の方法工程を実行している間に、情報をネットワークに出力することが考えられる。
さらに、本発明の実施例は、様々なコンピュータ実装作業を行うためのプログラム・コードを入れている、コンピュータ読取り可能媒体を備えたコンピュータ記憶製品に関する。この媒体とプログラム・コードは、本発明の目的で特別に設計され、構築されたものであるか、あるいは、コンピュータ・ソフトウェア分野における当業者が利用できる公知の種類のものである。コンピュータ読取り可能媒体の例には、以下のものがあるが、ただし、それらに限定されることはない: ハードディスク、フロッピーディスク、磁気テープなどの磁気媒体; CD−ROMディスクなどの光媒体; フロプティカル・ディスクなどの光磁気媒体;プログラム・コードを記憶させ、実行するように特定的に構成されているハードウェア装置(例えば、ROM装置とRAM装置)。プログラム・コードの例は、コンパイラで生成されるマシンコードと、コンピュータがインタプリタを用いて実行される高水準コードが入っているファイルとを、両方とも含んでいる。
上述の発明は、明瞭に理解できる目的で、ある程度、詳しく説明してきたが、いくつかの変更や変形は、添付のクレームの範囲内で実施できることが明らかとなろう。例えば、説明された本発明の実施例は、上述のものに加えて、他のタイプのアプリケーション・プログラムにも適用できる。さらに、本発明のデザイン・エンジンは、必ずしもファセット・エンジンの使用に基づくとは限らず、適切などんな技術にも基づくことができる。構成には、多くの種類のコンポーネントが入っている場合があり、ここで説明されるコンポーネントのタイプは、使用できるタイプの例である。さらに、構成のコンテンツ、デザイン、媒体の面が多種多様な情報を表す場合がある。コンテンツ、デザイン、媒体の様々なタイプと機能の一例が、図3に示されている。図3の上半分には、様々なタイプのコンテンツ、デザイン、媒体の例が示されている。この図の下半分には、コンテンツ、デザイン、媒体で実行される様々な機能の例が示されている。
本発明のコンテンツツリー、デザインツリー、媒体ツリーを表現して連結するために、個々の構造が示されてきたが、情報の構成は、他の表現および相互連結を用いて、象徴的にコンテンツ、デザイン、媒体の面に分けられる。特に、コンテンツ要素は、様々なやり方でデザイン・コンポーネントと対応づけられる。どのようにしてコンテンツが追加され、デザインが変更され、あるいは、新規媒体が指定されるのかを示す図解例も、上述の説明に付けられた。他のさらに複雑な変形も可能であることが認識されなければならない。さらに、デザインも調整することにより、あるいは媒体を調整することにより、所定のコンテンツを特定の媒体に合わせることができる。
媒体区分の一実施例は、具体的に様々なプロパティを示して、上で説明されてきた。この媒体区分は、様々なやり方で表現され、また様々な技法を用いて、親コンポーネント、および、その子と対応づけられる。さらに、媒体区分は、親コンポーネントに対して子コンポーネントのレイアウトを記述する他の多くのプロパティを含むことができる。さらに、その子をレイアウトするために現行コンポーネントの媒体区分プロパティを求める処理は、様々なやり方で実行できる。レイアウトが作成されると、このレイアウトは、例えば、構成用の基準倍率を調整することにより、変更できる。コンテンツを媒体に合わせるために、レイアウトを変更する他の技法も使用できる。それゆえ、説明された実施例は、例示にすぎず、限定的と見なしてはならず、本発明は、ここに与えられた詳細に限定されずに、以下のクレーム、およびそれらのクレームの全均等範囲により定められること。
図1は、新規の情報プレゼンテーションを作成するために、コンテンツ要素、デザイン記述、媒体仕様を入力するのに本発明の実施例がどんな方法で用いられるのか線図で示している。 図1Aは、本発明の一実施例による旅行パンプレット用のユーザ・インタフェースの第1の例を示している。 図1Bは、本発明の一実施例による旅行パンプレット用のユーザ・インタフェースの第2の例を示している。 図1Cは、本発明の一実施例による旅行パンプレット用のユーザ・インタフェースの第3の例を示している。 図1Dは、本発明の一実施例による旅行パンプレット用のユーザ・インタフェースの第4の例を示している。 図2は、保存文書が、入力され、かつ特定の情報プレゼンテーションに表現できるように特定の媒体用に構成にされる本発明の実施例を示している。 図3は、コンテンツ、デザイン、媒体の様々なタイプと機能を示している。 図4Aは、本発明の一実施例によるコンポーネント・クラス導出ツリーの可能なデザイン・コンポーネントの例を示している。 図4Bは、本発明の一実施例によるコンポーネント・クラス導出ツリーの可能なデザイン・コンポーネントの例を示している。 図5Aは、構成が、コンテンツ・ファセットツリー、媒体ファセットツリー、デザイン・ファセットツリーで表されている、本発明の一実施例の構成の内部構造を象徴的に示している。 図5Bは、図5Aの構成を非常に詳細に示している。 図6は、コンテンツ、デザイン、媒体のファセットを用いて、構造化テキストが本発明の一実施例で、どのように表現されるのか、その一例を示している。 図6Aは、コンテンツ、デザイン、媒体のファセットを格納関係で用いることにより、メモのリスト項目が本発明の一実施例で、どのように表現されるのか、その別の例を示している。 図7は、コンテンツ・ファセット、デザイン・ファセット、媒体ファセットの中で表される様々なプロパティを有する、図6のフッターコンポーネントを詳細に示している。 図8は、紙媒体に対して表現される白紙パンフレット構成の例を示している。 図9は、紙媒体に対して表現される、2製品を載せたパンフレットの例を示している。 図10は、別の製品を追加した図9のパンフレットを示している。 図11は、デザインを変更した後の図9のパンフレットを示している。 図12Aは、HLML媒体に表現された後の図9のパンフレットを示している。 図12Bは、HLML媒体に表現された後の図9のパンフレットを示している。 図12Cは、HLML媒体に表現された後の図9のパンフレットを示している。 図13は、図9のパンフレットについて、コンテンツツリーの実施例を示している。 図14は、図9のパンフレットについて、デザインツリーの実施例を示している。 図15は、紙媒体に対して表現される図9のパンフレット用の媒体ツリーの実施例を示している。 図16は、HLML媒体に対して表現される図9のパンフレット用の媒体ツリーの実施例を示している。 図17は、図16のHLML媒体ツリーからの特定のコンポーネントを、さらに詳しく示している。 図18は、図9のパンフレットのいくつかのコンポーネントについて、コンテンツツリー、デザインツリー、媒体ツリーの間の関係の実施例を、さらに詳しく示している。 図19は、本発明の一実施例により、構成に構造化テキストを追加できるようにする処理を示している。 図20は、新規構造化テキストを追加する前の図19の構成の実施例を示している。 図21は、新規構造化テキストを追加した後の図19の構成の実施例を示している。 図22は、特定のコンポーネントについて、コンテンツ・ドロップ・テーブルの実施例を示している。 図23Aは、特定のパンフレットの製品レイアウトの一例を示している。 図23Bは、図23Aの製品レイアウトについて、デザインツリーの実施例を示している。 図23Cは、図23Aの製品レイアウトについて、媒体ツリーの実施例を示している。 図23Dは、図23Aの製品レイアウトについて、デザインツリーと媒体ツリーとの関係を示している。 図24は、媒体区分オブジェクトが、図23Cの媒体ツリーの様々なコンポーネントと対応づけられている実施例を示している。 図25A−図25Fは、一様の媒体区分に可能な形態の例を示している。 図26A−図26Hは、二様の媒体区分に可能な形態の例を示している。 図27A−図27Eは、三様の媒体区分に可能な形態の例を示している。 図28A−図28Eは、N様の媒体区分に可能な形態の例を示している。 図29は、本発明の一実施例により、構成に新規コンテンツを追加するのにふさわしい方法を図解した流れ図である。 図30は、図29の照合コンテンツのステップ512の一実施例を図解した流れ図である。 図31は、図29の処理照合のステップ516の一実施例を図解した流れ図である。 図32は、図31の配置/置換えのステップ616とステップ624の一実施例を図解した流れ図である。 図33は、図29,図37,図38の媒体へのコンテンツの合わせステップの一実施例を図解した流れ図である。 図34は、図33からの媒体ツリー計算のステップ708の一実施例を図解した流れ図である。 図35は、図34の媒体区分解決のステップ782の一実施例を図解した流れ図である。 図36は、図33のコンテンツ基準倍率再計算のステップ720の一実施例を図解した流れ図である。 図37は、本発明の一実施例により、構成として新規デザインを選択する方法を図解した流れ図である。 図38は、本発明の一実施例により、新規媒体に構成を表現する方法を図解した流れ図である。 図39は、本発明の様々な実施例を実現するのにふさわしい代表的なコンピュータシステムを示している。
符号の説明
10 実施例
12 アプリケーション・プログラム
14 デザイン・エンジン・モジュール
16 ファセット・エンジン・モジュール
18 ユーザ・インタフェース
18’ ユーザ・インタフェース
20 構成
20’ コンテンツ要素
22 コンテンツ要素

Claims (19)

  1. デザインを有し、複数の構成要素による現デザインツリーで表され、かつ前記複数の構成要素と関連付けられた複数のコンテンツ要素を含む構成の現行デザインを変更する方法であり、
    前記複数のコンテンツ要素は、前記現デザインに関連して前記複数のコンテンツ要素の属性によって決められる互いに一組の関係を有しており、以下のステップからなるプロセッサとメモリとディスプレイを含むコンピュータで実施される方法において、
    プロセッサが前記構成の新しいデザインを選択するステップと、
    プロセッサが前記選択された新しいデザイン用に複数の新しいデザイン・構成要素を含む新しいデザインの詳細を受け取るステップと、
    プロセッサが前記複数の新しいデザイン・構成要素に基づいて前記構成の新しいデザインツリーを作成するステップと、
    プロセッサが前記複数のコンテンツ要素を、前記複数の新しいデザイン・構成要素と関連させるステップと、
    プロセッサが前記新しいデザインツリーを使用して、前記新しいデザインに関連して前記複数のコンテンツ要素間に前記一組の関係を維持するように、前記構成の前記複数のコンテンツ要素の各コンテンツ要素ごとに媒体レイアウト値を計算するステップと、
    を含む方法。
  2. 前記現デザインにおける前記構成が、特定の媒体に再現され、前記新しいデザインの媒体レイアウト値を計算するステップが、前記特定の媒体に再現される前記構成を維持することを特徴とする請求項1に記載の方法。
  3. 前記複数のコンテンツ要素を前記複数の新しいデザイン・構成要素と関連させる前記ステップが、前記複数のコンテンツ要素のそれぞれを、前記複数の新しいデザイン・構成要素のうちの1つに結合するポインタを形成する副ステップを含むことを特徴とする請求項1または2に記載の方法。
  4. 媒体レイアウト値を計算する前記ステップが、前記新しいデザインツリーの前記複数の新しいデザイン・構成要素を1つずつ処理して、媒体ツリーの複数の媒体構成要素を作成するステップを含むことを特徴とする請求項1ないし3のいずれかに記載の方法。
  5. 前記媒体ツリーの前記媒体構成要素がそれぞれ、各コンテンツ要素の媒体レイアウト値を計算する際に使用するための関連付けられた各コンテンツ要素の属性に対応した専用領域としての媒体分割を有することを特徴とする請求項4に記載の方法。
  6. デザインを有し特定の媒体に再現され、複数の構成要素による現デザインツリーで表され、かつ前記複数の構成要素と関連付けられた複数のコンテンツ要素を含む構成の現行デザインを変更する方法であり、前記複数のコンテンツ要素は、前記現デザインに関連して前記複数のコンテンツ要素の属性によって決められる互いに一組の関係を有しており、以下のステップからなるプロセッサとメモリとディスプレイを含むコンピュータで実施される方法において、
    プロセッサが複数の新しいデザイン・構成要素を含む新しいデザインを受け取るステップと、
    プロセッサが前記複数の新しいデザイン・構成要素に基づいて前記構成の新しいデザインツリーを作成するステップと、
    プロセッサが前記新しいデザインに関連して前記複数のコンテンツ要素間に前記一組の関係が維持されるように、前記複数のコンテンツ要素をそれぞれ、前記複数の新しいデザイン・構成要素のうちの1つに結合するステップと、
    プロセッサが前記複数のコンテンツ要素が前記新しいデザインでレイアウトされ、前記新しいデザインが前記特定の媒体に再現される前記構成を維持するように、前記新しいデザインツリーを使用して前記構成の前記複数のコンテンツ要素の各コンテンツ要素の媒体レイアウト値を計算するステップと、
    を含む方法。
  7. 前記複数のコンテンツ要素をそれぞれ、前記複数の新しいデザイン・構成要素のうちの1つに結合する前記ステップが、前記複数のコンテンツ要素のそれぞれと、前記複数の新しいデザイン・構成要素のうちの1つとの間のポインタを形成する副ステップを含むことを特徴とする請求項6に記載の方法。
  8. 媒体レイアウト値を計算する前記ステップが、前記新しいデザインツリーの前記複数の新しいデザイン・構成要素を1つずつ処理して、媒体ツリーの媒体構成要素を作成するステップを含むことを特徴とする請求項6または7に記載の方法。
  9. 前記媒体ツリーの前記媒体構成要素がそれぞれ、各コンテンツ要素の媒体レイアウト値を計算する際に使用するための関連付けられた各コンテンツ要素の属性に対応した専用領域としての媒体分割を有することを特徴とする請求項8に記載の方法。
  10. デザインを有し、複数の構成要素による現デザインツリーで表され、前記複数の構成要素に関連付けられた複数のコンテンツ要素を含む構成の現行の媒体を変更するためプロセッサとメモリとディスプレイを含むコンピュータで実施する方法であって、
    プロセッサが前記構成の新しい媒体を特定するステップと、
    プロセッサが前記構成の媒体ツリーの根として働くよう、前記特定された新しい媒体に基づいて媒体ツリー根オブジェクトを構成するステップと、
    プロセッサが前記媒体ツリーの媒体ツリー・構成要素を作成して前記新しい媒体の領域を表すステップと、
    プロセッサが前記複数のコンテンツ要素が前記現デザインでレイアウトされるように、デザインツリーを使用して、前記構成の前記複数のコンテンツ要素の各コンテンツ要素の媒体レイアウト値を計算して、各コンテンツ要素の媒体レイアウト値がそれぞれ前記新しい媒体の前記領域の1つを表すステップと、
    を含む方法。
  11. 前記複数のコンテンツ要素が、前記現デザインに関連した前記複数のコンテンツ要素の属性によって決められる互いに一組の関係を有し、媒体レイアウト値を計算するステップが、前記一組の関係を維持することを特徴とする請求項10に記載の方法。
  12. 前記媒体ツリーの媒体ツリー・構成要素を作成する前記ステップが、前記現デザインツリーを1つずつ処理して、前記デザインツリーにおける前記複数の構成要素のうちの関連する構成要素間に前記媒体ツリー・構成要素を作成することを特徴とする請求項10または11に記載の方法。
  13. 媒体分割が、前記媒体ツリー・構成要素の選択された構成要素と関連付けられ、前記媒体分割が、前記新しい媒体の前記領域を分割するように配列されることを特徴とする請求項12に記載の方法。
  14. 各コンテンツ要素の媒体レイアウト値を計算する前記ステップが、媒体内に各コンテンツ要素が収まるように、各コンテンツ要素に仮媒体レイアウト値を割り当てる副ステップと、各コンテンツ要素の範囲を決定するステップと、各コンテンツ要素の最終媒体レイアウト値を割り当てるステップと、 を含む請求項12に記載の方法。
  15. デザインを有し、複数の構成要素による現デザインツリーで表され、前記複数の構成要素と関連付けられた複数のコンテンツ要素を含む構成の現行の媒体を変更するためにプロセッサとメモリとを含むコンピュータで実施する方法であって、
    プロセッサが前記構成の新しい媒体を識別するステップと、
    プロセッサが前記新しい媒体を表す前記構成のための、複数の媒体ツリー・構成要素を含む新しい媒体ツリーを作成するステップと、
    プロセッサが前記複数のコンテンツ要素がそれぞれ、前記新しい媒体の領域と関連付けられるように、前記複数のコンテンツ要素をそれぞれ、前記複数の媒体ツリー・構成要素のうちの1つに関連付けるステップと、
    プロセッサが前記複数のコンテンツ要素が前記現デザインでレイアウトされるように、前記構成の前記複数のコンテンツ要素の各コンテンツ要素の媒体レイアウト値を計算して、各コンテンツ要素の媒体レイアウト値がそれぞれ前記新しい媒体の前記領域の1つを表すステップと、
    を含む方法。
  16. 前記複数のコンテンツ要素が、前記現デザインに関連した前記複数のコンテンツ要素の属性によって決められる互いに一組の関係を有し、媒体レイアウト値を計算する前記ステップが、前記一組の関係を維持することを特徴とする請求項15に記載の方法。
  17. 新しい媒体ツリーを作成する前記ステップが、前記現デザインツリーを1つずつ処理して、前記デザインツリーにおける前記複数の構成要素の関連した構成要素間に前記媒体ツリー・構成要素を作成するステップを含むことを特徴とする請求項15または16に記載の方法。
  18. 各コンテンツの属性に対応した専用領域としての媒体分割が、前記媒体ツリー・構成要素のうちの選択された1つと関連付けられ、前記媒体分割が、前記新しい媒体の前記領域を分割するように配置されることを特徴とする請求項17に記載の方法。
  19. 各コンテンツ要素の媒体レイアウト値を計算する前記ステップが、媒体内に各コンテンツ要素が収まるように、 各コンテンツ要素に仮媒体レイアウト値を割り当てる副ステップと、各コンテンツ要素の範囲を決定する副ステップと、各コンテンツ要素に最終媒体レイアウト値を割り当てる副ステップと、を含むことを特徴とする請求項17または18に記載の方法。
JP2007257787A 1996-09-09 2007-10-01 媒体でデザインするためのコンテンツの自動的なレイアウトおよび書式設定 Expired - Lifetime JP4307501B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US08/709,633 US5956737A (en) 1996-09-09 1996-09-09 Design engine for fitting content to a medium
US08/745,557 US5895477A (en) 1996-09-09 1996-09-09 Design engine for automatic layout of content
US08/709,649 US5895476A (en) 1996-09-09 1996-09-09 Design engine for automatic reformatting for design and media
US08/709,782 US5903902A (en) 1996-09-09 1996-09-09 Design engine with tree and component structure

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP51293298A Division JP4138011B2 (ja) 1996-09-09 1997-09-04 媒体でデザインするためのコンテンツの自動的なレイアウトおよび書式設定

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2008122281A Division JP4633137B2 (ja) 1996-09-09 2008-05-08 媒体でデザインするためのコンテンツの自動的なレイアウトおよび書式設定

Publications (2)

Publication Number Publication Date
JP2008052746A JP2008052746A (ja) 2008-03-06
JP4307501B2 true JP4307501B2 (ja) 2009-08-05

Family

ID=27505514

Family Applications (3)

Application Number Title Priority Date Filing Date
JP51293298A Expired - Lifetime JP4138011B2 (ja) 1996-09-09 1997-09-04 媒体でデザインするためのコンテンツの自動的なレイアウトおよび書式設定
JP2007257787A Expired - Lifetime JP4307501B2 (ja) 1996-09-09 2007-10-01 媒体でデザインするためのコンテンツの自動的なレイアウトおよび書式設定
JP2008122281A Expired - Lifetime JP4633137B2 (ja) 1996-09-09 2008-05-08 媒体でデザインするためのコンテンツの自動的なレイアウトおよび書式設定

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP51293298A Expired - Lifetime JP4138011B2 (ja) 1996-09-09 1997-09-04 媒体でデザインするためのコンテンツの自動的なレイアウトおよび書式設定

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2008122281A Expired - Lifetime JP4633137B2 (ja) 1996-09-09 2008-05-08 媒体でデザインするためのコンテンツの自動的なレイアウトおよび書式設定

Country Status (5)

Country Link
EP (1) EP0925542B1 (ja)
JP (3) JP4138011B2 (ja)
AU (1) AU4334197A (ja)
DE (1) DE69714598T2 (ja)
WO (1) WO1998010356A1 (ja)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6167382A (en) * 1998-06-01 2000-12-26 F.A.C. Services Group, L.P. Design and production of print advertising and commercial display materials over the Internet
WO1999066425A1 (en) * 1998-06-19 1999-12-23 Atex Media Solutions, Inc. Data management system
US6414679B1 (en) 1998-10-08 2002-07-02 Cyberworld International Corporation Architecture and methods for generating and displaying three dimensional representations
WO2000021039A1 (en) * 1998-10-08 2000-04-13 Cyberworld, International Corp. Architecture and methods for generating and displaying three dimensional representations along with a web display window
JP2002537603A (ja) * 1999-02-17 2002-11-05 ブリティッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー ウエブサイト用のハイパーメディアコンテンツの作成
BE1012625A3 (nl) * 1999-04-22 2001-01-09 Fotek Nv Werkwijze voor het bewerken van een gestructureerd document.
AU748004B2 (en) * 1999-06-24 2002-05-30 Canon Kabushiki Kaisha Split tree data structure
AUPQ117599A0 (en) * 1999-06-24 1999-07-22 Canon Kabushiki Kaisha Split tree data structure
US7039863B1 (en) * 1999-07-23 2006-05-02 Adobe Systems Incorporated Computer generation of documents using layout elements and content elements
US7197479B1 (en) * 1999-09-02 2007-03-27 Cnet Europe Sa Methods and apparatus for implementing a multi-lingual catalog system
US8132097B2 (en) 1999-10-15 2012-03-06 Saepio Technologies, Inc. Computer-implemented system for creating a publication and method thereof
US6931591B1 (en) * 1999-10-15 2005-08-16 Saepio Technologies, Inc. Publishing layout wizard
CN1408168A (zh) * 1999-11-09 2003-04-02 诺基亚有限公司 从服务器向用户传递适合内容
US7143056B1 (en) 2000-01-18 2006-11-28 Lopez Jr Leonard H Method for automated print ordering utilizing the internet
US7149709B1 (en) 2000-01-18 2006-12-12 Lopez Jr Leonard H Internet based print order system
US7576730B2 (en) 2000-04-14 2009-08-18 Picsel (Research) Limited User interface systems and methods for viewing and manipulating digital documents
JP2003531441A (ja) * 2000-04-14 2003-10-21 ピクセル(リサーチ)リミテッド デジタルドキュメント処理のためのシステム及び方法
US7055095B1 (en) 2000-04-14 2006-05-30 Picsel Research Limited Systems and methods for digital document processing
US6781600B2 (en) 2000-04-14 2004-08-24 Picsel Technologies Limited Shape processor
US7009626B2 (en) 2000-04-14 2006-03-07 Picsel Technologies Limited Systems and methods for generating visual representations of graphical data and digital document processing
WO2002027558A1 (en) * 2000-09-26 2002-04-04 Syneractive Llc System and method for creating a website
JP3970137B2 (ja) 2001-09-14 2007-09-05 キヤノン株式会社 文書処理方法及びその装置
US7486294B2 (en) * 2003-03-27 2009-02-03 Microsoft Corporation Vector graphics element-based model, application programming interface, and markup language
GB0320278D0 (en) 2003-08-29 2003-10-01 Hewlett Packard Development Co Constrained document layout
US7555730B2 (en) 2005-05-12 2009-06-30 Hewlett-Packard Development Company, L.P. Method for arranging graphic assemblies
US7743322B2 (en) 2003-09-30 2010-06-22 Hewlett-Packard Development Company, L.P. Automatic photo album page layout
US8065627B2 (en) 2003-09-30 2011-11-22 Hewlett-Packard Development Company, L.P. Single pass automatic photo album page layout
US8056013B2 (en) 2005-05-13 2011-11-08 Hewlett-Packard Development Company, L.P. Method for arranging graphic assemblies
GB2416614A (en) 2004-07-27 2006-02-01 Hewlett Packard Development Co Document creation
GB2416613A (en) 2004-07-27 2006-02-01 Hewlett Packard Development Co Document creation
EP1774478A1 (en) 2004-07-27 2007-04-18 Hewlett-Packard Development Company, L.P. Document creation system and related methods
GB2418280A (en) * 2004-09-18 2006-03-22 Hewlett Packard Development Co Document creation system
US7348982B2 (en) * 2004-09-30 2008-03-25 Microsoft Corporation Method, system, and computer-readable medium for creating and laying out a graphic within an application program
US8134575B2 (en) 2004-09-30 2012-03-13 Microsoft Corporation Maintaining graphical presentations based on user customizations
US8510657B2 (en) 2004-09-30 2013-08-13 Microsoft Corporation Editing the text of an arbitrary graphic via a hierarchical list
US7656543B2 (en) 2004-11-12 2010-02-02 Hewlett-Packard Development Company, L.P. Albuming images
US8108773B2 (en) * 2004-12-17 2012-01-31 Xerox Corporation Method and apparatus for generating instances of documents
US8161377B2 (en) 2005-03-01 2012-04-17 Hewlett-Packard Development Company, L.P. Arranging images on pages of an album
US7644356B2 (en) 2005-06-10 2010-01-05 Hewlett-Packard Development Company, L.P. Constraint-based albuming of graphic elements
US8438486B2 (en) 2006-02-09 2013-05-07 Microsoft Corporation Automatically converting text to business graphics
US9152292B2 (en) 2009-02-05 2015-10-06 Hewlett-Packard Development Company, L.P. Image collage authoring
US8161384B2 (en) 2009-04-23 2012-04-17 Hewlett-Packard Development Company, L.P. Arranging graphic objects on a page with text
KR20110074166A (ko) 2009-12-24 2011-06-30 삼성전자주식회사 디지털 컨텐츠 생성방법
US8799325B2 (en) 2010-03-12 2014-08-05 Microsoft Corporation Reordering nodes in a hierarchical structure
JP5652509B2 (ja) * 2013-06-20 2015-01-14 株式会社リコー 編集装置、編集方法、及びプログラム
JP2015219558A (ja) * 2014-05-14 2015-12-07 ブラザー工業株式会社 印刷装置
CN108399288B (zh) * 2018-02-07 2022-02-22 李荣陆 一种在平面设计中自动添加装饰元素的装置
US11934359B1 (en) 2022-11-18 2024-03-19 International Business Machines Corporation Log content modeling
CN116795850B (zh) * 2023-05-31 2024-04-12 山东大学 一种联盟链海量事务并发执行方法、装置及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4969093A (en) * 1988-06-30 1990-11-06 International Business Machines Corporation Method of data stream construct management utilizing format shells and shell fragments
CA2064508A1 (en) * 1991-04-26 1992-10-27 John D. Gerlach, Jr. Methods and apparatus providing for a multimedia authoring and presentation system
ATE187268T1 (de) * 1992-07-06 1999-12-15 Microsoft Corp Verfahren zur namensgebung und zur bindung von objekten
JP2800603B2 (ja) * 1992-12-01 1998-09-21 三菱電機株式会社 アイコンを用いた情報処理装置
WO1994028480A1 (en) * 1993-05-24 1994-12-08 Media Station, Inc. Interactive multimedia development system and method
JPH0756920A (ja) * 1993-08-11 1995-03-03 Fuji Xerox Co Ltd 構造化文書処理装置
JPH0830587A (ja) * 1994-07-14 1996-02-02 Toshiba Corp 文書作成装置及び書式変更方法
JPH0877331A (ja) * 1994-09-06 1996-03-22 Toppan Printing Co Ltd 自動ページアップ装置

Also Published As

Publication number Publication date
EP0925542B1 (en) 2002-08-07
JP2008282399A (ja) 2008-11-20
JP4138011B2 (ja) 2008-08-20
JP2001500294A (ja) 2001-01-09
EP0925542A1 (en) 1999-06-30
DE69714598T2 (de) 2003-03-27
JP4633137B2 (ja) 2011-02-16
JP2008052746A (ja) 2008-03-06
DE69714598D1 (de) 2002-09-12
AU4334197A (en) 1998-03-26
WO1998010356A1 (en) 1998-03-12

Similar Documents

Publication Publication Date Title
JP4307501B2 (ja) 媒体でデザインするためのコンテンツの自動的なレイアウトおよび書式設定
US6161114A (en) Design engine for fitting content to a medium
US5903902A (en) Design engine with tree and component structure
US5895477A (en) Design engine for automatic layout of content
US5895476A (en) Design engine for automatic reformatting for design and media
JP6725714B2 (ja) モバイル向けのおよび他の表示環境をサポートするインタラクティブなサイトおよびアプリケーションの自動変換のためのシステムおよび方法
RU2419856C2 (ru) Различные виды оформления с гармоничной версткой для динамически агрегированных документов
US8375293B2 (en) Method and apparatus for defining documents
US6826727B1 (en) Apparatus, methods, programming for automatically laying out documents
US7272789B2 (en) Method of formatting documents
US7325196B1 (en) Method and system for manipulating page control content
US7380202B1 (en) Method and system for customizing and personalizing page control content
KR20060046002A (ko) 시작 템플릿과 목표 템플릿 사이의 콘텐츠 맵핑을 위한방법 및 시스템
WO1991008538A1 (en) Document management and production system
Schrier et al. Adaptive layout for dynamically aggregated documents
JPH077408B2 (ja) 強調特性変更方法及びシステム
ZA200503517B (en) Multi-layered forming fabric with a top layer of twinned wefts and an extra middle layer of wefts
JPH09185607A (ja) ハイパーテキストレイアウト装置
JPH04278634A (ja) 木生成システム及び方法
JP2001519061A (ja) データオブジェクトのタイプに基づいてドキュメントを自動フォーマットする方法
JP4077692B2 (ja) 階層的資料のテーブル的ビジュアル化構成と使用のための方法および装置
JPH10187720A (ja) 文書要約合成装置
JPH04260967A (ja) 文書整形処理装置及び文書整形処理方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080508

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081017

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090115

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20090116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090116

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20090303

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090403

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090428

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120515

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130515

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130515

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term