JP5789525B2 - 文書コンテンツの順序付け - Google Patents

文書コンテンツの順序付け Download PDF

Info

Publication number
JP5789525B2
JP5789525B2 JP2012007331A JP2012007331A JP5789525B2 JP 5789525 B2 JP5789525 B2 JP 5789525B2 JP 2012007331 A JP2012007331 A JP 2012007331A JP 2012007331 A JP2012007331 A JP 2012007331A JP 5789525 B2 JP5789525 B2 JP 5789525B2
Authority
JP
Japan
Prior art keywords
area
primitive
areas
selection
point
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.)
Active
Application number
JP2012007331A
Other languages
English (en)
Other versions
JP2012155714A (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.)
Apple Inc
Original Assignee
Apple Inc
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 Apple Inc filed Critical Apple Inc
Publication of JP2012155714A publication Critical patent/JP2012155714A/ja
Application granted granted Critical
Publication of JP5789525B2 publication Critical patent/JP5789525B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/131Fragmentation of text files, e.g. creating reusable text-blocks; Linking to fragments, e.g. using XInclude; Namespaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/106Display of layout of documents; Previewing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/137Hierarchical processing, e.g. outlines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Document Processing Apparatus (AREA)
  • Processing Or Creating Images (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • User Interface Of Digital Computer (AREA)

Description

本発明は文書のページの複数のプリミティブエリアを編成するための技術に関する。
文書は、規定の位置でページ上に描かれたプリミティブ要素の集まりに過ぎないものであると定義されることがある。例えば、PDF(ポータブルドキュメントフォーマット)ファイルは構造的定義を有しないかもしれないが、その代わりに様々な位置にグリフ、形状及びビットマップを描くための命令に過ぎないものを有するだろう。
ユーザはこのような文書を標準的なモニタで閲覧して構造を推測できる。しかしながら、このようなファイルはプリミティブ要素の集まりに過ぎないので、文書閲覧アプリケーションは文書の意図された構造の知識を何も有さない。文書を表示するアプリケーションは、テキストのまとまりの行及び列に基づいてテキストのまとまりが互いに関連性を有しうるということを全く示さないだろう。なぜなら、文書はこのような情報を含まないからである。同様に、アプリケーションはページ内のテキストのフロー(例えば、1つのカラムから次のカラムへのフロー、又は埋め込まれた画像の周りのフロー)又は人間のユーザにより即座に決定されうる他の様々な重要な性質を何も示さない。
米国特許公開第2010/0174985号明細書 米国特許出願公開第2010/0174983号明細書
文書構造に関する知識がこのように欠如していることは、ユーザが単に標準的なモニタで文書を閲覧する場合には常に問題となるわけではないだろう。しかしながら、あたかもワードプロセッサにより作成された文書であるかのように文書にアクセスし編集できるので、構造と要素間の関連性とを有する画像編集アプリケーションなどは読者にとって価値を有することもあるだろう。人間は文書のページ内のコンテンツを見ることができ、大部分についてコンテンツの読み取り順序を決定できる。これは、大抵の場合に人間の目にはすぐに分かる作業である。しかしながら、このような作業はコンピュータアプリケーションにとってすぐに分かるものではない。ページが複雑になる(縦方向だけのテキストのカラムとは対照的に、方向が異なる複数のテキストのカラムになる)につれて、順序の決定はさらに難しくなる。さらに、このようなページのどの部分を人が選択しようとしているかの決定も同様に難しい作業である。
本発明の一部の実施形態は文書のコンテンツを編成する方法を提供する。プリミティブエリアに構造化されているコンテンツを有する文書ページについて、本方法はプリミティブエリアを順序リストにソートすることによって文書ページのコンテンツを体系化する。一部の実施形態では、本方法は第1ソート基準に従って複数のプリミティブエリアをプリミティブエリアのシーケンスにソートし、第2ソート基準に従ってシーケンス内の連続したプリミティブエリアを入れ換える。本方法は入れ換わったプリミティブエリアのシーケンスに基づいて順序リストを生成する。
一部の実施形態では、本方法はまず、ページ内のプリミティブエリアの始点の位置を比較する始点順序関係を用いて文書内のプリミティブエリアをソートし、その後、本方法は、プリミティブエリア内のコンテンツの読み取りフローに従ってプリミティブエリアをソートする文脈的順序関係を用いて始点順序関係により作成された最初のソート結果を改良する。文脈的順序関係は各プリミティブエリアについて先行領域及び後続領域を規定し、隣接エリアの始点がプリミティブエリアの後続領域内にあるか又は先行領域内にあるかを判定する。一部の実施形態では本方法は始点順序関係に従ってプリミティブエリアをまずソートし、その後に正しく順序付けされていないプリミティブエリアを文脈的順序関係に従って入れ換えることによって順序リストを生成する。
一部の実施形態は順序リスト内の順序インデックスによって各プリミティブエリアの各要素を表す。順序インデックスは順序リスト内のプリミティブエリアの順序に従うとともに、各プリミティブエリア内の要素の順序に従って割り当てられる。ページ内に可視の仕切りが存在する例では、一部の実施形態はページ内の可視の仕切りにより課された区画に従って順序リスト内のプリミティブエリアをグループ分けする。その後、本方法はプリミティブエリアのグループ分けに従って順序インデックスを割り当てる。
順序リストに基づいて、本発明の一部の実施形態は文書内の相異なるプリミティブエリアにわたる文書コンテンツの連続した選択を実行する方法を提供する。一部の実施形態は連続した選択の最初と最後のプリミティブ要素を識別することによって順序リスト内の連続した選択を規定する。最初のプリミティブ要素は読み取りフローにおいてページ上の開始選択点に最も近いプリミティブ要素として識別され、最後のプリミティブ要素は読み取りフローにおいてページ上の終了選択点に最も近いプリミティブ要素として識別される。
上述の概要は本発明の一部の実施形態の簡潔な導入として役立つことが意図される。本文書で開示されるすべての発明の主題の導入又は概説であることを意味しない。以下の詳細な説明と詳細な説明で参照される図面とは概要に記載された実施形態だけでなく他の実施形態をさらに記載するだろう。従って、本明細書に記載されるすべての実施形態を理解するために、概要、詳細な説明及び図面の全部を検討することが必要となる。さらに、請求項に係る主題は概要、詳細な説明及び図面における例示の詳細には限定されず、添付の特許請求の範囲によって規定される。なぜなら、請求項に係る主題は当該主題の精神から逸脱することなく他の特定の形式で具現化されうるからである。
本発明の新規な特徴は添付の特許請求の範囲で説明される。しかしながら、説明のために、本発明のいくつかの実施形態が以下の図面に説明される。
電子文書のコンテンツを順序リストに構造化し、当該順序リストを用いて電子文書内の隣接するコンテンツの選択を容易にする例示のシステムを概念的に説明する図である。 プリミティブ要素から構造化されたいくつかのプリミティブエリアを含む文書のページを説明する図である。 ページ内のプリミティブエリアから生成された例示の順序リストを概念的に説明する図である。 図2の文書ページに関する例示の連続した選択を説明する図である。 図2の文書ページに基づいて生成された順序リスト内のプリミティブ要素の連続した選択を概念的に説明する図である。 ページ内の一部のタイプのエリアについて始点及び終点の例を説明する図である。 レイアウトエリアの内部エリア、先行エリア及び後続エリアの例を説明する図である。 4つの相異なるシナリオにおける始点順序関係の例を説明する図である。 ページ内の2つのエリア間の順序を決定するために文脈的順序関係を用いる処理を概念的に説明する図である。 ページの座標系にアライメントされているエリアとページの座標系にアライメントされていない別のエリアとを含むページを説明する図である。 図9に説明される処理により実行される一次エリアと二次エリアとの間の順序の決定を説明する図である。 ページ上の複数のエリアを順序付けするために始点順序関係と文脈的順序関係とを用いる例示の処理を概念的に説明する図である。 例示のページと例示のページに対応する例示の順序リストとを説明する図である。 2つの区間を有するページから順序リストを作成することを説明する図である。 開始選択点及び終了選択点を用いてページ上の連続した選択を実行するための処理を概念的に説明する図である。 開始選択点及び終了選択点を用いたページ上の連続した選択を説明する図である。 いくつかの例示の選択点とプリミティブエリアとを説明する図である。 選択点のy変位に基づいて選択点に最も近いプリミティブエリアを決定することを説明する図である。 レイアウトエリアがグラフィックエリアの境界内に含まれる場合に当該レイアウトエリアが最も近いプリミティブエリアとして選択されることを説明する図である。 選択カラムを有しない2つのレイアウトエリアの比較を説明する図である。 x変位値の様々な決定に基づくプリミティブエリアの比較を説明する図である。 どのレイアウトエリアが選択点から最小のx変位を有する選択カラムを有するかを判定することによって選択カラムを有するレイアウトエリアを比較することを説明する図である。 様々な基準を用いて選択点に最も近いプリミティブエリアに基づいて選択インデックスを決定するための処理を概念的に説明する図である。 選択点の位置と選択インデックスの決定との間の関係を説明する図である。 連続した選択のいずれかの端部においてプリミティブ要素を含むか除くかを判定する例を説明する図である。 一部の実施形態の文書編集アプリケーションのソフトウェアアーキテクチャを概念的に説明する図である。 本発明の一部の実施形態が実施されるコンピュータシステムを概念的に説明する図である。
以下の記載では、説明のために数多くの詳細が説明される。しかしながら、当業者は本発明がこれらの特定の詳細を用いずに実施されてもよいことを理解するだろう。他の例では、不必要な詳細で本発明の記載を妨げないようにブロック図において周知の構造及びデバイスが示される。本明細書を通じて、読み取りフローの2つの主方向(左から右、上から下)は西洋言語に基づいて選択される。特に、以下に記載される一部の実施形態はx座標における比較の前にy座標における比較が実行される。しかしながら、当業者は他の言語(例えば、読み取りフローが上から下、次いで右から左である東アジアの言語)における文書に順応するように読み取りフローの主方向が変更されうることを理解するだろう。この例では、一部の実施形態はy座標における比較の前にx座標における比較を実行する。
本発明の一部の実施形態は文書のコンテンツを編成する方法を提供する。プリミティブエリアに構造化されているコンテンツを有する文書ページについて、本方法はプリミティブエリアを順序リストにソートすることによって文書ページのコンテンツを編成する。一部の実施形態では、本方法は第1ソート基準に従ってプリミティブエリアをプリミティブエリアのシーケンスにソートし、第2ソート基準に従ってシーケンス内の連続したプリミティブエリアを入れ換える。本方法はプリミティブエリアの入れ換え後のシーケンスに基づいて順序リストを生成する。
図1は電子文書のコンテンツを順序リストに構造化し、当該順序リストを用いて電子文書内の隣接するコンテンツの選択を容易にする例示のシステムを概念的に説明する。図1は図2〜図5を参照して記載される。図1は、パーサ110、レイアウト識別モジュール120、順序分析モジュール130及び文書インタラクション・表示モジュール140を含む例示のシステム100を説明する。文書インタラクション・表示モジュール140は選択モジュール150を含む。
パーサ110は文書105を受信し、これを文字グリフ又は画像のような様々なプリミティブ要素に構文解析する。一部の実施形態では、パーサは文書のビットストリームを受信し、これをプリミティブ要素に構文解析する。一部の実施形態では、パーサ110はまた、写真、図表又は他のスタンドアロン画像のようなグラフィック要素を文書105から認識する。パーサ110は認識されたデータ要素及び文書内でのそれらの地理的位置に基づいてプリミティブ要素115を識別する。一部の実施形態では、パーサによって構文解析されたプリミティブ要素115はまた、単語、テキスト行、段落及びカラムのようなページ内のコンテンツに関する高レベル情報を含む。一部の実施形態では、システム100はパース105を含まず、その結果としてその代わりにレイアウト識別モジュール120が直接にプリミティブ要素115を受信する。
レイアウト識別モジュール120はプリミティブ要素115を受信し、受信したプリミティブ要素をプリミティブエリア125の集まりに構造化する。一部の実施形態では、プリミティブエリアはページのコンテンツをモデル化するために用いられる高レベルデータ構造である。ページ上のプリミティブエリアは互いに重なりうる。これらのエリアのそれぞれは、適宜配置され、回転され、又はその自身のアフィン変換によって他のように変換されうる。これらのエリアはレイアウトエリア、スタンドアロン形状、スタンドアロン画像及び(場合によっては入れ子になった)区画又はマルチ形状グラフィックのような様々なカテゴリのエリアのグループを含む。一部の実施形態では、各レイアウトエリアは左から右へレイアウトされた一連のカラムであり、各カラムは上から下へレイアウトされた一連の段落であり、各段落は上から下へレイアウトされた一連のテキスト行である。各テキスト行は左から右へレイアウトされた一連の単語及びインライングラフィックであり、単語は左から右へレイアウトされた一連の文字である。プリミティブ要素をプリミティブエリアに構造化する一部の実施形態の方法は特許文献1に記載され、これは参照によって本明細書に組み込まれる。
図2はプリミティブ要素から構造化されたいくつかのプリミティブエリアを含む文書のページを説明する。説明されるように、ページ200はプリミティブエリア210(A)、220(A)、230(A)、240(A)、250(A)を含む。プリミティブエリア250はスタンドアロン画像である。プリミティブエリア230、240はテキストを含むレイアウトエリアである。特に、レイアウトエリア230はテキストカラムC、C、Cを含み、レイアウトエリア240はテキストカラムC、Cを含む。一部の実施形態では、レイアウト識別モジュールはカラムC〜C内の文字からレイアウトエリア240を構造化し、カラムC、C内の文字からレイアウトエリア230を構造化するために用いられる。
プリミティブエリアのそれぞれは始点を有する(プリミティブエリア210は始点215を有し、プリミティブエリア220は始点225を有し、プリミティブエリア230は始点235を有し、プリミティブエリア240は始点245を有し、プリミティブエリア250は始点255を有する。)。一部の実施形態では、プリミティブエリアの始点はプリミティブエリアの左上の角にある。なぜなら、ここは通常、プリミティブエリアの読み取りが始まるところだからである。一部の実施形態では、レイアウトエリアの始点は左上の角ではなくテキストの先頭である(例えば、レイアウト/プリミティブエリアAの始点245はAの左上の角の代わりに段落Cの先頭にある。)。
図1の順序分析モジュール130はプリミティブエリア125を受信し、受信したプリミティブエリアをソートすることによって順序リスト135を生成する。一部の実施形態では、順序分析モジュールは相異なるプリミティブエリアの始点の位置を比較することによってソートを実行する。特に、プリミティブエリア210、220、230、240、250の始点215、225、235、245、255は、プリミティブエリア同士の順序を決定するために互いに比較される。これは、一部の実施形態では始点順序関係と呼ばれる。一部の実施形態は、どのプリミティブエリアの始点がページの上に近いか(すなわち、大きなy座標値を有するか)を判定することによってこの決定を行う。y座標を比較してもどのページが先に来るべきかを決定できないならば(例えば、2つのプリミティブエリアが同じy座標の始点を有するならば)、一部の実施形態は順序リストにおいてどのプリミティブエリアが先に来るべきかを判定するために始点の水平位置(すなわちx座標)を用いる。一部の実施形態では、始点の比較は西洋言語の読み取りフローの方向を模倣するためにこの順序(すなわち、上から下、次いで左から右)で実行される。当業者は他の言語(例えば、読み取りフローが上から下へ、次いで右から左へである東アジアの言語)における文書に順応するように始点の比較が変更されうることを理解するだろう。始点の順序はセクションI−Aにおいて図8を参照しつつさらに後述される。
一部の実施形態では、順序分析モジュール130はさらに、ページ内のプリミティブ要素及びプリミティブエリアの読み取りフローに従ってソート結果を改良する。ページに関するプリミティブエリアの方向はプリミティブエリアの主読み取りフローを決定する。一部の実施形態では、レイアウトエリアはその階層構造における各レベル(例えば、カラム、段落、テキスト行など)における新たな読み取りフローの方向を確立する。確立された読み取りフローのそれぞれは、プリミティブエリア間の順序に影響する。結果として、始点を比較しても、ページ内の読み取りフローに整合するプリミティブエリアの順序は必ずしも得られない。従って、順序分析モジュール130は読み取りフローに従ってプリミティブエリアを識別して再び順序付けすることによって、始点の比較で得られた順序を改良する。読み取りフローに従ってプリミティブエリアをソートすることは文脈的関係順序付けとして知られ、これはセクションI−Bにおいて図9〜図14を参照してさらに後述される。
図2の例示の文書ページ200について、始点順序関係に従うソートは、順序A→A→A→A→Aに従って5つのプリミティブエリアをソートするだろう。なぜなら、Aの始点はAの始点よりも上にあり、Aの始点はAの始点よりも上にあり、Aの始点はAよりも上にあり、Aの始点はAの始点よりも上にあるからである。しなしながら、ページ200を読む人間の読者はA及びAのテキストフローに従い、A→A→A→A→Aの順序で読むだろう。さらに、ページ200を読む人間はAが他のプリミティブエリアに対して傾いていることに気が付き、Aの傾斜又は回転に従ってテキストのフローをたどるように試みるだろう。
よって、始点順序関係だけに基づいて順序リストを作る代わりに、一部の実施形態は文脈的順序関係に従ってソート結果を改良する。文脈的順序関係はプリミティブエリアのそれぞれの内部の読み取りフローに従って相異なるプリミティブエリア間の順序を確立する。一部の実施形態は、各プリミティブエリアについて先行領域及び後続領域を定義し、隣接するエリアの始点がプリミティブエリアの後続領域にあるか先行領域にあるかを判定することによって、文脈的順序関係ソートを実行する。先行領域及び後続領域の定義はプリミティブエリアの読み取りフローに基づく(それ故、エリアの傾斜を考慮に入れる。)。例示のページ200では、Aの先行領域は読み取りフローにおいてAの上にあり左にあるエリアであると定義され、Aの後続領域は読み取りフローにおいてAの右にあり下にあるエリアであると定義される。Aの始点225はAの後続領域内にあるので、プリミティブエリアAはレイアウトエリアAに後続する。Aの始点245はAの先行領域内にあるので、レイアウトエリアAはレイアウトエリアAに先行する。よって、文脈的順序関係に基づく順序は、A→A→A→A→Aとなる。
図3は図2のページ200内のプリミティブエリアから生成された例示の順序リストを概念的に説明する。図3に説明される順序リスト300は木構造によって表される。当業者は、順序構造が表、配列、連結リスト又はプリミティブエリア間のシーケンシャルな関係を表せる任意の他のデータオブジェクトモデリング構造でありうることを理解するだろう。例えば、以下の図15及び図16は配列1550、1640で表される順序リストを説明する。
ページ200から生成される順序リストはルートノードといくつかの子ノードとを含む木構造300により表される。ルートノード305はページ200に対応し、子ノード310、320、330、340、350はそれぞれプリミティブエリア210、220、230、240、250に対応する。子ノード340はカラムC〜Cに対応する孫ノード341〜343を有する。子ノード230はカラムC、Cに対応する孫ノード331、332を有する。順序リスト内の子ノードは順序分析モジュール130により実行されたソート動作に従って左から右へ(点線矢印で示されるようなA→A→A→A→Aに)順序付けされている。一部の実施形態では、1つのプリミティブエリアのすべてのプリミティブ要素は直前のプリミティブエリア内のすべてのプリミティブ要素の後にあるとみなされる。従って、エリアAのカラムC、C、Cは順序リスト300内でエリアAのカラムC、Cの前にある。一部の実施形態では、エリアA内のカラムよりも階層構造において下にあるプリミティブ要素(例えば、段落、テキスト行、グリフなど)も、A内のプリミティブ要素の前にあるとみなされる。
プリミティブエリア内のプリミティブ要素はプリミティブエリアにおける読み取り順序に従ってソートされる。参照によって本明細書に組み込まれる特許文献1に記載されるように、文字グリフ及びグラフィックプリミティブの位置及びサイズだけから始めることによって、レイアウトエリア内の要素の読み取り順序を含むレイアウトエリアのすべての要素を再構築できる。Aの下にあるカラムは(点線矢印に示されるように)読み取り順序C→C→Cに従ってソートされ、Aの下にあるカラムは読み取り順序C→Cに従ってソートされる。順序リスト内のすべてのプリミティブエリアがソートされ、各プリミティブエリア内のプリミティブ要素もソートされるので、順序リストは1つの連続したリスト内で実質的にすべてのプリミティブ要素をリンクする。
一部の実施形態では、各プリミティブエリアの各要素は順序リストにおいて順序インデックスで表される。順序インデックスは順序リストにおけるプリミティブエリアの順序に従うとともに、各プリミティブエリア内の文書要素の順序に従って割り当てられる。一部の実施形態では、順序リスト内のプリミティブエリアはページ内の可視の仕切りによって課された区画に従ってグループ分けされる。ページ内の可視の仕切りによるプリミティブエリアのグループ分けは図16を参照して後述される。
図1の文書インタラクション・表示モジュール140は順序分析モジュールによって生成された順序リスト135を受信する。一部の実施形態では、文書インタラクション・表示モジュールはまた、レイアウト識別モジュール120によって作成されたプリミティブエリア125と、パーサ110によって抽出されたプリミティブ要素115とを受信するか、これらにアクセスできる。受信した順序リスト及び/又はプリミティブ要素・エリアに基づいて、文書インタラクション・表示モジュール140は文書のコンテンツの表示を可能にし、文書とのインタラクションを容易にする。
一部の実施形態では、文書インタラクション・表示モジュールは、文書内のコンテンツの選択、検索、ナビゲーション、リフロー、コピー/ペースト、置換又は編集のような機能を実行するコンテンツ選択モジュール150を含む。1つの特定のレイアウトエリアにおいてこれらのソフトウェア機能を実行する方法は特許文献2に記載され、この文献は参照によって本明細書に組み込まれる。順序リスト135を用いることによって、コンテンツ選択モジュール150はまた、相異なるプリミティブエリアにわたって文書コンテンツに対してこれらの動作を実行する。
一部の実施形態では、コンテンツ選択モジュール150は順序リスト内のプリミティブ要素を参照することによって文書コンテンツの選択を規定する。順序リストは1つの連続したリスト内のすべてのプリミティブ要素をリンクするので、コンテンツ選択モジュール150は順序リストの1つの連続した区間内のプリミティブ要素を連続したコンテンツとして処理する。従って、これらの実施形態の一部では、文書内の連続したコンテンツの選択(すなわち、文書内のコンテンツの連続した選択)は、順序リスト内の連続した区間によって規定されうる。一部の実施形態は、連続した区間の最初のプリミティブ要素と最後のプリミティブ要素とによって、連続した区間を規定する。一部の実施形態は順序リストを参照するインデックスのペアによって、連続した選択における最初のプリミティブ要素と最後のプリミティブ要素とを識別する。
一部の実施形態では、文書内のコンテンツ要素を選択するために開始選択点と終了選択点とを用いることによって、連続した選択を実行する。一部の実施形態では、開始選択点及び終了選択点はGUI環境で決定される。一部の実施形態は選択動作が始まった時(例えば、選択動作中にユーザが最初にマウスボタンを押した時やタッチスクリーンにタッチした時)のカーソルの位置によって開始選択点を決定し、選択動作が終わった時(例えば、選択動作中にユーザがマウスボタンを離した時やタッチスクリーンへのタッチをやめた時)のカーソルの位置によって終了選択点を決定する。
図4は図2の文書ページ200に関する例示の連続した選択を説明する。上述のように、ページ200はプリミティブエリアA〜Aを含み、プリミティブエリアAはカラムC、C、Cを含み、プリミティブエリアAはカラムC、Cを含む。カラムC、C、C及びプリミティブエリアA、A、Aは連続した選択の部分として選択されていることを示すためにハイライト表示されている。図4はまた、(△で説明される)開始選択点410と(Xで説明される)終了選択点420とを説明し、これらは連続した選択を決定するために用いられる。当業者は、図4における開始選択点及び終了選択点の説明が説明するためのものであることを理解するだろう。一部の実施形態は開始選択点及び/又は終了選択点を表示しない。他の一部の実施形態は矩形選択ボックスの角のような他の視覚的手がかりを用いて開始選択点及び終了選択点を表示する。
一部の実施形態はページ内のどのプリミティブ要素が読み取り順序において選択点に最も近いかを決定することによって、連続した選択における最初のプリミティブ要素及び最後のプリミティブ要素を決定する。図4の例では、コンテンツ選択モジュール150はエリアAのカラムC内の最初の文字グリフを読み取り順序において開始選択点410に最も近いプリミティブ要素として識別し、エリアA内の画像を読み取り順序において終了選択点420に最も近いプリミティブ要素として識別する。言い換えると、Cの先頭及びAの末尾が、連続した選択における最初のプリミティブ要素及び最後のプリミティブ要素として識別される。その後、一部の実施形態は識別された最初のプリミティブ要素及び最後のプリミティブ要素を用い、連続した選択におけるすべてのプリミティブ要素及びプリミティブエリアを、順序リストを用いて識別する。
図5はページ200に基づいて生成された順序リスト300内のプリミティブ要素の連続した選択を概念的に説明する。説明されるように、ノード343(カラムC3を表すノード)とノード350(プリミティブエリアA5を表すノード)との間の順序リスト300内のすべてのノードが(C、A、C、C、A、Aを表すノードのハイライトによって示された)連続した選択の部分である。コンテンツ選択はセクションIIでさらに後述される。
本発明をさらに記載する前に、一部の実施形態で用いられるいくつかの用語及び概念を先に導入し、説明する。一部の実施形態は、ページ上のコンテンツ(例えば、段落、1つ以上の段落を含むカラム、1つ以上のカラムを含むレイアウトなど)の境界を、当該コンテンツを含む最小の直立した四角形であると定義する。これらの実施形態の一部は四角形の辺がコンテンツの局所座標系の軸に平行である場合に境界が「直立」していると定義する。さらに、一部の実施形態はレイアウトエリアの始点を、その最初のカラムの境界の左上の角であると定義し、終点をその最後のカラムの境界の右下の角であると定義する。境界の「左上」の角及び「右下」の角はレイアウトエリアの局所座標に基づいて定義される。形状、画像又は形状及び画像のグループのような、レイアウトエリアではない他のタイプのエリアについて、始点は一部の実施形態では局所座標における当該エリアの境界の左上の角であると定義される。同様に、これらの非レイアウトタイプのエリアの終点は一部の実施形態では局所座標における当該エリアの境界の右下の角であると定義される。
一部の実施形態について、図6はページ内の一部のタイプのエリアについて例示の始点及び終点を説明する。図6はエリア610、620、630を含むページ600を説明する。エリア610は始点612及び終点614を有する。エリア620は始点622及び終点624を有する。エリア630は始点632及び終点634を有する。
エリア610は男性のグラフィカル表現を含むがテキストを含まない。一部の実施形態はこのようなエリアをレイアウトエリアではなくグラフィカルエリアと分類する。グラフィカルエリア610の始点612はグラフィカルエリアの左上の角であると定義され、グラフィカルエリア610の終点614はグラフィカルエリアの右下の角であると定義される。一部の実施形態では、「上」、「下」、「左」、「右」の定義はグラフィカルエリア610の(不図示の)局所座標系を基準とする。グラフィカルエリア610はページに対して回転していないので、グラフィカルエリア610の局所座標系に従う上/下/左/右の定義はページ600の座標系680に従う上/下/左/右の定義と同一である。
エリア620はいくつかのテキストのカラム661〜664を含む。一部の実施形態はこのようなエリアをレイアウトエリアと分類する。グラフィカルエリア610とは異なり、レイアウトエリア620の始点及び終点はエリアの左上の角及び右下の角であるとは定義されない。その代わりに、レイアウトエリア620の始点622は最初のカラム661の境界651の左上の角であると定義される。レイアウトエリア620の終点624は最後のカラム664の境界654の右下の角であると定義される。レイアウトエリア620はページに対して回転していないので、レイアウトエリア620の(不図示の)局所座標系に従う上/下/左/右の定義はページ600の座標系680に従う上/下/左/右の定義と同一である。
エリア630もいくつかのテキストのカラム665〜667を含む。一部の実施形態はエリア620と同様にエリア630をレイアウトエリアとして分類する。レイアウトエリア620と同様に、レイアウトエリア630の始点632は最初のカラム665の境界655の左上の角であると定義され、レイアウトエリア630の終点634は最後のカラム667の境界657の右下の角であると定義される。
しかしながら、レイアウトエリア620とは異なり、レイアウトエリア630はページ600に対して回転している。回転したエリア630についての上/下/左/右の定義はページ600の座標系680ではなく回転したエリア630の回転した局所座標系683を基準とする。始点及び終点の定義も同様にこの回転した座標系683に基づく。
一部の実施形態はまた、エリアの内部領域、先行領域及び後続領域を定義する。レイアウトエリアでないエリアについて、当該エリアの内部領域は一部の実施形態では、当該エリアの境界の内部にある領域であると定義される。レイアウトエリアについて、内部領域は、レイアウトエリアの境界の内部にある領域から、最初のカラムの境界の真上のスペース及び最後のカラムの境界の真下のスペースを除いた領域であると定義される。(これらのコンポーネント部分とは異なり、レイアウトエリアの境界は四角形によって適切に近似されない。なぜなら、各カラムはその他のカラムとは異なる高さで開始・終了し、レイアウト内に大きなホワイトスペースが存在し、このホワイトスペースにおいて自身のコンテンツが他のエリアのような障害物の周りを流れるうるからである。)エリアの先行領域は内部領域の上又は真左にある点の軌跡であり、後続領域は内部領域の下又は真右にある点の軌跡である。
図7はレイアウトエリア720の内部領域、先行領域及び後続領域の例を説明する。説明されるように、ページ700はグラフィカルエリア710及びレイアウトエリア720、730を含む。レイアウトエリア720はテキストカラム761〜764を含む。最初のカラム761は境界751を有し、最後のカラム764は境界754を有する。レイアウトエリア720の内部領域は点線の境界線740によって包含され、境界線740は一部の実施形態では4つのすべてのカラム761〜764を含みうる最小の直立した四角形から最初のカラムの境界の真上のスペースと最後のカラムの境界の真下のスペースとを除いたものであると定義される(すなわち、レイアウトエリア720の左上の角及び右下の角は内部領域の一部ではない。)。レイアウトエリア720の先行領域は内部領域の左及び上にある領域であると定義され、レイアウトエリア720の後続領域は内部領域の右及び下への領域であると定義される。よって、グラフィカルエリア710は先行領域であり、レイアウトエリア730はレイアウトエリア720の後続領域である。
レイアウトエリア720について、一部の実施形態では先行領域(すなわち、内部領域の上及び左にある領域)及び後続領域(すなわち、内部領域の下及び右にある領域)の定義は上/下/左/右の定義についてページ700ではなくレイアウトエリア720に局所的な座標系を基準とする。図7に説明される例では、レイアウトエリア720はページ700にアライメント(align)されておらず、よってページ700に従う上/下/左/右の定義はレイアウトエリア720に従う上/下/左/右の定義に必ずしも一致しない。この環境の下での先行領域及び後続領域の定義は一部の実施形態ではページ700ではなくレイアウトエリア720の上/下/左/右の定義を基準とする。
一部の実施形態の一層詳細な例が以下に記載される。セクションIは始点順序関係及び文脈的順序関係に従う文書ページ内のエリアの順序を記載する。続いて、セクションIIは開始選択点及び終了選択点を用いて、順序リストの連続した区間内の文書要素の連続した選択を記載する。
I.コンテンツの順序付け
文書の相異なるプリミティブエリアにわたって行われる文書内のコンテンツに関する動作(コンテンツの選択、検索、ナビゲーション、リフロー、コピー/ペースト、置換又は編集のような動作)を容易にするために、一部の実施形態はまず相異なるプリミティブエリア同士の順序を確立する。一部の実施形態は相異なるプリミティブエリアの始点の位置を比較することによってプリミティブエリアをソートする(始点順序関係)。一部の実施形態はプリミティブエリアのそれぞれにおける読み取りフローに従って相異なるプリミティブエリア同士の順序を確立する(文脈的順序関係)。一部の実施形態は、まず始点順序関係を用いてプリミティブエリアをソートし、次いで文脈的順序関係を用いてソート結果を修正する。順序リストは修正されたソート結果に基づいて構築される。
A.始点順序関係
一部の実施形態では、所与のエリアAは、(ある人がAの前にAを読み終わるかどうかにかかわらず)人がAを読む前にAを読み始めることが想定されるならば、読み取り順序において別のAの前にあるとみなされる。(ある人がAの前にAを読み終わるかどうかはAが論理的にA内に含まれるかどうかに依存しうる。)一部の実施形態は、AがAの前にあることを特定する順序関係を有するものとしてA及びAを参照する。このような順序関係の例は始点順序関係である。一部の実施形態の始点順序関係に従うと、A及びAはページ座標におけるそれぞれの自身の始点(x,y)及び始点(x,y)によって順序付けされる。ページの右を指すx軸とページの上を指すy軸とを有するページ座標系について、始点順序関係は、(i)y>y又は(ii)y=y且つx<xが成り立つならば、この場合に限りA<A(エリアAがエリアAの前にある)ことを特定する。一部の実施形態では、x座標はyとyとが互いに十分に近い(すなわち、AとAとの垂直位置が顕著に異ならない)場合に限り、始点順序を決定するために用いられる。これらの実施形態の一部は、εを正の閾値とした場合に、(i)y−y≧ε又は(ii)|y−y|<ε且つx<xが成り立つならば、この場合に限りA<Aであることを特定する。一部の実施形態では、εはエリアA及び/又はエリアA内のテキストの高さの平均又は中央値に基づいて決定される。(例えば、A及びA内のテキストの高さの平均が1/8インチ(3.175mm)である場合に、A及びAの始点のy座標の差が1/8インチ(3.175mm)未満であればAとAとは同じ垂直位置を有するとみなされる。)
図8は4つの相異なるシナリオ801〜804における始点順序関係の例を説明する。4つのシナリオのそれぞれは、第1レイアウトエリア810及び第2レイアウトエリア820を含むページ800を説明する。第1レイアウトエリア810(A)は(x,y)に始点を有し、第2レイアウトエリア820(A)は(x,y)に始点を有する。(x,y)及び(x,y)の両方ともページ800の座標系における座標である。レイアウトエリア810はカラム831〜834も含む。
第1シナリオ801では、エリアAの始点(x,y)はエリアAの始点(x,y)の上にある(すなわち、y>y)。従って、始点順序関係に従って、エリアAはAの前にある(A<A)。
第2シナリオ802では、Aの始点(x,y)はエリアAの始点(x,y)と同じレベルにある(すなわち、y=y)。2つのエリアのy座標が同じであり、このシナリオでは順序を決定するために用いることができないので、一部の実施形態はその代わりにx座標を用いてエリアAとエリアAとの間の順序を決定する。AはAの右にある(すなわち、x>x)ので、始点順序関係に従って、エリアAはAの前にある(A<Aと表される。)。
第3シナリオ803では、エリアAの始点(x,y)はエリアAの始点(x,y)の下にある。始点順序関係に従って、AはAの前にあるとみなされるだろう。しかしながら、Aの上の角はAの上側境界よりも下にあるので、人間の読者は通常、Aの前にAを読むだろう。従って、一部の実施形態では2つのエリア間の始点順序関係を度外視することによって、順序リストにおいてAの前にAを配置する。
第4シナリオ804では、エリアAの始点(x,y)はまた、エリアAの始点(x,y)の下にある(すなわち、y<y)。始点順序関係に従って、Aは同様にAの前にあるとみなされるだろう。しかしながら、(AがAの「吹き出し」である場合のように)AがAの境界の内部にあるので、この状況において読者はAの前にAを読むかもしれない。よって、一部の実施形態は、Aの始点がAの始点の下にあったとしても、AをAの前にあると特定する。
803、804に類似するシナリオにおけるこれらの実施形態の一部は、エリア間の文脈的順序関係を調べることによって、始点順序関係を度外視する決定を行う。文脈的順序関係が以下に記載される。
B.文脈的順序関係
始点順序関係は、直感的ではなく、実際の人間が文書のページを読むであろう順序を模倣できない結果を生むこともある。図8で説明された例では、実際の人間はAの前にAを読むであろうが、シナリオ803及びシナリオ804の両方において始点順序関係はAがAの前にあることを要求する。一般に、始点順序関係は、1つ以上のエリアが、そのうちの1つ以上のコンテンツのフロー順序に依存性が暗示されるように配置及び/又は変形される場合に、人間の読み取り順序を模倣できないかもしれない。従って、一部の実施形態は、プリミティブエリアのコンテンツのフロー順序を調べる文脈的順序関係を用いて順序を確立する。
一部の実施形態では、文脈的順序関係は始点順序関係に加えて、又は始点順序関係に代えて、エリア間の順序を規定するために用いられる。これらの実施形態の一部では文脈的順序関係は2つのエリアのそれぞれの局所座標系を用いてページ内の2つのエリア間の順序を決定する順序付け方式である。図9はページ内の第1エリアAと第2エリアAとの間の順序を決定するために文脈的順序関係を用いる処理900を概念的に説明する。処理900は図8を参照して説明される。
図9の処理900は(910で)第1エリアの局所座標系において2つのエリアの始点を比較し、順序を決定する。次いで、処理は(920で)第2エリアの局所座標系において2つのエリアの始点を比較し、順序を決定する。一部の実施形態では、局所座標系のいずれかの下で2つのエリアの始点を比較することは、異なる座標系が用いられること以外は、上述の始点順序関係の比較と同様である。例えば、第1エリアの始点が第2エリアの始点のy座標よりも大きなy座標を有するならば、第1エリアは第2エリアの前にあるとみなされる。2つのエリアの始点のy座標が等しいならば、処理は2つのエリアの始点のx座標を比較する。
次いで、処理は(930で)どのエリアが最初の始点を有するかに関して2つの局所座標系が一致するかどうかを判定する。上記の図8に説明された例示のシナリオ801〜804では、A及びAの局所座標系はどのエリアが最初の始点を有するかに関して一致する。なぜなら、2つのエリアはアライメントされているからである。どのエリアが最初の始点を有するかに関して2つの局所座標系が一致するかどうかの判定は図5を参照しつつさらに後述される。2つの局所座標系が2つのエリアの順序に関して一致するならば、処理は935へ進み、最初の始点を有するエリアを一次エリアとして割り当て、2番目の始点を有するエリアを二次エリアとして割り当てる。他方、2つの局所座標系が2つのエリアの順序に関して一致しないならば、処理は940へ進む。
処理900は(940で)2つの局所座標系が2つのエリアの順序に関して一致しない場合にページ座標における始点の順序を評価する。ページ座標における順序は2つの座標系が一致しない場合には必ず、一方のエリアの座標における順序に不一致であり、他方のエリアの座標における順序に一致するので、処理は(950で)ページの座標系に一致しない局所座標系を有するエリアを一次エリアとして指定する。処理はまた、(955で)ページの座標系に一致する局所座標系を有するエリアを二次エリアとして指定する。
一次エリア及び二次エリアを指定した後、処理900は次に(960で)一次エリアの始点が二次エリアの先行領域内にあるかを判定する。そうであるならば、処理は(985で)一次エリアが二次エリアの前にあることを報告する。そうでないならば、処理は970へ進む。以下の図7は二次エリアの先行領域内にある一次エリアの始点の例を説明する。
処理は(970で)一次エリアの始点が二次エリアの後続領域内にあるかを判定する。そうであるならば、処理は(980で)二次エリアが一次エリアの前にあることを報告する。そうでないならば、処理は975へ進む。上記の図8で説明された例示のシナリオ803では、Aは一次エリアPであり、Aは二次エリアSである。なぜなら、Aの始点はAの始点の前にあるからである(y>y)。しかしながら、一次エリアとしてのAは二次エリアAの後続領域内にあるので、Aは文脈的順序関係の下でAの前にあるとして報告されるだろう。以下の図6は一次エリアの始点が二次エリアの後続領域内にある場合の例を説明する。
処理は(975で)一次エリアPの内部領域と二次エリアSの内部領域との間のインタラクションが、二次エリアSが一次エリアPの前にあることを示すかを判定する。Pの始点がSの内部領域内にある場合に、一部の実施形態は、Sの座標において重なる水平範囲を有するSのすべてのカラムの完全に上にPの内部領域があるか、及びこのようなカラムが2つ以上あるかに基づいてこの判定を行う。そうであるならば、処理は(985で)一次エリアが二次エリアの前にあると報告する。そうでないならば、処理は(980で)二次エリアが一次エリアの前にあると報告する。一次エリアと二次エリアとの間の順序を報告した後に、処理900は終了する。
上記の図8で説明された例示のシナリオ804では、Aは(y<yなので)最初の始点を有し、よって一次エリアPとして割り当てられる。よって、Aは二次エリアSとして割り当てられる。P(A)の始点はS(A)の内部領域内であるが、S(A)はP(A)の完全に下にあり且つP(A)に重なる水平範囲を有する唯1つのカラム832を有する(カラム832はP(A)の完全に下にあり且つP(A)と重なる水平部分を有するS(A)の唯一のカラムである。Aのカラム831、833、834はAと重なる水平範囲を有さない。)。従って、PはSの前にはなく、それ故AはAの前にある。(他方、Aがカラム833とも水平に重なるほど幅広ければ、PはSの座標系において重なる水平範囲を有するSのすべてのカラムの完全に上にあり、且つこのようなカラムが2つ以上存在するだろう。)一次エリアPの内部領域と二次エリアSの内部領域との間のインタラクションに基づく順序の決定は図8を参照して以下にさらに説明される。
文脈的順序関係は図10〜図13を参照して以下にさらに記載される。図10は(処理900により930で実行されるように)どのエリアが最初の始点を有するかに関して2つの座標系が一致するかを判定する例を説明する。図10は2つのエリア1010、1020を有するページ1000を説明する。エリア1010はページ100にアライメントされている。エリア1010の局所座標系1015はページ1000の座標系1005にアライメントされている。エリア1020はページ1000にアライメントされていない。その局所座標系1025はページ1000の座標系1005から回転した角度を有する。
エリア1010(A)の局所座標系1015(x’−y’)の下で、Aの始点(x,y)はAの始点(x,y)の上にある(すなわち、y>y)。対照的に、エリア1020(A)の局所座標系1025(x”−y”)の下で、Aの始点(x,y)はAの始点(x,y)の「下」にある。言い換えると、Aの局所座標系の下ではAが最初の始点を有するが、Aの局所座標系の下ではAが最初の始点を有する。従って、2つのエリアの2つの座標系はどのエリアが最初の始点を有するかに関して一致しない。
ページ1000の座標系1005(x,y)の下で、Aの始点(x,y)はAの始点(x,y)の上にある(y>y)。よって、ページの座標系はAの局所座標系に一致するが、Aの局所座標系とは一致しない。よって、処理900は930でAを二次エリアとして割り当て、Aを一次エリアとして割り当てるだろう。
図11〜図13は処理900によって960〜985で実行されるような一次エリアと二次エリアとの間の文脈的順序関係の下での順序の決定を説明する。図10と同様に、図11〜図13のそれぞれは2つのプリミティブエリアを説明する。そして、図10と同様に、プリミティブエリアの1つはページに対してある角度で回転されており、その結果として2つのプリミティブエリアはどのプリミティブエリアが最初の始点を有するかに関して一致しない局所座標系を有する。回転されたエリアはこの例では一次エリアPとして割り当てられる。なぜなら、ページの座標系と一致しない局所座標系を有するからである。ページにアライメントされているエリアは二次エリアSとして割り当てられる。
図11〜図13では、一次エリアPの始点の位置は二次領域Sの領域を参照して評価される。Pの始点がSの先行領域内にあるならば、P<Sである(すなわち、一次エリアは二次エリアの前にある。)。Pの始点がSの後続領域内にあるならば、S<Pである(すなわち、二次エリアは一次エリアの前にある。)。Pの始点がSの内部領域内にあるならば、結果は2つの内部同士の正確なインタラクションに依存する。Sの座標系において重なる水平範囲を有するSのすべてのカラムの完全に上にPの内部領域があり、且つこのようなカラムが2つ以上存在するならば、P<Sであり、それ以外の場合にS<Pである。
図11は二次エリアSの後続領域内に始点を有する一次エリアPを有するページについての例示の文脈的順序関係を説明する。図11はレイアウトエリア1110、1120を含む例示のページ1100を説明する。レイアウトエリア1110は始点1115を有し、レイアウトエリア1120は始点1125を有する。ページ1100の座標系の下で、レイアウトエリア1120の始点1125ではなくレイアウトエリア1110の始点1115が最初の始点である。なぜなら、始点1115は始点1125の上にあるからである。レイアウトエリア1110の局所座標系の下で、始点1115が最初の始点である。レイアウトエリア1120の局所座標系の下で、始点1125が最初の始点である。よって、ページ1100の座標系は、2つの始点のどちらが最初の始点であるかについて、レイアウトエリア1110の座標系に一致し、レイアウトエリア1120の座標系に一致しない。よって、一部の実施形態はレイアウトエリア1120を一次エリアPとして指定し、レイアウトエリア1110を二次レイアウトエリアSとして指定する。一次エリアPは、二次エリアS(すなわち、レイアウトエリア1110)の後続領域内に始点1125を有するレイアウトエリア1120であるので、一次エリアP(すわなち、レイアウトエリア1120)は文脈的順序関係の下で二次エリアSの後にあるだろう。
図12は二次エリアSの先行領域内に始点を有する一次エリアPを有するページについての例示の文脈的順序関係を説明する。図12はレイアウトエリア1210、1220を含む例示のページ1200を説明する。レイアウトエリア1210は始点1215を有し、レイアウトエリア1220は始点1225を有する。ページ1200の座標系の下で、レイアウトエリア1210の始点1215ではなくレイアウトエリア1220の始点1225が最初の始点である。なぜなら、始点1225は始点1215の上にあるからである。レイアウトエリア1210の局所座標系の下で、始点1225が最初の始点である。レイアウトエリア1220の座標系の下で、始点1215が最初の始点である。よって、ページ1200の座標系は、2つの始点のどちらが最初の始点であるかについて、レイアウトエリア1210の座標系に一致し、レイアウトエリア1220の座標系に一致しない。よって、一部の実施形態はレイアウトエリア1220を一次エリアPとして指定し、レイアウトエリア1210を二次レイアウトエリアSとして指定する。一次エリアPは、二次エリアS(すなわち、レイアウトエリア1210)の先行領域内に始点1225を有するレイアウトエリア1220であるので、一次エリアP(すわなち、レイアウトエリア1220)は文脈的順序関係の下で二次エリアSの前にあるだろう。
図13は二次エリアSの内部領域内に始点を有する一次エリアPを有するページについての例示の文脈的順序関係を説明する。図13はレイアウトエリア1310、1320を含む例示のページ1300を説明する。レイアウトエリア1310は始点1315を有し、レイアウトエリア1320は始点1325を有する。レイアウトエリア1310はカラム1331〜1334も含む。ページ1300の座標系の下で、レイアウトエリア1320の始点1325ではなくレイアウトエリア1310の始点1315が最初の始点である。なぜなら、始点1315は始点1325の上にあるからである。レイアウトエリア1310の局所座標系の下で、始点1315が最初の始点である。レイアウトエリア1320の局所座標系の下で、始点1325が最初の始点である。よって、ページ1300の座標系は、2つの始点のどちらが最初の始点であるかについて、レイアウトエリア1310の座標系に一致し、レイアウトエリア1320の座標系に一致しない。よって、一部の実施形態はレイアウトエリア1320を一次エリアPとして指定し、レイアウトエリア1310を二次レイアウトエリアSとして指定する。
一次エリアPは二次エリアS(すなわち、レイアウトエリア1310)の内部領域に自身の始点1325を有するレイアウトエリア1320であるので、文脈的順序関係に従うPとSとの間の順序は2つの内部領域間のインタラクションに基づくだろう。一部の実施形態は、Sの座標において重なる水平範囲を有するSのすべてのカラムの完全に上にPの内部領域が位置するかどうか、及びこのようなカラムが2つ以上存在するかどうかに基づいてこの判定を行う。そうであるならば、PがSの前である。そうでないならば、SがPの前である。
図13に説明される例では、Pの始点はSの内部領域内にあるが、SはPの完全に下にあるカラムであってPに重なる水平範囲を有するカラムを有さない。(Sのカラム1332〜1334はPに重なる水平範囲を有するが、これらのどれもSの座標系においてPの内部領域の完全に下にあるものではない。)従って、文脈的関係に従って、PはSの前にない。
一部の実施形態では、図9〜図13を参照して上述されたような文脈的順序関係はページ上のすべてのエリアを順序付けるためにそのまま用いられない。なぜなら、文脈的順序関係が推移的ではないエリアの集合を作成することができ、それ故これらのエリアの集合を順序付けるために用いることができないからである。しかしながら、一部の実施形態は「隣接する」エリアに関して文脈的順序関係を用いる。なぜなら、文脈的順序関係は、エリア内の読み取りフローが隣接エリアについて把握された読み取りフローに影響を与える仕方を評価するからである。よって、一部の実施形態は始点順序関係を(初期隣接ペアを確立する)最初の順序付けとして用い、その後、示された入れ換えが一貫しており曖昧でない限り、文脈的順序関係によって示される隣接ペアの一連の入れ換えを行うことによって、よりよい順序に収束する。
図14はページ上の複数のエリアを順序付けるために始点順序関係と文脈的順序関係とを用いる例示の処理1400を概念的に説明する。処理1400はページ内のプリミティブエリアの集合を受信した場合に始まり、これらのプリミティブエリアはページ内のレイアウトエリアやグラフィックエリア(形状、画像、並びに形状及び画像のグループ)でありうる。
処理1400は(1410で)ページの座標系における始点順序関係に従って昇順にエリアを並べ、その結果として、エリアのシーケンスA,A,…,Aとなる。始点順序関係に従ってエリアのシーケンスをソートするためにクイックソートのような標準アルゴリズムが用いられうる。
処理は(1420で)文脈的順序関係に従ってシーケンス内の隣接エリアのペアを比較する。具体的には、エリアAが、文脈的順序関係でA<AK−1となるようなシーケンスにおける最初のエリアであるならば、シーケンスにおいて先行するAK−1を有するAを入れ換える必要があるだろう(すなわち、AK−1,A→A,AK−1)。一部の実施形態では、シーケンス内に対応する後続エリアAK+1を有するAについて、AとAK−1との入れ換えはA<AK+1の場合にのみ行われるだろう。一部の実施形態では、A<AK−1且つA>AK+1ならばAとAK−1とを入れ換えるべきか、又はAとAK+1とを入れ換えるべきかが曖昧であるので、どの隣接を入れ換えるべきかが曖昧でない場合にのみ入れ換えが生じることを保証するためにこの条件が追加される。
処理1400は次に(1425で)、1420で実行された比較に従ってエリアの隣接ペアのいずれかのペアを入れ換える必要があるかを判定する。入れ換える必要のある隣接ペアが少なくとも1つ存在するならば、処理は1430へ進む。文脈的順序関係の下で入れ換える必要のあるエリアの隣接ペアがなければ、処理は1440へ進む。
処理は(1430で)これらの隣接エリア間の文脈的順序関係に従ってエリアのシーケンス内の隣接エリアを入れ換える。文脈的順序関係に従うシーケンス内の隣接エリアの入れ換えが終了した後に、処理1400は1420に戻り、文脈的順序関係に従って隣接エリアの各ペアの比較を繰り返す。動作1430で実行された入れ換えによって、文脈的順序関係の下で比較されていなかったエリアの新たな隣接ペアが作成されるので、一部の実施形態ではこの処理が必要となる。よって、処理1400は、エリアのシーケンス全体が文脈的順序関係を満たすまで繰り返される反復処理である。この反復処理が常に完了することが証明されうる。これは、始点順序関係と文脈的順序関係との両方を用いてページ上のすべてのプリミティブエリアの線形順序を確立する。
1440で、処理1400は結果のエリアのシーケンスを出力する。一部の実施形態は結果のシーケンスに従ってエリアのそれぞれに順序インデックスを割り当て、各順序インデックスはシーケンスにおける位置を表す。一部の実施形態はまた、結果のシーケンスを用いてプリミティブエリアの順序リストを構築する。結果のエリアのシーケンスを出力した後、処理1400は終わる。
図15は例示のページ1500内のプリミティブエリアから構築される順序リスト1550を説明する。ページ1500はレイアウトエリアA(1501)、A(1502)、A(1503)、A(1504)を含む。エリア1501は(x,y)に始点1511を有し、エリア1502は(x,y)に始点1512を有し、エリア1503は(x,y)に始点1513を有し、エリア1504は(x,y)に始点1514を有する。
順序リスト1550はページ1500のエリアA〜Aの順序を表す配列によって表される。順序リスト1550はまた、木構造、またはA〜A間のシーケンシャルな関係を表現できる任意の他のデータオブジェクトモデリング構造によって表されうる。y>y>y>yであり、エリアA〜Aの何れも始点順序関係を文脈的順序関係と異ならせるように配置又は変形されていないので、処理900は昇順A→A→A→Aに基づいてエリアA〜Aの順序1550を生み出すだろう。
一部の実施形態では、順序インデックスは各プリミティブエリアの各プリミティブ要素に割り当てられる。各プリミティブ要素に割り当てられた順序インデックスはプリミティブ要素が属するプリミティブエリアの順序に基づく。図15の例では、プリミティブエリアA〜A間の順序は相異なるプリミティブエリアの間のプリミティブ要素の順序を決定する。例えば、A内のプリミティブ要素はA内のプリミティブ要素の前の順序インデックスが与えられ、A内のプリミティブ要素はA内のプリミティブ要素の前の順序インデックスが与えられえるなどである。
各プリミティブエリアにおいて、プリミティブエリア内の階層構造により確立された読み取りフローはプリミティブ要素に割り当てられる順序インデックスを決定する。例えば、プリミティブ要素として文字グリフ及びインライングラフィックを含むレイアウトエリアは、レイアウトエリア内のテキスト行、段落及びカラムによって確立される読み取りフローに従ってグリフ及びインライングラフィックのそれぞれに割り当てられた順序インデックスを有しうる。
一部の実施形態では、プリミティブエリアはさらに、(例えば、可視の仕切りによって、または複数ページのヘッダ/フッタ・テンプレートを認識することによって示されるような)ページの区画又は入れ子の区画にグループ分けされる。これらの実施形態の一部は木構造を用いてページをモデル化する。木構造はルートとしてページから始まり、子として区画及び/又はプリミティブエリアを有する。区画はさらに、続いて子としてサブ区画及び/又は他のプリミティブエリアを有してもよい。各区画にはその最初の子孫のエリアのインデックスが与えられる。その後、一部の実施形態は各兄弟の集合を昇順で並べるために木のノードの順序インデックスを用いて、区画のグループ分けを実行するためにエリアの順序を再計算する。これは順序木を生み出す。プリミティブエリアの新たな順序シーケンスを得るために、一部の実施形態はルートから始めて、プリミティブエリアだけが残るようになるまで、各区画をその子の順序シーケンスに再帰的に置き換える。ページ上のすべてのプリミティブエリアの順序はこのようにして変更されてもよい。なぜなら、2つの区画は元々の順序において交互に並んだプリミティブエリアから構成されうるからである。
図16は2つの区画を有するページから順序リストを作成することを説明する。例示のページ1600は、開始順序関係及び文脈的順序関係に従ってA<A<A<AとなるようなレイアウトエリアA、A、A、Aを含む。しかしながら、ページ1500とは異なり、ページ1600はページを区画L(レフト)及び区画R(ライト)に分割する可視の仕切り1610を含む。区画LはエリアA、Aを含み、区画RはエリアA、Aを含む。
図16はまた、ページ1600をモデル化するために用いられる木構造1620とページ1600内の可視の仕切りによる影響とを説明する。木構造1620はルートノード1621としてのページから始まるページ1600のモデルである。ルートノード1621は、ページ1600の2つの区画を表す2つの子ノード1622、1623を有する。子ノード1622は区画Lを表し、子ノード1623は区画Rを表す。(区画Lを表す)子ノード1622は、区画L内の2つのプリミティブエリアA、Aを表すための2つの孫ノード1624、1625を有する。同様に、(区画Rを表す)子ノード1623は、区画R内の2つのプリミティブエリアA、Aを表すための2つの孫ノード1626、1627を有する。
一部の実施形態は相異なる区画間のエリアの順序を決定することによって、各区画内のエリアの順序を決定する。図16の例では、区画L及び区画R内のエリアの順序はA〜A間の順序に基づいて決定されうる。A〜A間の順序は、A<A<A<Aとなるように、始点順序関係又は文脈的順序関係の何れか一方によって決定されうる。従って、区画L内のエリアの順序はA<Aであり、区画R内のエリアの順序はA<Aである。この順序はノード1624からノード1625への点線矢印及びノード1626からノード1627への点線矢印によって説明される。
ページ内のすべてのエリアの順序及び各区画内のエリアの順序に基づいて、相異なる区画間の順序が決定されうる。図16の例では、一部の実施形態は区画Lが区画Rの前にあることを決定する。なぜなら、区画Lの最初のエリア(A)は区画Rの最初のエリア(A)の前にあるからである。この順序はノード1622からノード1623へ延びる点線矢印によって説明される。
区画L及び区画Rとの間の順序と、区画L及び区画R内のエリアの順序とに基づいて、順序リスト1640が作成される(配列で表現される)。新たに作成された順序リスト1640はA→A→A→Aの順序であり、可視の仕切り1610によって課されたプリミティブエリアのグループ分けを反映する。これは、ページ1600と同様ではあるが、ページ1600に提示される可視の仕切りを有さないページ1500から作成される図15の順序リスト1550(A→A→A→A)とは対照的である。一部の実施形態では、最初のエリア(A)の最初の要素に最初のインデックス(例えば、0)が割り当てられ、最後のエリア(A)の最後の要素に最後のインデックス(例えば、N)が割り当てられるように、順序リスト内の各エリアの相異なる要素に順序インデックスが割り当てられる。
II.コンテンツ選択
文字及びインライングラフィックはレイアウトエリア内で既に暗黙的に順序付けられているので、上述のプリミティブエリアの順序は結果としてページ上のすべての文字及びグラフィックについての読み取り順序になる。よって、ページ上の連続した選択は選択における最初のプリミティブ要素及び最後のプリミティブ要素によって規定されうるか、又はこの読み取り順序における開始位置及び終了位置を表すインデックスのペアによって規定されうる。一部の実施形態では、選択を指定するための一般的なユーザインタフェースはページ上の位置のペアへのユーザポインティングを伴う。その後、読み取り順序において対応するインデックスが位置座標から演繹される。
一部の実施形態について、図17は開始選択点及び終了選択点を用いて文書コンテンツの連続した選択を実行するための処理1700を概念的に説明する。処理1700は図18を参照して説明され、図18は文書ページ1800上の連続した選択であって、ページ1800のコンテンツから生成される順序リスト1850に関する連続した選択を説明する。ページ1800はエリア1801〜1806(A〜A)、開始選択点1810及び終了選択点1820を含む。開始選択点1810及び終了選択点1820はエリアA〜Aを含む連続した選択を規定する。連続した選択1830はエリアAの要素1832から始まり、エリアAの要素1834で終わる。点線の四角形はA〜Aの一部が図18の連続した選択1830に含まれることを概念的に説明するためだけに用いられ、ユーザインタフェースの一部ではない(しかしながら、一部の実施形態はユーザ選択の指標を表示してもよい。)。
処理1700は(1710で)文書コンテンツの順序リストを受信する。図18の例では、順序リスト1850はページ1800内のエリアの順序に基づき、この順序は始点順序関係、文脈的順序関係、及び/又は他のタイプの順序付け方式を用いて確立されうる。順序リスト1850はA→A→A→A→A→Aのシーケンスであり、6個のエリア間に確立された順序を反映する。エリアのそれぞれはプリミティブ要素(すなわち、文字グリフ又はインライングラフィック)を含むことができ、順序インデックスはシーケンス内のエリアのそれぞれのプリミティブエリアのそれぞれに割り当てられる。
次に、処理1700は(1720で)開始選択点及び終了選択点を受信する。選択点は順序リスト内のプリミティブ要素の連続した選択を処理するためにユーザによって特定されたページ上の位置である。一部の実施形態はユーザインタフェースからの位置指示(例えば、カーソル又はタッチスクリーン上の接触点)を解釈することによって選択点を導出する。図18の例では、開始選択点及び終了選択点はAの近くから始まりAの近くで終わる連続した選択1830を規定する。
処理1700は(1730で)開始選択点に「最も近い」プリミティブエリアを見つける。処理はまた、(1740で)終了選択点に「最も近い」プリミティブエリアを見つける。本明細書を通じて、「選択点に最も近いプリミティブエリア」という用語は、読み取り順序において選択点に最も近いプリミティブエリアを意味する。読み取り順序において選択点に最も近いプリミティブエリアは、選択点によって選択されるべきエリアとして文書の読者が意図する可能性が最も高いプリミティブエリアであり、選択点への距離が最も近いプリミティブエリアであってもよいし、そうでなくてもよい。図18の例では、開始選択点1810はプリミティブエリア1803(A)に最も近く、終了選択点1820はエリア1805(A)に最も近い。選択点に最も近いプリミティブエリアを見つけることの例は、以下のサブセクションAにさらに記載される。
次に、処理は(1750で)開始選択点に最も近いプリミティブエリアから開始選択インデックスを決定する。処理はまた、(1760で)終了選択点に最も近いプリミティブエリアから終了選択インデックスを決定する。開始選択インデックス及び終了選択インデックスの決定は以下のサブセクションBでさらに記載される。
処理は次に(1770で)開始選択インデックス及び終了選択インデックスから開始プリミティブ要素及び終了プリミティブ要素を決定する。一部の実施形態では、開始プリミティブ要素は順序リストにおいて開始選択インデックスに割り当てられたプリミティブ要素であり、終了プリミティブ要素は順序リストにおいて終了選択インデックスに割り当てられたプリミティブ要素である。終了プリミティブ要素が読み取り順序において実際には開始プリミティブ要素の前にあるならば、一部の実施形態は「開始」の指定と「終了」の指定とを交換して、開始選択点及び開始プリミティブ要素が終了選択点及び終了プリミティブ要素になり、終了選択点及び終了プリミティブ要素が開始選択点及び開始プリミティブ要素になるようにする。
処理は(1780で)開始選択点と開始プリミティブ要素との間の関係に基づいて開始選択インデックスを改良する。一部の実施形態は、開始選択点が開始プリミティブ要素の中間地点の後にあるならば、連続した選択から開始プリミティブ要素を除くことによって開始選択インデックスを改良する。処理は(1790で)終了選択点と終了プリミティブ要素との間の関係に基づいて終了選択インデックスを改良する。一部の実施形態は、終了選択点が終了プリミティブ要素の中間地点よりも前にあるならば、連続した選択から終了プリミティブ要素を除くことによって終了選択インデックスを改良する。開始選択インデックス及び終了選択インデックスの改良(すなわち、開始プリミティブ要素及び終了プリミティブ要素を含めるかどうかの判定)は、以下のサブセクションCでさらに記載される。処理1700は選択点に最も近いプリミティブエリアから開始選択インデックス及び終了選択インデックスを決定した後に終了する。
図18の例では、開始選択点1810及び終了選択点1820は、連続した選択の開始位置及び終了位置を示すための開始選択インデックス1815及び終了選択インデックス1815に変換される。開始選択インデックス1815は、開始選択点1810に最も近いプリミティブエリアであるプリミティブエリアAに関連するインデックスに基づく。同様に、終了選択インデックス1825は、終了選択点1820に最も近いプリミティブエリアであるプリミティブエリアAに関連するインデックスに基づく。一部の実施形態では、開始インデックス1815及び終了インデックス1825は、連続した選択1830においてどのエリアのどの要素が最初であり、どのエリアのその要素が最後であるかを開始インデックス1815及び終了インデックス1825が示すように、プリミティブエリアA、A内の個別の要素のインデックスに基づく。この例では、開始選択インデックス及び終了選択インデックスはAの要素1832に対応するインデックス及びAの要素1834に対応するインデックスである。要素1832は開始プリミティブ要素であり、要素1834は終了プリミティブ要素である。
A.最も近いプリミティブエリアを決定するための基準
文書コンテンツの連続した選択の開始及び終了を決定するために、一部の実施形態はまず、読み取り順序においてどのプリミティブエリアが開始選択点に最も近く、読み取り順序においてどのプリミティブエリアが終了選択点に最も近いかを決定する。選択点(開始選択点又は終了選択点)に最も近いプリミティブエリアの決定は、選択点が唯1つのプリミティブエリアの境界内にある場合に自明である。しかしながら、選択点がどのプリミティブエリアの境界内にもない場合や選択点が2つ以上のコンテンツ項目の境界内にある場合にこれは自明ではない。従って、一部の実施形態は、通常の読み取り方向を考慮に入れてページ上の所与の選択点に最も近いプリミティブエリアを見つける。一部の実施形態では、「最も近い」プリミティブエリアはこれらの方向の何れかにおいて到達した最初のプリミティブエリアとして当初は決定される。一部の実施形態は現在の最適な選択として最初のプリミティブエリアから始め、シーケンス内の残りのプリミティブエリアを探索し、よりよいものが見つかったら現在の最適な選択を置き換える。以下の図20〜図24は最も近いプリミティブエリアを決定するためにプリミティブエリアを互いに比較するためのいくつかの基準を説明する。図20〜図24の説明で用いられるいくつかの用語がまず図19を参照しつつ以下に説明される。図19はいくつかの例示の選択点及びプリミティブエリアを説明する。説明されるように、選択点1915はプリミティブエリア1910の近くにあり、選択点1925はプリミティブエリア1920の近くにあり、選択点1935はプリミティブエリア1930内にある。プリミティブエリア1930はカラム1941〜1944を含む。カラム1944は段落1945を含む。
一部の実施形態では、選択点から対象への“x変位”の概念は、選択点のx座標と対象の境界内の任意の点のx座標との間の差の絶対値の最小値であると定義される。ここで、すべての座標は対象の局所座標系におけるものである。図19に説明される例では、選択点1915はレイアウトエリア1910から非ゼロのx変位を有し、当該x変位はレイアウトエリア1910の最も近い辺と選択点1915との間の水平距離である。他方、選択点1925はレイアウトエリア1920とゼロのx変位を有する。なぜなら、選択点1925はレイアウトエリア1920よりも垂直方向にみて下にあり、選択点1925のx座標とレイアウトエリア1920の境界内の何れか任意の点のx座標との間の距離の絶対値の最小値はゼロであるからである。
同様に、一部の実施形態は、選択点から対象へのy変位を、選択点のy座標と対象の境界内の任意の点のy座標との間の差の絶対値の最小値であると定義する。図19に説明される例では、選択点1925はレイアウトエリア1920から非ゼロのy変位を有し、当該y変位はレイアウトエリア1920の最も近い辺と選択点1925との間の垂直距離である。他方、選択点1915はレイアウトエリア1910とゼロのy変位を有する。なぜなら、選択点1915はレイアウトエリア1910よりも水平方向にみて左にあり、選択点1915のy座標とレイアウトエリア1910の境界内の何れか任意の点のy座標との間の距離の絶対値の最小値はゼロであるからである。図19はまた、プリミティブエリア1930の境界内にある選択点1935を説明する。このような場合に、当該エリアへのx変位と当該エリアへのy変位との両方がゼロである。
一部の実施形態はまた、レイアウトエリア内の選択カラムを、ゼロのy変位を有する段落が存在するカラムのうち最小のx変位を有するカラムであると定義する。言い換えると、一部の実施形態は選択点を通る水平線(すなわち、レイアウトエリアのx軸に平行な線)を用い、この線が段落のコンテンツと交差する最も近いカラムを見つける。このような交差が存在しないならば、選択カラムは存在しない。このような交差が存在するならば、交差する段落は選択段落と呼ばれる。図19に説明される例では、選択点1935を通るように描かれる水平線はカラム1941、1942、1944と交差するだろう。具体的には、この水平線は段落1945でカラム1944と交差するだろう。カラム1944はゼロのy変位を有する段落1945を含み、最小のx変位を有するカラムであるので、カラム1944は選択カラム(ハイライトされたカラム)であり、段落1945は選択段落(ハイライトされた段落)である。一部の実施形態は水平線を図示的に描かないが、その代わりに、選択カラムを決定するために選択点を通る仮想的に水平線に沿って探索する。
一部の実施形態はさらに、選択点から対象へのx到達範囲を、選択点のx座標と対象の境界内の任意の点のx座標との間の差の絶対値の最大値であると定義する。図19に説明される例では、レイアウトエリア1920の右の辺が選択点1925のx座標とレイアウトエリア1920の境界内の任意の点のx座標との間の差の絶対値の最大値を有する。従って、選択点1925とレイアウトエリア1920の右の辺との間の水平距離が選択点1925とレイアウトエリア1920とのx到達範囲である。
1.y変位の比較
一部の実施形態は選択点からエリアへの最小のy変位を有するエリアを選ぶ。両方のエリアが同じy変位を生じるならば、エリアの選択は未解決のままである。図20は選択点のy変位に基づいて選択点へ最も近いプリミティブエリアを判定することを説明する。説明されるように、選択点2010はレイアウトエリア2012、2014の両方の近くにあり、選択点2020はレイアウトエリア2022、2024の両方の近くにある。選択点2010はレイアウトエリア2012とはゼロのy変位を有するが、レイアウトエリア2014とは非ゼロのy変位を有する。この例では、(ハイライトされた)レイアウトエリア2012が選択点2010に最も近いプリミティブエリアとみなされるだろう。他方で、選択点2020はレイアウトエリア2022、2024の両方にゼロのy変位を有する。この例では、一部の実施形態は、両方のプリミティブエリアへのy変位が同じである場合に、2つのプリミティブエリアを比較するためのy変位の使用を差し控える。
2.グラフィックエリア内のレイアウトエリア
レイアウトエリアとグラフィックエリアとを比較する際に、選択点がレイアウトエリアの内部領域内にあり、この領域がグラフィックエリアの境界内に完全に含まれるならば、一部の実施形態は当該レイアウトエリアを最も近いプリミティブエリアとして選択する。そうでなければ、選択は未解決のままである。(この基準は、印刷物の電子スキャンから作成されたOCRファイルで一般的であるように、レイアウトエリアの境界線又は背景として、若しくはレイアウトエリア内のテキストの重畳画像として、テキストを視覚的に装飾するためにグラフックが用いられる一般的な場合を認識する。)図21は、レイアウトエリアがグラフィックエリアの境界内に含まれる場合に当該レイアウトエリアが最も近いプリミティブエリアとして選択されることを説明する。
図21は選択点2110、2120を説明する。選択点2110はレイアウトエリア2112とグラフィックエリア2114との両方の中にある。選択点2120はレイアウトエリア2122とグラフィックエリア2124との両方の中にある。選択点2110がレイアウトエリア2112の中にあり、レイアウトエリア2112がグラフィックエリア2114の完全に中にあるので、一部の実施形態は(ハイライトされた)レイアウトエリア2112を選択点に最も近いプリミティブエリアとして選択する。
他方で、選択点2120はレイアウトエリア2122内にあるが、レイアウトエリア2122はグラフィックエリア2124の完全に中にあるわけではないので、レイアウトエリア2122は最も近いプリミティブエリアとしてはみなされないだろう。一部の実施形態は、この状況で、選択点2120に最も近いプリミティブエリアを決定するためにこの基準を用いることを差し控える。
3.選択カラムを有さないレイアウトエリアの比較
選択カラムを有さない2つのレイアウトエリアを比較する際に、一部の実施形態は両方のレイアウトエリアから最小のx変位を有するカラムと最小のy変位を有する段落とを決定する。一部の実施形態は、各エリアのカラムのx変位が他のエリアのx到達範囲よりも小さいならば、その段落へ最小のy変位を有するレイアウトエリアを選択する。他のすべての場合で選択は未解決のままである。(言い換えると、どのレイアウトを用いるかをカラムが明確に区別しないならば、処理は段落を調べるだろう。)図22は選択カラムを有さない2つのレイアウトエリアの比較を説明する。
図22は選択点2210、2220を説明する。選択点2210はレイアウトエリア2212、2214の近くにあり、選択点2220はレイアウトエリア2222、2224の近くにある。選択点2210、2220を通るように描かれる水平線はどのレイアウトエリアのどのカラムとも交差しないので、どのレイアウトエリアも選択カラムを有さない。
選択点2210について、レイアウトエリア2212において最小のx変位を有するカラムはカラム2216であり、カラム2216において最小のy変位を有する段落は段落2218である。レイアウトエリア2214において最小のx変位を有するカラムはカラム2217であり、カラム2217において最小のy変位を有する段落は段落2219である。段落2219へのy変位(y変位2)は段落2218へのy変位(y変位1)よりも小さいので、段落2219を含むレイアウトエリアは選択点2210に最も近いプリミティブエリアとして選択されるだろう。
選択点2220について、レイアウトエリア2222において最小のx変位を有するカラムはカラム2226であり、カラム2226において最小のy変位を有する段落は段落2228である。レイアウトエリア2224において最小のx変位を有するカラムはカラム2227であり、カラム2227において最小のy変位を有する段落は段落2229である。選択点2220から段落2229へのy変位は段落2228へのy変位よりも小さいが、選択点からレイアウトエリア2224へのx変位が他のレイアウトエリア2222へのx到達範囲よりも大きいので、レイアウトエリア2224は選択されないだろう。一部の実施形態は、この状況において選択点2220に最も近いプリミティブエリアを決定するためにこの基準を使用することを差し控える。
4.x変位の比較
一部の実施形態は選択点からエリアへの最小のx変位値を有するプリミティブエリアを選択する。これらの実施形態の一部では、x変位値はエリアのタイプに基づいて決定される。選択カラムを有するレイアウトエリアについて、選択点から選択カラムへのx変位がレイアウトエリアのx変位として用いられる。選択カラムを有さないレイアウトエリアについて、選択点から当該エリアへのx到達範囲がx変位値として用いられる。(グラフィックエリアのような)すべての他のエリアについて、選択点からエリアへのx変位が当該エリアのx変位値として用いられる。
図23はx変位値の様々な決定に基づくプリミティブエリアの比較を説明する。図23は選択点2310、2320、2330を説明する。選択点2310はレイアウトエリア2312、2314の近くにある。選択点2320はレイアウトエリア2322、2324の近くにある。選択点2330はレイアウトエリア2332及びグラフィックエリア2334の近くにある。
選択点2310について、レイアウトエリア2312は選択カラム2316及び選択段落2318を有する。従って、レイアウトエリア2312のx変位値は選択点2310から選択段落2318へのx変位(x変位1)である。他方、レイアウトエリア2314は選択カラムを有さず、それ故レイアウトエリア2314のx変位値はそのx到達範囲である。レイアウトエリア2314のx変位値(そのx到達範囲)はレイアウトエリア2312のx変位値よりも大きいので、レイアウトエリア2312が選択点2310に最も近いプリミティブエリアであると決定される。
選択点2320について、レイアウトエリア2322は選択カラム2326及び選択段落2328を有する。従って、レイアウトエリア2322のx変位値は選択点2320から選択段落2328へのx変位(x変位1)である。他方、レイアウトエリア2324は選択カラムを有さず、それ故レイアウトエリア2324のx変位値はそのx到達範囲である。レイアウトエリア2324のx変位値(そのx到達範囲)はレイアウトエリア2322のx変位値よりも小さいので、レイアウトエリア2324が選択点2320に最も近いプリミティブエリアであると決定される。
選択点2330について、レイアウトエリア2332は選択カラム2336及び選択段落2338を有する。従って、レイアウトエリア2332のx変位値は選択点2330から選択段落2338へのx変位(x変位1)である。エリア2334はグラフィックエリアである。選択点2330からグラフィックエリア2334へのx変位(x変位2)が当該エリアのx変位値として用いられる。グラフィックエリア2334のx変位値はレイアウトエリア2332のx変位値よりも小さいので、グラフィックエリア2334が選択点2330に最も近いプリミティブエリアであると決定される。
5.選択カラムのx変位の比較
選択カラムを有する2つのレイアウトエリアを比較する際に、一部の実施形態は選択点から選択段落までの最小のx変位を有するエリアを選択する。図24はどのレイアウトエリアが選択点から最小のx変位を有する選択カラムを有するかを決定することによって、選択カラムを有するレイアウトエリアを比較することを説明する。
図24は選択点2410、2420を説明する。選択点2410はレイアウトエリア2412、2414の近くにある。選択点2420はレイアウトエリア2422、2424の近くにある。
選択点2410について、レイアウトエリア2412は選択カラム2416及び選択段落2418を有する。従って、レイアウトエリア2412のx変位値は選択点2410から選択段落2418へのx変位(x変位1)である。同様に、レイアウトエリア2414は選択段落2419を有する選択カラム2417を有する。従って、レイアウトエリア2414のx変位値は選択点2410から選択段落2419へのx変位(x変位2)である。レイアウトエリア2414のx変位値(そのx到達範囲)はレイアウトエリア2412のx変位値よりも小さいので、レイアウトエリア2412が選択点2410に最も近いプリミティブエリアであると決定される。
選択点2420について、レイアウトエリア2422は選択カラム2426及び選択段落2428を有する。従って、レイアウトエリア2422のx変位値は選択点2420から選択段落2428へのx変位(x変位1)である。同様に、レイアウトエリア2424は選択段落2429を有する選択カラム2427を有する。従って、レイアウトエリア2424のx変位値は選択点2420から選択段落2429へのx変位(x変位2)である。レイアウトエリア2424のx変位値(そのx到達範囲)はレイアウトエリア2422のx変位値よりも大きいので、レイアウトエリア2422が選択点2420に最も近いプリミティブエリアであると決定される。
一部の実施形態は基準の優先度リストを用いて候補のプリミティブエリアを比較する。一部の実施形態は最高の優先度基準を用いて比較を開始する。リスト内の1つの基準を用いて2つの候補のプリミティブエリアのどちらを選択するかを解決できないならば、次の基準が適用される。一部の実施形態について、基準の優先度リストは以下の通りである。
1. 選択点からエリアへの最小のy変位を有するエリアを選択する。両エリアが同じy変位を生み出すならば、エリアの選択は未解決のままである。この基準の適用の例は図20を参照して上述された。
2. レイアウトエリアとグラフィックエリアとを比較する場合に、選択点がレイアウトエリアの内部領域内にあり、且つこの領域がグラフィックエリアの境界内に完全に含まれるならば、当該レイアウトエリアを選択する。そうでなければ、選択は未解決のままである。この基準の適用の例は図21を参照して上述された。
3. 2つのレイアウトエリアを比較する場合に、どちらも選択カラムを有さないならば、各レイアウトエリアにおいて選択点からカラムへの最小のx変位を有するカラムを決定し、選択点から段落への最小のy変位を有するこれらの2つのカラムのそれぞれの中の段落を決定する。各エリアのカラムのx変位が他のエリアのx到達範囲よりも小さいならば、その段落への最小のy変位を有するレイアウトエリアを選択する。他のすべての場合において選択は未解決である。この基準の適用の例は図22を参照して上述された。
4. エリアに適するタイプの最小の変位値を有するエリアを選択する。選択カラムを有するレイアウトエリアについて、選択点から選択カラムへのx変位を用いる。選択カラムを有さないレイアウトエリアについて、選択点からエリアへのx到達範囲を用いる。エリアの他のすべてのタイプについて、選択点からこれらのエリアへのx変位を用いる。この基準の適用の例は図23を参照して上述された。
5. 選択カラムを有する2つのレイアウトエリアを比較する場合に、選択点から選択段落へ最小のx変位を有するエリアを選択する。この基準の適用の例は図24を参照して上述された。
6. 最も手前にあるエリアを選択する。一部の実施形態では、各エリアは、どのコンテンツが他のどのコンテンツの上に描かれるかに関して曖昧さが存在しないことを保証するために一意の“Zオーダ”が割り当てられる。これらの実施形態の一部はZオーダによって示される最も手前にあるエリアを選択することによって、エリア間の任意の残りの同順位を解決する。
開始選択点に「最も近い」プリミティブエリアと終了選択点に“最も近い”プリミティブエリアとを決定した後に、一部の実施形態は両プリミティブエリアを調べて、選択点を改訂する必要があるかを検証する。例えば、始点がエリアA内にあり、終点がエリアA内にあり、且つエリアAが完全にAの境界の内部にあるならば、一部の実施形態は、終点をAの外且つAの中に動かす必要があるかを判定するために更なる分析を実行する。なぜなら、ユーザは終了選択点がエリアA内にあることを意図しないだろうからである。
B.選択インデックスの決定
一部の実施形態では、2つの選択点により規定される連続した選択は、フローにおいて開始選択点に最も近い要素のインデックスで始まり、フローにおいて終了選択点に最も近い要素のインデックスで終わる。開始選択点及び終了選択点に最も近いプリミティブエリアが決定されると、一部の実施形態は相対的に最も近いプリミティブエリアに関する開始選択点及び終了選択点に基づいて開始選択インデックス及び終了選択インデックスを決定する。
グラフィックエリアであるプリミティブエリアについて、一部の実施形態は選択インデックスとして、グラフィックエリアのインデックスを用いる。レイアウトエリアであるプリミティブエリアについて、一部の実施形態はレイアウトエリアの選択カラムに基づいて選択インデックスを決定する。レイアウトエリアが選択カラムを有さないならば、一部の実施形態は選択インデックスを決定するために、選択点からカラムへ最小のx変位を有するカラムを用いる。
このカラム内で、(これが選択カラムであるか最小のx変位を有するカラムであるかにかかわらず、)一部の実施形態は選択点から段落へ最小のy変位を有する段落を決定する。このy変位が非ゼロであり、且つ選択点が段落の上にあるならば、段落の最初のインデックスが選択インデックスとして用いられる。このy変位が非ゼロであり且つ選択点が段落の下にあるならば、段落の最後のインデックスが選択インデックスとして用いられる。他方、このy変位がゼロであり且つ選択点が段落内にあるならば、一部の実施形態は選択点からテキスト行へ最小のy変位を有する段落内のテキスト行を決定することによって選択インデックスを決定する。当該テキスト行内で、選択インデックスを決定するために、選択点から最小のx変位を有する文字又はインライングラフィックが用いられる。
一部の実施形態について、図25は選択点に最も近いプリミティブエリアに基づいて選択インデックスを決定するための処理2500を概念的に説明する。一部の実施形態では、処理2500は開始選択インデックス及び終了選択インデックスを決定するために図17の動作1750及び/又は動作1760の最中に実行される。図25は図26に説明される例を参照して記載される。図26は選択点の位置と選択インデックスの決定との間の関係を説明する。説明されるように、図26はレイアウトエリア2610、2620を含む。図26はまた、レイアウトエリア2610、2620内の選択をそれぞれ実行するための選択点2611、2621を説明する。
図25の処理2500は選択点に最も近いプリミティブエリアとして、あるプリミティブエリアが選択された場合に始まる。一部の実施形態では、選択点に最も近いプリミティブエリアはセクションII−aで上述された基準を用いて決定される。図26に説明される例では、レイアウトエリア2610が選択点に最も近いプリミティブエリアであり、レイアウトエリア2620が選択点2621に最も近いプリミティブエリアである。
処理2500は(2510で)最も近いプリミティブエリアとして選択されたプリミティブエリアがレイアウトエリアであるかを判定する。最も近いプリミティブエリアが複数のインデックスに関連する複数の要素を有するレイアウトエリアであるならば、処理は2520へ進む。図26のプリミティブエリア2610、2620は両方とも複数のインデックスを有する複数の要素を有するレイアウトエリアである。最も近いプリミティブエリアが1つのインデックスに関連する1つの要素だけを有するならば、処理は2515へ進み、選択インデックスとして非レイアウトエリアのインデックスを適用し、終了する。
処理は(2520で)選択カラム又は選択カラムを有さないレイアウトエリアについては最小のx変位を有するカラムを決定する。カラムの決定に基づいて、処理は(2530で)選択カラム内の段落又は最小のy変位を有するカラムのうち最小のx変位を有するカラム内の段落を決定する。図26に説明される例では、選択点2611はカラム2612の段落2614の内部にある。よって、段落2614が選択点2611について最小のy変位を有する選択カラムである。選択点2621について、段落2624が最小のy変位を有する段落である。よって、段落2624が選択点2621についての選択段落である。
次に、処理は(2540で)選択段落のy変位がゼロであるかを判定する。選択段落のy変位がゼロでないならば、処理は2550へ進む。選択段落のy変位がゼロならば、処理は2545へ進み、最小のy変位を有する選択段落内のテキストを決定する。図26に説明される例では、選択点2611は選択段落2614の内部にあり、それ故選択段落のy変位はゼロである。他方、選択点2621はその選択段落2624の下にあり、それ故選択段落のy変位は非ゼロである。
処理は次に(2570で)最小のx変位を有するテキスト行内の文字を識別し、(2580で)文字の境界に対する選択点の位置に基づいて選択インデックスを決定する。選択インデックスを決定した後、処理は終了する。図26に説明される例では、選択点2611から最小のy変位を有するテキスト行はテキスト行2616である。選択点2611から最小のx変位を有するテキスト行2616内の文字は文字2617(単語「upenden」内の文字「u」)である。文字2617の境界に対する選択点2611の位置に基づいて選択インデックスが生成されるだろう。
2550で、処理は選択点が選択段落の上にあるかを判定する。選択点が選択段落の上にあるならば、処理は(2555で)段落の最初のインデックスを選択インデックスとして用いる。選択点が選択段落の下にあるならば、処理は(2560で)段落の最後のインデックスを選択インデックスとして用いる。選択インデックスを決定した後に処理は終了する。図26に説明される例では、選択点2621は選択段落2624の下にある。従って、処理2500は選択段落2624の最後のインデックスを用い、これは一部の実施形態では文字2627(単語「rogeignesizing」の文字「g」)の位置又は文字2627の後ろの位置に対応する。
C.連続した選択の改良
順序リスト内のプリミティブ要素の連続した選択は一部の実施形態で、開始選択インデックスに対応する開始プリミティブ要素で始まり、終了選択インデックスに対応する終了プリミティブ要素で終わるように規定される。開始プリミティブ要素に対する開始選択点の位置(及び終了プリミティブ要素に対する終了選択点の位置)に依存して、一部の実施形態は開始プリミティブ要素又は終了プリミティブ要素を含めるか除くかのいずれかによって連続した選択の開始と終了とをさらに改良する。一部の実施形態では、選択の開始又は終了でプリミティブ要素を含めるか除くかは一般にプリミティブ要素及びその子孫の境界に対して選択点がどこに来るかどうかに依存する。
一部の実施形態では、開始プリミティブ要素のテキスト行の下にあるか又はテキスト行の垂直範囲内にあるが開始プリミティブ要素の中央仕切りの右にある開始選択点によって、開始プリミティブ要素が連続した選択から除かれることになり、テキスト行の上にあるか又はテキスト行の垂直範囲内にあるが開始プリミティブ要素の中央仕切りの左側にある開始選択点によって、開始プリミティブ要素が連続した選択に含まれることになる。一部の実施形態では終了プリミティブ要素について反対も成り立つ。開始プリミティブ要素のテキスト行の下にあるか又はテキスト行の垂直範囲内にあるが開始プリミティブ要素の中央仕切りの右にある終了選択点によって、終了プリミティブ要素が連続した選択に含まれることになり、テキスト行の上にあるか又はテキスト行の垂直範囲内にあるが開始プリミティブ要素の中央仕切りの左側にある終了選択点によって、終了プリミティブ要素が連続した選択から除かれることになる。
一部の実施形態について、図27は連続した選択のどちらかの端部でプリミティブ要素を含めるか除くかを判定する例を説明する。図27は開始プリミティブ要素2710から始まり、終了プリミティブ要素2760で終わる連続した選択2705を有する文書ページ2700を説明する。開始プリミティブ要素2710はレイアウトエリア2701内にあり、終了プリミティブ要素はレイアウトエリア2702内にある。プリミティブ要素2710はテキスト行2715内にある。プリミティブ要素2760はテキスト行2765内にある。一部の実施形態では、プリミティブ要素はインラインではないスタンドアロンオブジェクトでありうる。これらの例では、テキスト行はプリミティブ要素の境界によって規定される。
この図は開始プリミティブ要素2710の近くのいくつかの例示の位置2721−2724を説明する。例示の位置2721は開始プリミティブ要素2710を含むテキスト行2715の上にある。例示の位置2722はプリミティブ要素2710の中央仕切りの左にあり且つテキスト行2715の垂直範囲内にある。例示の位置2723は中央仕切りの右にあり且つテキスト行2715の垂直範囲内にある。例示の位置2724はテキスト行2715の下にある。
一部の実施形態では、連続した選択2705を規定する開始選択点が例示の位置2721、2722のどちらかにあるならば、プリミティブ要素2710は連続した選択に含まれるだろう。他方、開始選択点が位置2723、2724のどちらかにあるならば、プリミティブ要素2710は連続した選択に含まれないだろう。そして、一部の実施形態はプリミティブ要素2710の直後のプリミティブ要素に対応する開始選択インデックスを調整することによって連続した選択を改良する。
図27はまた、終了プリミティブ要素2760の近くのいくつかの例示の位置2771−2774を説明する。例示の位置2771は終了プリミティブ要素2760を含むテキスト行2765の上にある。例示の位置2772はプリミティブ要素2760の中央仕切りの左にあり且つテキスト行2765の垂直範囲内にある。例示の位置2773は中央仕切りの右にあり且つテキスト行2765の垂直範囲内にある。例示の位置2774はテキスト行2765の下にある。
一部の実施形態では、連続した選択2705を規定する終了選択点が例示の位置2773、2774のどちらかにあるならば、プリミティブ要素2760は連続した選択に含まれるだろう。他方、開始選択点が位置2771、2772のどちらかにあるならば、プリミティブ要素2760は連続した選択に含まれないだろう。そして、一部の実施形態はプリミティブ要素2760の直前のプリミティブ要素に対応する終了選択インデックスを調整することによって連続した選択を改良する。
別の実施形態において、プリミティブ要素を含めるか除くかを一貫して判定するためにプリミティブ要素の中心線以外の線が用いられうる。例えば、一部の実施形態では開始プリミティブ要素が含められるかを判定するために開始プリミティブ要素の左の辺又は右の辺が用いられうる。
III.ソフトウェアアーキテクチャ
一部の実施形態では、上述の処理は、コンピュータ又はハンドヘルド装置のような特定の機械で動作するか、コンピュータで読み取り可能な記憶媒体に格納されたソフトウェアとして実施される。図28は一部の実施形態の文書編集アプリケーション2800のソフトウェアアーキテクチャを概念的に説明する。一部の実施形態では、文書編集アプリケーションはスタンドアロンアプリケーションであるか、又は別のアプリケーションに統合されているアプリケーションであるが、他の実施形態ではアプリケーションはオペレーティングシステム内に実装されていてもよい。さらに、一部の実施形態では、アプリケーションはサーバベースソリューションの一部として提供される。これらの実施形態の一部では、アプリケーションはシンクライアントを介して提供される。すなわち、アプリケーションがサーバ上で実行されつつ、当該サーバからリモートにある別の機械を介してユーザはアプリケーションと相互作用する。他のこのような実施形態では、アプリケーションはシッククライアントを介して提供される。すなわち、アプリケーションはサーバからクライアント機械へ配信され、クライアント機械で実行される。
文書編集アプリケーション2800はユーザインタフェース(UI)モジュール2805、順序リスト生成モジュール2820、プリミティブ認識モジュール2810及び連続選択解釈モジュール2830を含む。文書編集アプリケーションはまた、文書ストレージ2855、順序リストストレージ2860及び選択インデックスストレージ2865を含む。一部の実施形態では、ストレージ2855、2860、2865は1つの物理ストレージ2890に格納される。他の実施形態では、当該ストレージは別々の物理ストレージ内にあるか、当該ストレージのうちの2つが1つの物理ストレージ内にあり、第3ストレージが別の物理ストレージ内にある。例えば、文書ストレージ2855、順序リストストレージ2860及び選択インデックスストレージ2865は相異なる物理ストレージに分かれていないこともあるだろう。
図28はまた、入力装置ドライバ(群)2872、ディスプレイモジュール2880及びネットワーク接続インタフェース(群)2874を含むオペレーティングシステム2870を説明する。一部の実施形態では、説明されるように、文書編集アプリケーションがオペレーティングシステムとは別のアプリケーションである場合でも、入力装置ドライバ2872、ディスプレイモジュール2880及びネットワーク接続インタフェース2874はオペレーティングシステム2870の一部である。
入力装置ドライバ2872はキーボード、マウス、タッチパッド、描画タブレット、タッチスクリーンなどからの信号を変換するためのドライバを含んでもよい。ユーザはこれらの入力装置のうちの1つ以上と相互作用し、この1つ以上の入力装置は自身に対応する装置ドライバへ信号を送信する。次いで、装置ドライバは信号をユーザ入力データに変換し、このデータがUIインタラクションモジュール2805へ提供される。
一部の実施形態の文書編集アプリケーション2800は動作及び機能の様々な集合を実行する数多くの方法をユーザに提供するグラフィカルユーザインタフェースを含む。一部の実施形態では、これらの動作及び機能は様々な入力装置(例えば、キーボード、トラックパッド、タッチパッド、マウスなど)を通じてユーザから受信された様々なコマンドに基づいて実行される。例えば、本出願はグラフィカルユーザインタフェース内のオブジェクトを制御(例えば、選択、移動)するためにグラフィカルユーザインタフェース内のカーソルを使用することを説明する。しかしながら、一部の実施形態では、グラフィカルユーザインタフェース内のオブジェクトはまた、タッチコントロールのような他のコントロールを通じて制御又は操作されうる。一部の実施形態では、タッチコントロールは入力装置のディスプレイへのタッチの存在及び位置を検出できる入力装置を通じて実施される。このような機能を有する装置の例は、(例えば、スマートフォン、タブレットコンピュータなどに組み込まれる)タッチスクリーン装置である。タッチコントロールを有する一部の実施形態では、タッチスクリーン装置のディスプレイ上に表示されたグラフィカルユーザインタフェースと相互作用することによって、ユーザはオブジェクトを直接に操作する。例えば、タッチスクリーン装置のディスプレイ上の特定のオブジェクトを単にタッチすることによって、ユーザはグラフィカルユーザインタフェース内の特定のオブジェクトを選択できる。このようなものとして、タッチコントロールが利用される場合に、一部の実施形態ではグラフィカルユーザインタフェースのオブジェクトを選択可能にするためのカーソルが提供されなくてもよい。しかしながら、グラフィカルユーザインタフェース内にカーソルが提供される場合に、一部の実施形態ではカーソルを制御するためにタッチコントロールが用いられうる。
ディスプレイモジュール2880はユーザインタフェースの出力をディスプレイ装置のために変換する。すなわち、ディスプレイモジュール2880は何を表示すべきかを記述する信号を(例えばUIインタラクションモジュール2805から)受信し、これらの信号を画素情報に変換してディスプレイ装置へ送信する。ディスプレイ装置はLCD、プラズマスクリーン、CRTモニタ、タッチスクリーンなどであってもよい。
ネットワーク接続インタフェース2874は、文書編集アプリケーション2800が動作する装置を、1つ以上のネットワークを通じて他の装置(例えば、処理される必要のある文書を格納するネットワーク内の他の場所にあるストレージ)と通信可能にする。ネットワークはGSMやUMTSのような無線音声・データネットワーク、802.11ネットワーク、イーサネット接続のような有線ネットワークなどを含んでもよい。
文書編集アプリケーション2800のUIインタラクションモジュール2805は入力装置ドライバから受信したユーザ入力データを解釈し、それを様々なモジュールへ渡す。この様々なモジュールはプリミティブ認識モジュール2810、順序リスト生成モジュール2820及び連続選択解釈モジュール2830を含む。UIインタラクションモジュール2805はまた、UIの表示を管理し、このディスプレイ情報をディスプレイモジュール2880へ出力する。このUI表示情報は、連続選択解釈モジュール2830からの情報、順序リスト生成モジュール2820からの情報、プリミティブ認識モジュール2810からの情報、又は(例えばユーザがアプリケーション2800の他のモジュールのどれにも影響を与えないUI内のアイテムを動かす場合に)入力データからの直接の情報に基づいてもよい。
プリミティブ認識モジュール2810はユーザインタフェースモジュール2805からコマンドを受信し、文書ストレージ2855に格納された文書ページを文字、段落、カラム、レイアウトエリア及びグラフィックエリアのようなプリミティブに処理する。一部の実施形態では、プリミティブ認識モジュール2810はまた、ページ内の可視の仕切りに従ってプリミティブを区画にグループ分けする木構造のような構造を作成する。
順序リスト生成モジュール2820はユーザインタフェースモジュール2805からコマンドを受信し、プリミティブ認識モジュール2810によって認識されたプリミティブを用いて順序リストを生成する。一部の実施形態では、順序リスト生成モジュール2820は図8〜図16を参照して上述されたような始点関係順序及び文脈的関係順序を実行するサブモジュールを含む。順序リスト生成モジュール2820によって生成された順序リストは順序リストストレージ2860に格納される。一部の実施形態では、順序リスト生成モジュール2820はまた、リスト内の各プリミティブに順序インデックスを割り当てる。
連続選択解釈モジュール2830はユーザインタフェースモジュール2805からコマンドを受信し、開始選択点及び終了選択点を生成する。一部の実施形態では、開始選択点及び終了選択点はユーザインタフェースモジュール2805により供給されたユーザ選択座標のペアに基づいて生成される。次いで、連続選択解釈モジュール2830は順序リストストレージ2860を検索して、順序リスト内で開始選択点及び終了選択点に最も近いプリミティブを識別する。識別されたプリミティブに基づいて、連続選択解釈モジュール2830はユーザインタフェースモジュール2805のために開始選択インデックス及び終了選択インデックスを生成する。
機能の多くは1つのモジュール(例えば、順序リスト生成モジュール2820又は連続選択解釈モジュール2830)によって実行されるように記載されてきたが、当業者は本明細書に記載される機能が複数のモジュールに分割されてもよいことを認識するだろう。同様に、複数の相異なるモジュールによって実行されるものとして記載された機能(例えば、始点順序関係の比較、文脈的順序関係の比較など)は一部の実施形態では単一のモジュールによって実行されてもよい。
IV.電子システム
上述の機能及びアプリケーションの多くは、(コンピュータで読み取り可能な記憶媒体とも呼ばれる)コンピュータで読み取り可能なストレージに記録された命令セットとして特定されるソフトウェア処理として実施される。これらの命令が1つ以上の計算部又は処理部(例えば、1つ以上のプロセッサ、プロセッサコア又は他の処理部)によって実行される場合に、これらの命令は処理部(群)に命令で示される動作を実行させる。コンピュータで読み取り可能な記憶媒体の例は、CD−ROM、フラッシュドライブ、ランダムアクセスメモリ(RAM)チップ、ハードドライブ、消去可能なプログラマブルリードオンリメモリ(EPROM)、電気的に消去可能なプログラマブルリードオンリメモリ(EEPROM)などを含むがこれらに限定されない。コンピュータで読み取り可能な記憶媒体は搬送波を含まず、無線接続又は有線接続を通じて伝わる電子信号を含まない。
本明細書では、「ソフトウェア」という用語は、プロセッサによる処理のためにメモリに読み出されうる、リードオンリメモリ内に存在するファームウェア又は磁気ストレージに格納されたアプリケーションを含むことを意味する。また、一部の実施形態では、複数のソフトウェア発明は特徴的なソフトウェア発明を残しつつ、より大きなソフトウェアの一部として実施されうる。一部の実施形態では、複数のソフトウェア発明はまた、別個のプログラムとして実装されうる。最後に、本明細書に記載されたソフトウェア発明を一緒になって実施する別々のプログラムの任意の組合せが本発明の範囲内に入る。一部の実施形態では、1つ以上の電子システム上で動作するようにインストールされた場合に、ソフトウェアプログラムはソフトウェアプログラムの動作を実行する1つ以上の個別の機械実装を規定する。
図29は本発明の一部の実施形態が実施される電子システム2900を概念的に説明する。電子システム2900はコンピュータ(例えば、デスクトップコンピュータ、パーソナルコンピュータ、タブレットコンピュータなど)、電話機、PDA又は任意の他の種類の電子装置であってもよい。このような電子システムは様々なタイプのコンピュータで読み取り可能な記憶媒体及び様々な他のタイプのコンピュータで読み取り可能な記憶媒体とのインタフェースを含む。電子システム2900は、バス2905、処理部(群)2910、グラフィックス処理部(GPU)2915、システムメモリ2920、ネットワーク2925、リードオンリメモリ2930、固定ストレージ装置2935、入力装置2940及び出力装置2945を含む。
バス2905は電子システム2900の数多くの内部装置を通信可能に接続するシステムバス、周辺機器バス及びチップセットバスのすべてを集合的に表す。例えば、バス2905は処理部(群)2910を、リードオンリメモリ2930、GPU2915、システムメモリ2920及び固定ストレージ装置2935に通信可能に接続する。
これらの様々なメモリ部から、処理部(群)2910は本発明の処理を実行するために実行すべき命令と処理すべきデータとを読み出す。処理部(群)は様々な実施形態において単一のプロセッサであってもよいし、マルチコアプロセッサであってもよい。一部の命令はGPU2915に渡されて実行される。GPU2915は様々な計算をオフロードでき、処理部(群)2910により提供される画像処理を補完できる。一部の実施形態では、このような機能はコアイメージのカーネルシェイディング言語を用いて提供されうる。
リードオンリメモリ(ROM)2930は電子システムの処理部(群)2910及び他のモジュールが必要とする静的データ及び命令を格納する。他方、固定ストレージ装置2935は読み書き可能メモリ装置である。この装置は電子システム2900がオフになった場合でも命令及びデータを格納する不揮発性メモリ部である。本発明の一部の実施形態は固定ストレージ装置2935として(磁気ディスク又は光学ディスク及びその対応するディスクドライブのような)大容量ストレージ装置を用いる。
他の実施形態は固定ストレージ装置として(フロッピーディスク、フラッシュメモリ装置など及びその対応するディスクドライブのような)取り外し可能ストレージ装置を用いる。固定ストレージ装置2935と同様に、システムメモリ2920は読み書き可能メモリ装置である。しかしながら、ストレージ装置2935とは異なり、システムメモリ2920はランダムアクセスメモリのような揮発性読み書き可能メモリである。システムメモリ2920は実行時にプロセッサが必要とする命令及びデータの一部を格納する。一部の実施形態では、本発明の処理はシステムメモリ2920、固定ストレージ装置2935及び/又はリードオンリメモリ2930に格納される。例えば、様々なメモリ部は一部の実施形態に従ってマルチメディアクリップを処理するための命令を含む。これらの様々なメモリ部から、処理部(群)2910は一部の実施形態の処理を実行するために実行すべき命令及び処理すべきデータを読み出す。
バス2905はまた、入力装置2940及び出力装置2945に接続する。入力装置2940により、ユーザは電子システムと情報を通信し、電子システムへのコマンドを選択することができる。入力装置2940は英数字キーボード及び(「カーソル制御装置」とも呼ばれる)ポインティング装置、カメラ(例えば、ウェブカメラ)、マイク又は音声コマンドを受信するための同様の装置などを含む。出力装置2945は電子システムにより生成された画像を表示するか、他の方法でデータを出力する。出力装置2945はプリンタや、ブラウン管(CRT)又は液晶ディスプレイ(LCD)のようなディスプレイ装置だけでなく、スピーカ又は同様のオーディオ出力装置を含む。一部の実施形態は入力装置と出力装置との両方として機能するタッチスクリーンのような装置を含む。
最後に、図29に示されるように、バス2905はまた、ネットワークアダプタ(不図示)を通じてネットワーク2925に電子システム2900を結合する。このように、コンピュータは、(ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)又はイントラネットのような)コンピュータネットワーク又はインターネットのような複数のネットワークを含むネットワークの一部でありうる。電子システム2900の任意又はすべてのコンポーネントが本発明に関連して用いられてもよい。
一部の実施形態はマイクロプロセッサ、(コンピュータで読み取り可能な記憶媒体、機械で読み取り可能な媒体又は機械で読み取り可能な記憶媒体と呼ばれることもある)機械で読み取り可能な媒体又はコンピュータで読み取り可能な媒体内にコンピュータプログラム命令を格納するストレージ及びメモリのような電子コンポーネントを含む。このようなコンピュータで読み取り可能な媒体の一部の例は、RAM、ROM、リードオンリコンパクトディスク(CD−ROM)、レコーダブルコンパクトディスク(CD−R)、リライタブルコンパクトディスク(CD−RW)、リードオンリデジタル多目的ディスク(例えば、DVD−ROM、二層DVD−ROM)、様々なレコーダブル/リライタブルDVD(例えば、DVD−RAM、DVD−RW、DVD+RWなど)、フラッシュメモリ(例えば、SDカード、ミニSDカード、マイクロSDカードなど)、磁気ハードドライブ及び/又は半導体ハードドライブ、リードオンリブルーレイディスク及びレコーダブルブルーレイディスク、ウルトラデンシティ光学ディスク、任意の他の光学又は磁気メディア、及びフロッピーディスクを含む。コンピュータで読み取り可能な媒体は少なくとも1つの処理部によって実行可能であり、様々な動作を実行するための命令を含むコンピュータプログラムを格納してもよい。コンピュータプログラム又はコンピュータコードの例は、コンパイラによって生成されるような機械コード、及びインタプリタを用いてコンピュータ、電子コンポーネント又はマイクロプロセッサによって実行されるハイレベルコードを含むファイルを含む。
上記の記載は主にソフトウェアを実行するマイクロプロセッサ又はマルチコアプロセッサを参照してきたが、一部の実施形態は特定用途向け集積回路(ASIC)又はフィールドプログラマブルゲートアレイ(FPGA)のような1つ以上の集積回路によって実行されてもよい。一部の実施形態では、このような集積回路が回路自体に格納された命令を実行する。さらに、一部の実施形態はプログラマブル論理装置(PLD)、ROM、RAM装置に格納されたソフトウェアを実行する。
本明細書及び本願の任意の請求項で用いられる場合に、「コンピュータ」、「サーバ」、「プロセッサ」及び「メモリ」という用語はすべて電子装置または他の技術的な装置を参照する。これらの用語は人又は人のグループを除く。本明細書のために、表示又は表示するという用語は電子装置に表示することを意味する。本明細書及び本願の任意の請求項で用いられる場合に、「コンピュータで読み取り可能な媒体」、「コンピュータで読み取り可能なメディア」及び「機械で読み取り可能な媒体」という用語は、コンピュータで読み取り可能な形式で情報を格納する有形で物理的な物体に限定される。これらの用語は無線信号、有線ダウンロード信号及び他の任意の一時的な信号を含まない。
本発明は数多くの個別の詳細を参照しつつ記載されてきたが、本発明の精神を逸脱せずに本発明が他の個別の形式に具現化されうることを当業者は認識するだろう。さらに、(図9、図14、図17、図25及び図26を含む)複数の図面は処理を概念的に説明する。これらの処理の個別の動作は、示され記載された正確な順序で実行されなくてもよい。個別の動作は1つの連続した一連の動作で実行されなくてもよいし、様々な個別の動作が様々な実施形態で実行されてもよい。さらに、処理はいくつかの部分処理を用いて実行されてもよいし、より大きなマクロ処理の一部として実行されてもよい。よって、本発明は上述の例示の詳細によって限定されず、添付の特許請求の範囲によって規定されることを当業者は理解するだろう。
ある実施形態では、1つ以上の処理部が実行するためのコンピュータプログラムを格納する、コンピュータで読み取り可能な記憶媒体であって、前記コンピュータプログラムは、文書のページ内のプリミティブエリアの選択を識別するために、前記ページ内のプリミティブエリアの順序リストを受信するための命令セットと、前記ページ内の位置を特定する選択点を受信するための命令セットと、前記選択点により特定される前記位置に最も近いプリミティブエリアを識別するための命令セットと、前記プリミティブエリアの前記順序リスト内の前記最も近いプリミティブエリアの位置に基づいて選択インデックスを割り当てるための命令セットとを含むことを特徴とする記憶媒体が提供される。
別の実施形態では、前記選択点は第1選択点であり、前記識別された選択インデックスは第1選択インデックスであり、前記最初の選択点に最も近い前記識別されたプリミティブエリアは第1プリミティブエリアであり、前記コンピュータプログラムは、前記ページ内の第2位置を特定する第2選択点を受信するための命令セットと、前記第2選択点に最も近い第2プリミティブエリアを識別するための命令セットと、前記プリミティブエリアの前記順序リスト内の前記第2プリミティブエリアの前記位置に基づいて第2選択インデックスを割り当てるための命令セットとを含む。
別の実施形態では、前記コンピュータで読み取り可能な記憶媒体は、前記第1選択インデックスで始まり前記第2選択インデックスで終わるプリミティブエリアの選択を規定するための命令セットをさらに含む。
別の実施形態では、前記選択点に最も近いプリミティブエリアを識別するための命令セットは、プリミティブエリアの集合から前記選択点への変位値を比較するための命令セットを含む。
別の実施形態では、前記選択点に最も近いプリミティブエリアを識別するための命令セットは、比較基準の集合に従ってプリミティブエリアの集合を比較するための命令セットを含み、前記選択点に最も近いプリミティブエリアを識別するために優先度が高い比較基準を使用できない場合に優先度が低い比較基準が使用される。
別の実施形態では、前記選択点に最も近いプリミティブエリアは読み取りフローに基づいて決定される。
別の実施形態では、前記最も近いプリミティブエリアの位置に基づいて選択インデックスを割り当てるための命令セットは、前記最も近いプリミティブエリア内の要素に関連するインデックスを識別するための命令セットを含む。
別の実施形態では、前記最も近いプリミティブエリア内の前記要素は前記プリミティブエリア内の文字である。
別の実施形態では、前記要素は段落であり、前記インデックスは前記段落に関連する最後のインデックスである。
別の実施形態では、文書コンテンツのプリミティブ要素の配列を受信する工程であって、前記プリミティブ要素は複数のプリミティブエリアに構造化されている、工程と、前記ページ内の第1位置を特定する第1選択点を受信する工程と、前記第1選択点によって特定される位置に最も近い第1プリミティブエリア内の第1プリミティブ要素を識別する工程と、前記ページ内の第2位置を特定する第2選択点を受信する工程と、前記第2選択点によって特定される位置に最も近い第2プリミティブエリア内の第2プリミティブ要素を識別する工程であって、前記第1プリミティブエリアと前記第2プリミティブエリアとは互いに異なるプリミティブエリアである、工程と、前記順序リストで前記第1プリミティブ要素と前記第2プリミティブ要素との間にあるすべてのプリミティブ要素を選択する工程とを有する方法が提供される。
別の実施形態では、前記第1プリミティブエリアはレイアウトエリアであり、前記第1プリミティブ要素は前記レイアウトエリア内の文字グリフである。
別の実施形態では、前記第1選択点によって特定される位置に最も近い前記第1プリミティブ要素を識別する工程は、前記第1プリミティブエリアの読み取りフローにおいて前記第1選択点に最も近いプリミティブ要素を含む第1プリミティブエリアを識別する工程を含む。
別の実施形態では、前記第1プリミティブ要素を識別する工程は、プリミティブエリアの集合から前記第1選択点までの変位値を比較する工程を含む。
別の実施形態では、前記第1プリミティブ要素を識別する工程は、比較基準の集合に従ってプリミティブエリアの集合を比較する工程を含み、前記選択点に最も近いプリミティブエリアを識別するために優先度が高い比較基準を使用できない場合に優先度が低い比較基準が使用される。
別の実施形態では、前記方法は前記選択されたプリミティブ要素を出力する工程をさらに含む。
別の実施形態では、1つ以上の処理部で実行されるコンピュータプログラムを格納する、コンピュータで読み取り可能な記憶媒体であって、前記コンピュータプログラムは、プリミティブエリアの配列を受信するための命令セットであって、前記プリミティブエリアのそれぞれは少なくとも1つのプリミティブ要素を含む、命令セットと、前記ページ内の第1位置を特定する第1選択点を受信するための命令セットと、前記第1選択点によって特定される位置に最も近い第1プリミティブ要素を識別するための命令セットと、前記ページ内の第2位置を特定する第2選択点を受信するための命令セットと、前記第2選択点によって特定される位置に最も近い第2プリミティブ要素を識別するための命令セットであって、前記第1プリミティブエリアと前記第2プリミティブエリアとは互いに異なるプリミティブエリアである、ための命令セットと、前記順序リストで前記第1プリミティブ要素と前記第2プリミティブ要素との間にあるすべてのプリミティブ要素を識別するための命令セットとを有することを特徴とする記憶媒体が提供される。
別の実施形態では、前記第1プリミティブエリアはレイアウトエリアであり、前記第1プリミティブ要素は前記レイアウトエリア内の文字グリフである。
別の実施形態では、前記第1選択点によって特定される位置に最も近い前記第1プリミティブ要素を識別するための命令セットは、前記第1プリミティブエリアの読み取りフローにおいて前記第1選択点に最も近いプリミティブ要素を含む第1プリミティブエリアを識別するための命令セットを含む。
別の実施形態では、前記第1プリミティブ要素を識別するための命令セットは、プリミティブエリアの集合から前記第1選択点までの変位値を比較するための命令セットを含む。
別の実施形態では、前記第1プリミティブ要素を識別するための命令セットは、比較基準の集合に従ってプリミティブエリアの集合を比較するための命令セットを含み、前記選択点に最も近いプリミティブエリアを識別するために優先度が高い比較基準を使用できない場合に優先度が低い比較基準が使用される。
別の実施形態では、前記コンピュータで読み取り可能な記憶媒体は前記選択されたプリミティブ要素を出力するための命令セットをさらに含む。

