JP2009510650A - 動的に集約された文書のための調和構成を備えたマルチフォームデザイン - Google Patents

動的に集約された文書のための調和構成を備えたマルチフォームデザイン Download PDF

Info

Publication number
JP2009510650A
JP2009510650A JP2008534701A JP2008534701A JP2009510650A JP 2009510650 A JP2009510650 A JP 2009510650A JP 2008534701 A JP2008534701 A JP 2008534701A JP 2008534701 A JP2008534701 A JP 2008534701A JP 2009510650 A JP2009510650 A JP 2009510650A
Authority
JP
Japan
Prior art keywords
content
template
layout
document
high quality
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.)
Pending
Application number
JP2008534701A
Other languages
English (en)
Other versions
JP2009510650A5 (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
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2009510650A publication Critical patent/JP2009510650A/ja
Publication of JP2009510650A5 publication Critical patent/JP2009510650A5/ja
Pending 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/103Formatting, i.e. changing of presentation of documents
    • G06F40/114Pagination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • 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

Abstract

文書内に表示されるコンテンツのタイプ、および表示される文書のサイズ/寸法が与えられると、見栄えのよい文書である高品質文書を作成するために使用されるアーキテクチャ。このアーキテクチャは、コンテンツを、多種多様なフォーマットの多種多様なコンテンツを伴う複数のサイズおよび寸法に適応させるレイアウト制約を広く定義する高水準のテンプレートを使用することができる。さらに、高品質文書の高水準の記述を、AGDBLシステムで使用するための低水準の制約に変換することができ、そのシステムによって必要とされるテンプレートの数が劇的に減少し、それと同時にテンプレートの機能性、およびテンプレートを作成して維持することができる容易さが向上する。

Description

本発明は、動的に集約された文書のための調和構成を備えたマルチフォームデザインに関する。
新聞および雑誌などの市販の刊行物は、グリッドベースのページレイアウトおよびデザインを大いに使用する。1920年代および1940年代に、デザイナーのモンドリアン(Mondrian)およびル・コルビュジエ(Le Corbusier)は、様々なタイプの文書コンテンツを印刷するための整然としたグリッドベースデザインシステムを作成した。これらのグリッドベースデザインシステムは、第二次世界大戦後にスイスでさらに改良され、1950年代および1960年代に、市販刊行物の規格として世界中に急速に普及した。今日、グリッドベースデザインシステムは、様々な出版システムで広く一般に、いまだ実践されている。
グリッドベースのページデザインをサポートするいくつかの成功したソフトウェアシステムが存在する。ワシントン州レッドモンドのマイクロソフト社によって売り出されたMICROSOFT PUBLISHER、コロラド州デンバーのQuark社によって売り出されたQUARKXPRESS(登録商標)、およびカリフォルニア州サンノゼのAdobe Systems Incorporated社によって提供されたADOBE PAGEMAKER(登録商標)などの製品は、商業出版およびデスクトップパブリッシングの業界標準となっている。これらのソフトウェアシステムは、その意図された目的には適しているが、テキスト、イメージ、およびサイドバーなどのページエレメントを文書レイアウト内のグリッド位置に実際にマッピングすることは、手動のプロセスのままである。典型的に、グリッドベースの文書レイアウトは、8.5インチ(21.6cm)×11インチ(27.9cm)の用紙など、ある特定のページサイズに合わせてカスタマイズされる。しかし、これらのカスタマイズされたレイアウトをページサイズの範囲および他の表示条件(viewing condition)に体裁よく適応させる明白な方法(すなわち、本明細書では「文書リフロー(document-reflow)」とも呼ばれる)はない。
グリッドベースの文書レイアウトは静的な固定サイズと手動のプロセスの両方から成るので、グリッドベースのデザインシステムは一般に、「文書リフロー」をサポートしない。Microsoft WordおよびHTML(hypertext mark-up language)などの文書コンテンツのリフローをサポートするシステムは典型的に、文書コンテンツを、あるページから次のページにくねって進む(snake)単一の一次元のフロー(one-dimensional flow)と見なす。したがって、これらのタイプのシステムは、元のグリッドベース文書レイアウトを失う可能性がある。このような困難性は、異なるフォームファクタ(form factor)で複数の方向性を使用するシステムでも同様に生じる可能性がある。
グリッドベースのデザインを一般化することの困難性から、類似の印刷レイアウトと比べて画面上のレイアウトの性質が一般的に劣っていることが分かる。ディスプレイ装置の画面解像度が印刷ページの解像度品質に一致し始めるにつれて、グリッドベース文書デザインを任意のサイズの電子ディスプレイに、容易かつ自動的に適応させる必要性が生じる。「調和構成(harmonic composition)」を使用して、動的に集約された文書にとって最適な表示と読みやすさ(readability)のためにエレメントの関係と比率を維持するように、グリッドベースのシステム内の(限定ではないが)テキストおよびイメージなどのオブジェクトの配置に適用される1組の規則および制約を定義することができる。これは、効果的な高品質の適応レイアウト(adaptive layout)の開発および設計に特有の要因である可能性がある。この問題は恐らく、紙に書かれたものを読むことに劣らないオンライン上で読むという体験をもたらすことにおいて、残ったままの最大の障害の1つである。コンピュータにより、カスタマイズおよびスタイルのための多くの機会、ならびにアニメーションおよびインタラクティビティなどの性能が提供されるので、画面上で読むという体験は最終的に、紙の上で読むという体験を超える可能性がある。
適応グリッドベース(adaptive grid-based document)の文書レイアウトは、文書コンテンツを1組の個別のページにマッピングするための柔軟なページネーション(pagination)を必要とする。個別のページには、テキストのストリーム内の単語(word)のシーケンス順序付け、ページの有限容量、および文書内のコンテンツ間の依存性(例えば、図または表へのテキスト参照)などの、様々な制約を受けることがある。図や表などの、1つまたは複数の追加的なタイプのコンテンツが含まれる場合、望ましいページネーションを見つけることは難しいことが多い。
最適なページネーションを得るには、個別ページの適切なセットのそれぞれについて、成功の尺度(measure of success)を定義しなければならない。ページネーションは「最適なサブプロブレム(optimal subproblem)」プロパティを有しており、したがって、動的プログラミングによって解決可能である。nページの任意の最適解(optimal solution)は本質的に、n−1ページの最適解を含むであろう。一般には、動的プログラミングページネータ(dynamic programming paginator)は、空の解集合(empty solution set)で開始し、サブプロブレム(例えば、個別のページのサブセット)を増分的に追加して解決し、適切な1組の個別ページを見つける。さらに、動的プログラミングページネータは、各サブプロブレムのスコア(例えば、所定のメトリック(metric)に基づく成功の尺度)のテーブル、および最適解の前のサブプロブレムに戻るポインタを保持する。新しいサブプロブレムは、新しいサブプロブレムに適切に先行し得る最良スコアを有する前のサブプロブレムのテーブルをスキャンすることによって、評価される。したがって、動的プログラミングページネータは、新しい各サブプロブレムのあり得る先行サブプロブレムのそれぞれを評価する。残念なことに、評価すべき新しい各サブプロブレムについてかなりの数の先行サブプロブレムが存在することがあり、大部分は新しいサブプロブレムの有効な先行サブプロブレムとして適してもいない。それゆえ、動的プログラミングページネータは、使用不可能な先行サブプロブレムの評価を非効率的に行い、したがって、ページネーションの速度を低下させる。
さらに、今日のコンピュータ環境では、装置およびディスプレイは、フォーム(form)と縦横比の両方において急速に発展している。コンテンツおよび情報は、小さなリストディスプレイ(wrist display)、ポータブルハンドヘルドデバイス、デジタルファブリック、ワークステーション、さらには大型の壁掛け式ディスプレイなどに入れられる。この傾向の一環として、パーソナルコンピュータが、重要な読み取り媒体(reading medium)として現れた。実際、画面上で読むことは、今日の社会における情報収集の重要な形となっている。
しかし、ウェブ用の文書をデザインする現在の方法、または劇的に異なるディスプレイサイズおよび形状を有するこれらの装置の多くは、多くの種類の表示によって提供される新しい動的なリアルエステート(real estate)を効率的に使用するには至っていない。ほとんどのウェブフォーマットは、複数のディスプレイにわたってはうまく働かない。これは一つには、画面の読みやすさに対する静的な印刷ベースのデザイン媒体の影響のためである。非常に多くの情報が印刷の形式で入手可能であり、良い文書デザインの利点および重要性は、印刷の世界では、それが見る者の注意を引き付けて保つので、コミュニケーション、読みやすさ、市場性を助けるものとしてよく知られている。良質のグリッドベースのデザインは、印刷では一般的なものであるが、オンライン文書においては普及していない。したがって、画面サイズ、比率および方向についてのディスプレイ特性を考慮する新しいマルチレベルデザインの概念(multi-level design concept)を探求する必要がある。
インターネットによって、多くの異なるソースからの情報から文書を組み立て、単一画面上にそれを一緒に表示することが非常に容易になる。検索エンジンおよびニュースアグリゲータ(news aggregator)は、これを行い、その結果をHTMLウェブページとして表示する。しかし、それよりむしろ、印刷で一般に見られる高品質のデザインに劣らないよくデザインされた魅力的な方法でこれらの結果を表示することが好ましい。以前の取組み(earlier work)により、異なる表示条件に適応するグリッドベースのデザインを表示することが可能となったが、そのデザインが、異なるコンテンツに必ずしもうまく移るとは限らず、また作成することはひどく困難であった。
したがって、以前の取組みにより、ユーザが、異なるウィンドウ寸法に適応するグリッドベースの文書レイアウトをデザインすることが可能となったが、文書レイアウトは、作成して維持するのが難しい低水準言語で指定されていた。例えば、「スタイル(style)」は、それぞれが特定のコンテンツの集合を指定された画面サイズの範囲で表示することができる、制約ベースのテンプレートの集合となるようにデザインされ得る。文書ウィンドウがサイズ変更された場合、テンプレートの制約システムは、別のテンプレートが使用された時点で閾値と交差するまで、各表示エレメント(display element)をサイズ変更する。しかし、以前のシステムの目的は、文書スタイルが複数の文書に再使用可能なものとすることであった。これはある程度は正しかったが、実際には、図の寸法が元のデザインで使用されたものと著しく異なる場合は、多くのレイアウトの見栄えがよくないことが分かっていた。視覚的エレメントのどんな組合せも処理することができる強固なスタイル(robust style)をデザインすることには、エレメントの可能な組合せ、およびエレメントの変形体のそれぞれについて1つ、非常に多くのテンプレートをデザインすることが必要であった。
"Adaptive Grid-Based Document Layout" (AGBDL), Jacobs, et al. 2003
したがって、以前の適応文書システムにより、デザイナーが、異なる画面サイズおよびフォーマットに適応する文書を構築することが可能となったが、2つの重大な問題があった。第1に、新しいデザインを作成することと既存のデザインを修正することの両方を行うように、実際の文書レイアウトで作業することは、非常に難しいことであった。第2に、文書レイアウトは、出版の前にデザイナーまたは編集者によって修正されなければ、異なるコンテンツ選択にあまりうまく適応していなかった。
印刷媒体のレイアウトは、デザイナーおよび編集者がレイアウトとコンテンツの両方を変更することによって最終製品をカスタマイズするという利点を有する。単一の静的なデザインテンプレートは、ページ上のデザインエレメントのほとんどが同じものであっても、タイトルまたは見出しが異なる長さでグラフィックスが異なる寸法である様々なタイプのコンテンツにとって、見栄えが非常によい可能性は低い。この性質のマルチレベルデザインの主な課題の1つは、レイアウト内のあらゆるものの見栄えがよいことを確かめて必要に応じてカスタマイズする編集者がいないので、品質のレイアウトを維持することであり、デザインは、コンテンツを表示する複数の方法に対処し、任意の時点においてどの方法が最良か区別できなければならない。
以下に、特許請求された主題のいくつかの態様についての基本的な理解を提供するために、特許請求された主題の簡略化された要約を提示する。この要約は、本発明を広範な概観ではない。本発明の重要な/重大なエレメントを識別すること、本発明の範囲を定めることを意図するものではない。その唯一の目的は、後に提示されるより詳細な説明の序文として、特許請求された主題のいくつかの概念を簡略化された形で提示することである。
本明細書で開示され請求される、特許請求された主題は、その一態様では、多くの異なる表示条件およびコンテンツ選択に適応する豊富なグリッドベースのデザインおよび/または高品質レイアウトを簡単にデザインし表示することを容易にすることができるアーキテクチャを含む。上記内容を達成するために、レイアウトの制約を高水準で記述するテンプレートを使用することができる。これらのテンプレートは、レイアウトの柔軟性を向上させ、レイアウトが異なるコンテンツによりよく適応することを可能にする一方、作成し維持するのが遥かに容易なものとすることができる。同様に、表示することができるコンテンツのタイプを広げ、特にインターネット上の様々なソースから集約されたコンテンツに焦点を当てることによって、このアーキテクチャの適用性を、以前のシステム(例えば非特許文献1)よりも向上させることができる。
特許請求された主題の一態様によると、テンプレートを、理解し使用するのが容易な高水準構成体(high level construct)で定義することができる。したがって、テンプレートをデザインおよび/または維持するタスクは、広範な技術的背景をもたないグラフィックデザイナーにとって実用的である可能性がある。さらに、結果として生じるデザインは、他のデザイナー、テンプレートの作成を手伝わなかった者でも容易に理解し維持することができる。作成されたテンプレートは、様々なウェブベースのソースから得られる静的な文書と動的な文書の両方に使用することができる。テンプレートは、例えば複数層のコンテンツを有する文書を作成することができるマルチレベルデザインレイアウトにも同様に使用することができる。
別の態様によると、結果として生じる文書レイアウトは、高品質レイアウト(例えば「見栄えがよい」レイアウト)とすることができ、異種タイプのコンテンツを使用しながら、その見た目(visual appeal)を異なる表示サイズに保つことができる。高品質レイアウトを、意味の流れ(semantic flow)、ブランドアイデンティティ(brand identity)、イメージとテキストの相関性(item and text correlation)、および広告テーマなどを損なわないようにデザインすることができる。
特許請求された主題の別の態様によると、テンプレートは、多くのテンプレートをデザインし維持する必要なしに、集約された文書内で見られる多種多様のコンテンツを処理できるほどに柔軟なものとすることができる。より正確に述べると、単一のテンプレートが、エレメントおよび/またはコンテンツについての複数の可能な構成を定義して、柔軟なデザインを提供するのに必要なテンプレートの数を大幅に減らすことができる。さらに、高水準で記述されたテンプレートを、他のシステムによって使用される低水準の制約に変換することができる。アーキテクチャは、適応文書内の共通の振舞い(behavior)を実装する制約システムを、各デザイナーにそれを手作業でコーディングするように求めるのではなく、自動的に提供することができる。
さらに、アーキテクチャは、表示されるべき正確なコンテンツが知られていない場合でも、異なる画面サイズに適応する高品質文書レイアウトをグラフィックデザイナーが容易にデザインすることを可能にすることができる。さらに、文書の概念を拡張し、統一フォーマット(uniform format)ではない可能性が高い外部ソースへの参照を含めることができる。したがって、このアーキテクチャは、複数のソースから集約され、またデザイン時には知られていない可能性があるコンテンツを処理できるほどの柔軟性を有する高品質のグリッドベース適応デザインに基づいてマルチレベルのデザインアーキテクチャを作成することを、容易にすることができる。
上記内容および関連の目的を達成するために、特許請求された主題の特定の例示的な態様について、以下の説明および添付の図面に関連して本明細書に述べる。しかし、これらの態様は、本発明の原理を使用することができる様々な方法のほんのいくつか示すものであり、特許請求された主題は、このような態様およびその等価物すべてを含むことが意図されている。本発明の他の利点および新規な特徴は、図面と併せて考慮されるときに、本発明についての以下の詳細な説明から明らかになる。
特許請求された主題について図面を参照して述べるが、図面では、同じ参照符号を使用して、全体を通して同様のエレメントを指す。以下の記載では、説明の目的のため、多くの特定の詳細を、本発明の完全な理解を提供するために説明する。しかし、特許請求された主題を、これらの特定の詳細なしに実施することができることは明らかである。他の場合では、特許請求された主題の説明を容易にするためによく知られている構造および装置をブロック図の形式で示す。
本出願で用いられる際、「コンポーネント」および「システム」という用語は、ハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかのコンピュータ関連のエンティティを指すことが意図されている。例えば、コンポーネントは、限定されるものではないが、プロセッサ上で実行するプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および/またはコンピュータとすることができる。例として、サーバ上で稼動しているアプリケーションとサーバの両方ともコンポーネントとすることができる。1つまたは複数のコンポーネントは、プロセスおよび/または実行スレッド内に存在することができ、コンポーネントを、1つのコンピュータに局所化すること、および/または2つまたはそれ以上のコンピュータ間で分散することができる。
本出願で用いられる際、「デザイン」または「レイアウト」という用語は一般に、コンテンツが文書内にどのように配置されるかを指す。本明細書で使用される場合、デザインとレイアウトは、実質的に置き換え可能なもの(interchangeable)とすることができる。例えば、文書デザインと文書レイアウトの両方とも、コンテンツが文書内にどのように配置されるかを指すことができる。
本出願で用いられる際、「高水準(high level)」というフレーズは一般に、低水準言語または構成体よりもよりユーザフレンドリであり、いくらかプラットフォーム非依存のものとすることができるプログラミング言語またはプログラミング構成体を指す。高水準構成体は、別のやり方では操作の実装に必要である複雑性を回避するために低水準操作への抽象化を提供することができる。一般にアセンブリ言語、ならびに純粋なHTML(Hyper Text Markup Language)および他の「緩い(loose)」コーディングフォーマットは、低水準と見なされ、拡張可能スタイルシート言語変換(XSLT:Extensible Stylesheet Language Transformation)を適用した後の出力フォーマットは、高水準と見なされる。
本明細書で用いられる際、「高品質(high quality)」という用語は、現在のディスプレイ寸法および現在のコンテンツが与えられて、結果として生じる出力が見栄えがよいと判断されることを意味する。高品質とは、レイアウト、デザイン、または特定のコンテンツが挿入されるレイアウト内の特定の位置について言及することができる。例えば、高品質レイアウトは、現在のコンテンツを有する現在の表示寸法で見栄えがよいと判断されるレイアウトであり、高品質位置は、全体的なレイアウトまたはデザインの高品質の特徴(character)を維持しながら、特定のコンテンツを取り入れることができる位置である。レイアウトまたは位置の高品質の特徴は、意味の流れ、ブランドアイデンティティ、イメージとテキストの相関性、広告テーマなどを損なわないことなど、追加の条件も同様に満たすことを必要とすることがあることを理解されたい。これらの追加の条件は、非矩形(non-rectangular)のテンプレートおよびエレメント、カラムのバランス調整(column balancing)、分割不可能な段落およびアトミックサブ文書(atomic sub-document)、ならびにインタラクティビティなど、後述の検討に基づくことができることも理解されたい。
本明細書で説明される実施形態は、ウェブベースの集約データの適応表示のためのシステム、および適応グリッドベースの文書レイアウトシステム(AGBDL:Adaptive Grid-Based Document Layout)のテンプレート改良に関する。インターネットコンテンツを集約し、AGBDLを使用してそれを表示するためのシステムを提供し、このシステムにより、異なるディスプレイサイズに自動的に適応することができる広範囲の高品質な視覚フォーマットでデータを表示することが可能になる。このシステムは、限定ではないがRSSニュースフィード、インターネット検索エンジンの結果、MSN Newsbotなどのインターネットニュースアグリゲータバックエンド、新聞や雑誌などのコンテンツウェブサイトから直接「スクラップされた」コンテンツを含む、複数のコンテンツソースのいずれかを使用することができる。これを、以下でも詳述される元のAGBDLの作業(work)で説明されるように、文書の概念を拡張することによって行うことができる。
本アーキテクチャは、複数の別個の文書からなり、かつ親文書(parent-document)と組み込みサブ文書(embedded sub-document)のマルチレベル階層に配置され得る文書を、サポートすることができる。それぞれのコンポーネント文書を、固有ソースと外部ソースの組合せで構成することができ、この外部ソースをロード時に、個々の各ソースについて指定することができるXSLT変換を通じて、あるいはウェブスクレーパー(web-scraper)または他の何らかのデータ収集もしくは処理エージェントとすることができるヘルパープログラムのいずれかを通じて、システムの固有文書フォーマットに変換することができる。外部ソースを、文書の複数のレベルで指定することができる。外部ソースを、文書全体(最上位レベルまたはサブ文書)として、文書内の特定のコンテンツストリームとして、または特定のコンテンツストリーム内の単一のコンテンツアイテムとしてロードすることができる。さらに、外部ソースを、文書内に完全に、または部分的に含むこともできる。例えば、単一のコンテンツストリームを、変換後に所与のソースから選択的にロードすることができる。
このサポートでは、文書スキーマは、AGBDL文書が上述の方法で外部ソースを参照することが可能となるように拡張されている。文書が解析されロードされると、指定された任意のサブ文書または他の外部コンテンツを(必要であれば)変換し、次いで再帰的に解析し、ロードすることもできる。サブ文書は、それ自体で完全なAGBDL文書として定義され、同封文書内のサブテンプレートとして使用される自己の表示テンプレートのセットを参照する。表示時に、サブ文書は、文書がレンダリングされるべき画面領域に渡される。サブ文書は、再帰的にページネートし、次いで、所与のウィンドウ内で最上位レベルの文書であるかのように、所与の領域にそれ自体をレイアウトする。サブ文書を、任意の他のコンテンツと同様に親文書のテンプレートを使用して親文書内に表示することができるので、サブ文書を、同封文書内のデータとしてロードされる他の外部コンテンツとは異なるものとすることができる。
(以下で詳述される)AGBDLシステム内の適応テンプレートに関して、下記の内容に関連する拡張が提供される。すなわち、高水準のテンプレートデザイン、拡張テンプレート適応性(コンテンツに適応するテンプレート)、ならびにテンプレートパラメータおよび出力に関連する拡張である。これらのカテゴリの3つすべてが、「文書スタイル」を作成することおよび維持することを容易にすることができる。スタイルを、文書をレンダリングすることができるレイアウトの範囲をともにカバーするテンプレートの集合として定義することができる。
高水準のテンプレートデザインは、各表示エレメントの寸法および位置、ならびにエレメントの表示特徴、他の表示エレメントとの関係、および適応型の振舞い(adaptive behavior)を制御する個々の制約を含めて、低水準の詳細を生成するシステムによって解釈される高水準構成体を使用して、制約ベースのテンプレートを指定することを可能にすることができる。
従来的に、AGBDLシステムなどでは、テンプレートを、各テンプレートに生じる各表示エレメント、制約、および属性を記述するXMLコードを書くことによって指定する必要があった。テンプレート作成ツール(template authoring tool)は、GUIインタフェースを介してテンプレートを書くことおよび修正することを(恐らく)より容易にしたが、作成者には、この他の方法を介して同じ詳細のすべてを指定することが依然として求められていた。
本革新技術により、適応カラムグリッドおよびエレメント間の相対的関係などの、高水準構成体を使用する文書仕様(document specification)を可能にすることができる。カラムグリッドを、比例カラム幅と絶対カラム幅の組合せを使用して定義することができ、どのカラムが任意の所与のページ幅でインスタンス化されるかを制御する規則を指定することができる。次いで、表示エレメントを、1つまたは複数のこれらのカラム、あるいはこれらのカラムの部分にまたがって配置することができ、例えば「over」および「under」割当てを通じて他のエレメントに関連付けることができる。単一のステートメントは、ロード時に多くの低水準制約が自動的に生成されるパラメータの集合を指定または示唆することができる。追加の制約を生成するために使用されるマージンおよびパディングなどのエレメントの属性を確立する他のパラメータを指定することができる。
文書またはページは、多くのパラメータ値を共有するテキストの複数のカラムなど、類似の表示エレメントの集合を含むことが多い。特許請求された主題の態様は、エレメントを一回記述し、次いで複数回インスタンス化することを可能にすることができる。それぞれのインスタンスは、位置情報など、その詳細のサブセットをオーバーライドさせることができる。さらに、記述言語は、特定のエレメントに関するすべての制約を、ユーザがテンプレートを理解し維持するのを容易にするエレメントの記述内に含むことができるように、再編成される。
拡張テンプレートの適応性(extended template adaptability)は、個々のテンプレートそれぞれが広範囲の表示寸法および文書コンテンツをカバーすることを可能にすることができる。以前は、それぞれのテンプレートは、表示エレメントの固定のセットを有しており、コンテンツの特定のセットを必要とし、エレメントは、制約システムを通じてページ寸法の範囲をカバーするように構成されていた。ページ上の図の数などの異なるコンテンツの組み合わせ(assortment)のそれぞれは、異なるテンプレートを必要としていた。横長の縦横比を有する図は、縦長の縦横比を有する図とは異なるテンプレートを使用していた。潜在的に異なる縦横比または解像度を有するページで複数の図に対処するには、コンテンツストリーム内に様々な順序で現れる図のタイプのあり得る組合せに対処するためのさらなる数のテンプレートが必要であった。単一のテンプレートも、元のシステムでは固定数のカラムを有し、ページが保有する可能性がある各カラム数について、図のタイプのあり得る順列(possible permutation)のすべてを対処する新しいテンプレートを必要としていた。柔軟な「スタイル」に必要なテンプレートの総数は、テンプレートが適応するあり得る寸法が増加するにつれて急激に増加し、広く適用可能なスタイルの生成を扱いにくいものとし、そのメンテナンスを非常に難しくしていた。
このテンプレート定義は、これらの問題に対応する複数の新しい特徴を有する。オプションのエレメントは、異なるコンテンツ選択を単一のテンプレートによって対処することを可能にすることができる。エレメントは「Or」グループへと組み合わせることができ、この「Or」グループは、テンプレートが、そのテンプレートが使用される度に1組の可能性のある選択肢から1つのエレメントだけをインスタンス化することを可能にすることができる。Orグループは、最良適合(Best-Fit)、第一適合(First-Fit)、第一良好適合(First-Good-Fit)および類似のアルゴリズムを含め、所与のレイアウトでどのエレメントを選択するか決定するためのいくつかののアルゴリズムの1つを使用することができる。
さらに、新しいテンプレートは、可変数のカラムを有することができる。上述のカラム定義は、特定のページ閾値に基づいて適応カラムを包含するための規則を含むことができ、あるいは閾値は、最小のカラム幅に基づいてアーキテクチャのコンポーネントによって計算することができる。どのカラムを特定のページサイズでインスタンス化するかを制御するカラム優先度(column priority)を指定することができる。特定のページ幅で使用されないカラムは、制約システムによってゼロ幅に縮小する(collapse)ことができ、その結果、それらにまたがるエレメントは、幅を減少されるか、またはそのページサイズでは完全に除去される。同時に、オプションのエレメントおよび適応カラムグリッドは、テンプレートの数、および関連するメンテナンスを劇的に減らすことができる。
テンプレートシステムへの別の拡張は、親テンプレートと、その内部にレイアウトされたサブテンプレート(sub-template)との間で前後にパラメータを渡すことを可能にすることができる。パラメータ、および戻り値を、任意の他の制約値(constraint value)と同様にエレメントによって参照できるように、受信テンプレートの制約キャッシュ内に置くことができる。これらのパラメータを用いて、例えば、サブテンプレート内のカラム数を設定し、オプションのエレメントの包含または除外のフラグを立て、あるいは図を子の中に表示する方法を制御することができる。サブテンプレートに渡されたパラメータは、即時値(immediate value)とすることができ、あるいは呼出し時に評価することができる親テンプレートのシステム内の制約とすることができる。
親文書は、子の中で使用される活字組み(typesetting)の詳細の多くを直接に制御することができるので、同様に、スタイルシートを、パラメータとしてサブテンプレートに渡すことができる。返されたパラメータは、図の最上部および下部がどこに位置するか、または見出しまたはタイトルがどこで終了するかなど、子のレイアウトについてのほかの隠れた詳細を、親テンプレートに知らせることができる。次いで、親は、他の表示エレメントをサブテンプレートの特徴に位置合わせすることができ、または別個のサブテンプレート内の2つの無関係な図を隣り合わせに置かないことを保証することができる。
当業者であれば理解されるように、特に、上述されるような階層複合文書(hierarchal compound document)を表示するためのテンプレートの能力を増す他の改良物がある。例えば、「And」グループは、エレメントの集合が、単一のコンテンツアトム(content atom)から取り込む(consume)ことを可能にし、文書のレイアウトおよび編成にさらなる柔軟性をもたらす。これによって、例えば、写真特集を個々のニュース記事から取り出し、記事の残りとは別のエレメント内の新聞の第1面に表示することを可能にすることができる。別の特徴は、以前のシステムによって渡される矩形の境界ボックス(bounding box)ではなく、ホスト側のエレメントのGDI(Graphical Display Interface)領域を、エレメント内で使用されているサブテンプレートに渡すことができる。この態様は、サブテンプレートが、親テンプレート内のオーバーラップするエレメントの周りにそのテキストを流し、またはピクチャを表示するためにORグループから、遮断されていないエレメントを選ぶことを可能にすることができる。
上述されるように、他の実施形態は、固定サイズ選択肢の集合を含め、各カラムに望ましいサイズの特定の範囲など、カラムグリッドの望ましい振舞いを記述するためのより強力な方法を容易にするテンプレート指定のための高水準構成体を提供することができる。さらに、例えば自動的に生成されたマージンを使用して、過剰制約(over-constrained)および過小制約(under-constrained)状況を解決するために、優先度を指定することができる。実施形態は、異なる規則およびヒューリスティック(heuristics)に従うがカラムに類似する自動生成される垂直グリッド、個々のグリッドカラムを分割する適応サブグリッド、および異なるグリッドによって制御されるエレメントの異なる集合を有するレイアウトを可能にする追加的な最上位レベルのグリッドをサポートすることができる。個々のエレメントを、複数回インスタンス化することができ、すべてを一緒に複数回インスタンス化することができるエレメントのグループを構築できることが意図されている。
オプションエレメント(およびエレメントのORグループ)の存在下で一貫した制約システムを指定することは急速に、非常に複雑で厄介なものとなる可能性があり、正確なシステムを作り出すための構成体を開発し、所望の結果についての記述が与えられたテンプレートにそれを自動的に構築することも企図されている。
さらに、エンドユーザがコンテンツを見るときに個々の表示エレメントをサイズ変更することを可能にすることによって、適応表示レイアウト(ADL:Adaptive Display Layout)文書にさらなるインタラクティビティを追加すること、またはエレメント内に新しいデータを追加すること、ならびに存在するコンテンツに基づいて、より高度化した方法を使用して所与のサイズでいずれのカラムを含むか選択するように適応カラムカウントの振舞い(adaptive-column-count behavior)を拡張することも意図されている。これは、カラムに関するあり得る選択のそれぞれをレンダリングし、レイアウトスコアに基づいて最良のものを選択することを含む可能性がある。
簡潔に上述されるように、一態様によると、特許請求された主題は、従来のAGBDL文書システムを3つの一般的な方法で拡張することができる。第1に、テンプレートシステムが改良され、テンプレートをより強力にし、さらに広範なコンテンツ範囲をカバーするのにはるかに少ないテンプレートのみを必要とし、それと同時に、テンプレートを書き維持することが容易になった。さらに、文書定義は、文書が複数の位置からコンテンツを収集し、また個々の文書について親および子文書の階層に組み立てられることを可能にするように、拡張された。最後に、レイアウトエンジン(例えば、AGBDLシステム内の低水準エンジン)は、新しい領域にしばしば特有の新しい特徴についてのサポートを提供するように更新された。次に、これらの拡張、および特許請求された主題の他の態様について述べる。
(テンプレート)
テンプレートについて3つの主要な態様がある。第1に、テンプレートを作成し、理解し、維持することを容易にする高水準言語を使用して、テンプレートを指定することができる。第2に、テンプレートは、全てのあり得る変形体、および単一レイアウト内のコンテンツの変形体の組合せについて別個のテンプレートを必要とするのではなく、使用可能なテンプレートに適応可能なものとすることができる。第3に、テンプレートは、より大きい範囲の画面寸法に拡張し、書かれ維持されるべき類似のテンプレートの数を減少させる能力を有することができる。
AGBDLシステム内のテンプレートは、非常に低水準な言語で書かれていたので、書くことや理解することが非常に難しかった。個々の制約それぞれが明示的に指定され、ページ上の全てのエレメントについて多くの制約が必要とされていた。可変数のカラムなど高度化した適応(sophisticated adaptation)のための制約システムは、書くことが極めて難しく、また、別の作成者のテンプレートを解読することは、あまりにも難しいことであった。テンプレートデザインツールは、テンプレートデザイン用のGUIを提供したが、それはたいてい低水準のサポートを提供したにすぎず、ほとんどの制約が独立に設定されることを依然として必要としていた。さらに、その出力は理解することや編集することが非常に難しく、ツールの能力を超えてデザインをカスタマイズすることを難しくしていた。
一実施形態によると、特許請求された主題は、高水準構成体の固有の長所(native strength)を利用するテンプレートを使用し、したがってより強力なビルディングブロックをテンプレート言語自体に含む。新しい言語の高水準のプリミティブ(primitive)を、テンプレートをシステムによってロードするときに基本構造(basic structure)にコンパイルすることができ、あるいは更新されたレイアウトエンジンによって直接読むことができる。制約システムの多くの部分は、新しいプリミティブから推測することができ、自動的に生成される。このシステムは、よく知られている有用なタスクのために、複雑な制約システムを自動的に生成することもできる。
(高水準テンプレート記述)
元のAGBDLシステムと、特許請求された主題の両方は、XML文書として定義することができる。元のシステムでは、テンプレート記述は、セクションに編成されていた。すべてのエレメントは、親の<elements>ノード内の<element>ノードによって記述され、すべての制約は、親の<constraints>ノード内の<constraint>ノードによって記述されていた。高水準テンプレートは、2つのセクションを保持することができ、作成者が任意のエレメントノード内に制約を代替的に定義することを可能にすることもできる。この柔軟性により、テンプレートが、特定のエレメントをそのエレメントで直接に記述する制約をグループ化し、一般セクション内にグローバル制約(global constraint)を置くことが可能になる。
作成者にそれぞれの制約を個々に指定することを求めるのではなく、親に適用するいくつかの個々の制約を暗黙的に定義するためにエレメントノードの下に置くことができる複数の子ノードを定義することがでる。例えば、マージンおよびパディングを、以下の例に示される属性の一部を含む単一ノードを有するエレメントについて指定することができる。
Figure 2009510650
特定の割当ては典型的に、より一般的な割当てを常にオーバーライドする。属性によって定義されない値はいずれも、ゼロと見なすことができる。作成者は、属性を、即時値、または他の制約を参照する表現に割り当てることができる。エレメントのサイズ調整および配置を制御する制約は、あり得る属性のサブセットを再び使用して、単一の位置ノード(location node)で指定することができる。位置ノードの解析後にノードが過小制約を受ける場合、通常エラーが生成される。
以下の例に示されるように、「over」および「under」属性を使用して、他のエレメントの位置に基づいてエレメントを割り当てることができる。例えば、「over」属性は、現在のエレメントの最上部を名前付きエレメントの最下部と位置合わせし、「under」属性は、エレメントの最下部を名前付きエレメントの最上部と位置合わせする。
Figure 2009510650
文書を粗いカラムグリッドに分割することは一般的である。文書の幅が変化する際に、ほとんどのカラムが適応するために使用する可能性の高い振舞いは、ほんのわずかしかない。例えば、カラムは、ページが広がるにつれてすべて等しく大きくなり、ページが狭まるにつれて等しく小さくなる。カラムは、ある固定の比率に従って大きくまたは小さくなることもある。代替的にまたは追加的に、いくつかのカラムは固定幅のままで、一方他のカラムはサイズ変更するか、あるいは、余分な幅がガターおよびカラムの周りのマージンに吸収されることがある。テンプレート言語は、上記に列挙された振舞いの組合せ、さらには他の可能性ある振舞いまたは所望の振舞いの組合せを使用して適応するグリッドを定義するツールを含むことができることを理解されたい。特許請求された主題の態様は、カラムについて定義された振舞いを実装するのに必要な制約システムを自動的に生成することができる。例えば、テンプレートデザイナーは、以下の例のように、メンバカラムの数およびデフォルトの振舞いを定義する<grid>ノードを作成することができ、次いで、任意の数のカラムノードを、個々のカラムについて代替の振舞いを定義することができるグリッドノードの下で作成することができる。
Figure 2009510650
上記のグリッドノードは、4カラムのカラムグリッドを定義することができる。最初の3つのカラムは、ページに比例して増加するように定義され、第2のカラムは、他の2つの各カラムの3倍の幅であり、第4のカラムは、200ピクセル幅に常に固定された(fixed)ままである。グリッドノードが解析されると、例えば「maingrid.grid0」から「maingrid.grid4」までの名前が付けられたグリッド線を定義する制約を作成することができる。ページ幅が変化するとグリッド線のそれぞれを配置する制約システムを、自動的に生成することができる。例えば「maingrid.columnl.right」、「maingrid.columnl.left」などの名前が付けられたグリッド線に関連してカラムを定義することによって、さらなる制約を作ることができる。テンプレート作成者は、エレメントを定義する制約の中でこれらの名前を直接参照することができ、そうでない場合は、「カラム」属性を、以下の例の後者の2つで行われるように、左右の制約を示唆する位置ノード内に置くことができる。
Figure 2009510650
第2の位置カラム(location column)の例の中のダッシュ(「−」)はここでは、エレメントがカラム2とカラム3の両方にまたがることを示す。1つのグリッドだけが定義されている場合、上記の第2の例で行われるように、名前プレフィックス(name prefix)は、カラム名およびグリッド名から省くことができ、それらは、単一のグリッドを指すと見なされることとなる。個々のカラムに加え、カラムのスパン(span)を使用することができる。追加的な制約を、エレメントを位置決めするのに使用することができる各カラムについて作成することができる。これらの制約には、限定ではないが、「column.width」および「column.center」、ならびに分数のカラム線「column.1third」、「column.2third」、「column.lquarter」などが含まれる。
マルチカラムページ上のテキストカラム、ディバイダのグラフィックス(divider graphics)および図エレメントなど、ほとんどのプロパティではなくとも多くのプロパティを共通に共有する多くの類似のエレメントをページ上に有することは、一般的である。単一の<element>ノードの下に複数の<location>ノードを置くことによって、エレメント定義を再使用することができる。それぞれの位置ノードは、追加ノードの属性でサイズ調整されて位置決めされる親エレメントの新しいインスタンスを作成することができる。エレメント名は、位置ノードが現れる順序で割り当てられ、インスタンスを制約表現内で区別することができるように名前を付加される、1−ベースのインデックス(1-based index)を有することができる。
制約が、複数のインスタンス化を伴うエレメント内で定義されると、それぞれのインスタンスが各制約について一意の名前を使用することが必要となることが多い。マクロを利用可能にし、複数のインスタンス化を容易にすることができる。制約の名前または表現内に現れる文字列「!THIS!」は、その時に処理されているインスタンスの名前を評価することができる。「!LAST!」は、前のエレメントを評価することができ、それにより、エレメントをつなぎ、または積み重ねることが容易になる。名前をピリオド(「.」)で開始することは一般に、現在のインスタンスの名前がピリオドの前にあると見なす。
複数の位置ノードを使用することは、複製エレメント(duplicate elements)を作成する簡潔で効率的な方法であり得るが、いくつかのインスタンスの変形を可能にすることにも有用であり得る。例えば、いくつかの別の同一エレメントは、異なるz層(後述)の要件を有するか、あるいは異なるコンテンツストリームから取り込むことがある。この理由のため、エレメントノードに定義される任意のプロパティを、位置ノード内でオーバーライドすることができる。位置ノード上に属性を設定することによって、層またはスタイルIDなどの単一の値からなるプロパティを、オーバーライドすることができる。位置ノードの下に事前条件ノード(precondition node)を置くことによって、事前条件などのより複雑なプロパティを上書きすることができる。以下の例は、3回インスタンス化されたエレメントを示しており、プロパティは第2の2で上書きされている。
Figure 2009510650
AGBDLシステムでは、単一のページ上にサポートされたカラムカウントのそれぞれについてテンプレートの新しいファミリーを作成することは一般的であった。テンプレートのファミリーは、ページ幅の範囲によって選択されていた。テンプレートの1つのカラムファミリーを、狭いページに使用することができ、ページ幅が所与の閾値を超えて増加すると、システムは、2つのカラムファミリーに切り換わる。それぞれのファミリーは、ページ上のコンテンツについての異なる組合せおよびその位置をカバーする複数のテンプレートを含む。これらのファミリー内のほとんどの視覚エレメントは、カラム数を除いては、同じであることが多い。
ファミリー間のこの類似は、ページ幅が変化するとカラムをサイズ変更するだけでなくページ上のカラムの数を変更することもできる適応グリッドを定義することによって、活用することができる。これは、<adaptive>ノードを、テンプレート内でグリッド定義ノードの下に置くことによって達成することができる。適応ノードが存在する場合、グリッドノード内のカラムカウントは、最大カラム数として機能することができる。適応ノード内に規則を置き、どのくらいのカラムが任意の所与のページ幅でアクティブ化されるかを判定することができる。規則は、例えば、minColumnWidthまたはmaxColumnWidthのいずれかを指定することができる。minColumnWidth規則は、テンプレートに最大カラム数を使用するように指示することができ、典型的にこのカラムはすべて少なくとも所与の閾値の標準幅を有する。カラムは、異なる比例サイズを有することがあるので、それぞれのカラムの実際のサイズを、最小および/または最大の幅をチェックするときにカラムの比例値で割ることができる。
作成者は、任意のまたは全てのカラムに、ページ幅がすべてのカラムを含むほど十分に広くない場合にカラムが除去される順序を制御する優先度を与えることができる。優先度が指定されない場合は、デフォルト優先度を適用することができる。例えば、デフォルト優先度を設定し、カラムを右から左に除去することができる。異なる優先度を割り当てるために、作成者は、グリッド定義ノードに、カラムの左から右へと割り当てる優先度値のカンマ区切りリスト(comma-delimited list)と共に優先度属性を含めることができる。あるいは、作成者は、グリッド定義のカラム定義ノードに優先度属性を含めることができる。優先度は典型的に、整数値である。所与のページレイアウトでは一般に、アクティブなカラムの数以下の優先度値を有するカラムのみが含まれる。
適応カラムがテンプレートのインスタンス化から除去されると、制約システムは一般に、カラムをゼロ幅に縮小する。レイアウト時にゼロ幅を有するエレメントは典型的に、コンンテンツを取り込まず、またはテンプレートスコアに寄与しない。エレメントが複数カラムにまたがる場合、そのエレメントは、任意の所与のレイアウト内でアクティブなカラムまたがるように見えるだけの可能性が非常に高いであろう。
デザイナーは、適応カラムを有するページの左端または右端のカラムにエレメントを置きたいことがあるであろう。これを容易にするために、位置ノードは、カラム属性内で特別なキーワード、例えば「leftmost」および「rightmost」を認識することができる。
(コンテンツへのテンプレート適応)
テンプレートは、それぞれ異なるコンテンツ構成に複数の方法で適応することができる。AGBDLテンプレートは、その上に配置された複数の事前条件を有することがあり、この事前条件は、それぞれのテンプレートが使用され得る厳密なコンテンツ要件(precise content requirement)を含む事情(circumstance)を示す。対照的に、特許請求された主題の態様は、テンプレート全体に加えて、テンプレート内の個々のエレメント上に事前条件を配置することを可能にすることができる。これらのエレメント事前条件は、使用可能なコンテンツ、表示条件、またはシステム内の任意の他の制約に応じて、エレメントを、条件付きでレイアウト内に含めることを可能にすることができる。オプションのエレメントが使用されないときに、テンプレートの客観的スコア(objective score)にペナルティを課す(penalize)ことが有用なことがある。例えば「element−name.active」という名前の特別な制約値を、あらゆるエレメントについて、テンプレートの制約システムに自動的に追加することができる。element−name.activeの値は、例えば、エレメントがレイアウト内に含まれるときには1に、エレメントが含まれないときには0に設定することができる。この制約値をテストして、テンプレートの客観的スコアの判定において任意のエレメントの存在を考慮することができる。エレメントノード上に設定された事前条件は一般に、エレメントのすべてのインスタンスに適用する。事前条件ノードを位置ノード内に配置して、さらなる事前条件を追加するか、またはエレメントノード上に設定されたいずれかをオーバーライドすることができる。
エレメント事前条件は、複数のエレメントを個々に制御することを可能にすることができるが、エレメントの制御を結び付けることにも有用であることが多く、複数のエレメントを一緒に、いくつかの構成体にグループ化することができる。ANDグループは、いくつかのエレメントを単一の事前条件のセットによって制御することを可能にすることができる。同様に、ORグループは、複数のレイアウトエレメントを定義することを可能にすることができ、その1つのみがテンプレートの任意のインスタンスに含まれることとなる。いくつかのオプションおよび/またはアルゴリズムをサポートして、複数のオプションがあり得る場合に、使用するインスタンスを決定することができる。第一適合のアルゴリズムは、すべての特定の事前条件が満たされるグループ内で第1のエレメントを使用することができる。最良適合アルゴリズムは、各グループメンバを評価することができ、最良の客観的レイアウトスコアを返すエレメントを使用する。第一良好適合アルゴリズムは、所与の閾値を超えたレイアウトスコアを返すグループ内の第1のエレメントを使用することができる。
作成者は、オプションのエレメントを有するテンプレートをデザインする場合に、エレメント間の制約関係が、有効なままであり、テンプレートの所与のインスタンス化に個々のエレメントのいずれかが存在するかどうかにかかわらず所望の結果をもたらすように注意すべきであることを理解されたい。固定サイズのエレメントは、インスタンス化されない場合はその寸法を保持することができるが、可変の高さエレメント、recomputeHeight=“true”で定義されるエレメントは一般に、ゼロの高さにサイズ変更される。ORグループの境界を定義する制約を、各レイアウトについて選択されるいずれのメンバエレメントの境界とも同じとなるように自動的に指定することができる。
別の態様によると、テンプレートをコンテンツに適応させる方法を提供することができる。この方法は、字体およびサイズのようなスタイル特性を特定のコンテンツに適応することに対応する。テンプレートがデザインされると、テキストのブロックのスタイルを表示エレメントに割り当てることができる。これは典型的には問題ではないが、新聞のページ上に見出しを表示することなどのいくつかの適用例では、テキストの外観はその有効性には極めて重要である。印刷される新聞では、ページ編集者は、改行およびバランスを調整して使用可能なスペースを埋めるように見出しを書く。異なるサイズのカラムを横切って配置されたランダムな見出しは、上手く改行されず、および/または行を埋めることができないことが多く、低品質のレイアウトをもたらすこととなる。
特許請求された主題の別の態様によると、この困難性は、表示時にテンプレート内のスタイルを、使用可能なコンテンツに適応させることを可能にすることによって緩和することができる。デザイナーは、所与のエレメントで使用する可能性あるスタイルのリストを指定することができ、レイアウトエンジンは、それぞれについての客観的スコアを、それぞれ1つ生成しようと試みることができる。最良スコアをもたらすスタイルが、実際のレイアウトで使用されることがほとんどであろう。しかし、同じテキストとテンプレートの組合せでは、異なるページ寸法で異なるスタイルが選択される可能性が高い。テキストレイアウトを評価するための方法を使用して、最良のスタイルを判定することができる。例えば、特定のスタイルのフォントサイズによってスケーリングされた、最適改行のスコアリング関数(optimal line-breaker's scoring function)の結果を用いることができる。最適改行(optimal line-breaker)は、複数の文字幅として表現された、各行内に残る空白を測定する。文字幅は通常フォントサイズに依拠するので、スケーリングなしでは、より大きいフォントは、より小さい(よりよい)スコアをもたらす傾向がある。
(文書表現)
文書表示は、多種多様のソースから取り出されたデータを高品質な方法で表示することを可能にするように拡張されてきた。文書は典型的に、追加された能力は有するが、元のAGBDLシステム(以下で論じる)と完全に同じように構築される。
インターネット上にはデータの標準フォーマットがないので、データソースのオンザフライ変換のサポートは、例えばXSLTを通じて得る。XSLTは、変換ファイルによって指定された一連の規則を適用することによってソース文書(一般にXML文書)を新しい結果文書に変換するシステムである。任意のXMLデータのいずれも、文書に変換することができ、結果として生じる文書によって参照することができる適切な1組のテンプレートが与えられると、この文書を表示することができる。このように、任意のXMLデータ、適格な(well-formed)XMLソースを有するウェブページ、または自動変換可能な他のタイプのデータを、XSLT変換が存在する場合にはインターネットから直接ロードすることができる。
ユーザは、変換ファイルを、文書パス(path)またはURL(Universal Resource Locator)とともにこのビューア(viewer)のパラメータとして指定することができる。あるいは、ユーザは、オペレーティングシステムレジストリなどのレジストリにエントリを配置することによって、パスまたはURLプレフィックスを変換ファイルに関連付けることができる。この関連付けにより、プレフィックスから始まる名前付きパスまたはURLがロードされるときはいつでも、入力文書に適用されるXSLT変換を自動的に促進することができる。
従来、XSLT変換の1つの制限は、多くのHTMLウェブページが存在しない適格なXML上でしかXSLT変換が動作しないことである。したがって、ユーザは、ウェブスクレーパーなどの代替の変換プログラムを指定することができ、この変換プログラムは、指定されたデータを、解析する前に前処理することができる。一部の例示的な適用例では、専用のウェブスクレーパーと、スクレーパーの出力に作用するXSLT変換との両方を使用して、最終文書を作成する。
文書の基本構造は通常、コンテンツを、順序付けされたデータシーケンスを定義することができるコンテンツストリームの集合に編成する。コンテンツは、テキスト、イメージ、あるいはサブテンプレートを使用して再帰的にレイアウトされるそれら自体のサブストリームの集合を含むことができる複合アイテム(compound item)とすることができる。複合エレメント(compound element)を表示するテンプレートは一般に、複合エレメントの個々のストリームをレイアウトするのに使用することができるテンプレートのリストを提供しなければならない。
外部コンテンツを文書内に含める手法に柔軟性をもたせることは、多くの場合、有用である。文書内のほとんどの任意のコンテンツストリームは、提供されたパスまたはURLからロードすることができる外部ストリームとすることができる。追加的にまたは代替的に、単一のコンテンツストリーム内の個々のコンテンツアイテムについて、外部参照を指定することができる。実質的にはすべての外部参照は、関連するXSLT変換、またはリンクで指定された他の前処理エージェント(pre-processing agent)を有することができる。参照された任意のほとんどの文書を、複合アイテムとして全体でロードすることができ、さもなければ、個々のストリームを文書から抽出することができる。例えば、ニュースアグリゲータでは、個々のソースからロードされた個々の新しいニュース記事を含むストリームの集合、および目次を構築するためにその見出しのそれぞれを抽出する単一のストリームを有することがある。
AGBDLシステムに提供されないが、特許請求された主題の態様は、それ自体の表示テンプレートリストを含む複合エレメントとして定義することができるサブ文書の概念を導入することがでる。サブ文書は、レンダリングされるときに、親テンプレート内で指定されたテンプレートではなく、それ自体のテンプレートを使用することができる。サブ文書が含まれることにより、実質的にはいずれの文書もここでは、親および子の文書の階層と見なすことができる。
文書ツリー内の各ノードでは、デザイナーは、親または子の文書が、テンプレートを供給することによりレイアウトを制御するかどうかを選択することができる。これを二者択一(all or nothing)の選択にすることは、常に望ましいとは限らない。むしろ、親テンプレートからのサブ文書のレイアウトに影響を及ぼすための一般的な方法がある。1つの方法は、親が、子テンプレートのスタイルシートをオーバーライドすることである。典型的な新聞にならってモデル化された、集約された文書では、見出しが並んで現れるときにそれが容易に区別されるように見出しのスタイルを変化させることが通常望ましい。親テンプレートは、記事が現れるエレメントに、異なるスタイルシートを渡すことによってこれを保証することができる。
子文書のレイアウトに影響を及ぼすための別の方法は、パラメータを渡すことによるものである。子テンプレートに渡されたパラメータを、テンプレートがインスタンス化される前に、子の制約システム内に入力することができる。パラメータ値を、親の制約システムから派生させることができ、または直接指定することができる。渡されたこれらの制約値を、子文書によって、任意の数の方法で使用することができる。それらを、サブテンプレート内の個々のエレメントの事前条件に含めることができ、またはエレメントの位置およびサイズ調整を制御する他の制約によって参照することができる。他の例では、重要ではないサブ文書(non-featured sub-document)内の大きいグラフィックスの表示を抑制するが、それが最上位レベルの文書として、または重要な役割のサブ文書として表示される場合には大きいグラフィックスの表示を含むように、パラメータを使用する。サブ文書内の特徴を、親ページ上または別のサブ文書内の特徴と位置合わせするように、パラメータを使用することもできる。デザイナーは、サブテンプレートが評価された後、親テンプレートの制約システムに入力することができるサブテンプレートからの戻り値を同様に指定することができる。
サブ文書および複合エレメントの特徴は、ここではそれらが独立にページネーションされ得ることである。サブ文書の連続ページには、適所(in place)でサブ文書のページをめくることによりアクセスすることができ、またはサブ文書の連続ページを、親文書の連続ページにレイアウトすることができる。第1の方法は、ユーザが、親の第1面上のサブ文書化されたニュース記事全体を、内部のページにジャンプせずに読むことを可能にすることができる。それによって、インデックスは、そのページに割り当てられたスペースよりも大きいものとすることができるが、そのデータのすべてを依然としてアクセス可能にすることもできる。他の使用法は、例えば、親の単一ページ上に存在する複数ページ広告またはサイドバーを含むことができる。
(非矩形テンプレートおよびエレメント)
元のAGBDLシステムおよび本革新の両方のテンプレートは一般に、原点、幅および高さを有する矩形として定義される。しかし、非矩形エレメントが望まれる多くの場合がある。このような機能を、エレメントをz順に階層化することによって単一のテンプレートで達成することができ、その場合、より高位層のエレメントのセクションは、オーバーラップする下位層のエレメントと区別される。エレメントを、層の降順に評価することができる。それぞれのエレメントがレイアウトされる前に、以前にレイアウトされたすべてのエレメントのGDI領域を、現在のエレメントのGDI領域から取り去ることができる。完了したエレメントの領域が、例えば各エレメントを完了すると単一の領域に完了したエレメントを配置する結合操作(union operation)によって累積される場合には、これを単一の操作で行うことができる。この操作によって、イメージは典型的には遮断されたままであるが、後のエレメント内の任意のテキストを、他のオーバーラップするエレメントの周りを流すことを可能にすることができる。しかし、通常、エレメント領域を、サブテンプレート内の領域から直接は取り去ることはない。代わりに、エレメントの領域の累積された結合を、より下位層内のサブテンプレートに渡すことができ、この親領域は、それらのサブテンプレート内の累積された領域をシードする(seed)ことができる。この手法で、テキストは、より高水準のテンプレート内で、オーバーラップするエレメントの周りを流れることができる。
親領域を取り去ることによって、テキストのリフローによってサブテンプレートをオーバーラップさせることの困難性の一部に対処することができるが、子の中のイメージまたはサブテンプレートの遮断を回避することも望ましい。したがって、邪魔にならないようにイメージを流す容易な方法は存在せず、したがって、代わりにエレメントが(部分的にまたは完全に)遮断されるかどうかを決定し、エレメントの客観的スコア内にそれを反映する。テンプレートの作成者が、エレメントのスコアを完全なテンプレートのスコアに含めることを選択する場合、遮断されたエレメントを有しない別のテンプレートが使用可能であれば、そのテンプレートを無視することができる。代替としてまたは追加として、遮断されたエレメントのいくつかの位置を、最良適合 ORグループ内の1つのテンプレートに含むことができ、この場合、遮断されていない位置が、使用可能であれば選択されるのが一般的である。
親領域をエレメントのGDI領域と区別して、結果として生じる領域を元の領域と比較することによって、遮断されたエレメントは検出される。テンプレート作成者は、エレメントがレイアウトされるときにオーバーラップが生じる場合に、エレメントの客観的スコアに適用されるべきペナルティを指定する、任意のエレメントの属性を含めることができる。
別の態様では、親領域を使用して、文書にさらなる柔軟性を提供することができる。親領域は、オペレーティングシステムのアプリケーションウィンドウのシステムクリッピング領域(application window's system clipping region)の最上位レベルのテンプレートを初期化することができる。これによって、システムが、デスクトップ上の他のアプリケーションのオーバーラップしたウィンドウの周りに文書を流し、遮断されたイメージを邪魔にならないように潜在的に移動させることを可能にすることができる。最良の結果を、リフローされた任意のテキストの隣にマージンを提供するように任意のオーバーラップした領域をわずかに膨張させることによって取得することができる。
上述された手順は、サブ文書が非矩形エレメントを占有することを可能にすることができるが、これもやはり、高品質レイアウトをもたらすのに必ずしも十分であるとは限らない。新聞の第1面では、例えば、トップ記事からの写真を目立つように載せたいと望むことがあり、写真と記事の残り部分との結合は、都合のよい矩形を形成しないことがある。境界となる矩形(bouding rectangle)を、エレメントの周りに常に描くことができるが、大きいまたは不規則な領域を取り去り、意図されるように依然として見栄えのよいテンプレートをデザインすることは、難しいことが多い。この困難性を、いくつかのエレメントのANDグループを形成することによってより容易に解決することができ、この場合、エレメントのすべては、コンテンツを、単一の複合コンテンツアイテムまたはサブ文書から取り込む。これによって、いずれかの任意の形状の領域内のサブ文書を効果的にレイアウトすることが可能になり得る。新聞ページの特集記事の例では、あるエレメントが写真ストリームから取り込み、もう一方のエレメントがその他すべて取り込むことが望まれていた。この一般的な場合では、consumeRemainder属性を、認識し、使用することができる。デザイナーは、この属性をANDグループ内のエレメント上に置くことができ、そのエレメントのグループの他のメンバによって取り込まれなかったそのエレメント内のコンテンツのすべてを使用するようにシステムに伝える。
(領域特有の課題)
このセクションでは、コンテンツの集約をレイアウトすることに特有の困難性の一部、ならびにこれらの困難性に対応するために開発された技術の一部について述べる。
(カラムのバランス調整)
マルチカラムレイアウト上に複数の記事または論説をレイアウトするとき、記事を互いに対してどのように配列するかについて多くのオプションがあり得る。2つ記事の間でページ(またはページの一部)を分割する1つの一般的なやり方は、ページを水平に分けて、第2の記事を第1の記事の最下部の下に置くことである。このタイプのレイアウトを使用する場合、各カラムが同じ垂直位置で終わるように、そのために割り当てられたカラム間でコンテンツを等しく分配しなければならない。
この実装形態では、ページ上のカラムを表すエレメントのグループ(およびANDグループ)がbalanceColumnsプロパティでタグ付けされるときにトリガされる簡単な反復レイアウトアルゴリズム(iterative layout algorithm)を介して、これを達成することができる。下記に、単一の記事をレイアウトし、その最下部をできるだけ平らに保つためにこの反復アルゴリズムがどのように働くかについて述べる。
第1に、ページは、例えば標準の欲張りレイアウト法(greedy layout method)を使用してレイアウトされる。コンテンツが完全にページを埋める場合は、カラムは、バランス調整され、このレイアウトを、最終結果として使用することができる。そうでない場合は、バランス調整されるべきエレメント内に残っている未使用の総垂直空間が測定される。余分な空間のこの総量を、カラム数で割り、バランス調整された結果の各カラムがアンダーフィル(underfill)される量についての最初の推測を与えることができる。次いで、この垂直アンダーフィル(vertical underfill)の測定量を、エレメントの最下部から取り去り、バランス調整されたテキストの最下部となると思われるカットオフ位置をもたらすことができる。次いで、エレメントそれぞれの新しい最下部を、レイアウトを再び実行するために、計算されたこのカットオフ位置に設定することができる。すべてのテキストが取り去られ、テキストがバランス調整される(最後のカラムは、カラム数より最大1行未満だけアンダーフィルされ、依然として「バランス調整された」と見なされることが認められる)場合、このレイアウトを使用することができる。しかし、カラムが適切にバランス調整されない場合は、レイアウト手順を再び実行することによって、カットオフ位置を調整する−最後のカラムがあまりにまばらである場合はカットオフ位置を上げ、すべてのコンテンツにとって十分な余地がない場合はカットオフ位置を下げる−ことができる。この手順を、バランスの取れたレイアウトに収束するまで繰り返すことができる。
最後に、エレメントの新しい最下部を、そのエレメント内にレイアウトされた任意のコンテンツの真下に設定することができる。これは、反復が収束する正確なカットオフ値に基づいて、エレメントが予測不可能な高さを有することを防ぐことができる。
(分割不可能な段落およびアトミックなサブ文書)
状況によっては、ページ境界の上でコンテンツの一部分を割ることが意味をなさないことがある。例えば、コンテンツが、2行または3行にまたがる1文の要約にすぎない場合、コンテンツ全体を次のページに単に移動させることが好ましいことがある。新聞のような第1面についての特定の場合は、新聞の内部または他のセクションの強調部分(highlight)として機能する多くの小さいボックスが存在することがある。これらの小さいボックスのコンテンツは典型的に、上述されるように個々の記事の短い要約である。これらの短い要約がページ境界を越えて分かれることを避けることにより、通常はるかに見栄えがよくなる。したがって、これを達成するために、コンテンツチャンク(content chunk)に、「コンテンツのこの部分を、ページまたはエレメント境界を越えて分割しない」ことを意味するプロパティでタグ付けすることができ、あるいはエレメントに、「ここに完全に表示することができるコンテンツアイテムだけを受け付ける」ことを意味する別のプロパティでタグ付けすることができる。問題になっているコンテンツは、個々の段落、あるいは、写真およびキャプションまたはサイドバーを恐らく表す複数のデータストリームを含む複合アイテム、とすることができる。
(インタラクティビティ)
電子文書は、紙の文書を模倣することに制限される必要はない。異なる画面寸法に自動的に適応することは、紙の文書では不可能なことであるが、文書は、表示サイズが固定された後でも、紙文書のすべてのプロパティを前提とする必要があるとは限らない。例えば、コンテンツ加入者(content subscriber)は、オンライン文書のハイパーリンクを使用することに長い間慣れ親しんできたが、読者が同様に電子文書と対話することができる他の方法がある。
インタラクティビティの一環として、ハイパーリンクを文書内でサポートすることができ、リンクは他の文書をターゲットにすることができる。これは、固有文書、および上記の「文書表現」のセクションで説明されたようにロード時に変換することができる文書を含む。ハイパーリンクは、ターゲットコンテンツのパスまたはURLに加えて、XSLT変換または別のヘルパープログラムへの参照を含むことができる。ハイパーリンクは、読取り不可能なURLを参照することもでき、その場合、ウェブブラウザを立ち上げて、リンクがアクティブ化されるときにコンテンツを表示することができる。最後に、ハイパーリンクは、文書の内部のコンテンツを指すこともでき、その場合、参照を含むページを表示することができる。
複合文書(例えば、サブ文書を含む文書)内のハイパーリンクをアクティブ化するとき、可能性のある振舞いがいくつかある。リンクが最上位レベルの文書内にある場合は、文書全体を、参照された文書で置き換えることができる。リンクがサブ文書内にある場合は、サブ文書のみを参照された文書で置き換えることが望ましいことがある。これは典型的に、システムのデフォルトの振舞いであるが、デザイナーは、任意のサブ文書エレメントを「ランチャー(launcher)」エレメントとして指定することができ、このランチャーエレメントにより、そのエレメント内のアクティブ化されたリンクは、最上位レベルの文書、または代わりに別の示されたサブ文書を置き換えることができることとなる。この特徴は、インデックスまたは目次を実装するサブ文書とって有用であり得る。作成者は、いずれかのエレメントまたは位置ノード内で「launcher」属性を真(true)に設定することによって、エレメントをランチャーにする。ランチャーエレメントは、エレメント上に「target」属性も設定されない限り、リンクされた文書が最上位レベル文書を置き換えることを容易にすることができる。「target」属性に、テンプレート内の別のエレメントの名前を設定することができ、次いで、リンクされた文書は、名前付きのエレメント内に現在表示されているサブ文書を置き換えることができる。
リンクをアクティブ化する別の方法は、リンクをページのサブ文書エレメントにドラッグアンドドロップすることである。例えば新聞のように複数のサブ文書の集合を含むページ上で、ユーザはそれにより、インデックスから記事を取り出し、ページ上の記事位置の1つに記事をドロップすることができる。
(結果)
本革新の範囲および能力を示す複数の文書/適応例について述べた。適応例には、オンラインマガジンSlateの適応バージョン、New York Times RSSフィードから記事を取り、そのウェブサイトから完全なコンテンツをスクラップし、大判の新聞のフォーマットで記事を表示するニュースリーダ、ならびにインターネットを介してデータベース要求を行って、何千ものウェブソースから現在のニュース速報最新版を取り出し、個々の適応サブ文書を集約するための適応第1面ゲートウェイとして動作することができるインターネットニュースアグレゲータMSN NewsBotのフロントエンドが含まれる。他の実装形態は、例えば、検索結果を高品質の適応表示で提示するMSN Searchフロントエンドを含むことができる。
Slateマガジン実装のデモンストレーションは、AGBDLテンプレートシステムを使用して構築されていた。それは、1個から3個のカラムレイアウトをカバーするページを実装するのに、74個のテンプレートを必要とした。New York Timesのデモは、新しいテンプレートシステムを使用し、1個から6個のカラムのレイアウトを実装するが、5個のテンプレートしか必要としない。5つのテンプレートはそれぞれ、Slateデモ用に作成されたテンプレートのサイズの約4分の1である。
次に、図1を参照すると、多種多様なコンテンツを伴い複数のサイズおよび寸法で表示することができる文書レイアウトの適応を容易にするシステム100が示されている。一般に、システム100は、テンプレート104を受け取るインタフェース102を含むことができる。テンプレート104は、文書レイアウトに関する制約の高水準の記述とすることができる。レイアウトエンジン106は、テンプレート104を解釈することができ、テンプレート104の高水準の制約に基づいて、高品質文書110を作成するために文書内のどこにコンテンツ108を置くか決定することができる。
上述したように、高品質文書は、現在の表示寸法およびコンテンツが与えられて、表示された出力が見栄えがよいと判断される文書である。表示された出力が見栄えよいかどうかの判断は、全体的な視覚的効果、ならびに以下で図3および図6に関してより詳細に論じられる他の属性に基づくことができる。したがって、レイアウトエンジン106は典型的に、高品質レイアウト110を作成する前に、配置されるべきコンテンツのタイプおよび配置の表示寸法を事前に知ることを必要とする。しかし、テンプレート104は事前に知っている必要はなく、典型的には、テンプレート104が作成されるとき、またはテンプレート104がレイアウトエンジン106によって受け取られるとき、コンテンツのタイプまたは表示寸法について事前には知らないことを理解されたい。
次に図2に進むと、ユーザインタフェース202、テンプレート104、およびテンプレートストア204を一般に備えるシステム200が図示されている。ユーザインタフェース202は、テンプレート104などのテンプレートの作成、デザイン、および/または修正を容易にすることができる。同様に、テンプレートストア204は、テンプレート104などのテンプレートを格納することができる。ユーザインタフェース202は、テキストベース、あるいは、高水準の制約パラメータを介してテンプレート104を構成して、例えばテンプレートストア204を介してテンプレート104にストレージを提供するために使用することができるGUIのいずれかとすることができることを理解されたい。図2には単一のテンプレート104だけが示されているが、インタフェース102を使用して、任意の数のテンプレート104を作成し、デザインし、および/または修正することができることも理解されたい。同様に、テンプレートストア204は、修正および/またはレイアウトエンジン106(図1)またはページネータ602(図6)に供給されるべきユーザインタフェース202によって取り出すことができる複数のテンプレート104を格納することができる。
テンプレート104は、レイアウト用の画面エレメントの定義パラメータなど、複数のパラメータ(例えば、エレメントを記述し、それらのエレメントをどのタイプのコンテンツに使用することができるかを提供する高水準構成体)、ならびにエレメントが互いに対してどのように配置されるかを制御することができる制約システム(例えば、上述されるoverおよびunderコマンド)で構成することができる。したがって、テンプレート104は、レイアウトの多くの異なる態様を指定するために使用することができる高水準言語を提供する。同様に、この高水準言語は、より自然な記述言語であり、作成しやすく、それと同時に、より少ないステートメントでより広い概念を表現することができる。さらに、この高水準言語を、以下で図5に関してより詳細に説明されるように、低水準の記述に変換することができる。
次に図3を参照すると、高品質レイアウト110を作成することができるレイアウトエンジン106を一般に含むシステム300が示されている。上述したように、レイアウトエンジン106は、高品質レイアウト110の作成時に順守されるべき高水準制約を提供するテンプレート(図示せず)を受け取ることができる。しかし、レイアウトエンジン106は実際には、配置がテンプレートの最も重要な制約、ならびに出力が高品質レイアウト110となるのに必要な条件を順守するように、コンテンツ108を配置しなければならない。
典型的には、レイアウトエンジン106は、コンテンツ108をどのように配置するかを決定する前に、コンテンツ108のあるタイプおよび/または複数のタイプ、ならびに高品質レイアウト110のための表示寸法を調べることとなる。いくつかの場合では(例えば、コンテンツのタイプ、あるいは他の要因に応じて)、レイアウトエンジン106は、意味の流れ302、ブランドアイデンティティ304、アイテムとテキストの相関性306、および広告テーマ308などの他の考慮事項を使用することができる。いくつかの場合では、意味の流れ302、ブランドアイデンティティ304、アイテムとテキストの相関性306、および広告テーマ308の少なくとも1つが考慮されない限り、レイアウトは、高品質レイアウト110とはならないであろう。
意味の流れ302は、一般的に単語の実際の意味を指すことができ、したがって、典型的には他の単語に関連した単語の意味に依拠する。したがって、新聞見出しなど、コンテンツ108エレメントまたはタイプのいくつかは、たとえ異なる位置に単語を配置するようにそれらを分割することによって、レイアウト配置に関するより単純な解決策をもたらすことができるとしても、曖昧さを防ぐために単語を一緒に保つことの強力な意味的根拠(strong semantic rationale)を有する。例えば、否定的な接頭辞(prefix)または単語の直後に改行を置くことを避けるのに有効な意味の流れ302の根拠が存在し得る。
レイアウトエンジン106は、高品質レイアウト110を生成するときに、ブランドアイデンティティ304を考慮することもできる。例えば、コンテンツ108は、よく知られたパターンでオーバーラップする2つの関連イメージからなる商標(trademark)とすることができ、ブランドは、十分に説明するものとなるように、他のコンテンツ108(例えば、グラフィックの渦巻き、「Intel Inside」という文字、および4つの音声トーンを含むIntel社のよく知られた商標)を必要とする。それぞれのイメージおよび/または他のコンテンツが適切に配置されない場合、レイアウトは、デザインエディタを有する他のデザイン媒体が別のやり方で達成することができる効果および/または意味の一部を失うことがある。
さらに、レイアウトエンジン106は、高品質レイアウト110を作成するときにアイテムとテキストの相関性を考慮することもできる。例えば、新聞は一般に、アイテムを説明する小さいキャプションを提供する。同様にイメージ(例えば、アイテム)は、写真の特徴、または写真の中の人物によって話されるテキストを示すための吹き出し(callout)を含むことがある。それらの場合、特定のテキストの位置をアイテムに関して考慮することが重要である。
同様に、レイアウトエンジン106は、高品質レイアウト110を作成する際に広告テーマ308を考慮することができる。広告テーマ308は、アイテム302〜306に関して上記で与えられた複数の例のいずれかに依拠することがあり、また同様の理由により、レイアウトエンジン106による追加の解析を必要とすることがある。しかし、広告テーマ308は、別のやり方では他の考慮事項と矛盾する可能性がある条件を必要とする可能性があることを理解されたい。上記の例は例示的なものにすぎず、限定することは意図されていないことも理解されたい。本発明の範囲および精神から逸脱せずに、他の適応例を使用することができる。
図4を簡単に参照すると、多種多様なコンテンツを伴い複数のサイズおよび寸法で表示することができる文書レイアウトの適応を容易にするシステム400が示されている。システム400は一般に、レイアウトエンジン106、コンテンツ108、高品質レイアウト110、出力装置402を含む。出力装置402は実質的には、小さいリストディスプレイ、ポータブルハンドヘルドデバイス、デジタルファブリック、ワークステーション、壁掛け式ディスプレイ、さらに沿道の広告版および建物用の非常に大きいディスプレイからのデジタルコンテンツを表示することができる任意の装置とすることができる。典型的にレイアウトエンジン106は、出力装置402に基づいて、高品質レイアウト110のサイズおよび寸法を決定することとなる。
次に図5を参照すると、一般にテンプレート104、レイアウトエンジン106、コンテンツ108、高品質レイアウト110、および低水準エンジン502を含むシステム500が示されている。低水準エンジン502は、低水準の制約に基づいてコンテンツ108を適応グリッドベースのレイアウトに適用することができる。しかし、低水準エンジン502は、高水準テンプレート104を受け入れる能力をもたないが、十分な詳細および抽象化が(例えばレイアウトエンジン106によって)提供された場合は、高品質レイアウト110を作成することができる。低水準エンジン502について、AGBDLシステムで以下に詳細に述べる。上述したように、レイアウトエンジン106は、高品質レイアウト110を作成するために、テンプレート104に提供された高水準の制約に基づいて(ならびに、もしあれば追加の条件に基づいて)コンテンツ108をどのように配置するか決定することができる。高品質レイアウト110を作成する正確なレイアウトが分かると、レイアウトエンジン106は、低水準エンジン502が高品質レイアウト110を作成することができるように、この情報を低水準の制約に変換することもできる。
図6は、多種多様なコンテンツを伴い複数のサイズおよび寸法で表示することができる文書レイアウトの適応を容易にするシステム600を示している。システム600は一般に、インタフェース102、テンプレート104、レイアウトエンジン106、コンテンツ108、高品質レイアウト110、およびページネータ602を含む。ページネータ602については、AGBDLのセクションで以下に詳細に述べる。しかし、この文脈では、ページネータ602は、レイアウトエンジン106のための抽象化のレベルを提供する。例えば、ページネータ602は、コンテンツ108を受け取り、また、所与のコンテンツ108に使用されるテンプレート104を選択するためにインタフェース102と通信する。ページネータ602は、代替的に、テンプレート104を、例えば図2のテンプレートストア202から直接に取り出すことができることを理解されたい。レイアウトエンジン106は、テンプレート104およびコンテンツ108を受け取り、高品質レイアウト110を作成するためにコンテンツ108を配置する。要するに、ページネータ602は、各文書および/または文書の各ページにどのテンプレート104を使用するか決定することができ、レイアウトエンジン106は、実際のコンテンツ108を高品質レイアウト110と整合性が取れた手法でどのように配置するか決定することができる。
次に図7に進むと、高品質レイアウト110を作成するためのシステム700が示されている。一般にシステム700は、コンテンツ108を受け取るレイアウトエンジン106を含む。例示的な一実施形態によると、コンテンツ108は、複数のソースから集約される異なるタイプとすることができる。例えば、コンテンツ108を、データストアなどのコンテンツストア702、ハードウェア装置などからのストリーミングメディア704、および多種多様なコンテンツタイプとすることができるウェブコンテンツ706から取り出すことができる。したがって、コンテンツ108は様々なソースから供給され得るので、コンテンツ108のソースフォーマット708は恐らく、非常に多様であろう。したがって、レイアウトエンジン106は、ソースフォーマット708でフォーマットされたコンテンツ108を受け取ることができ、ソースフォーマットを、レイアウトエンジン106が高品質レイアウト110を作成するのに使用することができるフォーマットに変換することができる。例えばXLSTによるソースフォーマット708および変換を、上述されるように自動的に実行することができる。
図8は、特許請求された主題による方法800を示す。説明を簡単にするために、この方法は一連の行為として示され、説明されているが、特許請求された主題は、いくつかの行為は本明細書に示され説明されるものとは、異なる順序および/または他の行為と同時に生じることがあるので、行為の順序によって限定されないことを理解し、認識されたい。例えば、方法は代替的に、状態図など、一連の相関した状態またはイベントとして表すことができることを当業者は理解されよう。さらに、図示されたすべての行為が、特許請求された主題に従って方法を実装するのに必ずしも必要とされるとは限らない。さらに、下記また本明細書を通して開示される方法を、生成物(article of manufacture)に格納し、このような方法をコンピュータに移送し、転送することを容易にすることができることを理解されたい。本明細書で用いられる際、生成物という用語は、任意のコンピュータ読み取り可能装置、搬送波、または媒体からアクセス可能なコンピュータプログラムを包含することが意図されている。
次に図8を参照すると、高品質レイアウトを作成するようにコンテンツを配置するための例示的なコンピュータ実装方法800が示されている。802で、文書レイアウト用のテンプレートを選択することができる。典型的に、テンプレートを、高水準言語で定義し、インタフェース、ページネータ、およびレイアウトエンジンの1つによって、テンプレートストアから選択することができる。804で、文書の表示サイズを決定することができる。この決定を、出力装置の画面サイズおよび/またはその中の領域に基づいて行うことができることを理解されたい。806で、文書のコンテンツを受け取ることができる。上述したように、コンテンツは、コンテンツストア、ストリーミングメディア、インターネットなどの広範囲のソースから生じることがあり、また高品質レイアウトのフォーマットと整合性が取れないことがある多種多様なフォーマットで存在し、したがって適切な変換を必要とすることがある。
808で、特定のコンテンツに使用可能な位置を、例えばテンプレートにより供給される高水準制約、ならびに最高品質レイアウトの表示サイズを使用することによって、決定することができる。特定のコンテンツに使用可能な多くの位置が存在し得ることを理解されたい。810で、高品質位置を、808で決定される使用可能な位置から選択することができる。上述されるように、高品質位置は、レイアウト全体の高品質の特徴を維持しながら特定のコンテンツを取り入れることができる位置である。高品質位置を選択することは、複数の基準に依拠し得ることを理解されたい。例えば、高品質位置は、最良適合、第一適合、第一良好適合などの一連のアルゴリズムの少なくとも1つに基づいて決定することができる。このような決定も、意味の流れ、ブランドアイデンティティ、アイテムとテキストの相関性、広告テーマなどの他の条件に依拠し得る。ステップ812では、高品質レイアウトを作成することができる。
(AGBDLシステム)
図9は、特許請求された主題の例示的な一実施形態による適応グリッドベース文書レイアウト環境900のブロック図を示す。適応グリッドベース文書レイアウト環境900は、適応グリッドベースの文書システム902、スタイルシートストレージユニット906、テンプレートストレージユニット908を備える。適応グリッドベース文書レイアウト環境900は、図10に関して以下でより十分に説明されるよく知られたコンピューティングシステム、環境、および/または構成で見られるものと同様のハードウェアおよびソフトウェアコンポーネントによってサポートされる。適応グリッドベース文書システム902は、ページネータ602、低水準エンジン502、テンプレート作成ツール910、およびユーザインタフェース912を備える。
スタイルシートストレージユニット906は、低水準エンジン502を介して適応グリッドベース文書システム902に通信可能に接続する。スタイルシートストレージユニット906は、文書コンテンツ904内のテキストのスタイルを指定するのに使用されるスタイルシートデータを記憶する。スタイルシートストレージユニット906は、限定ではないがRAM、フラッシュメモリ、磁気メモリ装置、光メモリ装置、ハードディスクドライブ、リムーバブルな揮発性または不揮発性メモリ装置、光学記憶媒体、磁気記憶媒体、またはRAMメモリカードを含む、データを格納し取り出すことができるメモリ装置を備える。あるいは、スタイルシートストレージユニット906は、有線および/または無線ネットワークシステムを通じてアクセス可能なリモートストレージ機能を備えることができる。さらに、スタイルシートストレージユニット906は、上述されるように、一次および二次のメモリ装置の多段階システムを含むメモリシステムを備えることができる。一次メモリ装置および二次メモリ装置は、お互いに対してキャッシュとして動作することができ、または二次メモリ装置は、一次メモリ装置のバックアップとして機能することができる。さらに別の配置では、スタイルシートストレージユニット906は、簡単なデータベースファイルとして、またはSQLなどのクエリ言語を使用する探索可能なリレーショナルデータベースとして構成されるメモリ装置を備えることができる。
テンプレートストレージユニット908は、ページネータ602とテンプレート作成ツール910を介して、適応グリッドベース文書システム902に通信可能に接続する。テンプレートストレージユニット908は、複数のテンプレート1106を記憶し、それぞれのテンプレート1106を使用して文書コンテンツ904の単一のページのレイアウトを定義することができる。文書コンテンツのレイアウトは、1つまたは複数のテンプレート1106によってレイアウトされるページを含むことができる。テンプレートストレージユニット908は、スタイルシートストレージユニット906に関して上記で説明されたメモリ装置と同様のメモリ装置を備える。
ページネータ602は、低水準エンジン502およびテンプレートストレージユニット908に通信可能に接続する。ページネータ602は、本明細書で説明されるように、タスクを実行して、能力および機能を提供するのに適したハードウェアおよびソフトウェア(図10参照)で構成される。さらに、ページネータ602は、適応グリッドベースのレイアウトへと処理するために文書コンテンツ904を受け取ることができる。文書コンテンツ904を、限定ではないが本文、イメージ、インライン図、サイドバー、キャプション、媒体、および他の適切な文書コンテンツ904などの様々なコンテンツタイプを識別する様々なコンテンツストリーム1303によって表すことができる。一般に、ページネータ602は、文書コンテンツ904の個々のテンプレート1106へのマッピングを決定し、限定ではないが、文書コンテンツ904をテンプレート1106と大域的に最適な対にすることを含むことができる。
低水準エンジン502は、ページネータ602およびスタイルシートストレージユニット906に通信可能に接続する。低水準エンジン502は、本明細書で説明されるようにタスクを実行し、能力および機能性を提供するのに適したハードウェアおよびソフトウェア(図10参照)で構成される。低水準エンジン502は、処理するために、ページネータ602から文書コンテンツ904およびテンプレート1106を受け取ることができる。典型的に、低水準エンジン502は、テンプレート1106の使用によって文書コンテンツ904を自動的にフォーマットし(例えば、文書コンテンツ904にテンプレート1106を適用し)、それによって適応グリッドベース文書914を作成する。さらに、低水準エンジン502を使用して、文書コンテンツ904へのテンプレート1106の適用から作成された適応グリッドベース文書914の各部分(例えば各ページ)の品質スコアを決定することができる。
操作において、適応グリッドベース文書システム902はページネータ602を介して、処理されるべき文書コンテンツ904をテンプレートストレージユニット908から受け取る。ページネータ602は、実際のページレイアウトのレンダリングのために、文書コンテンツ904およびテンプレート1106を低水準エンジン502に提供する。特許請求された主題の代替の一実施形態では、低水準エンジン502は、テンプレートストレージユニット908に通信可能に接続され、したがって、低水準エンジン502は、テンプレート1106をテンプレートストレージユニット908から直接受け取る。低水準エンジン502は、スタイルシートストレージユニット906およびテンプレート1106からのスタイルシートを文書コンテンツ904に適用し、結果に基づいて品質スコアを決定する。低水準エンジン502は、すべての有効なテンプレート1106のシーケンス(例えば、うまく完全に文書コンテンツ904をグリッドベース文書レイアウトに適用させるすべてのテンプレート1106のシーケンス)、および対応する品質スコアをページネータ602に提供する。ページネータ602は、低水準エンジン502によって提供された品質スコアに基づいて、テンプレート1106の所望のシーケンスのいくつか、またはテンプレート1106の大域的に最適なシーケンスのいずれかを計算する。コンテンツとテンプレート1106のシーケンスをペアにすることを決定した後、ページネータ602は、文書コンテンツ109とテンプレート1106の最適なシーケンスとを、低水準エンジン502に提供する。低水準エンジン502は、テンプレート1106の最適なシーケンスに従って文書コンテンツ904を自動的にフォーマットする。次いで、結果として生じる適応グリッドベース文書914は、適応グリッドベース文書システム902によって、適切な宛先に提供される(例えば、ユーザに表示され、別のプログラムモジュールに提供され、またはファイルに保存される)。
テンプレート作成ツール910は、テンプレートストレージユニット908およびユーザインタフェース912に通信可能に接続する。テンプレート作成ツール910は、本明細書で説明されるようにタスクを実行し、能力および機能性を提供するのに適したハードウェアおよびソフトウェア(図10参照)で構成される。ユーザインタフェース912は、ユーザに、テンプレートストレージユニット908内のテンプレート1106を作成または修正するための1組のウィンドウ、アイコン、コマンド、および/またはメニューを提供する。テンプレート作成ツール910およびユーザインタフェース912の使用によって、ユーザは、レイアウトエレメントを描画し、配置し、エレメントが異なるページサイズにどのように適応するかを指定し、適応インタラクティビティをプレビューし、テンプレート1106の事前条件1109、および制約ベースの関係(constraint-based relationship)1115を設定することができる。
操作において、ユーザインタフェース912は、インタラクティブにサイズ変更することができるテンプレート1106の略図を提示する。テンプレート1106内に新しいレイアウトエレメント1112を作成することは一般に、ユーザが、ユーザインタフェース912のディスプレイ上に領域を描画し、次いで、領域を所望のサイズ、位置、および層へと操作することを必要とする。適応テンプレート1106の保全性(integrity)を維持するために、テンプレート1106のほとんどのエレメント1112は、制約ベースの関係1115を必要とする。
テンプレートを作成または編集する間、ユーザは、水平または垂直ガイドを描画すること、およびスナップドラッグインタフェースを使用することによってページグリッドを定義することで、ページレベルの制約を指定して、グリッドに対してエレメントを制約することができる。水平または垂直ガイドは、ページに対してスケーリングし、または一定のオフセットを維持するように、デザインされることがある。ガイドは、他のガイドに依存して、ユーザが階層的グリッドを定義することを可能にすることもできる。特に、ユーザインタフェース912は、異なるタイプのユーザ操作をサポートする。上記ユーザ操作には、(1)ユーザが他のガイドをいずれも選択せずに、新しいガイドを追加する場合は、新しいガイドの位置は、全体のページに対して定義される、(2)ユーザが新しいガイドを作成する前に既存の単一のガイドを選択する場合は、新しいガイドの位置は、選択されたガイドからの一定のオフセットとして定義される、(3)ユーザが新しいガイドを作成する前に既存の2つのガイドを選択する場合は、新しいガイドの位置は、選択された2つのガイドに対して定義される、ことが含まれるが、これらに限定されるものではない。ユーザインタフェース912は、ユーザがガイドなしにエレメント間で制約を直接に指定することを可能にするユーザ操作を提供することもできる。限定ではなく例として、ユーザは、あるエレメントの最下部を別のエレメントの最上部に一致するように制約することができる。エレメントのサイズが、(ページの形状のみならず)そのエレメント内に流されるコンテンツによって決定される状況に対処するために、ユーザは、テンプレート作成ツール910を使用して、エレメントの寸法の1つを制約し、次いで文書コンテンツ904から決定される他の寸法を指定することができる。
カスタムテンプレート1106を作成した後、ユーザは、制約システム内の任意の変数の値に基づいて、追加の事前条件を指定することができる。文書コンテンツ904に対するテンプレート1106の適合性は、事前条件およびスコアリング関数の使用に依存する。ユーザが、テンプレート1106のエレメント1112のコンテンツソースを設定すると、テンプレート1106に関するコンテンツ事前条件を自動的に計算することができる。さらに、ユーザは、文書コンテンツ904の所与の選択についてページテンプレート1106が受け取る品質スコアに影響を及ぼすエレメント1112に、属性プリファレンスを追加することができる。ユーザは、エレメント1112の2つ以上の属性を指定する場合、ユーザインタフェース912を介して属性を重要度の順にランク付けすることができる。
次いで、テンプレート作成ツール910は、低水準エンジン502が、エレメントに流される可能性のある文書コンテンツ904の異なる選択を評価するスコアリング関数を、自動的に構築することができる。ユーザ指定の重要度順の属性のランク付けが与えられると、テンプレート作成ツール910は、各属性を、より上位の桁(digit)がより重要な属性に対応するスコアの桁に関連付けることができる。低水準エンジン502がコンテンツ選択を評価するとき、一致するすべての属性に「1」を、一致しないすべての属性に「0」を関連付けることによって、スコアを計算することができる。より具体的には、「a1」から「aN」が、重要度順のN個のユーザ指定の属性プリファレンスである場合、スコアリング関数は、作成システム(authoring system)によって以下のように構築される。S=match(a1,b1)*(10^(N−1))+match(a2,b2)*(10^(N−2))...+match(aN,bN)*(10^0) ただしSは、評価されているコンテンツの特定の選択の品質スコアであり、b1からbNは、コンテンツの選択に関連付けられる実際の属性値であり、match(a,b)は、「a」が「b」に等しいときは「1」を、そうでない場合は「0」を返す関数である。したがって、このスコアリング関数は、コンテンツがユーザによって指定された属性にどの程度よく一致するかに応じて、より良いまたは悪いスコアを返す。スコアリング関数は、より重要な属性には、あまり重要でない属性よりも厳密な優先度が与えられることを保証する。限定ではなく例として、特定の属性「A」に一致するコンテンツの選択では、属性「A」には一致しないが、それほど重要でない属性に潜在的に一致する他のコンテンツ選択よりも良いスコアがもたらされる。
スコアリング関数を、様々な方法で実装することができることは、当業者には認識されよう。限定ではなく例として、エレメントの各属性を、最終スコアの桁に関連付けることができる。属性の重要度により、対応する桁が決定され、最も重要な属性が最上位桁に関連付けられる。したがって、第kの最も重要な属性である属性は、最終スコアの第k最上位桁に対応する。特定のコンテンツ選択について、スコアリング関数は、一致する属性に対応する桁には「1」を、一致しない属性に対応する桁には「0」を関連付けることができる。したがって、スコアリング関数は、最も重要な属性に一致するコンテンツの部分が、最も重要な属性に一致しない他のコンテンツの選択よりも高い(すなわち、より良い)スコアを有することを保証する。
レイアウトスタイル1103内の異なるテンプレート1106は、共通の特性(例えば、エレメント、事前条件、および制約)を含むことが多い。したがって、テンプレート作成ツール910は、実際には各テンプレート1106を個々に変更することなく複数のテンプレート1106にわたる共通の特性の修正を単純化するテンプレート1106継承(inheritance)のシステムまたはモデルを、サポートすることができる。限定ではなく例として、ユーザは、予め存在するテンプレート1106(例えば、親テンプレート1106)の特性を継承する新しいテンプレート1106(例えば、子テンプレート1106)を作成することができる。子テンプレート1106は、親テンプレート1106のエレメント、事前条件、および制約のすべてを自動的に含む。次いで、ユーザは、所望のカスタムテンプレート1106を作成するために、追加のエレメント、事前条件、および制約を子テンプレート1106に追加することができる。ユーザは、親と子のテンプレート1106間で共通のプロパティの1つを変更したい場合、修正が継承を介して親テンプレート1106のすべての子テンプレート1106に広がるので、ユーザは、親テンプレート1106のプロパティのみを修正する必要がある。継承モデルは、多数のテンプレート1106の管理を簡単にし、テンプレート1106間の整合性を維持するのに役立つ。
通信可能に接続することは、限定ではないがアナログ、デジタル、無線および有線通信チャネルを含む任意の適切なタイプの接続を含むことができることが当業者には認識されよう。このような通信チャネルには、限定ではないが、銅線、光ファイバ、無線周波数、赤外線、衛星、または他の媒体が含まれる。
図10は、特許請求された主題の例示的な一実施形態に従って、特許請求された主題が使用することができるコンピューティング環境1000、およびそのコンピュータシステム1010、1080を表すブロック図を示す。コンピューティング環境1000、およびそのコンピュータシステム1010、1080は、特許請求された主題を実施するための適切なコンピューティング環境およびコンピュータシステムの一例を表すものにすぎず、本発明の使用または機能性の範囲についての限定を提示することは意図されていない。また、コンピュータシステム1010および1080は、例示的なコンピューティング環境1000内に図示される任意のコンポーネントの1つまたはその組合せに関していかなる依存性または要件を有するものとして解釈されるべきでもない。
したがって、本発明は、多くの他の汎用または専用のコンピューティングシステム環境または構成で動作可能であることを理解されたい。特許請求された主題で使用するのに適した、または適切な可能性のある、よく知られたコンピューティングシステム、環境、および/または構成の例には、限定ではないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家庭用電化製品、ネットワークパーソナルコンピュータ、ミニコンピュータ、メインフレームコンピュータ、上記システムまたは装置のいずれかを含む分散コンピューティング環境などが含まれる。
特許請求された主題の態様を、プログラムモジュールなどの、コンピュータシステムによって実行されるコンピュータ実行可能命令を含む一般的な文脈で述べることができる。一般に、プログラムモジュールは、特定のタスクを実行し、または特定の抽象データ型を実装するルーチン、プログラム、プログラミング、オブジェクト、コンポーネント、データ、データ構造などを含む。本発明の特徴を、通信ネットワークを通じてリンクされるリモート処理装置よってタスクが実行される分散コンピューティング環境で実践することができる。分散コンピューティング環境では、プログラムモジュールを、限定ではないがメモリストレージ装置を含め、ローカルとリモートの両方のコンピュータストレージ媒体に配置することができる。
図10を参照すると、特許請求された主題の例示的なコンピュータ環境1000は、コンピュータシステム1010の形式の汎用コンピューティング装置を含む。コンピュータシステム1010のコンポーネントは、限定ではないが、処理ユニット1020、システムメモリ1030、ならびに、データおよび/または命令の双方向通信のためにシステムメモリ1030を含む様々なシステムコンポーネントを処理装置1020に結合するシステムバス1021を含むことができる。システムバス1021は、メモリバスまたはメモリコントローラ、周辺バス、ならびに様々なバスアーキテクチャのいずれかを使用するローカルバスを含め、複数のタイプのバス構造のいずれかとすることができる。限定ではなく例として、このようなアーキテクチャには、ISAバス、MCAバス、EISAバス、VESAローカルバス、およびPCIバス(すなわち、「メザニンバス」としても知られる)が含まれる。
コンピュータシステム1010は典型的に、様々なコンピュータ読取り可能媒体を含む。コンピュータ読取り可能媒体は、コンピュータシステム1010がアクセスし、読み取り、書き込むことができる任意の使用可能な媒体を備えることができ、揮発性と不揮発性、およびリムーバブルと非リムーバブルの両方の媒体を含む。限定ではなく例として、コンピュータ読取り可能媒体は、コンピュータストレージ媒体および通信媒体を備えることができる。コンピュータストレージ媒体は、コンピュータ読取り可能命令、データ、データ構造、プログラムモジュール、プログラム、プログラミング、またはルーチンなどの情報を記憶するための任意の方法または技術で実装される揮発性と不揮発性、リムーバブルと非リムーバブルの両方の媒体を含む。コンピュータストレージ媒体には、限定ではないが、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気光学ストレージ装置、磁気ディスクストレージまたは他の磁気ストレージ装置、あるいは所望の情報を記憶するのに使用することができ、コンピュータシステム1010によってアクセスすることができる他の任意の媒体が含まれる。通信媒体は典型的に、コンピュータ読取り可能命令、データ、データ構造体、プログラムモジュール、プログラム、プログラミングまたはルーチンを、搬送波や他の移送機構などの変調データ信号で具現化し、任意の情報送達媒体を含む。「変調データ信号」という用語は、信号内の情報を符号化するような手法で設定または変更された1つまたは複数のその特性を有する信号を意味する。限定ではなく例として、通信媒体には、有線ネットワークや直接有線接続などの有線媒体、ならびに音響、RF、赤外線、および他の無線媒体などの無線媒体が含まれる。上記の任意のものの組合せも、コンピュータ読取り可能媒体の範囲内に含まれる。
システムメモリ1030は、ROM1031およびRAM1032などの揮発性および/または不揮発性メモリの形態のコンピュータストレージ媒体を含む。起動時などにコンピュータ1010内のエレメント間の情報の転送を命令する基本ルーチンを含む基本入出力システム(BIOS)1033は典型的に、ROM1031に格納される。RAM132は典型的に、処理ユニット1020によって直ちにアクセス可能で、および/または現在操作されているデータおよび/またはプログラム命令を格納する。限定ではなく例として、図10は、全体または一部が時々RAM1032に存在することができるオペレーティングシステム1034、アプリケーションプログラム1035、他のプログラムモジュール1036、およびプログラムデータ1037を図示する。
コンピュータ1010は、他のリムーバブル/非リムーバブル、揮発性/不揮発性のコンピュータストレージ媒体を含むこともできる。単に例として、図10は、非リムーバブルな不揮発性の磁気媒体と読み書きするハードディスクドライブ1041、リムーバブルな不揮発性の磁気ディスク1052と読み書きする磁気ディスクドライブ1051、およびCD−ROMや他の光学媒体などのリムーバブルな不揮発性の光ディスク1056と読み書きする光ディスクドライブ1055を図示する。例示的なコンピューティング環境1000内に含むことができる他のリムーバブル/非リムーバブル、揮発性/不揮発性のコンピュータストレージ媒体には、限定ではないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどが含まれる。ハードディスクドライブ1041は典型的に、インタフェース1040などの非リムーバブルメモリインタフェースを通じてシステムバス1021に接続され、磁気ディスクドライブ1051および光ディスクドライブ1055は典型的に、インタフェース1050などのリムーバブルメモリインタフェースによってシステムバス1021に接続される。
上記で説明され、図10に図示されるドライブ1041、1051、1055およびこれらと関連するコンピュータストレージ媒体は、コンピュータシステム1010のためのコンピュータ読取り可能命令、データ、データ構造、プログラムモジュール、プログラム、プログラミング、またはルーチンのストレージを提供する。図10では、例えばハードディスクドライブ1041は、オペレーティングシステム1044、アプリケーションプログラム1045、他のプログラムモジュール1046、およびプログラムデータ1047を格納するものとして図示されている。これらのコンポーネントは、オペレーティングシステム1034、アプリケーションプログラム1035、他のプログラムモジュール1036、およびプログラムデータ1037と同じであっても、異なっていてもよいことを留意されたい。オペレーティングシステム1044、アプリケーションプログラム1045、他のプログラムモジュール1046、およびプログラムデータ1047は、少なくともそれらがオペレーティングシステム1034、アプリケーションプログラム1035、他のプログラムモジュール1036、およびプログラムデータ1037の異なるコピーであることを示すために異なる番号が与えられている。ユーザは、キーボード1062、および一般にマウス、トラックボールまたはタッチパッドと呼ばれるポインティング装置1061などの接続された入力装置を通じて、コンピュータシステム1010にコマンドおよび情報を入力することができる。接続された他の入力装置(図示せず)は、マイクロホン、ジョイスティック、ゲームパッド、衛星放送アンテナ、またはスキャナーなどを含むことができる。これらおよび他の入力装置は、システムバス1021に結合されたユーザ入力インタフェース1060を通じて処理ユニット1020に接続されることが多いが、パラレルポート、ゲームポートまたはUSBなどの他のインタフェースおよびバス構造体によって接続されることもある。モニタ1091または他のタイプのディスプレイ装置も、ビデオインタフェース1090などのインタフェースを介してシステムバス1021に接続される。モニタ1091に加えて、コンピュータシステム1010は、出力周辺インタフェース1095を介して接続することができるスピーカ1097およびプリンタ1096などの他の周辺出力装置を含むこともできる。
コンピュータシステム1010は、ネットワーク化された環境で、リモートコンピュータシステム1080などの1つまたは複数のリモートコンピュータシステムへの双方向通信接続リンクを使用して動作することができる。リモートコンピュータシステム1080は、パーソナルコンピュータ、ラップトップコンピュータ、サーバコンピュータ、ルータ、ネットワークPC、ピアデバイス、または他の一般的なネットワークノードとすることができ、図10ではリモートコンピュータシステム1080のメモリストレージ装置1081だけが図示されているが、典型的には、コンピュータシステム1010に関して上述したエレメントの多くまたはすべてを含む。図10に示された双方向通信接続リンクは、LAN1071およびWAN1073を含むが、他のネットワークを含むこともできる。そのようなネットワークは、オフィス、企業規模のコンピュータネットワーク、イントラネットおよびインターネットでは一般的である。
LAN1071に通信可能に接続される場合は、コンピュータシステム1010は、ネットワークインタフェースまたはアダプタ1070を通じてLAN1071に接続する。WAN1073に通信可能に接続される場合は、コンピュータシステム1010は典型的に、モデム1072、またはインターネットなどのWAN1073を介して通信リンクを確立するための他の手段を含む。内蔵または外付けとすることができるモデム1072を、ユーザ入力インタフェース1060または他の適切な機構を介してシステムバス1021に接続することができる。ネットワーク化された環境では、コンピュータシステム1010に関して示したプログラムモジュール、またはその一部を、リモートメモリストレージ装置1081に格納することができる。限定ではなく例として、図10は、リモートアプリケーションプログラム1085をメモリ記憶装置1081に存在するものとして図示している。示されたネットワーク接続は例示的なものであり、コンピュータ間の双方向通信リンクを確立する他の手段を使用することができることは理解されよう。
図11は、特許請求された主題の例示的な一実施形態による、適応レイアウトスタイル1103およびテンプレート1106を含む文書レイアウトを表すブロック図を示す。文書コンテンツ904は、テンプレートストレージユニット908に格納されたテンプレート1106(例えば、本明細書では「適応テンプレート1106」と呼ばれることもある)の使用によって、特定の文書レイアウトにフォーマットされる。それぞれのテンプレート1106は、ページ寸法の範囲にわたるコンテンツの単一ページのレイアウトの定義に関与する。特許請求された主題の例示的な実施形態では、テンプレート1106は、代替の文書コンテンツ(例えば、より広いバージョンのイメージ、または最適な描画)が文書のページレイアウト全体を改善させる場合には、代替の文書コンテンツを自動的に選択できるようにするプロトコルをサポートする。また、それぞれのテンプレート1106は、表示寸法の範囲、ならびにフォントサイズの増加などの他のタイプの表示条件に適応するようにデザインされる。
それぞれのテンプレート1106はさらに、レイアウトエレメント1112、制約ベース関係1115、および事前条件1109を含むことができる。レイアウトエレメント1112は、コンテンツを配置することができるテンプレート1106のページ内の特定の領域を表す。テンプレート1106の制約ベース関係1115は、エレメント1112間の関係を定義するのに役立つ。テンプレート1106の事前条件1109は、文書の特定のコンテンツまたはページの特性に対するテンプレート1106の適合性を特徴付ける。レイアウトエレメント1112、制約ベース関係1115、および事前条件1109について、以下で図12に関してより十分に説明する。
特許請求された主題の一実施形態では、文書レイアウトは、1組のテンプレート1106を使用して記述される。文書コンテンツ904がテンプレート1106に適用されるとき、適応グリッドベース文書914は、最適なフォーマットで作成される。例えば、本システムは、New York Times、New Yorker、Washington Post、Newsweek、またはTimeマガジンに使用されるデザインなど、広範囲の現代的なグリッドベースレイアウトスタイルをサポートすることができる。レイアウトスタイル1103(例えば、本明細書では「適応レイアウトスタイル1103」呼ばれることもある)はそれぞれ、特定のレイアウトスタイル1103の特定の特性を実装するテンプレート1106の集合によって定義される。
図11に図示されるように、適応レイアウトスタイル1103Aは、1組のテンプレート1106A1、1106ANによって表される。適応テンプレート「A1」1106A1と適応テンプレート「AN」1106ANの間の省略記号は、適応レイアウトスタイル「A」1103A内に複数の適応テンプレート1106が存在することができ、したがって、適応レイアウトスタイル「A」1103Aは、図11に示されるような2つの適応テンプレート1106A1、1106ANには限定されないことを示す。同様に、適応テンプレート「Z1」1106Z1と適応テンプレート「ZN」1106ZNの間の省略記号は、適応レイアウトスタイル「Z」1103Z内に複数の適応テンプレート1106が存在することができ、したがって、図11に示されるような2つの適応テンプレート1106Z1、1106ZNには限定されないことを示す。さらに、ある適応レイアウトスタイル1103Aは、別の適応レイアウトスタイル1103Zとは異なる数の適応テンプレート1106を備えることができる。
適応レイアウトスタイル1103は、テンプレートストレージユニット908に格納される。それぞれの適応レイアウト1103は、それに関連付けられる1組のテンプレート1106を識別する。適応レイアウトスタイル「A」1103Aと適応レイアウトスタイル「Z」1103Zの間の省略記号は、テンプレートストレージユニット908内に複数の適応レイアウトスタイル1103が存在することができ、したがって、図11に示されるような2つの適応レイアウトスタイル1103A、1103Zに限定されないことを示す。限定ではなく例として、適応レイアウトスタイル1103および適応テンプレート1106を、XMLによって、特許請求された主題内に表すことができる。
図12は、特許請求された主題の例示的な一実施形態による適応テンプレート1106を表すブロック図を示す。テンプレートストレージユニット908内の各適応テンプレート1106は、レイアウトエレメント1112、エレメント1112間の関係を定義するための制約ベース関係1115、および文書の特定のコンテンツについてのテンプレート1106の適合性を特徴付ける事前条件1109を備えることができる。
レイアウトエレメント1112は、コンテンツを置くことができるテンプレート1106のページ内の特定の領域を表す。典型的に、グリッドベースの文書レイアウト内のエレメント1112は、テンプレート1106のページの矩形の領域である。各レイアウトエレメント1112は、指定ソースストリーム変数(specified source stream variable)1209、エレメントz順配置変数(element z-order placement variable)1212、レイアウトテンプレート変数(layout templates variable)1215を備える。指定ソースストリーム変数1209は、エレメント1112内でどのコンテンツを使用することができるかを指定する。限定ではなく例として、指定ソースストリーム変数1209は、イメージだけをテンプレート1106のエレメント1112内に置くことができることを指定することがある。特許請求された主題の代替の一実施形態では、複数のエレメント1112は、同じコンテンツストリーム1303(図13に関して以下で述べる)からのコンテンツを使用する。このような配置では、フローが確立され、コンテンツストリーム1303のコンテンツは、あるエレメント1112A1から次のエレメント1112A2に分配される。
エレメント1112のエレメントz順配置変数1212は、各エレメント1112がその位置をエレメント1112のz順で指定することを可能にする。一般に、z順の上位のエレメント1112は、文書レイアウト内の下位のエレメント1112の上に位置し、したがって、上位のエレメント1112の面積領域は、その下にあるエレメント1112の面積領域から取り去られる。実際に、エレメントz順配置変数1212は、グリッドベースのページデザインが、オーバーラップしたエレメント1112、または他のエレメント1112の領域を切り取るように見える領域を有することを可能にする。例えば、文書レイアウト内のテキストは、図の周りを流れることができる。図は、テキストより高いz順にあり、したがって、図は、テキスト用にリザーブされた領域の一部を切り取るように見える。図またはイメージの周りをテキストで包むことは、グリッドベース文書レイアウト内で使用される技術である。
レイアウトテンプレート変数1215は、各エレメント1112が、コンテンツアトム(content atom)をレイアウトするのに使用することができるレイアウトテンプレート1106(またはレイアウトテンプレート1106の集合)を指定することを可能にする。コンテンツアトムは、複数のコンテンツストリーム1303(例えば、テキスト、図、またはイメージ)で構成されるコンテンツアイテム1306を備える。より具体的には、コンテンツアトムは、1つまたは複数のエレメント1112、あるいは1つまたは複数のコンテンツタイプのコンテンツストリーム1303を含むコンテンツの論理グループを備え、それはすべて、ある親コンテンツアイテム1306内の単一アイテムと見なされる。限定ではなく例として、エレメント1112は、テキスト、図、およびイメージを含むサイドバーを表すことができる。レイアウトテンプレート変数1215を通じて、テンプレート1106は、再帰的なレイアウトを十分にサポートすることができ、したがって、図/キャプションの組合せからコンテンツの再帰的な組込み(recursive embedding)まで、すべてをサポートすることができる。
テンプレート1106の制約ベース関係1115(例えば、本明細書では「制約1115」と呼ばれることもある)を使用して、少なくとも部分的にエレメント1112間の関係を定義することができる。テンプレート1106内のエレメント1112それぞれのサイズおよび配置は、一緒に考慮される場合に有向非巡回グラフ(directed acyclic graph)を形成する1組の相互依存型の(interdependent)制約ベース関係1115を評価することによって決定される。制約ベース関係1115は、その値が他の制約変数(constraint variable)1218、1221に関する数式によって決定される制約入力変数(constraint input variable)1218、および制約出力変数(constraint output variable)1221を備える。さらに、制約ベースの関係1115は、制約出力変数1221の値を計算するときにその値を使用することができる制約内部変数(constraint internal variable)1224を備える。このタイプの構成は、「一方向の制約システム」として知られることが、当業者には認識されよう。しかし、特許請求された主題の例示的な実施形態では、それぞれのテンプレート1106は、レイアウトエレメント1112の中の二次元の関係を、特定のレイアウトを評価するために解決しなければならない制約1115として符号化する。
制約入力変数1218は、テンプレート1106が使用されるコンテキストについてテンプレート1106に指示する。限定ではなく例として、制約入力変数1218は、テンプレート1106の、またはテンプレート1106内のエレメント1112の幅および高さの寸法を示すことができる。さらに、制約入力変数1218は、文書コンテンツに関するカスタム属性(例えば、テンプレート作成ツール910を通じてユーザによって定義される属性)を含むことができる。特許請求された主題の態様では、制約システム(図示せず)を、制約入力変数1218および制約出力変数1221として使用することができる制約のプールによって表すことができる。カスタム属性が文書コンテンツ904内に存在する場合は、カスタム属性を制約システム内の追加の変数として追加することができる。制約出力変数1221は、限定ではないが各エレメント1112の矩形境界、およびテンプレート1106のスコアを含む様々な文書出力属性を表し、このテンプレート1106のスコアは、テンプレート1106が、テンプレート1106内に挿入されるべきコンテンツに関してその適合性を表すことを可能にする(図10に関して以下でより詳細に述べる)。
テンプレート1106の事前条件1109は、少なくとも部分的に文書の特定のコンテンツに対するテンプレート1106の適合性を特徴付ける。各テンプレート1106は、文書コンテンツに適用される場合にテンプレート1106が、いつ有効であるかを表すために事前条件1109を使用する。例えば、テンプレート1106を文書コンテンツにうまく適用することができる場合、テンプレート1106は有効となり得る。どのテンプレート1106が有効であり、どのテンプレート1106が無効であるかを決定するために、異なる事前条件を使用することができることを、当業者は認識されよう。適応グリッドベース文書レイアウトシステム902は、ページネーション(図19に関して以下でより詳細に述べる)の間、事前条件1109を使用する。事前条件1109は、1つまたは複数のコンテンツ事前条件変数(content preconditions variable)1203および/または1つまたは複数の値事前条件変数(value preconditions variable)1206を備えることができる。コンテンツ事前条件変数1203は、テンプレート1106またはテンプレート1106内のエレメント1112を適切に埋めるために存在しなければならない所与のコンテンツストリーム1303からのコンテンツの量を示す。値事前条件変数1206は、所与の制約変数1218、1221が収まらなければならない値の範囲を示す。限定ではなく例として、コンテンツ事前条件変数1203および値事前条件変数1206は、文書コンテンツがディスプレイに使用可能なちょうど2つの図を含む場合、および文書コンテンツのページ寸法が標準文字(standard letter)とA4ページ寸法の間のどこかに収まる場合に、特定のテンプレート1106が有効であることを示すことができる。
図13は、特許請求された主題の例示的な一実施形態によるコンテンツストリーム1303を含む文書コンテンツ904のブロック図を示す。文書コンテンツ904を、順次レイアウトされるコンテンツをそれぞれが含む個々のコンテンツストリーム1303のセットとして、本発明内に表す。コンテンツストリーム1303は、限定ではないが本文、サイドバー、図、引用(pull quote)、およびフォトクレジット(photo credit)を含め、文書の論理的に独立した異なる部分を表す。コンテンツストリーム1303は、図14に関して以下でより十分に説明されるコンテンツアイテム1306を備える。省略記号によって図示されるように、文書コンテンツ904は、図13に示されるコンテンツストリーム1303A、1303B、1303Zの数に限定されない。同様に、省略記号は、コンテンツストリーム1303Aが、図13に示されるコンテンツアイテム1306A1、1306A2、1306ANの数に限定されないことを示す。
図14は、特許請求された主題の例示的な一実施形態による、コンテンツアイテム1306を含むコンテンツストリーム1303のブロック図を示す。図13に関して上述したように、コンテンツストリーム1303は、コンテンツアイテム1306を備える。コンテンツアイテム1306は、限定ではないが、テキスト、イメージ、オーディオ、ビデオ、および他の適切なコンテンツタイプを含む。それぞれのコンテンツアイテム1306は、構造を示す標準のマークアップ(例えばXML)に関連付けられる。標準のマークアップに加えて、それぞれのコンテンツアイテム1306に、コンテンツアイテム1306が低水準エンジン502およびテンプレート1106によって処理される方法を変更するカスタム属性1409で、注釈付けすることができる。限定ではなく例として、イメージを表すコンテンツアイテム1306は、文書レイアウト内のイメージの重要性を表す属性1409を有することができる。したがって、テンプレート1106内のコンテンツアイテム1306を使用する低水準エンジン502は、最終レイアウトでイメージをどの程度大きくするかを決定するために属性1409の値をチェックすることができる。属性「A1A」1409A1Aと属性「A1Z」1409A1Z間の省略記号は、複数の属性1409がコンテンツアイテム「A1」1306A1内に存在することができ、したがって、コンテンツアイテム「A1」1306A1は、図14に示されるような2つの属性1409A1A、1409A1Zには限定されないことを示す。同様に、属性「ANA」1409ANAと属性「ANZ」1409ANZ間の省略記号は、複数の属性1409がコンテンツアイテム「AN」1306AN内に存在することができ、したがって、コンテンツストリーム「AN」1306ANは、図14に示されるような2つの属性1409ANA、1409ANZに限定されないことを示す。
特許請求された主題の例示的な実施形態では、テキストコンテンツアイテム1306A1は、文書コンテンツ904内のテキストのスタイルを指定するスタイル識別子14121A、A1412A1Zを含むことができる。スタイル識別子1412は典型的に、限定するではないがカスケードスタイルシート(CSS:cascading style sheet)または拡張可能スタイル言語(XSL:extensible style language)などの、スタイルシート言語によって表される。スタイルシート言語は、異なるテキストが文書内でどのように現れるか(例えば、フォント、フォントスタイル、およびフォントサイズ)をユーザが定義することを可能にすることが、当業者には認識されよう。したがって、スタイル識別子1412を、スタイルシートストレージユニット906に格納される別個のスタイルシートファイル内のフォーマット規則(formatting rule)に関連付けることができる。スタイル識別子「AlA」1412A1Aとスタイル識別子「A1Z」1412A1Zの間の省略記号は、複数のスタイル識別子1412がコンテンツアイテム「A1」1306A1内に存在することができ、したがってコンテンツアイテム「A1」1306A1は、図14に示されるような2つのスタイル識別子1412A1A、1412A1Zには限定されないことを示す。同様に、スタイル識別子「ANA」1412ANAとスタイル識別子「ANZ」1412ANZの間の省略記号は、複数のスタイル識別子1412がコンテンツアイテム「AN」1306AN内に存在することができ、したがって、コンテンツアイテム「AN」1306ANは、図14に示されるような2つのスタイル識別子1412ANA、1412ANZには限定されないことを示す。
コンテンツアイテム1306を、任意の1つのコンテンツの複数のバージョン1306A2A、1306A2B、1306A2Zを含むように符号化することもできる。異なるコンテンツアイテムのバージョン1306A2A、1306A2B、1306A2Zはそれぞれ、<multi>タグ1406内でパッケージ化される。文書をレイアウトする間、適応グリッドベース文書レイアウトシステム902は、ページをテンプレート1106でフォーマットするときに使用するバージョンの1つを選択する。適応グリッドベース文書レイアウトシステム902に役立つように、異なるコンテンツアイテムのバージョン1306A2A、1306A2B、1306A2Zはそれぞれ、特定の各コンテンツアイテムバージョン1306A2A、1306A2B、1306A2Zの最も適切な使用について提示する属性1409を含むことができる。限定ではなく例として、コンテンツアイテムの第1のバージョン「A2」1306A2Aは、「summary」セクションで最も使用されるコンテンツアイテム1306A2Aの第1のバージョンであることを示すことができ、コンテンツアイテムの第2のバージョン「A2」1306A2Bは、サイドバーで最も使用されるコンテンツアイテム1306A2Bの第2のバージョンであることを示すことができる。テンプレート1106は、テンプレート1106が文書コンテンツをどのようにフォーマットすることを意図しているかに基づいて、適切なコンテンツアイテムバージョン1306A2A、1306A2B、1306A2Zを選択することができる。コンテンツアイテム1306の異なるバージョンを定義するための属性1409が存在しない場合は、適応グリッドベース文書レイアウトシステム902は、現在のページまたは文書のフォーマットに最もよく機能するバージョンを自由に選択することができる。コンテンツアイテムの第2のバージョン「A2」1306A2Bとコンテンツアイテムの第nのバージョン「A2」1306A2Zの間の省略記号は、複数のコンテンツアイテム1306バージョンが<multi>タグ1406内に存在することができ、したがって、<multi>タグ1406は、図14に示されるような3つのコンテンツアイテムのバージョン1306A2A、1306A2B、1306A2Zには限定されないことを示す。
コンテンツストリーム1303A3A、1303A3B、1303A3Zを、<atom>タグを使用して親コンテンツアイテム1306A3内に階層的にネストすることもでき、この<atom>タグは、コンテンツストリーム1303A3A、1303A3B、1303A3Zの集合を一緒に、親コンテンツアイテム1306A3内のコンテンツアトムとしてグループ化する。次いで、コンテンツストリーム1303A3A、1303A3B、1303A3Zの集合は、単一のコンテンツアイテム1306A3として扱われる。サイドバーなどの文書エレメントは本質的に、複数の文書エレメント(例えば、テキスト、図、キャプション、およびフッター)によって表される。<atom>タグは、文書レイアウトの目的で、複数のコンテンツストリーム1303をコンテンツの1つの単一アイテムとして扱うことを可能にする。限定ではなく例として、<atom>タグは、親「サイドバー」コンテンツアイテム1306内の「タイトル」コンテンツストリーム1303、「図」コンテンツストリーム1303、「図キャプション」コンテンツストリーム1303、「説明文」コンテンツストリーム1303、および「フッター」コンテンツストリーム1303をグループ化することができる。コンテンツストリーム1303A3Bとコンテンツストリーム1303A3Zの間の省略記号は、複数のコンテンツストリーム1303が親コンテンツアイテム1306A3内に存在することができ、したがって、親コンテンツアイテム1306A3は、図14に示されるような3つのコンテンツストリーム1303A3A、1303A3B、1303A3Zには限定されないことを示す。
図15A〜図15Bは、特許請求された主題の例示的な一実施形態により、文書コンテンツ904をテンプレート1106に適用する方法1500のフローチャートを示す。低水準エンジン502は、ページネータ602から受け取られた文書コンテンツ904と、テンプレートストレージユニット908からのテンプレート1106、およびスタイルシートストレージユニット906からのスタイルシートを結合する。その結果、文書のレイアウトスタイルを定義する潜在的なページレイアウトの集合がもたらされる。
ステップ1501で開始した後、低水準エンジン502は、ステップ1503に進み、文書コンテンツ904を使用してさらなるテンプレート1106を評価する必要があるかどうかを判断する。最初は、テンプレートストレージユニット908内のテンプレート1106のいずれも評価されない。しかし、ステップ1503が繰り返されると、低水準エンジン502は、すべてのテンプレート1106が考慮されるまで、テンプレートストレージユニット908内の使用可能な他のテンプレート1106を考慮する。あるいは、低水準エンジン502は、テンプレートストレージユニット908内のすべてのテンプレート1106を評価する代わりに、ステップ1503の前(図示せず)にページネータ602によって提供されるデータ構造(例えば、配列、またはベクトル)内のすべてのテンプレート1106を評価する。低水準エンジン502は、ステップ1503でさらなるテンプレート1106を評価する必要はないと判断する場合、後述されるステップ1527に進む。しかし、低水準エンジン502は、ステップ1503でさらなるテンプレート1106を評価する必要があると判断する場合は、ステップ1506に進み、現在考慮されているテンプレート1106(例えば、本明細書では「現在のテンプレート1106」とも呼ばれる)の事前条件1109が、現在の文書コンテンツ904に対して評価される。次に、低水準エンジン502は、ステップ1509で現在のテンプレート1106は考慮されている文書コンテンツ904に有効であるかどうか判断する。
低水準エンジン502は、ステップ1509で現在のテンプレート1106は考慮されている文書コンテンツ904に有効でないと判断する場合は、上述のステップ1503に進む。しかし、低水準エンジン502は、ステップ1509で現在のテンプレート1106は考慮されている文書コンテンツ904に有効であると判断する場合は、ステップ1512に進み、現在のテンプレートの入力変数1218を設定すること、ならびに単純な欲張りローカル伝搬(greedy local propagation)を使用して現在のテンプレートの制約グラフを通じてこれらの値を前方に伝搬することによって、テンプレート1106の各エレメント1112のサイズおよび位置を決定する。
次いで、低水準エンジン502は、ステップ1515でテンプレート1106によって生成されるべきレイアウトページの二次元の領域を計算し、この二次元領域内に文書コンテンツ904が流されることとなる。さらに、低水準エンジン502は、エレメント1112間の任意のオーバーラップに従って、またはエレメントz順配置変数1212に基づいて、領域を縮小する。次に、低水準エンジン502は、ステップ1518で、決定された各領域に文書コンテンツ904を流す。次いで、低水準エンジン502は、ステップ1521に進み、文書コンテンツ904がどの程度よくテンプレート1106に適合するかに基づいて、テンプレート1106のテンプレートスコア(図10に関して以下により詳細に述べる)を計算する。次に、低水準エンジン502は、ステップ1524でテンプレート1106を有効なテンプレート1106のセットまたはシーケンスに追加する。次いで、低水準エンジン502は、上述のステップ1503に進む。
上述されるように、低水準エンジン502は、ステップ1503でさらなるテンプレート1106を評価する必要がないと判断する場合は、ステップ1527に進み、有効なテンプレート1106のセットが空かどうか判断する。低水準エンジン502は、ステップ1527で有効なテンプレート1106のセットは空であると判断する場合は、低水準エンジン502は、ステップ1536に進み、文書コンテンツ904に有効なテンプレート1106のセットが存在しないことのエラーを生成する。次いで、低水準エンジン502は、ステップ1533で方法1500による操作を終了する。しかし、低水準エンジン502は、ステップ1527で有効なテンプレート1106のセットが存在すると判断する場合は、ステップ1530に進み、有効なテンプレート1106のセット、および対応するスコアをページネータ602に送る。次いで、低水準エンジン502は、ステップ1533で方法1500による操作を終了する。
図16A〜図16Cは、特許請求された主題の例示的な一実施形態による、文書レイアウト内のエレメント1112にコンテンツを流す方法1600のフローチャートを示す。低水準エンジン502は、コンテンツタイプに従ってエレメント領域へのコンテンツの流れを制御する。一般に、コンテンツタイプには、限定ではないが、イメージ、テキスト、インライン図、およびメディアが含まれる。
ステップ1601で開始した後、低水準エンジン502は、ステップ1603に進み、コンテンツタイプがイメージかどうか判断する。低水準エンジン502は、ステップ1603でコンテンツタイプがイメージであると判断する場合は、ステップ1606に進み、イメージを適切なエレメント1112の境界領域に適合するようにスケーリングする。次に、低水準エンジン502は、ステップ1609でエレメント1112のコンテンツ領域によって切り取られた(crop)イメージを表示する。次いで、低水準エンジン502は、ステップ1618で方法1600による操作を終了する。
しかし、低水準エンジン502は、ステップ1603でコンテンツタイプがイメージでないと判断する場合、ステップ1612に進み、コンテンツタイプがテキストかどうか判断する。低水準エンジン502は、、ステップ1612でコンテンツタイプがテキストであると判断する場合、ステップ1615に進み、限定ではないがKnuthおよびPlassの最適改行アルゴリズムなどの、改行アルゴリズムを使用して、テキストがエレメント1112の境界領域に流れることを可能にする。次いで、低水準エンジン502は、ステップ1618で方法1600による操作を終了する。
しかし、低水準エンジン502は、ステップ1612でコンテンツタイプがテキストでないと判断する場合は、ステップ1621に進み、コンテンツタイプがインライン図(例えば、テキストの流れの中に生じる図)かどうか判断する。低水準エンジン502は、ステップ1621でコンテンツタイプがインライン図であると判断する場合は、ステップ1624に進み、エレメント1112の境界領域内に図を表示する余地があるかどうか判断する。低水準エンジン502は、ステップ624でエレメント1112の境界領域内に図を表示する余地があると判断する場合は、ステップ1630に進み、指定された参照位置に図を置き、エレメント1112のカラム全体を埋めるように図をサイズ変更する。次いで、低水準エンジン502は、ステップ1633で方法1600による操作を終了する。一方、低水準エンジン502は、ステップ1624でエレメント1112の境界域が図を表示するには十分なサイズではないと判断する場合は、ステップ1627に進み、フローの次のエレメント1112内の図を表示し、次のエレメント1112のカラム全体を埋めるように図をサイズ変更する。次いで、低水準エンジン502は、ステップ1633で方法1600による操作を終了する。
しかし、低水準エンジン502は、ステップ1621でコンテンツタイプがインライン図でないと判断する場合は、ステップ1636に進み、コンテンツタイプがメディアかどうか判断する。低水準エンジン502は、ステップ1636で、コンテンツタイプがメディアであると判断する場合は、ステップ1642に進み、指定された参照位置にメディアタイプを組み込む。次いで、低水準エンジン502は、ステップ1645で方法1600による操作を終了する。一方、低水準エンジン502は、ステップ1636でコンテンツタイプがメディアでないと判断する場合は、ステップ1639に進み、無効なコンテンツタイプを示すエラーを生成する。次いで、低水準エンジン502は、ステップ1645で方法1600による操作を終了する。
図17A〜図17Cは、特許請求された主題の例示的な一実施形態による、文書レイアウト内でエレメント1112を自己サイズ調整する(self-sizing)方法1700のフローチャートを示す。低水準エンジン502は、その高さを文書コンテンツ904に適合するように自動的に調整するエレメント1112をサポートする。エレメント1112の自動なサイズ変更は、コンテンツタイプに依存する。
ステップ1701で開始した後、低水準エンジン502は、ステップ1703に進み、エレメント1112がイメージエレメントかどうか判断する。低水準エンジン502は、ステップ1703でエレメント1112がイメージエレメントであると判断する場合は、ステップ1706に進み、エレメント1112にイメージのピクセル寸法を提供するために、エレメント1112に関連付けられる制約変数1218、1221を設定する。次に、低水準エンジン502は、ステップ1709で、エレメント1112の適切な高さおよび幅を決定するために、ピクセル寸法からイメージの縦横比を計算する。次いで、低水準エンジン502は、ステップ1712で方法1700による操作を終了する。
しかし、低水準エンジン502は、ステップ1703でエレメント1112がイメージエレメントでないと判断する場合は、ステップ1715に進み、エレメント1112がテキストエレメントかどうか判断する。低水準エンジン502は、ステップ1715でエレメント1112がテキストエレメントであると判断する場合は、ステップ1718に進み、低水準エンジン502は、エレメント1112が、限定ではないが「resize−to−content」タグなどの所定のマークまたは属性を備えるかどうかを判断する。低水準エンジン502は、ステップ1718でエレメント1112が「resize−to−content」タグでマーク付けされないと判断する場合は、エレメント1112のサイズ変更が必要ではないため、ステップ1712で方法1700による操作を終了する。
低水準エンジン502は、ステップ1718でエレメント1112が「resize−to−content」タグでマーク付けされると判断する場合は、ステップ1721に進み、エレメント1112の高さ変数(height variable)を許容可能な最大値に設定する。次に、低水準エンジン502は、ステップ1724で、エレメント1112がテキストで完全に埋められるかどうか判断する。低水準エンジン502は、ステップ1724でエレメント1112がテキストで完全に埋められると判断する場合は、エレメント1112のサイズ変更が必要ではないため、ステップ1730で方法1700による操作を終了する。しかし、低水準エンジン502は、ステップ1724でエレメント1112がテキストで完全には埋められないと判断する場合は、ステップ1727に進み、エレメント1112の高さをテキストの実際の高さに再設定する。次いで、低水準エンジン502は、ステップ1730で方法1700による操作を終了する。
しかし、低水準エンジン502は、ステップ1715でエレメント1112がテキストエレメントでないと判断する場合は、ステップ1727に進み、エレメント1112がレイアウト用のテンプレート1106を必要とする複合エレメントかどうか判断する。コンテンツアトムは、まとめると原子単位(atomic unit)と見なされる、2つまたはそれ以上のコンテンツの部分を表す。限定ではなく例として、ピクチャおよび対応するキャプションは一緒に、単一の「キャプション付きの図(captioned figure)」として概念的にグループ化される。したがって、複合エレメントは、コンテンツアトムを受け入れることができるテンプレート内のエレメントである。コンテンツアトムの内部の別個のサブコンテンツの部分をレイアウトするために、複合エレメントは、レイアウトページ上のコンテンツアトムの別個のサブパート(subpart)を配置するために使用することができる別個のサブテンプレートを指定する。ステップ1727で、低水準エンジン502は、エレメント1112が、レイアウト用のテンプレート1106を必要とする複合エレメントでないと判断する場合は、サイズ変更が必要とされないため、ステップ1730で方法1700による操作を終了する。
しかし、低水準エンジン502は、ステップ1727でエレメント1112がレイアウト用のテンプレート1106を必要とする複合エレメントであると判断する場合は、ステップ1733に進み、必要なテンプレート1106を使用して、エレメント1112をレイアウトする。複合エレメントは、限定ではないがコンテンツアトム1306A3などの、複数のコンテンツアイテム1306または複数のコンテンツストリーム1303を含むことができる。次いで、低水準エンジン502は、ステップ1736に進み、特別な出力変数1221を使用して、テンプレート1106内のエレメント1112の最終的な高さを設定する。次いで、低水準エンジン502は、ステップ1739で方法1700による操作を終了する。
図18は、特許請求された主題の例示的な一実施形態による、文書コンテンツ904がテンプレート1106にどの程度よく適合するかに基づいてテンプレート1106をスコアリングする方法1800のフローチャートを示す。低水準エンジン502は、文書コンテンツ904をレイアウトするために使用される各テンプレート1106について、コンテンツがテンプレート1106にどの程度適合するかに基づいて、スコアを計算する。低水準エンジン502は、潜在的なテンプレート1106のすべてのスコアを計算すると、ページネータ602にスコアを報告し、ページネータ602は、そのスコアをコンテンツの前後のページのテンプレートスコアとともに使用して、すべての文書コンテンツ904をページネーションするのに使用するテンプレート1106の最適なシーケンスを計算する。
ステップ1801で開始した後、低水準エンジン502は、ステップ1803に進み、テンプレート1106のテンプレートスコアを備える制約出力変数1221を評価する。次いで、低水準エンジン502は、ステップ1806に進み、テンプレート1106を適用した後のページレイアウト内のウイドウおよびオーファンの数を決定する。次いで、低水準エンジン502は、ステップ1809で、コンテンツがテンプレート1106にどの程度よく適合するかのスコアを計算し、それによって、品質スコアは、テンプレートスコア変数(template.score variable)、ならびにページレイアウト内のウイドウおよびオーファンの数に基づく。低水準エンジン502は、ステップ1812に進み、ページネータ602にテンプレート1106の計算されたスコアを提供し、ページネータ602は、このスコアをテンプレート1106の最終シーケンスの計算に使用する。次いで、ページネータ602は、ステップ1815で方法1800による操作を終了する。
ページネータ602は、テンプレート1106のシーケンス、およびシーケンスの各テンプレート1106への文書コンテンツ904のマッピングを作成し、低水準エンジン502は、このマッピングを、文書全体を表示するために使用することができる。特許請求された主題の一実施形態では、適応グリッドベース文書システム902は、異なるアプリケーションのための複数のページネーションアルゴリズムを使用する。したがって、適応グリッドベース文書システム902は、インタラクティブなアプリケーションに有効なページネーションを迅速に生成する第1のページネータ602と、最適なページネーションをもたらすが操作により多くの時間を要する第2のページネータ602とを備えることができる。第1のページネータ602は、文書内の現在の位置にコンテンツを受け入れる各ページについて第1のテンプレート1106を常に使用する「欲張り(greedy)」アルゴリズムを使用することがあり、あるいは選択の大域的な結論(global consequence)(例えば、グローバルスコアリング)を評価せずにシーケンス内の各場所で単一の最良テンプレート1106を選択することがある。第2のページネータ602は、限定ではないが、文書コンテンツ904のより小さい部分(例えば、「ウィンドウ」)上で一連のより小さい最適化プロセスを実行することによって、最適であることは保証されないが「欲張り」ページネーションよりも優れた近似最適ページネーション(approximate optimal pagination)を作成することを含む技術を使用することがある。
図19A〜図19Dは、特許請求された主題の例示的な一実施形態による、文書コンテンツ904を適応グリッドベース文書レイアウトに最適にページネーションする方法1900のフローチャートを示す。最適なページネーションを見つけるために、ページネータ602は、有効なテンプレート1106の各シーケンスの有効性を測定しなければならず、それによって測定(measure)は、システマティックまたはヒューリスティックな検索、あるいは制約最適化により最大化される。最適化ページネータ602は、テンプレート1106のシーケンス、および各テンプレート1106へのコンテンツのマッピングを作成し、それによって、ある品質の測定を最大化する。限定ではないが例として、1つのこのような測定は、「ページめくり総数(total page turns)」メトリックを含み、この「ページめくり総数」メトリックは、テキストを読み通すことと、テキストが参照する任意の追加のコンテンツに移ることの両方に必要なページめくり総数をカウントする。特許請求された主題の例示的な実施形態では、有効なテンプレート1106の各シーケンスの有効性をスコアリングするのに使用されるメトリックは、ページめくり総数の値を、ページの外観の品質(例えば、空間、美的外観、作業性、または読みやすさ)を反映する他の測定と共に使用することを含む。
サブプロブレム(例えば、一連の新しいテンプレート1106)を評価するために使用される基本の動的プログラミングアルゴリズムは、あとからの判断(hindsight)に依拠してサブプロブレムシーケンスをスコアリングするので、特許請求された主題の一態様は、現在のサブプロブレムのすべての可能性あるエンドポイントを計算することによって、評価が有効なページに対してのみ実行されるように(例えば、前向きに(forward-looking))、アルゴリズムを再構成する。特許請求された主題の一態様は、新しいサブプロブレムが考慮されるとき、解の中で恐らくそれに先行し得るすべてのサブプロブレムが既に解決され、最適な先行サブプロブレムを指すエントリがデータテーブルに存在するであろうことを保証する。したがって、サブプロブレムに到達するときにサブプロブレムについてのエントリがデータテーブル内に存在しない場合、そのサブプロブレムは、計算されずにパスされることがある。
さらに、特許請求された主題の一実施形態は、データテーブルに余次元(extra dimension)を加えること、およびアルゴリズムに追加のネストされたループ(additional nested loop)を加えることによって、追加のコンテンツストリーム1303に対処するように容易に修正され得る。オプションのコンテンツストリーム1303からのコンテンツを表示するテンプレート1106を使用可能にすることによって、追加プログラミングなしで、オプションのコンテンツストリーム1303を処理することもできる。ページネータ602は、オプションのコンテンツストリーム1303からのコンテンツアイテム1306が最適ページネーションを向上させるときはいつでも、そのコンテンツアイテム1306を含む。このようなオプションのコンテンツストリーム1303、およびオプションのコンテンツストリーム1303を使用するテンプレート1106は、ページネーションの品質を非常に向上させることができる。
特許請求された主題の様々な態様のパフォーマンスは、その品質スコアがある閾値(例えば、本明細書では「プルーニング閾値(pruning threshold)」と呼ばれることもある)より悪い部分解(partial solution)(例えば、受入れ可能であると既に検証されたサブプロブレム)をデータテーブルからプルーニングすることによってさらに向上される。存在する受入れ可能な解は比較的少ないので、このプルーニングは、サブプロブレムシーケンスのリストを最適に絞り込むのに役立つ。限定ではなく例として、従来のプルーニングの方針(pruning strategy)は、「第一適合」解(例えば、「欲張り」解)から生じる品質スコアをプルーニング閾値として使用することを含む。このような従来のプルーニングの方針を使用は、典型的に、ページネーションプロセスの大幅なスピードアップをもたらし、解が常に見つかることを保証する。あるいは、楽観的プルーニング(optimistic pruning)の方針は、おおよそのほぼ完全な閾値を選択し、解が見つからない場合には閾値を繰返し変更する。かなりの数のテンプレート1106がテンプレートストレージユニット908に存在する場合、ほぼ完全な解が存在する可能性は高く、したがって楽観的プルーニングの方針は、より効果的になる。
データテーブル内のエントリは、文書内の位置(例えば、現在処理されているページのエンドポイント)を表す。さらに、データテーブル内のエントリは、テーブル内のエントリの指標値によって決定することができる文書の様々なコンテンツストリーム1303内の所与の位置で終わる、これまでに発見された最良のページネーションを表す。テーブルエントリは、限定ではないが、その位置で終わる最適な部分解の中の先行するページのテーブル内の位置(したがって、文書内の位置)と、最後のページをレンダリングするのに使用されるテンプレート1106(例えば、直前のテーブルエントリと、現在処理されているテーブルエントリの間のページ)とを含む。
特許請求された主題の実施形態によって使用されるプロセスの最も外側のループは、テーブルを越えて、それが進むにつれてますます増加する(部分)解またはサブプロブレムを評価する。ループの各反復は、考慮されている現在のエンドポイントに続く可能性がある次の1組のページ(例えば、ページはコンテンツのテンプレート1106およびコンテンツ選択であり、異なるテキスト量、異なるイメージバージョンなどを有する単一のテンプレート1106について複数の結果が存在し得る)を見つけるために、低水準エンジン502が呼び出す。結果として生じる1組のページは、次のページの1組のエンドポイントをもたらし、このエンドポイントは、ページネータ602によって、データテーブルの方に伝搬される(例えば、新しいエントリがよりよいグローバルスコアを有する場合、既存のエントリを置き換える)。
限定ではなく例として、図19A〜図19Dに示される方法1900は、表1に与えられる擬似コード(pseudo-code)によって表されることがある。
Figure 2009510650
Figure 2009510650
ステップ1901から開始した後、ページネータ602は、ステップ1903に進み、最適ページネーションのプルーニング閾値を設定する。閾値は、上述の技術を含め様々な方法で決定することができることが当業者には認識されよう。
次に、ステップ1906で、ページネータ602は、文書の第1のページの開始を表す単一のエンドポイントで、空のデータテーブルを初期化する(例えば、あるエントリを、文書の始まりを表す位置(0,0)に置く)。次いで、ページネータ602は、ステップ1909に進み、テーブル内のいずれかの位置を評価する必要があるかどうか判断する。ページネータ602は、ステップ1909でテーブル内の位置を評価する必要がないと判断する場合、ステップ1921に進み、最適テンプレート1106のシーケンスおよびコンテンツマッピングを取得するために最後のテーブルエントリからバックポインタをトレースする。次いで、ページネータ602は、ステップ1901で方法1900による操作を終了する。
しかし、ページネータ602は、ステップ1909でテーブル内の位置を評価する必要があると判断する場合、ステップ1912に進み、現在のテーブル位置が有効なエントリを有するかどうか判断する。現在のエントリは、ページネータによって、テーブル内の現在のエントリに先行するすべてのエントリは評価済みである未評価のテーブルエントリのセットから選択される。ページネータ602は、ステップ1912で現在のテーブルエントリが有効なエントリを有しないと判断する場合は、エントリを評価済みとしてマーク付けし、上述のステップ1909に進む。一方、ページネータ602は、ステップ1912で現在のテーブルエントリが有効なエントリ(例えば、文書コンテンツにうまく適用することができるテンプレートを表す、受入れ可能なエントリ)を有すると判断する場合は、ステップ1915に進み、低水準エンジン502を呼び出して、現在のテーブル位置で開始するページについてエンドポイントのリストを生成する。
一般に、低水準エンジン502は、プログラムモジュールの呼出しを通じて、テンプレートストレージユニット908内の各テンプレート1106を文書コンテンツ904の未処理部分に適用し、どのテンプレート1106が有効なテンプレート1106か判断する。使用することができるテンプレート1106がない場合は、現在のテーブル位置に続くテンプレート1106がなく、したがって、現在のテーブルエントリは、それ以上考慮されるべきではない。低水準エンジン502は、テンプレート1106を現在の位置に適用することができる(例えば、それが、現在のテーブル位置で始まるコンテンツを収容する)と判断する場合は、低水準エンジン502は、テンプレートをコンテンツに適用して、結果として生じるページのエンドポイントおよびスコアを決定し、ページネータ602に返されたエンドポイントのリスト内にそのエンドポイントを含み、ページネータ602は、テンプレート1106の新しいシーケンスに関連付けられる適切なグローバルスコアを決定することができる。
次いで、ページネータ602は、ステップ1918に進み、ステップ1915で返されたいずれかのエンドポイントを評価する必要があるかどうか(エンドポイントについて計算されたグローバルスコアがあるかどうか)を判断する。ページネータ602は、ステップ1918でエンドポイントを評価する必要がないと判断する場合は、上述のステップ1909に進む。しかし、ページネータ602は、ステップ1918でエンドポイントを評価する必要があると判断する場合は、ステップ1927に進み、新しいエンドポイントで終わるシーケンスのグローバルスコアを計算する。次いで、ページネータ602は、ステップ1930に進み、計算されたグローバルスコアが所定のプルーニング閾値より良いかどうか判断する。ページネータ602は、ステップ1930で、計算されたグローバルスコアが所定のプルーニング閾値よりも良くないと判断する場合は、上述のステップ1918に進む。
しかし、ページネータ602は、ステップ1930で、計算されたグローバルスコアが所定のプルーニング閾値よりも良い(例えば、大きい)と判断する場合は、ステップ1933に進み、新しいエンドポイントがデータテーブル内にエントリを有するかどうか判断する。ページネータ602は、ステップ1933で新しいエンドポイントがデータテーブル内にエントリを有しないと判断する場合は、ステップ1936に進み、ページネータ602は、新しいエンドポイントについて、計算されたグローバルスコア、現在のテンプレート1106、および現在の位置へのバックポインタを含むエントリをテーブルに追加する。次いで、ページネータ602は、上述のステップ1918に進む。
一方、ページネータ602は、ステップ1933で、新しいエンドポイントがデータテーブル内にエントリを有すると判断する場合は、ステップ1939に進み、計算されたグローバルスコアが、データテーブルに格納されたスコアよりも良いかどうか判断する。ページネータ602は、ステップ1939で計算されたグローバルスコアが、データテーブルに格納されたスコアより良くないと判断する場合は、上述のステップ1918に進む。
しかし、ページネータ602は、ステップ1939で計算されたグローバルスコアが、データテーブルに格納されたスコアよりも良いと判断する場合は、ステップ1942に進み、データテーブルに格納されたエントリを新しいエンドポイント、計算されたグローバルスコア、現在のテンプレート1106、および現在の位置へのバックポインタで置き換える。次いで、ページネータ602は、上述のステップ1918に進む。
次に図20を参照すると、開示されたアーキテクチャを実行するように動作可能な例示的なコンピュータコンパイルシステムのブロック図が図示されている。システム2000は、1つまたは複数のクライアント2002を含む。クライアント2002は、ハードウェアおよび/またはソフトウェア(例えば、スレッド、プロセス、コンピューティング装置)とすることができる。クライアント2002は、例えば、特許請求された主題の特徴を使用することによって、クッキーおよび/または関連コンテキスト情報を収容することができる。
システム2000は、1つまたは複数のサーバ2004も含む。サーバ2004は、ハードウェアおよび/またはソフトウェア(例えば、スレッド、プロセス、コンピューティング装置)とすることもできる。サーバ2004は、例えば、特許請求された主題の特徴を使用することによって、変換を実行するスレッドを収容することができる。クライアント2002とサーバ2004の間の可能な通信の1つは、2つまたはそれ以上のコンピュータプロセス間で伝送されるように適応されたデータパケットの形式とすることができる。データパケットは、例えば、クッキーおよび/または関連コンテキスト情報を含むことができる。システム2000は、クライアントとサーバ2004の間の通信を容易にするのに使用することができる通信フレームワーク2006(例えば、インターネットなどのグローバル通信ネットワーク)を含む。
通信は、有線(光ファイバを含む)および/または無線技術を介して容易にすることができる。クライアント2002は、クライアント2002にローカルの情報(例えば、クッキーおよび/または関連コンテキスト情報)を格納するのに使用することができる1つまたは複数のクライアントデータストア2008に動作可能に接続される。同様に、サーバ2004は、サーバ2004にローカルの情報を格納するために使用することができる1つまたは複数のサーバデータストア2010に動作可能に接続される。
上記で述べた内容は、特許請求された主題の実施例を含む。当然、特許請求された主題を説明するために、コンポーネントまたは方法の考えられるあらゆる組合せを述べることは不可能であるが、特許請求された主題について多くのさらなる組合せおよび置換が可能であることが当業者には認識されよう。したがって、特許請求された主題は、添付の特許請求の範囲の精神および範囲に含まれる、すべてのこのような変更形態、修正形態、および変形形態を包含することが意図されている。さらに、「含む(include)」という用語が詳細な説明または請求項において使用される範囲では、このような用語は、「備える(comprising)」という用語が、請求項において移行語(transitional word)として使用される場合に解釈されるように、用語「備える(comprising)」と同様に包含的なものであることが意図されている。
様々なコンテンツを有し、複数のサイズおよび寸法で表示することができる文書レイアウトを適応させることを容易にするシステムを示す図である。 テンプレートの作成、修正および/または記憶を容易にするシステムのブロック図である。 意味の流れ、ブランドアイデンティティ、イメージとテキストの相関性、および/または広告テーマに少なくとも部分的に基づく高品質レイアウトを生成するレイアウトエンジンを示す図である。 出力装置の寸法に基づいて表示することができる文書レイアウトを適応させることを容易にするシステムを示す図である。 高水準構成体で指定されたテンプレートに基づいて高品質レイアウトを作成し、レイアウトを、低水準エンジンが高品質レイアウトを作成するのに使用することができる低水準制約に変換するシステムを示す図である。 高品質レイアウトを作成するために、テンプレートを選択し、および/またはレイアウト上にコンテンツを配置するシステムを示す図である。 ソースフォーマットから変換するために拡張可能スタイルシート言語変換(XSLT)を使用するレイアウトエンジンを示す図である。 高品質レイアウトを作成するコンテンツ配置を容易にする手順の例示的なフローチャートである。 適応グリッドベース文書のレイアウト環境を表すブロック図である。 本発明が使用することができるコンピューティング環境およびそのコンピュータシステムを表すブロック図である。 適応レイアウトスタイルおよびテンプレートを含む文書レイアウトを表すブロック図である。 適応テンプレートを表すブロック図である。 コンテンツストリームを含む文書コンテンツを表すブロック図である。 コンテンツアイテムを含むコンテンツストリームを表すブロック図である。 文書コンテンツをテンプレートに適用する方法を表すフローチャートである。 文書コンテンツをテンプレートに適用する方法を表すフローチャートである。 コンテンツを文書レイアウト内のエレメントに流す方法を表すフローチャートである。 コンテンツを文書レイアウト内のエレメントに流す方法を表すフローチャートである。 コンテンツを文書レイアウト内のエレメントに流す方法を表すフローチャートである。 文書レイアウト内のエレメントを自己サイズ調整する方法を表すフローチャートである。 文書レイアウト内のエレメントを自己サイズ調整する方法を表すフローチャートである。 文書レイアウト内のエレメントを自己サイズ調整する方法を表すフローチャートである。 文書コンテンツがテンプレートにどの程度よく適合するかに基づいてテンプレートをスコアリングする方法を表すフローチャートである。 文書コンテンツを適応グリッドベース文書レイアウトに最適にページネーションする方法を表すフローチャートである。 文書コンテンツを適応グリッドベース文書レイアウトに最適にページネーションする方法を表すフローチャートである。 文書コンテンツを適応グリッドベース文書レイアウトに最適にページネーションする方法を表すフローチャートである。 文書コンテンツを適応グリッドベース文書レイアウトに最適にページネーションする方法を表すフローチャートである。 例示的なコンピューティング環境の概略ブロック図である。

Claims (20)

  1. 多種多様なコンテンツを伴い複数のサイズおよび寸法で表示することができる文書レイアウトの適応を容易にするシステムであって、
    文書レイアウトについての制約の高水準記述であるテンプレート(104)を受け取るインタフェース(102)と、
    高品質レイアウト(110)を自動的に作成するために、前記テンプレートを解釈し、コンテンツ(108)をどこに置くか決定するレイアウトエンジン(106)と
    を備えることを特徴とするシステム。
  2. 高水準制約パラメータによって前記テンプレートのデザインおよび/または修正を容易にし、前記テンプレートのストレージを提供するユーザインタフェースをさらに備えることを特徴とする請求項1に記載のシステム。
  3. 前記ユーザインタフェースは、グラフィカルユーザインタフェース(GUI)であることを特徴とする請求項2に記載のシステム。
  4. 前記レイアウトエンジンは、意味の流れ、ブランドアイデンティティ、イメージとテキストの相関性、および広告テーマの少なくとも1つに基づいて前記高品質レイアウトを作成することを特徴とする請求項1に記載のシステム。
  5. 前記レイアウトエンジンは、前記テンプレート、前記高品質レイアウトで使用されるべきコンテンツのタイプ、および前記高品質レイアウトの表示寸法に基づいて前記高品質レイアウトを作成することを特徴とする請求項1に記載のシステム。
  6. 前記高品質レイアウトを表示する出力装置をさらに備え、前記高品質レイアウトの前記表示寸法は、前記出力装置に基づくことを特徴とする請求項5に記載のシステム。
  7. 前記高品質レイアウトの前記表示寸法は、前記テンプレートが作成されるときは知られていないことを特徴とする請求項5に記載のシステム。
  8. 前記高品質レイアウトで使用されるべき前記コンテンツのタイプは、前記テンプレートが作成されるときは知られていないことを特徴とする請求項5に記載のシステム。
  9. 低水準の制約に基づいて前記コンテンツを適応グリッドベースのレイアウトに適用する低水準エンジンをさらに備え、前記レイアウトエンジンは、前記高品質レイアウトのために前記コンテンツをどこに置くか決定し、前記高品質レイアウトを作成するのに前記低水準エンジンに必要な前記低水準制約を生成することを特徴とする請求項1に記載のシステム。
  10. 前記レイアウトエンジンは、前記コンテンツに適した位置に基づいてコンテンツをどこに置くか決定することを特徴とする請求項1に記載のシステム。
  11. 前記文書レイアウトは、最上位レベルおよび最下位レベルを有するマルチレベル文書レイアウトであり、前記レイアウトエンジンは、前記最上位レベルに置かれたコンテンツの位置に基づいて前記最下位レベルでコンテンツをどこに置くか決定することを特徴とする請求項1に記載のシステム。
  12. 前記高品質レイアウトで使用される前記コンテンツは、複数のソースから集約されることを特徴とする請求項1に記載のシステム。
  13. 前記レイアウトエンジンは、拡張可能スタイルシート言語変換(XSLT)を使用して、前記コンテンツが受け取られるソースフォーマットから前記コンテンツを変換することを特徴とする請求項1に記載のシステム。
  14. 高品質レイアウトを作成するようにコンテンツを配置するためのコンピュータ実施される方法であって、
    高水準言語で定義される文書レイアウト用のテンプレートを選択すること(802)と、
    文書の表示サイズを決定すること(804)と、
    前記文書のコンテンツを受け取ること(806)と、
    前記コンテンツに使用可能な位置を決定するために前記テンプレートおよび前記表示サイズを使用すること(808)と、
    前記使用可能な位置から前記コンテンツの高品質位置を選択すること(810)と、
    前記コンテンツを前記高品質位置に配置することによって前記文書の高品質レイアウトを作成すること(812)と
    を含むことを特徴とするコンピュータ実施される方法。
  15. 文書用のテンプレートを高水準言語で定義することをさらに含むことを特徴とする請求項14に記載の方法。
  16. 前記文書の前記表示サイズおよび前記コンテンツの前記タイプは、前記テンプレートが定義されるときは知られていないことを特徴とする請求項15に記載の方法。
  17. 前記コンテンツに使用可能な位置を前記決定することは、前記文書内に以前に置かれた他のコンテンツの位置に少なくとも部分的に基づくことを特徴とする請求項14に記載の方法。
  18. 高品質位置を前記選択することは、ベストフィットアルゴリズム、ファーストフィットアルゴリズム、ファーストフィットグッドアルゴリズムの少なくとも1つであるアルゴリズムに基づくことを特徴とする請求項14に記載の方法。
  19. 高品質位置を前記選択することは、意味の流れ、ブランドアイデンティティ、イメージとテキストの相関性、および広告テーマの少なくとも1つに基づくことを特徴とする請求項14に記載の方法。
  20. 多種多様なコンテンツを伴い複数のサイズおよび寸法で表示することができる高品質レイアウトを作成するようにコンテンツを配置するコンピュータ実装されるシステムであって、
    文書レイアウト用のテンプレート(104)の制約を高水準言語で記述する手段と、
    文書表示装置サイズを決定する手段(106)と、
    前記文書のコンテンツを受け取る手段(108)と、
    前記テンプレートおよび前記表示サイズに基づいて前記コンテンツに使用可能な位置を決定する手段(106)と、
    前記使用可能な位置から前記コンテンツの高品質位置を選択する手段(106)と、
    前記コンテンツを前記高品質位置に置くことによって前記文書の高品質レイアウト(110)を作成する手段(106)と
    を備えることを特徴とするコンピュータ実装されるシステム。
JP2008534701A 2005-10-04 2006-10-04 動的に集約された文書のための調和構成を備えたマルチフォームデザイン Pending JP2009510650A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US72346705P 2005-10-04 2005-10-04
US11/343,351 US20070079236A1 (en) 2005-10-04 2006-01-31 Multi-form design with harmonic composition for dynamically aggregated documents
PCT/US2006/039100 WO2007041703A1 (en) 2005-10-04 2006-10-04 Multi-form design with harmonic composition for dynamically aggregated documents

Publications (2)

Publication Number Publication Date
JP2009510650A true JP2009510650A (ja) 2009-03-12
JP2009510650A5 JP2009510650A5 (ja) 2009-11-26

Family

ID=37903307

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008534701A Pending JP2009510650A (ja) 2005-10-04 2006-10-04 動的に集約された文書のための調和構成を備えたマルチフォームデザイン

Country Status (8)

Country Link
US (1) US20070079236A1 (ja)
EP (1) EP1941392A1 (ja)
JP (1) JP2009510650A (ja)
KR (1) KR20080053930A (ja)
AU (1) AU2006299329B2 (ja)
BR (1) BRPI0616940A2 (ja)
RU (1) RU2419856C2 (ja)
WO (1) WO2007041703A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014041482A (ja) * 2012-08-22 2014-03-06 Dainippon Printing Co Ltd 組版装置、組版方法、および、組版装置用プログラム

Families Citing this family (150)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005004629A (ja) * 2003-06-13 2005-01-06 Hitachi Ltd ページ生成方法及びその装置
US7536636B2 (en) * 2004-04-26 2009-05-19 Kodak Graphic Communications Canada Company Systems and methods for comparing documents containing graphic elements
US7472340B2 (en) * 2004-12-20 2008-12-30 Microsoft Corporation Method and computer-readable medium for generating a multiple column layout
US9275052B2 (en) 2005-01-19 2016-03-01 Amazon Technologies, Inc. Providing annotations of a digital work
IL167283A (en) * 2005-03-07 2007-06-03 Israel Marmorstein Methods for printing booklets and booklets printed thereby
US8438468B2 (en) * 2005-04-15 2013-05-07 International Business Machines Corporation Annotation management
US7644356B2 (en) * 2005-06-10 2010-01-05 Hewlett-Packard Development Company, L.P. Constraint-based albuming of graphic elements
KR20080048027A (ko) 2005-08-09 2008-05-30 잘락 코포레이션 전자문서로부터 콘텐츠를 집합하고, 추출하고, 전개하는방법 및 장치
US20070094591A1 (en) * 2005-10-24 2007-04-26 Etgen Michael P System and method for text legibility enhancement
US7739592B2 (en) * 2005-11-10 2010-06-15 International Business Machines Corporation Delivery, organization, and management of data capture elements
US8584002B2 (en) * 2006-01-09 2013-11-12 Apple Inc. Automatic sub-template selection based on content
US20070250711A1 (en) * 2006-04-25 2007-10-25 Phonified Llc System and method for presenting and inputting information on a mobile device
US8566418B2 (en) * 2006-05-04 2013-10-22 Samsung Electronics Co., Ltd Configurable system for using Internet services on CE devices
WO2008021832A2 (en) * 2006-08-09 2008-02-21 Radar Networks, Inc. Harvesting data from page
US8725565B1 (en) 2006-09-29 2014-05-13 Amazon Technologies, Inc. Expedited acquisition of a digital item following a sample presentation of the item
US9672533B1 (en) 2006-09-29 2017-06-06 Amazon Technologies, Inc. Acquisition of an item based on a catalog presentation of items
US7865817B2 (en) 2006-12-29 2011-01-04 Amazon Technologies, Inc. Invariant referencing in digital works
US7716224B2 (en) 2007-03-29 2010-05-11 Amazon Technologies, Inc. Search and indexing on a user device
US9665529B1 (en) 2007-03-29 2017-05-30 Amazon Technologies, Inc. Relative progress and event indicators
US8234282B2 (en) 2007-05-21 2012-07-31 Amazon Technologies, Inc. Managing status of search index generation
KR101213235B1 (ko) * 2007-07-24 2012-12-17 삼성전자주식회사 콘텐트 사용자 또는 콘텐트 제작자가 콘텐트에 삽입되는광고를 선택할 수 있는 콘텐트의 재생/제작 방법 및 장치
WO2009039522A1 (en) * 2007-09-20 2009-03-26 Visible World Corporation Systems and methods for media packaging
US7831579B2 (en) * 2007-12-28 2010-11-09 Microsoft Corporation Adaptive page layout utilizing block-level elements
US20090199126A1 (en) * 2008-02-06 2009-08-06 International Business Machines Corporation Method for automatically organizing toolbars for a software application
US8266163B2 (en) * 2008-02-26 2012-09-11 International Business Machines Corporation Utilizing reference/ID linking in XML wrapper code generation
US20090254814A1 (en) * 2008-04-08 2009-10-08 Microsoft Corporation Per-edge rules and constraints-based layout mechanism
JP5340048B2 (ja) * 2008-06-17 2013-11-13 キヤノン株式会社 画像処理装置、画像処理方法、およびプログラム
US8381123B2 (en) * 2008-06-27 2013-02-19 Microsoft Corporation Positioning and realizing of virtualized visible content within a viewport
US8214736B2 (en) * 2008-08-15 2012-07-03 Screenplay Systems, Inc. Method and system of identifying textual passages that affect document length
JP5349879B2 (ja) * 2008-09-18 2013-11-20 キヤノン株式会社 情報処理装置、情報処理方法、プログラム、及び、記憶媒体
JP2010097564A (ja) * 2008-10-20 2010-04-30 Canon Inc 情報処理装置及びレイアウト処理方法
US9087032B1 (en) 2009-01-26 2015-07-21 Amazon Technologies, Inc. Aggregation of highlights
US20100218090A1 (en) * 2009-02-26 2010-08-26 Universal - Ad Ltd. Sub-page-based page layout system and method thereof
US8849873B2 (en) * 2009-03-18 2014-09-30 Bentley Systems, Incorporated Specifications automation system and method
US20100277767A1 (en) * 2009-04-30 2010-11-04 John Henry Klippenstein Profit based layouts
US20110004819A1 (en) * 2009-07-03 2011-01-06 James Hazard Systems and methods for user-driven document assembly
US8832548B2 (en) 2009-09-21 2014-09-09 Google Inc. System and method for selective control of zoom adjustments in an electronic publication
US9310907B2 (en) 2009-09-25 2016-04-12 Apple Inc. Device, method, and graphical user interface for manipulating user interface objects
EP3855297A3 (en) * 2009-09-22 2021-10-27 Apple Inc. Device method and graphical user interface for manipulating user interface objects
US8799826B2 (en) * 2009-09-25 2014-08-05 Apple Inc. Device, method, and graphical user interface for moving a calendar entry in a calendar application
US8766928B2 (en) * 2009-09-25 2014-07-01 Apple Inc. Device, method, and graphical user interface for manipulating user interface objects
US8832585B2 (en) 2009-09-25 2014-09-09 Apple Inc. Device, method, and graphical user interface for manipulating workspace views
US8692763B1 (en) 2009-09-28 2014-04-08 John T. Kim Last screen rendering for electronic book reader
US8468448B2 (en) * 2009-10-28 2013-06-18 Hewlett-Packard Development Company, L.P. Methods and systems for preparing mixed-content documents
US8594459B2 (en) 2009-10-30 2013-11-26 Hewlett-Packard Development Company, L.P. Arranging secondary images adjacent to a primary image
US8381125B2 (en) * 2009-12-16 2013-02-19 Apple Inc. Device and method for resizing user interface content while maintaining an aspect ratio via snapping a perimeter to a gridline
US8347238B2 (en) * 2009-12-16 2013-01-01 Apple Inc. Device, method, and graphical user interface for managing user interface content and user interface elements by dynamic snapping of user interface elements to alignment guides
US8539385B2 (en) * 2010-01-26 2013-09-17 Apple Inc. Device, method, and graphical user interface for precise positioning of objects
US8209630B2 (en) * 2010-01-26 2012-06-26 Apple Inc. Device, method, and graphical user interface for resizing user interface content
US8683363B2 (en) * 2010-01-26 2014-03-25 Apple Inc. Device, method, and graphical user interface for managing user interface content and user interface elements
US8677268B2 (en) * 2010-01-26 2014-03-18 Apple Inc. Device, method, and graphical user interface for resizing objects
US8539386B2 (en) * 2010-01-26 2013-09-17 Apple Inc. Device, method, and graphical user interface for selecting and moving objects
US20130014008A1 (en) * 2010-03-22 2013-01-10 Niranjan Damera-Venkata Adjusting an Automatic Template Layout by Providing a Constraint
US9146913B2 (en) 2010-03-29 2015-09-29 Bentley Systems, Incorporated Specifications automation system and method
US8504915B2 (en) * 2010-04-12 2013-08-06 Microsoft Corporation Optimizations for hybrid word processing and graphical content authoring
US9361130B2 (en) * 2010-05-03 2016-06-07 Apple Inc. Systems, methods, and computer program products providing an integrated user interface for reading content
US20150248698A1 (en) * 2010-06-23 2015-09-03 Google Inc. Distributing content items
US9098182B2 (en) 2010-07-30 2015-08-04 Apple Inc. Device, method, and graphical user interface for copying user interface objects between content regions
US8972879B2 (en) 2010-07-30 2015-03-03 Apple Inc. Device, method, and graphical user interface for reordering the front-to-back positions of objects
US9081494B2 (en) 2010-07-30 2015-07-14 Apple Inc. Device, method, and graphical user interface for copying formatting attributes
JP5323103B2 (ja) * 2010-09-03 2013-10-23 三菱電機株式会社 グラフィカルユーザインタフェース装置
US9495322B1 (en) 2010-09-21 2016-11-15 Amazon Technologies, Inc. Cover display
US8717920B2 (en) * 2010-10-08 2014-05-06 Telefonaktiebolaget L M Ericsson (Publ) Signalling mechanism for multi-tiered intra-band carrier aggregation
US20130205199A1 (en) * 2010-10-25 2013-08-08 Niranjan Damera-Venkata Variable Template Based Document Generation
WO2012057804A1 (en) * 2010-10-30 2012-05-03 Hewlett-Packard Development Company, L.P. Optimizing hyper parameters of probabilistic model for mixed text-and-graphics layout template
US20120159314A1 (en) * 2010-12-16 2012-06-21 Microsoft Corporation Adaptive content layout
US9002139B2 (en) 2011-02-16 2015-04-07 Adobe Systems Incorporated Methods and systems for automated image slicing
US9065793B2 (en) 2011-02-24 2015-06-23 Cbs Interactive Inc. Rendering web content using pre-caching
US8788927B2 (en) * 2011-02-24 2014-07-22 Cbs Interactive Inc. System and method for displaying web page content
TWI453658B (zh) * 2011-02-25 2014-09-21 Esobi Inc 一種顯示畫面之動態排版方法
US9152616B2 (en) * 2011-04-28 2015-10-06 Flipboard, Inc. Template-based page layout for web content
US20130127916A1 (en) * 2011-05-23 2013-05-23 Justin Van Slembrouk Adaptive Content Display
US8866842B2 (en) * 2011-05-23 2014-10-21 Adobe Systems Incorporated Adaptive content authoring
US20130132830A1 (en) * 2011-07-11 2013-05-23 Adobe Systems Incorporated Behavior templates
US9396167B2 (en) 2011-07-21 2016-07-19 Flipboard, Inc. Template-based page layout for hosted social magazines
US9639614B2 (en) * 2011-10-04 2017-05-02 Microsoft Technology Licensing, Llc Maximizing content item information on a search engine results page
US9158741B1 (en) 2011-10-28 2015-10-13 Amazon Technologies, Inc. Indicators for navigating digital works
US20130145257A1 (en) * 2011-12-06 2013-06-06 Google Inc. Edition Designer
CN103186519B (zh) * 2011-12-31 2017-04-05 北大方正集团有限公司 双向排版方法和设备
KR101302292B1 (ko) * 2012-01-05 2013-09-03 (주)이스트소프트 렌더링엔진 자동변환을 위한 웹브라우저를 기록한 컴퓨터 판독가능한 기록매체 및 렌더링엔진 자동변환방법
US8977956B2 (en) * 2012-01-13 2015-03-10 Hewlett-Packard Development Company, L.P. Document aesthetics evaluation
US20130198658A1 (en) * 2012-01-20 2013-08-01 Vistaprint Limited Designing website user controls
CN104067293B (zh) 2012-01-23 2017-07-25 微软技术许可有限责任公司 矢量图分类引擎
CN104094282B (zh) 2012-01-23 2017-11-21 微软技术许可有限责任公司 无边框表格检测引擎
CA2863522C (en) 2012-01-23 2018-08-28 Microsoft Corporation Formula detection engine
US8847986B2 (en) * 2012-01-27 2014-09-30 Think-Cell Software Gmbh Method of solving page layout constraints
FR2987473B1 (fr) * 2012-02-23 2014-02-14 Gutenberg Technology Procede de production d'un contenu multimedia destine a une pluralite de supports de representation
US20130290837A1 (en) * 2012-04-30 2013-10-31 James Paul Hudetz Method and Apparatus for Correcting Document Formatting Based on Source Document
US20130305144A1 (en) * 2012-05-09 2013-11-14 Ni Group Limited Method of Publishing Digital Content
US20130305145A1 (en) * 2012-05-09 2013-11-14 Ni Group Limited A Method of Publishing Digital Content
JP6010744B2 (ja) * 2012-05-31 2016-10-19 株式会社Pfu 文書作成システム、文書作成装置、文書作成方法、及びプログラム
EP2893463A4 (en) * 2012-09-07 2016-06-15 American Chemical Soc AUTOMATED EVALUATORS FOR COMPOSITIONS
US9105036B2 (en) * 2012-09-11 2015-08-11 International Business Machines Corporation Visualization of user sentiment for product features
US20140108922A1 (en) * 2012-10-16 2014-04-17 Theo Gravity Content layout determination
US9239931B2 (en) * 2012-10-19 2016-01-19 Google Inc. Identifying shared content stored by a service
US9245209B2 (en) 2012-11-21 2016-01-26 Xerox Corporation Dynamic bleed area definition for printing of multi-dimensional substrates
USD754161S1 (en) 2012-11-26 2016-04-19 Nero Ag Device with a display screen with graphical user interface
US20140149860A1 (en) * 2012-11-26 2014-05-29 Nero Ag System and method for presenting a tapestry interface
US9195643B2 (en) 2012-12-31 2015-11-24 Appsense Limited Data driven hierarchical pages
US20140188942A1 (en) * 2012-12-31 2014-07-03 Appsense Limited Data driven hierarchical pages
US9953008B2 (en) * 2013-01-18 2018-04-24 Microsoft Technology Licensing, Llc Grouping fixed format document elements to preserve graphical data semantics after reflow by manipulating a bounding box vertically and horizontally
US9460056B2 (en) * 2013-01-22 2016-10-04 Xerox Corporation Dynamic image layout for personalized packages
US9946691B2 (en) 2013-01-30 2018-04-17 Microsoft Technology Licensing, Llc Modifying a document with separately addressable content blocks
US9330070B2 (en) 2013-03-11 2016-05-03 Microsoft Technology Licensing, Llc Detection and reconstruction of east asian layout features in a fixed format document
US9148469B1 (en) * 2013-03-14 2015-09-29 Google Inc. Dynamically designing shared content
US8930897B2 (en) * 2013-03-15 2015-01-06 Palantir Technologies Inc. Data integration tool
US20140331124A1 (en) * 2013-05-02 2014-11-06 Locu, Inc. Method for maintaining common data across multiple platforms
US9489349B2 (en) * 2013-07-09 2016-11-08 Flipboard, Inc. Page template selection for content presentation in a digital magazine
US9529790B2 (en) * 2013-07-09 2016-12-27 Flipboard, Inc. Hierarchical page templates for content presentation in a digital magazine
JP2015036886A (ja) * 2013-08-13 2015-02-23 ソニー株式会社 情報処理装置、記憶媒体、および方法
US9953011B1 (en) * 2013-09-26 2018-04-24 Amazon Technologies, Inc. Dynamically paginated user interface
EP3103027B1 (en) 2014-02-07 2019-06-05 Google LLC Arbitrary size content item generation
US10698591B2 (en) * 2014-03-31 2020-06-30 Microsoft Technology Licensing, Llc Immersive document interaction with device-aware scaling
US20150310390A1 (en) * 2014-04-23 2015-10-29 Bank Of America Corporation Aggregation and workflow engines for managing project information
JP5664813B1 (ja) * 2014-06-10 2015-02-04 富士ゼロックス株式会社 デザイン管理装置及びプログラム
US9342498B2 (en) * 2014-06-12 2016-05-17 Synergy Platform Pty Ltd System and method for generating a design template based on graphical input
US10467337B2 (en) * 2014-10-27 2019-11-05 Kinaxis Inc. Responsive data exploration on small screen devices
US10242069B2 (en) 2015-03-13 2019-03-26 Microsoft Technology Licensing, Llc Enhanced template curating
RU2610241C2 (ru) * 2015-03-19 2017-02-08 Общество с ограниченной ответственностью "Аби ИнфоПоиск" Способ и система синтеза текста на основе извлеченной информации в виде rdf-графа с использованием шаблонов
US20160292130A1 (en) * 2015-04-02 2016-10-06 International Business Machines Corporation Legacy document converter for a mobile device
WO2016176250A1 (en) * 2015-04-27 2016-11-03 Nealtly Co. System and method for transforming image information for a target system interface
US10839149B2 (en) 2016-02-01 2020-11-17 Microsoft Technology Licensing, Llc. Generating templates from user's past documents
US9922022B2 (en) * 2016-02-01 2018-03-20 Microsoft Technology Licensing, Llc. Automatic template generation based on previous documents
US11238115B1 (en) 2016-07-11 2022-02-01 Wells Fargo Bank, N.A. Semantic and context search using knowledge graphs
US20180074999A1 (en) * 2016-09-14 2018-03-15 Pti Marketing Technologies Inc. Systems and methods for automatically reformatting publications
US10817911B2 (en) * 2016-09-30 2020-10-27 Criteo Sa Programmatic generation of graphical display source code for a computerized graphical advertisement display
US10713430B2 (en) * 2016-11-30 2020-07-14 Google Llc Systems and methods for applying layout to documents
US11238084B1 (en) 2016-12-30 2022-02-01 Wells Fargo Bank, N.A. Semantic translation of data sets
US11567930B2 (en) 2017-04-25 2023-01-31 Sap Se Adaptive data retrieval with runtime authorization
US10360473B2 (en) * 2017-05-30 2019-07-23 Adobe Inc. User interface creation from screenshots
CA3063675A1 (en) * 2017-06-16 2018-12-20 Microsoft Technology Licensing, Llc Rules based user interface generation
CN108509158B (zh) * 2017-07-25 2020-01-03 平安科技(深圳)有限公司 保单打印方法、装置、存储介质和计算机设备
US10902479B2 (en) 2017-10-17 2021-01-26 Criteo Sa Programmatic generation and optimization of images for a computerized graphical advertisement display
JP7129248B2 (ja) * 2018-07-05 2022-09-01 フォルシアクラリオン・エレクトロニクス株式会社 情報制御装置、及び表示変更方法
US10901593B2 (en) * 2018-09-21 2021-01-26 Salesforce.Com, Inc. Configuring components in a display template based on a user interface type
JP2020144427A (ja) * 2019-03-04 2020-09-10 富士ゼロックス株式会社 文書作成装置、及びプログラム
US11449664B1 (en) * 2019-07-01 2022-09-20 Instasize, Inc. Template for creating content item
US11676316B1 (en) 2019-07-01 2023-06-13 Instasize, Inc. Shareable settings for modifying images
US10977331B2 (en) * 2019-07-24 2021-04-13 International Business Machines Corporation Closing a plurality of webpages in a browser
KR102466718B1 (ko) * 2020-10-13 2022-11-15 주식회사 한글과컴퓨터 프레젠테이션 문서를 구성하는 슬라이드에 녹화 영상의 삽입을 가능하게 하는 전자 단말 장치 및 그 동작 방법
US11900052B2 (en) * 2020-11-11 2024-02-13 Microsoft Technology Licensing, Llc Automatic generation of transformations of formatted templates using deep learning modeling
KR102427890B1 (ko) * 2020-11-25 2022-08-01 네이버 주식회사 콘텐츠 배열을 위한 객체를 제공하는 방법 및 시스템
CN112669211B (zh) 2020-12-29 2023-07-04 三星电子(中国)研发中心 一种图像重定位方法和装置
US11847402B2 (en) * 2021-01-30 2023-12-19 Walmart Apollo, Llc Systems and methods for layout customization
EP4145395A1 (en) * 2021-09-07 2023-03-08 grow.photos GmbH Method for arranging digital images on a digital page
US11687708B2 (en) * 2021-09-27 2023-06-27 Microsoft Technology Licensing, Llc Generator for synthesizing templates
US11853688B2 (en) * 2022-03-04 2023-12-26 Adobe Inc. Automatic detection and removal of typesetting errors in electronic documents
US20230334237A1 (en) * 2022-04-14 2023-10-19 Sigma Computing, Inc. Workbook template sharing
US11763075B1 (en) 2022-05-27 2023-09-19 Microsoft Technology Licensing, Llc Method and system of discovering templates for documents
US20240036835A1 (en) * 2022-08-01 2024-02-01 Servicenow, Inc. Low-Code / No-Code Layer for Interactive Application Development

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5278901A (en) * 1992-04-30 1994-01-11 International Business Machines Corporation Pattern-oriented intrusion-detection system and method
US6029182A (en) * 1996-10-04 2000-02-22 Canon Information Systems, Inc. System for generating a custom formatted hypertext document by using a personal profile to retrieve hierarchical documents
US6023714A (en) * 1997-04-24 2000-02-08 Microsoft Corporation Method and system for dynamically adapting the layout of a document to an output device
US6684369B1 (en) * 1997-06-19 2004-01-27 International Business Machines, Corporation Web site creator using templates
US6826727B1 (en) * 1999-11-24 2004-11-30 Bitstream Inc. Apparatus, methods, programming for automatically laying out documents
US7284199B2 (en) * 2000-03-29 2007-10-16 Microsoft Corporation Process of localizing objects in markup language documents
US7447992B2 (en) * 2000-08-17 2008-11-04 E Media Ltd. Method of producing publications, electronic publication produced by the method, and method and network system for displaying the electronic publication
US20020184401A1 (en) * 2000-10-20 2002-12-05 Kadel Richard William Extensible information system
JP4794127B2 (ja) * 2001-06-14 2011-10-19 シャープ株式会社 データ処理方法、データ処理プログラム、およびデータ処理装置
US7392475B1 (en) * 2003-05-23 2008-06-24 Microsoft Corporation Method and system for automatic insertion of context information into an application program module
US7246311B2 (en) * 2003-07-17 2007-07-17 Microsoft Corporation System and methods for facilitating adaptive grid-based document layout
GB2404270A (en) * 2003-07-24 2005-01-26 Hewlett Packard Development Co Document composition
US7171618B2 (en) * 2003-07-30 2007-01-30 Xerox Corporation Multi-versioned documents and method for creation and use thereof
US20050060317A1 (en) * 2003-09-12 2005-03-17 Lott Christopher Martin Method and system for the specification of interface definitions and business rules and automatic generation of message validation and transformation software
US7424672B2 (en) * 2003-10-03 2008-09-09 Hewlett-Packard Development Company, L.P. System and method of specifying image document layout definition
US7554689B2 (en) * 2003-10-15 2009-06-30 Canon Kabushiki Kaisha Document layout method
EP1569087A3 (en) * 2004-02-17 2007-04-25 Canon Kabushiki Kaisha Data processing apparatus, data processing method, program for implementing the method, and storage medium storing the program
JP4047308B2 (ja) * 2004-08-06 2008-02-13 キヤノン株式会社 レイアウト処理方法、情報処理装置及びコンピュータプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6012021247; CHARLES Jacobs, WILMOT Li, EVAN Schrier, DAVID Bargeron, DAVID Salesin: 'Adaptive Grid-Based Document Layout' the Internet [online] , 2003, P.838-847 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014041482A (ja) * 2012-08-22 2014-03-06 Dainippon Printing Co Ltd 組版装置、組版方法、および、組版装置用プログラム

Also Published As

Publication number Publication date
KR20080053930A (ko) 2008-06-16
US20070079236A1 (en) 2007-04-05
AU2006299329A1 (en) 2007-04-12
RU2419856C2 (ru) 2011-05-27
RU2008112881A (ru) 2009-10-10
AU2006299329B2 (en) 2011-04-07
BRPI0616940A2 (pt) 2011-07-05
EP1941392A1 (en) 2008-07-09
WO2007041703A1 (en) 2007-04-12

Similar Documents

Publication Publication Date Title
JP2009510650A (ja) 動的に集約された文書のための調和構成を備えたマルチフォームデザイン
US7246311B2 (en) System and methods for facilitating adaptive grid-based document layout
JP4344693B2 (ja) ブラウザの文書編集のためのシステムおよびその方法
US8375293B2 (en) Method and apparatus for defining documents
JP4065545B2 (ja) レイアウト制御方法及び装置とそのプログラム
JP3916124B2 (ja) デジタル文書閲覧システム、ブラウザ、デジタル文書表示方法、プログラム及び記憶媒体
US7191405B1 (en) System and method for editing information
US9330065B2 (en) Generating variable document templates
US7509576B2 (en) Information processing system and method, program, and recording medium
US8584009B2 (en) Automatically propagating changes in document access rights for subordinate document components to superordinate document components
US20040237030A1 (en) System and method of implementing calculation fields in an electronic form
Schrier et al. Adaptive layout for dynamically aggregated documents
US20060010375A1 (en) System and method for adaptive document layout via manifold content
US20040237040A1 (en) System and method of processing an electronic form using layered aspects
US20070245232A1 (en) Apparatus for Processing Documents That Use a Mark Up Language
JP2006114012A (ja) 電子文書への最適アクセス
JP2004086883A (ja) Xmlを理解するアプリケーションによって操作できる単一のxmlファイルに記憶されたワードプロセッシング文書
US20080134019A1 (en) Processing Data And Documents That Use A Markup Language
JP2004139466A (ja) 電子ドキュメント印刷プログラムおよび電子ドキュメント印刷システム
US20070150494A1 (en) Method for transformation of an extensible markup language vocabulary to a generic document structure format
US9286272B2 (en) Method for transformation of an extensible markup language vocabulary to a generic document structure format
van Ossenbruggen et al. Towards a multimedia formatting vocabulary
WO2005098666A1 (en) Processing data and documents that use a markup language
JP2002229984A (ja) 構造化文書処理装置、構造化文書処理方法およびコンピュータに構造化文書処理を実行させるためのプログラム
CN117785184A (zh) 新一代网页基础格式开发设计方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091005

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091005

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120427

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120727

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130201

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130906