Claims (20)

  1. 記憶媒体に格納された書ページの複数のプリミティブエリアの読み取り順序を規定するための方法であって、前記方法は1つ以上の処理部によって実行され、
    前記文書ページ内の前記複数のプリミティブエリアの位置に基づく第1ソート基準に従って前記複数のプリミティブエリアをプリミティブエリアのソート済シーケンスにソートする工程と、
    第1プリミティブエリア及び第2プリミティブエリアを含む、前記ソート済シーケンス内で連続しているプリミティブエリアのペアを選択する工程と、
    一次エリア及び二次エリアを決定するために、前記第1プリミティブエリアの座標系での前記第1プリミティブエリアの始点と前記第2プリミティブエリアの始点とを比較するとともに前記第2プリミティブエリアの座標系での前記第1プリミティブエリアの始点と前記第2プリミティブエリアの始点とを比較する第2ソート基準に基づいて、前記第1プリミティブエリアと前記第2プリミティブエリアとのうちの一方を前記一次エリアとして指定し、他方を前記二次エリアとして指定する工程と、
    前記第2ソート基準に従って、前記二次エリアに対して前記一次エリアの前記始点の位置を比較する工程と、
    前記二次エリアに対する前記一次エリアの前記始点の前記比較が前記第2ソート基準を満たす場合に、前記プリミティブエリアのソート済シーケンス内の前記第1プリミティブエリアと前記第2プリミティブエリアとを入れ換える工程と、
    前記入れ換わったプリミティブエリアのシーケンスに基づいて前記複数のプリミティブエリアの読み取り順序を規定するための順序リストを生成する工程と
    を有することを特徴とする方法。
  2. 第2ソート基準に基づいて、前記第1プリミティブエリアと前記第2プリミティブエリアとのうちの一方を前記一次エリアとして指定し、他方を前記二次エリアとして指定する前記工程は、
    記第1プリミティブエリアの始点及び前記第2プリミティブエリアの始点を識別する工程と、
    前記ページの座標系の下で識別された前記第1プリミティブエリアの始点と前記第2プリミティブエリアの始点とを比較する工程と、
    さらに含むことを特徴とする請求項1に記載の方法。
  3. 前記第1ソート基準は、前記複数のプリミティブエリアの始点の比較にさらに基づき、前記第2ソート基準は前記連続している2つのプリミティブエリアのうちの1つの読み取りフローにさらに基づくことを特徴とする請求項1に記載の方法。
  4. 前記一次エリアの始点が前記二次エリアの先行領域内にある場合に前記一次エリアは前記二次エリアの前にあることを特徴とする請求項に記載の方法。
  5. 前記一次エリアの始点が前記二次エリアの後続領域内にある場合に前記一次エリアは前記二次エリアの後にあることを特徴とする請求項に記載の方法。
  6. 前記二次エリアの座標において重なる水平範囲を有する前記二次エリアのすべてのカラムの完全に上に前記一次エリアの内部領域が位置し、且つこのようなカラムが2つ以上存在する場合に、前記一次エリアは前記二次エリアの前にあることを特徴とする請求項に記載の方法。
  7. 前記入れ換わったシーケンス内のプリミティブエリアの位置に従って前記複数のプリミティブエリアのそれぞれに順序インデックスを割り当てる工程をさらに有することを特徴とする請求項に記載の方法。
  8. 前記複数のプリミティブエリアを1つ以上の区画にグループ分けする工程をさらに有することを特徴とする請求項1に記載の方法。
  9. 前記複数のプリミティブエリアのグループ分けと、前記入れ換わったシーケンス内の前記プリミティブエリアの位置とに従って、前記複数のプリミティブエリアのそれぞれに順序インデックスを割り当てる工程をさらに有することを特徴とする請求項8に記載の方法。
  10. 少なくとも1つの処理部によって実行された場合に書ページの複数のプリミティブエリアの読み取り順序を規定するプログラムを格納する、機械で読み取り可能な記憶媒体であって、前記プログラムは、
    前記文書ページ内の前記複数のプリミティブエリアの複数の始点を比較する第1ソート基準に基づいて前記複数のプリミティブエリアをプリミティブエリアのソート済シーケンスにソートするための命令セットであって、前記ソート済シーケンスは、第1プリミティブエリアと、前記シーケンスにおいて前記第1プリミティブエリアに後続する第2プリミティブエリアとを含む、命令セットと、
    前記第2プリミティブエリアに先行する領域及び前記第2プリミティブエリアに後続する領域に関して前記第1プリミティブエリアの始点の位置を比較する第2ソート基準に従って前記第1プリミティブエリアと前記第2プリミティブエリアとを比較するための命令セットと、
    前記第1プリミティブエリアの前記始点が前記第2プリミティブエリアに後続する前記領域内にある場合に、前記ソートシーケンス内の前記第1プリミティブエリアと前記第2プリミティブエリアとを入れ換えるための命令セットと、
    前記入れ換わったプリミティブエリアのシーケンスに基づいて前記複数のプリミティブエリアの読み取り順序を規定するための順序リストを生成するための命令セットと
    を含むことを特徴とする記憶媒体。
  11. 前記プログラムは、前記入れ換わったシーケンスのプリミティブエリアの位置に従って前記複数のプリミティブエリアのそれぞれに順序インデックスを割り当てるための命令セットをさらに含むことを特徴とする請求項10に記載の記憶媒体。
  12. 前記第2プリミティブエリアに先行する前記領域は前記第プリミティブエリアの読み取りフローにおいて前記第プリミティブエリアに先行する前記文書ページ内の領域を含み、前記第2プリミティブエリアに後続する前記領域は前記第プリミティブエリアの前記読み取りフローにおいて前記第プリミティブエリアに後続する前記文書ページ内の領域を含むことを特徴とする請求項10に記載の記憶媒体。
  13. 前記第プリミティブエリアの前記読み取りフローは、前記第プリミティブエリアと前記文書ページにおける水平線との間の角度に基づくことを特徴とする請求項12に記載の記憶媒体。
  14. 前記複数の始点のそれぞれは垂直座標及び水平座標を有し、前記第1ソート基準は前記複数の始点の垂直座標比較することを特徴とする請求項10に記載の記憶媒体
  15. 前記第1ソート基準は、2つのプリミティブエリアの垂直座標が閾値以下だけ異なる場合に前記複数の始点の水平座標を比較することを特徴とする請求項14に記載の記憶媒体
  16. 少なくとも1つの処理部で実行された場合に文書ページの複数のプリミティブエリアの読み取り順序を規定するプログラムを格納する、機械で読み取り可能な記憶媒体であって、前記プログラムは、
    前記文書ページ内の前記複数のプリミティブエリアの位置に基づく第1ソート基準に従って前記複数のプリミティブエリアをプリミティブエリアのソート済シーケンスにソートするための命令セットと、
    第1プリミティブエリア及び第2プリミティブエリアを含む、前記ソート済シーケンス内で連続しているプリミティブエリアのペアを選択するための命令セットと、
    一次エリア及び二次エリアを決定するために、前記第1プリミティブエリアの座標系での前記第1プリミティブエリアの始点と前記第2プリミティブエリアの始点との比較及び前記第2プリミティブエリアの座標系での前記第1プリミティブエリアの始点と前記第2プリミティブエリアの始点との比較に基づいて、前記第1プリミティブエリアと前記第2プリミティブエリアとのうちの一方を前記一次エリアとして指定し、他方を前記二次エリアとして指定するための命令セットと、
    第2ソート基準に従って、前記二次エリアに対して前記一次エリアの前記始点の位置を比較するための命令セットと、
    前記二次エリアに対する前記一次エリアの前記始点の前記比較が前記第2ソート基準を満たす場合に、前記プリミティブエリアの前記ソート済シーケンス内の前記連続した2つのプリミティブエリアを入れ換えるための命令セットと、
    前記入れ換わったプリミティブエリアのシーケンスに基づいて前記複数のプリミティブエリアの読み取り順序を規定するための順序リストを生成するための命令セットと
    を有することを特徴とする記憶媒体。
  17. 前記第1ソート基準は前記複数のプリミティブエリアの複数の始点の比較にさらに基づくことを特徴とする請求項16に記載の記憶媒体。
  18. 前記第2ソート基準は前記連続した2つのプリミティブエリアのうちの1つプリミティブエリアの読み取りフローにさらに基づくことを特徴とする請求項16に記載の記憶媒体。
  19. 前記連続した2つのプリミティブエリアのうちの1つのプリミティブエリアは、文字グリフを含むレイアウトエリアであることを特徴とする請求項18に記載の記憶媒体。
  20. 特定のプリミティブエリアの読み取りフローは、前記特定のプリミティブエリアと前記文書ページ内の水平線との間の角度に基づくことを特徴とする請求項18に記載の記憶媒体。
JP2012007331A 2011-01-18 2012-01-17 文書コンテンツの順序付け Active JP5789525B2 (ja)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US201161433951P 2011-01-18 2011-01-18
US201161433952P 2011-01-18 2011-01-18
US61/433,952 2011-01-18
US61/433,951 2011-01-18
US13/109,921 US8543911B2 (en) 2011-01-18 2011-05-17 Ordering document content based on reading flow
US13/109,918 2011-05-17
US13/109,918 US8549399B2 (en) 2011-01-18 2011-05-17 Identifying a selection of content in a structured document
US13/109,921 2011-05-17

Publications (2)

Publication Number Publication Date
JP2012155714A JP2012155714A (ja) 2012-08-16
JP5789525B2 true JP5789525B2 (ja) 2015-10-07

Family

ID=46491687

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012007331A Active JP5789525B2 (ja) 2011-01-18 2012-01-17 文書コンテンツの順序付け

Country Status (6)

Country Link
US (2) US8543911B2 (ja)
JP (1) JP5789525B2 (ja)
KR (2) KR101376440B1 (ja)
AU (1) AU2012200144B2 (ja)
TW (1) TWI461934B (ja)
WO (1) WO2012099801A2 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8719701B2 (en) * 2009-01-02 2014-05-06 Apple Inc. Identification of guides and gutters of a document
US9251123B2 (en) * 2010-11-29 2016-02-02 Hewlett-Packard Development Company, L.P. Systems and methods for converting a PDF file
US8543911B2 (en) 2011-01-18 2013-09-24 Apple Inc. Ordering document content based on reading flow
KR101812380B1 (ko) 2012-01-23 2017-12-26 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 공식 검출 엔진
CN103366031A (zh) * 2012-04-09 2013-10-23 鸿富锦精密工业(深圳)有限公司 Cad对象与树形对象整合系统及方法
US9292192B2 (en) * 2012-04-30 2016-03-22 Blackberry Limited Method and apparatus for text selection
US20140258852A1 (en) * 2013-03-11 2014-09-11 Microsoft Corporation Detection and Reconstruction of Right-to-Left Text Direction, Ligatures and Diacritics in a Fixed Format Document
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
CA2849560A1 (en) * 2013-04-22 2014-10-22 Pierre Hamel Optical character recognition of text in an image according to a prioritized processing sequence
CN103472998B (zh) * 2013-09-27 2017-03-15 小米科技有限责任公司 一种选取文字的方法、装置和终端设备
US9377949B2 (en) 2013-09-27 2016-06-28 Xiaomi Inc. Method and terminal device for selecting character
TWI536798B (zh) 2014-08-11 2016-06-01 虹光精密工業股份有限公司 影像分檔方法
CN105653549A (zh) * 2014-11-12 2016-06-08 北大方正集团有限公司 一种提取文档信息的方法及装置
US10353986B2 (en) * 2015-08-02 2019-07-16 Apple Inc. Automatically dividing text into multiple columns
JP6805552B2 (ja) * 2016-05-26 2020-12-23 コニカミノルタ株式会社 情報処理装置及びプログラム
JP6665823B2 (ja) * 2017-03-30 2020-03-13 京セラドキュメントソリューションズ株式会社 画像形成装置
US10339212B2 (en) * 2017-08-14 2019-07-02 Adobe Inc. Detecting the bounds of borderless tables in fixed-format structured documents using machine learning
US10936864B2 (en) * 2018-06-11 2021-03-02 Adobe Inc. Grid layout determination from a document image
US11182542B2 (en) * 2018-10-29 2021-11-23 Microsoft Technology Licensing, Llc Exposing annotations in a document
US11176310B2 (en) * 2019-04-01 2021-11-16 Adobe Inc. Facilitating dynamic document layout by determining reading order using document content stream cues
CN110659640B (zh) * 2019-09-27 2021-11-30 深圳市商汤科技有限公司 文本序列的识别方法及装置、电子设备和存储介质
US11657101B2 (en) * 2020-01-13 2023-05-23 Goldman Sachs & Co. LLC Document information extraction system using sequenced comparators
US10970458B1 (en) * 2020-06-25 2021-04-06 Adobe Inc. Logical grouping of exported text blocks
US11531454B2 (en) * 2020-12-10 2022-12-20 Microsoft Technology Licensing, Llc Selecting content in ink documents using a hierarchical data structure
CN115952775A (zh) * 2021-10-08 2023-04-11 北京字跳网络技术有限公司 文档的处理方法、装置、终端和存储介质
US20240054280A1 (en) * 2022-08-09 2024-02-15 Ivalua S.A.S. Segmenting an Unstructured Set of Data

Family Cites Families (129)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4698625A (en) * 1985-05-30 1987-10-06 International Business Machines Corp. Graphic highlight adjacent a pointing cursor
JPH0685128B2 (ja) * 1987-03-12 1994-10-26 フアナツク株式会社 自動プログラミングシステム
JP2855797B2 (ja) 1990-06-15 1999-02-10 富士ゼロックス株式会社 文書処理装置
US5396582A (en) * 1991-02-06 1995-03-07 Hewlett-Packard Company Raster to vector conversion system and method therefor
JP3143499B2 (ja) * 1991-08-21 2001-03-07 キヤノン株式会社 焦点調節装置
JPH0594433A (ja) 1991-10-02 1993-04-16 Fuji Xerox Co Ltd 文書処理装置
US5390259A (en) 1991-11-19 1995-02-14 Xerox Corporation Methods and apparatus for selecting semantically significant images in a document image without decoding image content
US5757358A (en) * 1992-03-31 1998-05-26 The United States Of America As Represented By The Secretary Of The Navy Method and apparatus for enhancing computer-user selection of computer-displayed objects through dynamic selection area and constant visual feedback
US5335290A (en) 1992-04-06 1994-08-02 Ricoh Corporation Segmentation of text, picture and lines of a document image
US5680479A (en) 1992-04-24 1997-10-21 Canon Kabushiki Kaisha Method and apparatus for character recognition
US5523775A (en) 1992-05-26 1996-06-04 Apple Computer, Inc. Method for selecting objects on a computer display
JP2789971B2 (ja) 1992-10-27 1998-08-27 富士ゼロックス株式会社 表認識装置
US5848184A (en) 1993-03-15 1998-12-08 Unisys Corporation Document page analyzer and method
JP3302147B2 (ja) 1993-05-12 2002-07-15 株式会社リコー 文書画像処理方法
NL9301004A (nl) 1993-06-11 1995-01-02 Oce Nederland Bv Inrichting voor het bewerken en reproduceren van digitale beeldinformatie.
US5553217A (en) 1993-09-23 1996-09-03 Ricoh Company, Ltd. Document layout using tiling
JP2511804B2 (ja) * 1993-11-16 1996-07-03 日本アイ・ビー・エム株式会社 多重指示点カ―ソルをもつデ―タ処理装置及び多重指示点カ―ソルを利用するデ―タ処理方法
JP2618832B2 (ja) 1994-06-16 1997-06-11 日本アイ・ビー・エム株式会社 文書の論理構造の解析方法及びシステム
US5537628A (en) 1994-08-29 1996-07-16 Microsoft Corporation Method for handling different code pages in text
US5555556A (en) 1994-09-30 1996-09-10 Xerox Corporation Method and apparatus for document segmentation by background analysis
EP0723247B1 (en) 1995-01-17 1998-07-29 Eastman Kodak Company Document image assessment system and method
US5848186A (en) 1995-08-11 1998-12-08 Canon Kabushiki Kaisha Feature extraction system for identifying text within a table image
JPH0969101A (ja) 1995-08-31 1997-03-11 Hitachi Ltd 構造化文書生成方法および装置
US5892842A (en) * 1995-12-14 1999-04-06 Xerox Corporation Automatic method of identifying sentence boundaries in a document image
US5841900A (en) 1996-01-11 1998-11-24 Xerox Corporation Method for graph-based table recognition
US5784487A (en) 1996-05-23 1998-07-21 Xerox Corporation System for document layout analysis
JP3061765B2 (ja) 1996-05-23 2000-07-10 ゼロックス コーポレイション コンピュータベースの文書処理方法
US5777616A (en) * 1996-08-05 1998-07-07 International Business Machines Corporation Data processing system and method for invoking a function of a multifunction icon in a graphical user interface
US6728784B1 (en) * 1996-08-21 2004-04-27 Netspeak Corporation Collaborative multimedia architecture for packet-switched data networks
US5956737A (en) 1996-09-09 1999-09-21 Design Intelligence, Inc. Design engine for fitting content to a medium
US6512848B2 (en) 1996-11-18 2003-01-28 Canon Kabushiki Kaisha Page analysis system
GB9625284D0 (en) 1996-12-04 1997-01-22 Canon Kk A data processing method and apparatus for identifying a classification to which data belongs
US6240430B1 (en) 1996-12-13 2001-05-29 International Business Machines Corporation Method of multiple text selection and manipulation
EP0926629A1 (en) * 1997-01-24 1999-06-30 Sony Corporation Pattern data generator, pattern data generating method and its medium
US6374200B1 (en) * 1997-02-03 2002-04-16 Fujitsu Limited Layout apparatus for laying out objects in space and method thereof
US6049326A (en) * 1997-05-12 2000-04-11 Siemens Information And Communication Networks, Inc. System and method for dual browser modes
US6049325A (en) * 1997-05-27 2000-04-11 Hewlett-Packard Company System and method for efficient hit-testing in a computer-based system
US6175844B1 (en) 1997-05-29 2001-01-16 Adobe Systems Incorporated Ordering groups of text in an image
US6687404B1 (en) 1997-06-20 2004-02-03 Xerox Corporation Automatic training of layout parameters in a 2D image model
US6562077B2 (en) 1997-11-14 2003-05-13 Xerox Corporation Sorting image segments into clusters based on a distance measurement
US6173073B1 (en) 1998-01-05 2001-01-09 Canon Kabushiki Kaisha System for analyzing table images
US6377704B1 (en) 1998-04-30 2002-04-23 Xerox Corporation Method for inset detection in document layout analysis
JP3033956B2 (ja) * 1998-07-23 2000-04-17 インターナショナル・ビジネス・マシーンズ・コーポレイション 図形オブジェクトの表示属性を変更する方法、図形オブジェクトを選択する方法、図形オブジェクト表示制御装置、図形オブジェクトの表示属性を変更するプログラムを格納した記憶媒体及び、図形オブジェクトの選択を制御するプログラムを格納した記憶媒体
WO2000011603A2 (en) * 1998-08-20 2000-03-02 Apple Computer, Inc. Graphics processor with pipeline state storage and retrieval
JP4235286B2 (ja) 1998-09-11 2009-03-11 キヤノン株式会社 表認識方法及び装置
US6263122B1 (en) * 1998-09-23 2001-07-17 Hewlett Packard Company System and method for manipulating regions in a scanned image
JP2000285140A (ja) 1998-12-24 2000-10-13 Ricoh Co Ltd 文書処理装置、文書分類装置、文書処理方法、文書分類方法およびそれらの方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
US6345279B1 (en) * 1999-04-23 2002-02-05 International Business Machines Corporation Methods and apparatus for adapting multimedia content for client devices
US6504544B1 (en) 1999-07-30 2003-01-07 Curl Corporation Processing layout of text graphical objects
US6542635B1 (en) 1999-09-08 2003-04-01 Lucent Technologies Inc. Method for document comparison and classification using document image layout
US6826727B1 (en) * 1999-11-24 2004-11-30 Bitstream Inc. Apparatus, methods, programming for automatically laying out documents
US6664990B1 (en) * 1999-12-07 2003-12-16 International Business Machines Corporation Computer display pointer with alternate hot spots
US6910182B2 (en) * 2000-01-31 2005-06-21 Xmlcities, Inc. Method and apparatus for generating structured documents for various presentations and the uses thereof
US6757870B1 (en) 2000-03-22 2004-06-29 Hewlett-Packard Development Company, L.P. Automatic table detection method and system
US6704024B2 (en) * 2000-08-07 2004-03-09 Zframe, Inc. Visual content browsing using rasterized representations
US6938204B1 (en) 2000-08-31 2005-08-30 International Business Machines Corporation Array-based extensible document storage format
US7260777B2 (en) * 2001-08-17 2007-08-21 Desknet Inc. Apparatus, method and system for transforming data
US8230323B2 (en) 2000-12-06 2012-07-24 Sra International, Inc. Content distribution system and method
US6751628B2 (en) 2001-01-11 2004-06-15 Dolphin Search Process and system for sparse vector and matrix representation of document indexing and retrieval
US7080318B2 (en) 2001-02-28 2006-07-18 Koninklijke Philips Electronics N.V. Schema, syntactic analysis method and method of generating a bit stream based on a schema
US7565605B2 (en) 2001-05-08 2009-07-21 Nokia, Inc. Reorganizing content of an electronic document
WO2003009177A1 (en) 2001-07-16 2003-01-30 Dh Labs, Inc. Web site application development method using object model for managing web-based content
US6801673B2 (en) 2001-10-09 2004-10-05 Hewlett-Packard Development Company, L.P. Section extraction tool for PDF documents
AUPR962001A0 (en) * 2001-12-19 2002-01-24 Redbank Manor Pty Ltd Document display system and method
US7356764B2 (en) 2002-04-24 2008-04-08 Intel Corporation System and method for efficient processing of XML documents represented as an event stream
US6904170B2 (en) 2002-05-17 2005-06-07 Hewlett-Packard Development Company, L.P. Method and system for document segmentation
US7142728B2 (en) 2002-05-17 2006-11-28 Science Applications International Corporation Method and system for extracting information from a document
NZ536775A (en) * 2002-05-20 2007-11-30 Tata Infotech Ltd Document structure identifier
US20040003349A1 (en) 2002-06-28 2004-01-01 Microsoft Corporation Content segments
US7027071B2 (en) 2002-07-02 2006-04-11 Hewlett-Packard Development Company, L.P. Selecting elements from an electronic document
US7254270B2 (en) 2002-07-09 2007-08-07 Hewlett-Packard Development Company, L.P. System and method for bounding and classifying regions within a graphical image
US20060104511A1 (en) 2002-08-20 2006-05-18 Guo Jinhong K Method, system and apparatus for generating structured document files
JP3755499B2 (ja) * 2002-09-06 2006-03-15 ソニー株式会社 Guiアプリケーション開発支援装置、gui表示装置、および方法、並びにコンピュータ・プログラム
CN100337227C (zh) 2002-10-31 2007-09-12 艾瑞赞公司 为移动通信装置的文档内容做摘要的方法和装置
US7272258B2 (en) 2003-01-29 2007-09-18 Ricoh Co., Ltd. Reformatting documents using document analysis information
US7313754B2 (en) 2003-03-14 2007-12-25 Texterity, Inc. Method and expert system for deducing document structure in document conversion
US7305612B2 (en) 2003-03-31 2007-12-04 Siemens Corporate Research, Inc. Systems and methods for automatic form segmentation for raster-based passive electronic documents
US7890852B2 (en) 2003-06-26 2011-02-15 International Business Machines Corporation Rich text handling for a web application
US7171618B2 (en) 2003-07-30 2007-01-30 Xerox Corporation Multi-versioned documents and method for creation and use thereof
GB0320278D0 (en) 2003-08-29 2003-10-01 Hewlett Packard Development Co Constrained document layout
JP2005108230A (ja) 2003-09-25 2005-04-21 Ricoh Co Ltd オーディオ/ビデオコンテンツ認識・処理機能内蔵印刷システム
US7424672B2 (en) 2003-10-03 2008-09-09 Hewlett-Packard Development Company, L.P. System and method of specifying image document layout definition
JP2005149269A (ja) 2003-11-18 2005-06-09 Hitachi Systems & Services Ltd 構造化文書の処理システム
JP4012140B2 (ja) 2003-11-20 2007-11-21 キヤノン株式会社 画像処理装置、情報処理装置及びそれらの制御方法、プログラム
US7581171B2 (en) 2004-01-06 2009-08-25 Microsoft Corporation Positionally encoded document image analysis and labeling
US7386789B2 (en) 2004-02-27 2008-06-10 Hewlett-Packard Development Company, L.P. Method for determining logical components of a document
US7441207B2 (en) 2004-03-18 2008-10-21 Microsoft Corporation Method and system for improved viewing and navigation of content
US7284192B2 (en) 2004-06-24 2007-10-16 Avaya Technology Corp. Architecture for ink annotations on web documents
US20060074980A1 (en) 2004-09-29 2006-04-06 Sarkar Pte. Ltd. System for semantically disambiguating text information
JP2006154498A (ja) * 2004-11-30 2006-06-15 Matsushita Electric Ind Co Ltd フォーマット変換装置、フォーマット変換方法、並びにフォーマット変換装置を用いた画像表示装置及びその画像表示方法
US7693848B2 (en) 2005-01-10 2010-04-06 Xerox Corporation Method and apparatus for structuring documents based on layout, content and collection
US8245131B2 (en) 2005-02-10 2012-08-14 Hewlett-Packard Development Company, L.P. Constraining layout variations for accommodating variable content in electronic documents
US7543229B2 (en) 2005-04-14 2009-06-02 Hewlett-Packard Development Company, L.P. Analysis of graphic design material
US7386558B2 (en) 2005-04-22 2008-06-10 Microsoft Corporation Methods and systems for filtering an Extensible Application Markup Language (XAML) file to facilitate indexing of the logical content contained therein
US8302002B2 (en) 2005-04-27 2012-10-30 Xerox Corporation Structuring document based on table of contents
US7392473B2 (en) 2005-05-26 2008-06-24 Xerox Corporation Method and apparatus for determining logical document structure
US7697757B2 (en) 2005-06-15 2010-04-13 Hewlett-Packard Development Company, L.P. Computer assisted document modification
JP2006350867A (ja) 2005-06-17 2006-12-28 Ricoh Co Ltd 文書処理装置、文書処理方法、プログラム及び情報記録媒体
US7555711B2 (en) 2005-06-24 2009-06-30 Hewlett-Packard Development Company, L.P. Generating a text layout boundary from a text block in an electronic document
EP1739574B1 (en) 2005-07-01 2007-09-12 PDFlib GmbH Method of identifying words in an electronic document
GB2428114A (en) 2005-07-08 2007-01-17 William Alan Hollingsworth Data Format Conversion System
US7559033B2 (en) 2005-07-21 2009-07-07 International Business Machines Corporation Method and system for improving selection capability for user interface
US7613996B2 (en) 2005-08-15 2009-11-03 Microsoft Corporation Enabling selection of an inferred schema part
US7877685B2 (en) 2005-12-29 2011-01-25 Sap Ag Persistent adjustable text selector
US7676741B2 (en) 2006-01-31 2010-03-09 Microsoft Corporation Structural context for fixed layout markup documents
US7623710B2 (en) 2006-02-14 2009-11-24 Microsoft Corporation Document content and structure conversion
US7461349B1 (en) 2006-02-28 2008-12-02 Adobe Systems Incorporated Methods and apparatus for applying functions to content
US7603351B2 (en) 2006-04-19 2009-10-13 Apple Inc. Semantic reconstruction
US7756333B2 (en) 2006-04-26 2010-07-13 Microsoft Corporation Document layout verification
US20070294646A1 (en) 2006-06-14 2007-12-20 Sybase, Inc. System and Method for Delivering Mobile RSS Content
US8010646B2 (en) * 2006-06-27 2011-08-30 Palo Alto Research Center Incorporated Method, apparatus, and program product for efficiently defining relationships in a comprehension state of a collection of information
WO2008044321A1 (fr) * 2006-10-13 2008-04-17 Core Appli Incorporated Logiciel et système informatique de support d'opération
US7911481B1 (en) * 2006-12-14 2011-03-22 Disney Enterprises, Inc. Method and apparatus of graphical object selection
US8276060B2 (en) * 2007-02-16 2012-09-25 Palo Alto Research Center Incorporated System and method for annotating documents using a viewer
US7778953B2 (en) 2007-02-19 2010-08-17 Kabushiki Kaisha Toshiba Document management apparatus and document management method
US20080235564A1 (en) 2007-03-21 2008-09-25 Ricoh Co., Ltd. Methods for converting electronic content descriptions
US8504553B2 (en) 2007-04-19 2013-08-06 Barnesandnoble.Com Llc Unstructured and semistructured document processing and searching
TW200846942A (en) * 2007-05-21 2008-12-01 Univ Nat Taiwan Science Tech Clustering TRIZ analysis model
US20080307308A1 (en) * 2007-06-08 2008-12-11 Apple Inc. Creating Web Clips
JP4590433B2 (ja) 2007-06-29 2010-12-01 キヤノン株式会社 画像処理装置、画像処理方法、コンピュータプログラム
US9086791B2 (en) 2007-08-22 2015-07-21 The Trustees Of Columbia University In The City Of New York Methods, systems, and media for providing content-aware scrolling
US20090091564A1 (en) * 2007-10-03 2009-04-09 Raju Thevan System and method for rendering electronic documents having overlapping primitives
US20090249224A1 (en) * 2008-03-31 2009-10-01 Microsoft Corporation Simultaneous collaborative review of a document
US20100145720A1 (en) 2008-12-05 2010-06-10 Bruce Reiner Method of extracting real-time structured data and performing data analysis and decision support in medical reporting
US8719701B2 (en) 2009-01-02 2014-05-06 Apple Inc. Identification of guides and gutters of a document
JP2010160543A (ja) * 2009-01-06 2010-07-22 Renesas Electronics Corp 半導体装置のレイアウトパターンのレイアウト検証装置、レイアウト検証プログラム及びレイアウト検証方法
US9384181B2 (en) * 2010-12-20 2016-07-05 Microsoft Technology Licensing, Llc Generating customized data bound visualizations
EP2477122B1 (en) 2011-01-18 2018-10-24 Apple Inc. Ordering document content
US8543911B2 (en) 2011-01-18 2013-09-24 Apple Inc. Ordering document content based on reading flow

Also Published As

Publication number Publication date
TW201250493A (en) 2012-12-16
KR20130092536A (ko) 2013-08-20
KR101376440B1 (ko) 2014-03-19
AU2012200144A1 (en) 2012-08-02
WO2012099801A2 (en) 2012-07-26
TWI461934B (zh) 2014-11-21
WO2012099801A3 (en) 2012-08-23
US20120185766A1 (en) 2012-07-19
KR20120083866A (ko) 2012-07-26
US20120185765A1 (en) 2012-07-19
AU2012200144B2 (en) 2013-09-12
KR101363808B1 (ko) 2014-02-17
WO2012099801A4 (en) 2012-09-20
US8543911B2 (en) 2013-09-24
JP2012155714A (ja) 2012-08-16
US8549399B2 (en) 2013-10-01

Similar Documents

Publication Publication Date Title
JP5789525B2 (ja) 文書コンテンツの順序付け
JP6141921B2 (ja) 文書再構成の方法及びシステム
KR101321309B1 (ko) 문서 내의 목록들의 재구성
US20160314104A1 (en) Methods and systems for efficient and accurate text extraction from unstructured documents
RU2430421C2 (ru) Применение эффектов к объединенной текстовой дорожке
EP2477122B1 (en) Ordering document content
Ishihara et al. Analyzing visual layout for a non-visual presentation-document interface
Tigora DESIGNING A FLEXIBLE DOCUMENT IMAGE ANALYSIS SYSTEM: THE MODULES.

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130819

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131108

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140317

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150803

R150 Certificate of patent or registration of utility model

Ref document number: 5789525

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250