(57)【要約】      （修正有）【課題】文書再構成及び特にクラスタ分析をより効率的にする技術を提供する。【解決手段】非構造化文書は、複数の基本要素を含むが、基本要素間の構造関係を指定する構造要素及び／又はそれらの基本要素に基づく文書の構造属性を含まない。構造化文書を規定するために、非構造化文書の基本要素が使用され、非構造化文書の種々の幾何学的属性を識別する。識別された幾何学的属性及び基本要素の他の属性は、関連する基本要素（例えば、単語、段落、結合グラフ）、表、ガイド、のど等の構造要素を規定するため並びに基本要素及び構造要素の読み取りフローを規定するために使用される。【選択図】図２
2016006661.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのプロセッサにより実行された時に複数の基本要素を含む文書を分析するコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
前記文書の境界基本要素を識別する命令セットと、
前記境界線により限定された前記文書の領域を識別する命令セットと、
前記領域及び前記基本要素に基づいて構造化文書を規定する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
【請求項２】
構造化文書を規定する前記命令セットは、少なくとも２つの識別された領域間の階層関係を識別する命令セットを含む請求項１に記載のコンピュータ読み取り可能な記憶媒体。
【請求項３】
全体が第２の領域内にある第１の領域は前記第２の領域の子である請求項２に記載のコンピュータ読み取り可能な記憶媒体。
【請求項４】
２つの識別された領域間の階層関係を識別する前記命令セットは、識別された各領域が階層文書オブジェクトモデルのノードである前記文書オブジェクトモデルを規定する命令セットを含む請求項２に記載のコンピュータ読み取り可能な記憶媒体。
【請求項５】
前記構造化文書を規定する前記命令セットは、前記基本要素から規定されたそれぞれの少なくとも１つの構造要素を前記文書オブジェクトモデルに読み込む命令セットを含む請求項４に記載のコンピュータ読み取り可能な記憶媒体。
【請求項６】
境界線は、前記文書の特定の基本要素の場所に基づいて識別される請求項１に記載のコンピュータ読み取り可能な記憶媒体。
【請求項７】
前記特定の基本要素は直線又は直線を近似する形状である請求項６に記載のコンピュータ読み取り可能な記憶媒体。
【請求項８】
前記領域を識別する前記命令セットは、
前記境界線が他の境界線と交差するかに基づいて実際に領域に境界をつける境界線の集合を選択する命令セットと、
領域を識別するために前記境界線の部分集合を横断する命令セットとを含む請求項１に記載のコンピュータ読み取り可能な記憶媒体。
【請求項９】
基本要素の集合間の境界線を識別する前記命令セットは、
可能性のある境界線として、直線又は直線を近似する形状である基本要素及び基本要素の集合を識別する命令セットと、
前記可能性のある境界線間の交点を識別する命令セットと、
少なくとも２つの他の可能性のある境界線と交差しない、可能性のある境界線を除去する命令セットとを含む請求項１に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１０】
前記境界線により限定された領域を識別する前記命令セットは、境界線の閉ループを識別するために前記識別された境界線を横断する命令セットを含み、各閉ループは領域である請求項１に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１１】
前記コンピュータプログラムは、前記文書に対する構造要素を規定するために前記識別された領域を使用する命令セットを更に含み、前記構造化文書は前記構造要素に更に基づく請求項１に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１２】
構造要素を規定するために前記識別された領域を使用する前記命令セットは、特定の各領域の基本要素の集合間の関連付けを行うために前記特定の領域を別個に分析する命令セットを含む請求項１１に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１３】
（ｉ）複数の基本要素を含む文書を分析し、（ｉｉ）前記分析に基づいて前記文書の構造を規定する構造要素を生成するプログラムを規定する方法であって、
基本要素のセット間の境界線を識別するモジュールを既定することと、
前記境界線により限定された領域を識別するモジュールを規定することと、
前記構造要素を指定するために前記識別された境界線及び領域を使用するモジュールを規定することとを含む方法。
【請求項１４】
前記領域、前記基本要素及び前記構造要素に基づいて構造化文書を規定するモジュールを規定することを更に含む請求項１３に記載の方法。
【請求項１５】
前記文書は非構造化文書である請求項１３に記載の方法。
【請求項１６】
少なくとも１つのプロセッサにより実行された時に複数のグリフ及び複数の図形要素を含む複数の基本要素を含む文書を分析するコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
前記複数の図形要素を潜在的な境界線として識別する命令セットと、
前記潜在的な境界線の一部を実際の境界線として識別する命令セットと、
１つ以上のゾーンを識別するために前記実際の境界線を横断する命令セットと、
前記識別されたゾーンを含む階層文書モデルを規定する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
【請求項１７】
前記複数の図形要素を潜在的な境界線として識別することは、
最大で特定の厚さの垂直線及び水平線である図形要素を識別する命令セットと、
最大で特定の厚さの垂直線及び水平線を近似する図形要素を識別する命令セットと、
直立矩形図形要素の外側エッジを識別する命令セットとを含む請求項１６に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１８】
前記潜在的な境界線の一部を実際の境界線として識別する前記命令セットは、
前記潜在的な境界線の間の交点を識別する命令セットと、
全ての残りの潜在的な境界線が少なくとも２つの他の潜在的な境界線と交差するまで少なくとも２つの他の潜在的な境界線と交差しない潜在的な境界線を繰り返し除去する命令セットと、
前記残りの潜在的な境界線を実際の境界線として識別する命令セットとを含む請求項１６に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１９】
１つ以上のゾーンを識別するために前記実際の境界線を横断する前記命令セットは、
前記実際の境界線の各々に対して反対方向に位置揃えされた２つの区間を含む方向を位置揃えされた区間の集合を規定する命令セットと、
交点及び前記交点から離れる方向を選択する命令セットと、
前記選択した交点に戻るまで前記選択した交点から開始して前記選択した方向へ前記区間の集合の中の前記区間を横断する命令セットと、
前記横断された区間により囲まれた前記領域をゾーンとして規定する命令セットと、
前記区間の集合から前記横断した区間を除去する命令セットととを含む請求項１６に記載のコンピュータ読み取り可能な記憶媒体。
【請求項２０】
前記方向を位置揃えされた区間はベクトルである請求項１９に記載のコンピュータ読み取り可能な記憶媒体。
【請求項２１】
１つ以上のゾーンを識別するために前記実際の境界線を横断する前記命令セットは、
前記方向を位置揃えされた区間の集合が空になるまで、
交点及び前記交点からの方向を選択する命令セットと、
前記選択した交点に戻るまで前記選択した交点から開始して前記選択した方向に前記区間の集合の中の前記区間を横断する命令セットと、
前記横断した区間により囲まれた前記領域をゾーンとして規定する命令セットと、
前記区間の集合から前記横断した区間を除去する命令セットとを更に繰り返し含む請求項１９に記載のコンピュータ読み取り可能な記憶媒体。
【請求項２２】
特定のゾーンが特定の方向に横断された時に前記特定のゾーンを島として規定することを更に含む請求項１６に記載のコンピュータ読み取り可能な記憶媒体。
【請求項２３】
第２のゾーンが第１のゾーンの完全に囲まれる場合、前記第１のゾーンは前記第２のゾーンの親である請求項１６に記載のコンピュータ読み取り可能な記憶媒体。
【請求項２４】
前記第１のゾーン及び前記第２のゾーンが境界線を共有しない場合、前記第２のゾーンは島である請求項２３に記載のコンピュータ読み取り可能な記憶媒体。
【請求項２５】
前記コンピュータプログラムは、実際の境界線でない前記図形要素及び前記グリフに基づいて構造要素を規定する命令セットを更に含む請求項１６に記載のコンピュータ読み取り可能な記憶媒体。
【請求項２６】
前記コンピュータプログラムは、前記階層文書モデルのゾーンに少なくとも１つの構造要素を読み込む命令セットを更に含む請求項２５に記載のコンピュータ読み取り可能な記憶媒体。
【請求項２７】
前記コンピュータプログラムは、回転ゾーンを識別する命令セットを更に含む請求項２５に記載のコンピュータ読み取り可能な記憶媒体。
【請求項２８】
回転ゾーンは、前記回転ゾーンを含むページと位置揃えされないゾーンである請求項２７に記載のコンピュータ読み取り可能な記憶媒体。
【請求項２９】
ゾーンは、少なくとも特定の角度だけページのエッジからオフセットしている場合に前記ページと位置揃えされない請求項２８に記載のコンピュータ読み取り可能な記憶媒体。
【請求項３０】
少なくとも１つのプロセッサにより実行された時に各々が関連するグリフの集合を含む複数の単語を含む文書を分析するコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であり、各グリフが位置座標を有するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
前記グリフの位置座標に基づいて単語のグループを識別する命令セットと、
前記識別された単語のグループに基づいて、前記グリフに対する境界要素を規定する命令セットと、
前記グリフ及び前記規定された境界要素のセットに基づいて構造化文書を規定する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
【請求項３１】
前記コンピュータプログラムは、一対の位置揃え要素の間の少なくとも１つの空白の領域を規定する命令セットを更に含み、前記構造化文書は前記空白の領域に基づいて更に規定される請求項３０に記載のコンピュータ読み取り可能な記憶媒体。
【請求項３２】
前記単語のグループを識別する前記命令セットは、１つの軸に沿って前記単語の座標から導出されたデータに対してクラスタ分析を実行する命令セットを含む請求項３０に記載のコンピュータ読み取り可能な記憶媒体。
【請求項３３】
前記クラスタ分析は、同様の値を有する大きなデータのグループを識別するために密度クラスタリングを含む請求項３２に記載のコンピュータ読み取り可能な記憶媒体。
【請求項３４】
前記境界要素は、グリフに対する右揃えガイド及び左揃えガイドである請求項３０に記載のコンピュータ読み取り可能な記憶媒体。
【請求項３５】
前記位置揃え要素を規定する前記命令セットは、
それぞれのクラスタについて、前記クラスタ内の前記単語に基づいてある幅を有する第１の軸に沿うストリップを規定する命令セットと、
単語が第２の軸に沿う特定の方向から前記ストリップと交差する前記第１の軸に沿う座標において前記ストリップを削除する命令セットとを含む請求項３０に記載のコンピュータ読み取り可能な記憶媒体。
【請求項３６】
構造化文書を規定する前記命令セットは、前記グリフ及び前記規定された境界要素を使用してテキストカラムを識別する命令セットを含む請求項３０に記載のコンピュータ読み取り可能な記憶媒体。
【請求項３７】
（ｉ）各々が関連するグリフの集合を含む複数の単語を含む文書であり、各グリフが位置座標を有する文書を分析し、（ｉｉ）前記分析に基づいて前記文書の構造を規定する構造要素を生成するプログラムを規定する方法であって、
前記グリフの位置座標に基づいて単語のグループを識別するモジュールを規定することと、
前記識別された単語のグループに基づいて、前記グリフに対する境界のセットを識別する前記グリフに対する境界要素のセットを規定するモジュールを規定することと、
前記構造要素を指定するために前記識別された境界要素を使用するモジュールを規定することとを含む方法。
【請求項３８】
前記グリフ、前記規定した境界要素及び前記構造要素に基づいて構造化文書を規定するモジュールを規定することを更に含む請求項３７に記載の方法。
【請求項３９】
少なくとも１つのプロセッサにより実行された時に各々が複数のグリフを含み且つ特定の位置値を有する複数の単語を含む文書を分析するコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
前記単語の前記位置値を順序付けする命令セットと、
前記位置値の部分集合への複数の異なるグループ化を識別する命令セットと、
異なるグループ化毎に特定の制約の集合を満足する前記位置値の部分集合の集合を識別する命令セットと、
特定の基準を最適化する前記位置値の部分集合の前記集合のうちの特定の１つを判定する命令セットと、
前記特定の基準を最適化する前記部分集合の特定の集合に基づいて前記グリフに対する境界要素を規定する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
【請求項４０】
前記制約の集合は、前記位置値の部分集合が少なくとも特定の数の値を有するという要件を含む請求項３９に記載のコンピュータ読み取り可能な記憶媒体。
【請求項４１】
前記制約の集合は、前記部分集合の最大値と最小値との間の差分が特定の閾値を上回らないという要件を含む請求項３９に記載のコンピュータ読み取り可能な記憶媒体。
【請求項４２】
前記特定の位置値は単語の右エッジを表し、前記特定の基準を最適化する前記部分集合の集合は右揃えガイドを識別するために使用される請求項３９に記載のコンピュータ読み取り可能な記憶媒体。
【請求項４３】
前記特定の位置値は単語の左エッジを表し、前記特定の基準を最適化する前記部分集合の集合は左揃えガイドを識別するために使用される請求項３９に記載のコンピュータ読み取り可能な記憶媒体。
【請求項４４】
少なくとも１つのプロセッサにより実行された時にデータのクラスタを識別するコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
クラスタリングされるデータ値の集合を受信する命令セットと、
各々が部分集合への前記データ値の異なるグループ化を指定する前記データ値の複数の区分を識別する命令セットと、
データ値の部分集合のグループ毎に特定の制約の集合を満足する前記部分集合の集合を識別する命令セットと、
特定の基準を最適化する部分集合の集合を判定する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
【請求項４５】
前記データ値は文書のグリフの位置であり、特定の基準を最適化する前記部分集合の集合は前記文書に対する位置揃えガイドを識別する請求項４４に記載のコンピュータ読み取り可能な記憶媒体。
【請求項４６】
少なくとも１つのプロセッサにより実行された時に各々が関連するグリフの集合を含む複数の単語を含む文書を分析するコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
前記文書の左揃え点の集合及び右揃え点の集合を識別する命令セットと、
特定の判断基準を満足する左揃え点と右揃え点との間の前記文書中の空白を識別する命令セットと、
前記識別した空白を使用して構造化文書を規定する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
【請求項４７】
前記左揃え点の集合及び前記右揃え点の集合は、単語の密度クラスタリングにより判定された位置揃えガイドを含む請求項４６に記載のコンピュータ読み取り可能な記憶媒体。
【請求項４８】
前記文書中の空白を識別する前記命令セットは、
前記右揃え点の集合から１つの右揃え点を選択する命令セットと、
前記選択した右揃え点の右側にある前記選択した右揃え点に最近接する左揃え点である前記左揃え点の集合の中の左揃え点を識別する命令セットと、
前記選択した右揃え点と前記識別した左揃え点との間の垂直ストリップを規定する命令セットと、
単語がストリップと交差する座標において前記垂直ストリップを削除する命令セットとを含む請求項４６に記載のコンピュータ読み取り可能な記憶媒体。
【請求項４９】
前記識別した空白を使用して構造化文書を規定する前記命令セットは、単語の行を分割する命令セットを含む請求項４４に記載のコンピュータ読み取り可能な記憶媒体。
【請求項５０】
少なくとも１つのプロセッサにより実行された時に複数のグリフを含む文書を解析するコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、
前記複数のグリフのそれぞれは、前記文書内の位置を有し、
前記コンピュータプログラムは、
前記文書における前記グリフの位置に基づいて、グリフの異なる集合を異なる単語として識別するために、前記グリフ間の関連付けを作成する命令セットと、
単語の異なる集合を異なる段落として識別するために、前記単語間の関連付けを作成する命令セットと、
前記段落について読み順を規定するために、隣接していない少なくとも２つの段落間の関連付けを規定する命令セットと、
を含むコンピュータ読み取り可能な記憶媒体。
【請求項５１】
単語間の関連付けを作成する前記命令セットは、（ｉ）前記単語を形成する前記グリフの垂直間隔の属性と、（ｉｉ）前記単語を形成する前記グリフの水平位置揃えの属性と、に基づいて関連付ける単語の集合を識別する命令セットを含む請求項５０に記載のコンピュータ読み取り可能な記憶媒体。
【請求項５２】
単語の異なる集合を異なる段落として識別するために、前記単語間の関連付けを作成する前記命令セットは、
単語の集合をテキスト行として識別するために、前記単語間の関連付けを作成する命令セットと、
テキスト行の集合を段落として識別するために、前記テキスト行の間の関連付けを作成する命令セットと、
を含む請求項５０に記載のコンピュータ読み取り可能な記憶媒体。
【請求項５３】
単語の集合をテキスト行として識別するために、前記単語間の関連付けを作成する前記命令セットは、
水平に位置揃えされた単語の集合を識別する命令セットと、
少なくとも１つの水平間隙の存在に基づいて、前記水平に位置揃えされた単語の集合を分割する命令セットと、
それぞれの残った集合内の単語間の関連付けを作成する命令セットと、
を含み、
前記水平に位置揃えされた単語の集合内の全ての単語は、互いに所定の閾値内にベースラインを有する請求項５２に記載のコンピュータ読み取り可能な記憶媒体。
【請求項５４】
前記水平に位置揃えされた単語の集合を分割する前記命令セットは、
水平に位置揃えされた単語間の少なくとも閾値の幅の間隙として、水平間隙を識別する命令セットと、
垂直に位置揃えされている水平間隙の集合を識別する命令セットと、
特定の基準の集合を満たさない水平間隙の集合を除去する命令セットと、
前記除去されなかった間隙で、前記水平に位置揃えされた単語の集合を分割する命令セットと、
を含む請求項５３に記載のコンピュータ読み取り可能な記憶媒体。
【請求項５５】
テキスト行の集合を段落として識別するために、前記テキスト行の間の関連付けを作成する前記命令セットは、隣接するテキスト行の垂直間隔の属性を比較する命令セットを含む請求項５２に記載のコンピュータ読み取り可能な記憶媒体。
【請求項５６】
テキスト行の集合を段落として識別するために、前記テキスト行の間の関連付けを作成する前記命令セットは、隣接するテキスト行の水平位置揃えの属性を比較する命令セットを含む請求項５２に記載のコンピュータ読み取り可能な記憶媒体。
【請求項５７】
前記コンピュータプログラムは、段落の集合をカラムとして識別するために、前記段落間の関連付けを作成する命令セットをさらに含む請求項５０に記載のコンピュータ読み取り可能な記憶媒体。
【請求項５８】
複数のグリフを含む文書を解析するプログラムを規定する方法であって、
前記複数のグリフのそれぞれは、前記文書内の位置を有し、
前記方法は、
前記文書における前記グリフの位置に基づいて、グリフの異なる集合を異なる単語として識別するために、前記グリフ間の関連付けを作成するモジュールを規定する工程と、
単語の異なる集合を異なる段落として識別するために、前記単語間の関連付けを作成するモジュールを規定する工程と、
前記段落について読み順を規定するために、隣接していない少なくとも２つの段落間の関連付けを規定するモジュールを規定する工程と、
を含む方法。
【請求項５９】
グリフ間の関連付けを作成するモジュールを規定する前記工程は、前記グリフ間の水平間隔を識別するために、前記グリフの前記位置に対してクラスタ分析を実行するモジュールを規定する工程を含む請求項５８に記載の方法。
【請求項６０】
前記クラスタ分析は、単語間の間隔及び単語内の間隔を識別するために、水平間隔サイズのクラスタを識別する請求項５９に記載の方法。
【請求項６１】
少なくとも１つのプロセッサにより実行された時に各々が文書における位置を有する複数のグリフを含む前記文書を分析するコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
前記グリフの前記位置に基づいて種々のグリフの集合を種々の単語として識別する命令セットと、
種々の単語の集合を種々の段落として識別する命令セットと、
前記文書において連続していない少なくとも２つの段落にわたるフローを規定する前記段落の読み取り順序を規定する命令セットと、
前記単語、前記段落、及び前記規定した読み順に基づいて、構造化文書を規定する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
【請求項６２】
特定のグリフの集合を単語として識別することは、前記グリフを関連付けることを含む請求項６１に記載のコンピュータ読み取り可能な記憶媒体。
【請求項６３】
特定のグリフの集合を単語として識別することは、前記グリフ間の関連付けを行うことを含む請求項６１に記載のコンピュータ読み取り可能な記憶媒体。
【請求項６４】
前記連続していない２つの段落は、第１のページの終端の第１の段落及び第２のページの先頭の第２の段落を含み、前記読み順は、前記第１の段落から前記第２の段落への直接の流れを特定する請求項６１に記載のコンピュータ読み取り可能な記憶媒体。
【請求項６５】
前記連続していない２つの段落は、第１のページの終端の第１の段落及び第２のページの先頭の第２の段落を含み、前記読み順は、前記第１の段落から前記第２の段落への直接の流れを特定する請求項６１に記載のコンピュータ読み取り可能な記憶媒体。
【請求項６６】
前記第１のページ及び前記第２のページは、前記文書において隣接していない請求項６５に記載のコンピュータ読み取り可能な記憶媒体。
【請求項６７】
少なくとも１つのプロセッサにより実行された時に各々が複数の特性を有する複数の基本要素を含む文書を分析するコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
前記基本要素の前記特性に基づいて基本要素の集合を構造要素として関連付ける命令セットと、
前記構造要素間の関係を規定する命令セットと、
前記関連付け及び関係に基づいて前記基本要素の全てにわたるフローを指定する命令セットと、
前記基本要素にわたる前記指定したフローを使用して前記文書とのユーザ対話を最適化する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
【請求項６８】
前記ユーザ対話は選択動作を含む請求項６７に記載のコンピュータ読み取り可能な記憶媒体。
【請求項６９】
前記ユーザ対話は表示動作を含む請求項６７に記載のコンピュータ読み取り可能な記憶媒体。
【請求項７０】
前記ユーザ対話はナビゲーション動作を含む請求項６７に記載のコンピュータ読み取り可能な記憶媒体。
【請求項７１】
少なくとも１つのプロセッサにより実行された時に複数の基本要素を含む文書を分析するコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
基本要素の集合間の境界線を識別する命令セットと、
複数の境界線が表を構成すると識別する命令セットと、
各々が関連する基本要素の集合を含む複数のセルであり、複数の行及び列で構成された複数のセルを含む前記表に対する表構造要素を規定する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
【請求項７２】
前記表構造要素に基づいて構造化文書を規定する命令セットを更に含む請求項７１に記載のコンピュータ読み取り可能な記憶媒体。
【請求項７３】
前記構造化文書を規定する前記命令セットは、前記非構造化文書の階層モデルを規定する命令セットを含む請求項７２に記載のコンピュータ読み取り可能な記憶媒体。
【請求項７４】
前記表構造要素の前記セルは前記階層モデルのノードを含む請求項７３に記載のコンピュータ読み取り可能な記憶媒体。
【請求項７５】
前記表構造要素は前記階層モデルのノードを含む請求項７３に記載のコンピュータ読み取り可能な記憶媒体。
【請求項７６】
複数の境界線が表を構成すると識別する前記命令セットは、（ｉ）より大きい矩形を構成する境界線の集合と（ｉｉ）前記より大きい矩形に含まれる複数の矩形とを識別する命令セットを含む請求項７１に記載のコンピュータ読み取り可能な記憶媒体。
【請求項７７】
前記文書は複数の図形基本要素を含み、基本要素の集合間の境界線を識別する命令セットは、垂直線又は水平線である図形基本要素並びに垂直線又は水平線を近似する図形基本要素を識別することを含む請求項７１に記載のコンピュータ読み取り可能な記憶媒体。
【請求項７８】
前記コンピュータプログラムはさらに前記識別された図形基本要素に基づいて複数の階層的領域を識別する命令セットを含む請求項７７に記載のコンピュータ読み取り可能な記憶媒体。
【請求項７９】
複数の境界線が表を構成すると識別する前記命令セットは、特定の特徴集合を満足する階層的領域の集合を識別する命令セットを含む請求項７８に記載のコンピュータ読み取り可能な記憶媒体。
【請求項８０】
複数の境界線が表を構成すると識別する前記命令セットは、（ｉ）親領域と境界線を共有しない第１の矩形領域と（ｉｉ）前記第１の領域の少なくとも２つの小領域の集合であって、前記小領域の集合は前記第１の領域を完全に分割し、前記集合のそれぞれの小領域は矩形である、前記第１の領域の少なくとも２つの小領域の集合とを識別する命令セットを含む請求項７９に記載のコンピュータ読み取り可能な記憶媒体。
【請求項８１】
前記第１の領域は前記表の外側境界であり、前記第１の領域の前記小領域は前記表のセルである請求項８０に記載のコンピュータ読み取り可能な記憶媒体。
【請求項８２】
複数の前記識別された境界線は前記セルを構成する関連するグリフの集合の位置に基づいて推論される請求項７１に記載のコンピュータ読み取り可能な記憶媒体。
【請求項８３】
前記コンピュータプログラムはグリフの集合を段落として関連付ける命令セットを更に含み、前記境界線は前記段落の位置に基づいて推論される請求項８２に記載のコンピュータ読み取り可能な記憶媒体。
【請求項８４】
グリフの集合間の境界線を識別する前記命令セットは、垂直又は水平に位置揃えされる少なくとも２つのグリフの集合を識別する命令セットを含む請求項８２に記載のコンピュータ読み取り可能な記憶媒体。
【請求項８５】
表構造要素を規定する前記命令セットが連続する矩形を構成する識別された境界線の集合を識別する命令セットを含む請求項７１に記載のコンピュータ読み取り可能な記憶媒体。
【請求項８６】
前記連続する矩形は前記表構造要素の前記セルである請求項８５に記載のコンピュータ読み取り可能な記憶媒体。
【請求項８７】
（ｉ）複数の基本要素を含む文書を分析し、（ｉｉ）前記分析に基づいて前記文書の構造を規定する構造要素を生成するプログラムを規定する方法であって、
基本要素の集合間の境界線を識別するモジュールを規定することと、
複数の境界線が表を構成すると識別するモジュールを規定することと、
各々が関連する基本要素の集合を含む複数のセルであり、複数の行及び列で構成された複数のセルを含む表構造要素を前記表に基づいて規定する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
【請求項８８】
少なくとも１つのプロセッサにより実行された時に複数の基本要素を含む文書を分析するコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
表を含む第１の基本要素の集合を識別する命令セットと、
前記第１の基本要素の集合に対する表構造要素を規定する命令セットと、
表を含まない第２の基本要素の集合を識別する命令セットと、
前記第２の基本要素の集合に対する表でない構造要素の集合を規定する命令セットと、
前記表構造要素及び前記表でない構造要素の集合を含む構造化文書を規定する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
【請求項８９】
構造化文書を規定する前記命令セットは、前記構造要素の読み取り順序を規定する命令セットを含み、前記読み取り順序は、前記構造要素の集合の第１の構造要素から前記表構造要素へ、更に前記構造要素の集合の第２の構造要素へ進む請求項８８に記載のコンピュータ読み取り可能な記憶媒体。
【請求項９０】
前記コンピュータプログラムは、
各々が異なる表を含む種々の基本要素の集合を識別する命令セットと、
前記種々の集合毎に種々の表構造要素を規定する命令セットとを更に含む請求項８８に記載のコンピュータ読み取り可能な記憶媒体。
【請求項９１】
前記種々の集合の第１の集合は図形基本要素及びグリフの双方を含み、前記種々の集合の第２の集合はグリフのみを含む請求項９０に記載のコンピュータ読み取り可能な記憶媒体。
【請求項９２】
少なくとも１つのプロセッサにより実行された時に文書を分析するコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
各々が前記文書における単一のオブジェクトとして規定される前記複数の基本図形要素を含む前記文書であり、前記文書が表示された時に複数の基本図形要素が描かれる順序を示す描画順序を有する前記文書を受信する命令セットと、
前記描画順序が連続する基本図形要素間の位置関係を識別する命令セットと、
前記位置関係に基づいて前記基本図形要素のうちの少なくとも２つから単一の構造図形要素を規定する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
【請求項９３】
前記文書は複数のグリフを更に含み、前記描画順序は前記グリフが前記ページに描かれる順序を示さない請求項９２に記載のコンピュータ読み取り可能な記憶媒体。
【請求項９４】
前記文書はベクトル図形文書であり、前記基本図形要素はベクトル図形である請求項９２に記載のコンピュータ読み取り可能な記憶媒体。
【請求項９５】
連続する基本図形要素間の位置関係を識別する前記命令セットは、第１の基本図形要素及び前記読み取り順序で前記第１の基本図形要素に続く第２の基本図形要素に対して前記第１の基本図形要素及び前記第２の基本図形要素を含む構造図形要素のサイズを計算する命令セットを含む請求項９２に記載のコンピュータ読み取り可能な記憶媒体。
【請求項９６】
前記サイズは、前記第１の基本図形要素及び前記第２の基本図形要素を囲む直立バウンディングボックスの領域に比例する請求項９５に記載のコンピュータ読み取り可能な記憶媒体。
【請求項９７】
前記サイズは、前記第１の基本図形要素及び前記第２の基本図形要素を囲む直立バウンディングボックスの長さ及び高さの合計に比例する請求項９５に記載のコンピュータ読み取り可能な記憶媒体。
【請求項９８】
連続する基本図形要素間の位置関係を識別する前記命令セットは、
前記第２の基本図形要素及び前記読み取り順序で前記第２の基本図形要素に続く第３の基本図形要素に対して前記第２の基本図形要素及び前記第３の基本図形要素を含む構造図形要素のサイズを計算する命令セットと、
前記第１の基本図形要素及び前記第２の基本図形要素を含む前記構造図形要素の前記サイズと前記第２の図形要素及び前記第３の図形要素を含む前記構造図形要素の前記サイズとを比較する命令セットとを更に含む請求項９５に記載のコンピュータ読み取り可能な記憶媒体。
【請求項９９】
連続する基本図形要素間の位置関係を識別する前記命令セットは、
前記描画順序が連続する基本図形要素の各対を識別する命令セットと、
基本図形要素の識別された対毎に前記対に対する広がり値を計算する命令セットとを含む請求項９２に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１００】
一対の広がり値は、前記対の前記２つの基本図形要素のサイズ及び近接度を記述する請求項９９に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１０１】
基本図形要素の対から単一の構造図形要素を規定する前記命令セットは、
クラスタ内で互いに近接する基本図形要素の全てが前記描画順序で連続するような前記基本図形要素のクラスタを前記計算した広がり値に基づいて識別する命令セットと、
特定の制約の集合を満足する前記クラスタの連続する基本図形要素のサブグループを識別する命令セットと、
サブグループ毎に、前記サブグループの前記基本図形要素の全てを含む構造図形要素を規定する命令セットとを含む請求項９９に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１０２】
前記基本図形要素のクラスタを識別する前記命令セットは、１次差分である前記計算した広がり値を有する前記基本図形要素に対して差分クラスタリングを実行する命令セットを含む請求項１０１に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１０３】
前記特定の制約の集合は、前記サブグループの特定の基本要素毎の範囲が前記描画順序で前記特定の基本要素の前の前記サブグループの全ての基本要素に対する共同の範囲と交差するという要件を含む請求項１０１に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１０４】
基本要素毎の前記範囲は、前記基本要素を含む最小の直立バウンディングボックスである請求項１０３に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１０５】
基本要素毎の前記範囲は、前記基本要素を完全に囲む最小領域のパスである請求項１０３に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１０６】
前記複数の基本図形要素から前記単一の構造図形要素を規定する前記命令セットは、前記構造図形要素を規定するために使用される前記基本図形要素の集合の間で少なくとも１つの関連付けを行う命令セットを含む請求項９２に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１０７】
前記コンピュータプログラムは、前記構造図形要素に基づいて構造化文書を規定する命令セットを更に含む請求項９２に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１０８】
前記構造化文書は、複数のノードを含む前記文書の階層モデルを含み、前記ノードの１つには前記構造図形要素が読み込まれる請求項１０７に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１０９】
文書を分析し且つ前記分析に基づいて前記文書の構造を規定する構造要素を生成するプログラムを規定する方法であって、
各々が前記文書の単一のオブジェクトとして規定される複数の基本図形要素を含む前記文書であり、前記文書が表示される時に前記基本図形要素が描かれる順序を示す描画順序を有する文書を受信するモジュールを規定することと、
前記描画順序が連続する基本図形要素間の位置関係を識別するモジュールを規定することと、
前記位置関係に基づいて前記基本図形要素のうちの少なくとも２つから単一の構造図形要素を規定するモジュールを規定することとを含む方法。
【請求項１１０】
前記構造図形要素を含む構造化文書を規定するモジュールを規定することを更に含む請求項１０９に記載の方法。
【請求項１１１】
前記構造化文書は、複数のノードを含む前記文書の階層モデルを含み、前記ノードの１つには前記構造図形要素が読み込まれる請求項１１０に記載の方法。
【請求項１１２】
少なくとも１つのプロセッサにより実行された時に文書を分析するコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
各々が前記文書の単一のオブジェクトとして規定される複数の基本図形要素を含む前記文書であり、前記文書が表示される時に前記基本図形要素が描かれる順序を示す描画順序を有する文書を受信する命令セットと、
前記描画順序が連続する基本図形要素の対毎に前記対の前記基本図形要素のサイズに関連する値を計算する命令セットと、
前記計算した値に基づいて連続する基本図形要素のクラスタを規定する命令セットと、
特定の制約を満足する前記クラスタの基本図形要素のサブクラスタの集合を識別する命令セットと、
特定の各サブクラスタを前記特定のサブクラスタの前記基本図形要素を含む単一の構造図形要素として規定する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
【請求項１１３】
前記計算した値は、前記対の前記基本図形要素の互いに対する近接度に更に関連する請求項１１２に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１１４】
文書を再構成するプログラムを規定する方法であって、
複数の基本要素を含む文書から構造化文書を規定する文書再構成動作のデフォルト集合を規定することと、
中間文書再構成結果がプロファイルに対する潜在的な文書再構成結果と一致する時に各々が（ｉ）潜在的な文書再構成結果の集合及び（ｉｉ）前記文書再構成動作を変更する命令を含むプロファイルの階層集合であり、前記階層の下位レベルのプロファイルからの命令が上位レベルのプロファイルからの命令を無効にするプロファイルの階層集合を規定することと、
中間文書再構成結果をプロファイルとマッチングするモジュールを規定することとを含む方法。
【請求項１１５】
前記構造化文書は前記文書の階層モデルを含む請求項１１４に記載の方法。
【請求項１１６】
前記プロファイルの階層集合は、文書、小領域、ページ及びゾーンのうち少なくとも２つに対するプロファイルを含む請求項１１４に記載の方法。
【請求項１１７】
各文書プロファイルは可能なページプロファイルの特定の集合を指定し、各ページプロファイルは可能なゾーンプロファイルの特定の集合を指定する請求項１１６に記載の方法。
【請求項１１８】
第１の文書プロファイルに対する前記ページプロファイルの集合は特定のページプロファイルを含み、第２の文書プロファイルに対する前記ページプロファイルの集合は前記特定のページプロファイルを含む請求項１１７に記載の方法。
【請求項１１９】
特定のプロファイルの前記命令は、前記中間文書再構成結果が前記特定のプロファイルに対する前記潜在的な文書再構成結果と一致する時にテストされるべきである前記プロファイルの階層集合の下位レベルのプロファイルの部分集合を含む請求項１１４に記載の方法。
【請求項１２０】
特定のプロファイルの前記命令は、特定の文書再構成動作を実行しない命令を含む請求項１１４に記載の方法。
【請求項１２１】
前記特定のプロファイルはページに対するプロファイルであり、前記特定のプロファイルに対する前記潜在的な文書再構成結果の集合は、前記ページが１つのテキストカラムのみを有するという結果を含み、前記特定のプロファイルに対する前記命令はテキスト行を分割する動作を実行しない命令を含む請求項１２０に記載の方法。
【請求項１２２】
特定のプロファイルの前記命令は、特定の文書再構成動作を実行する方法に関する命令を含む請求項１１４に記載の方法。
【請求項１２３】
特定のプロファイルの前記命令は、結果が前記中間再構成結果から除去される特定の再構成処理を指定する命令を含む請求項１１４に記載の方法。
【請求項１２４】
少なくとも１つのプロセッサにより実行するためのコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
複数の基本要素を含む文書を受信する命令セットと、
構造化文書を規定するために前記文書を再構成する文書再構成動作のデフォルト集合を識別する命令セットと、
前記デフォルト集合の前記文書再構成動作の１つ以上を実行する命令セットと、
前記実行した文書再構成動作の結果に基づいて前記文書に対するプロファイルを識別する命令セットと、
前記識別したプロファイルに従って前記文書を再構成する前記文書再構成動作の集合を変更する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
【請求項１２５】
前記コンピュータプログラムは、前記集合を変更した後の前記変更済みの集合の前記文書再構成動作のうちの少なくとも１つを実行する命令セットを更に含む請求項１２４に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１２６】
前記文書再構成動作の集合を変更する前記命令セットは、実行される前記再構成動作の集合から特定の再構成動作を除去する命令セットを含む請求項１２４に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１２７】
前記文書再構成動作の集合を変更する前記命令セットは、実行される前記再構成動作の集合に特定の再構成動作を追加する命令セットを含む請求項１２４に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１２８】
前記再構成動作のデフォルト集合は、前記再構成動作が実行される順序を指定する請求項１２４に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１２９】
前記文書再構成動作の集合を変更する前記命令セットは、前記再構成動作が実行される前記順序を変更する命令セットを含む請求項１２８に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１３０】
前記プロファイルは、前記実行された文書再構成動作の結果に基づいて前記文書に対する文書の種類を識別する文書プロファイルである請求項１２４に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１３１】
前記コンピュータプログラムは、
前記集合を変更した後に前記変更済みの集合の前記文書再構成動作のうちの少なくとも１つを実行する命令セットと、
前記実行した文書再構成動作の結果に基づいて前記文書の特定の小領域に対する小領域プロファイルを識別する命令セットと、
前記識別した小領域プロファイルに従って前記文書の前記特定の小領域を再構成する前記文書再構成動作の集合を変更する命令セットとを更に含む請求項１３０に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１３２】
前記特定の小領域は特定のページである請求項１３１に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１３３】
前記小領域プロファイルの命令は、前記特定の小領域を再構成するための前記文書プロファイルの矛盾する命令を無効にする請求項１３１に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１３４】
前記小領域プロファイルの命令と矛盾しない前記文書プロファイルの命令は、前記小領域プロファイルの識別の後も依然として動作している請求項１３１に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１３５】
少なくとも１つのプロセッサにより実行された時に文書を表示するコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
非構造化文書を分析することにより構築された構造要素の階層を含む構造化文書を規定する命令セットと、
前記文書をデバイスに表示する命令セットと、
前記文書中の関心位置の選択を受信する命令セットと、
前記関心位置に基づいて前記階層内の構造要素を関心領域として識別する命令セットと、
前記識別した関心領域を強調表示するように前記文書の前記表示を変更する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
【請求項１３６】
前記デバイスは小型スクリーンデバイスである請求項１３５に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１３７】
前記デバイスはハンドヘルドデバイスである請求項１３６に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１３８】
前記非構造化文書は関連付けられていない複数の基本要素を含み、前記構造化文書を規定する前記命令セットは、
構造要素を規定するために前記基本要素間の関連付けを行う命令セットと、
前記構造要素の階層を規定する命令セットとを含む請求項１３６に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１３９】
前記構造要素を識別する前記命令セットは、
前記関心位置を含む前記階層の最下位レベルの前記構造要素を識別する命令セットと、
関心領域として適格である構造要素に到達するまで前記階層の前記最下位レベルで識別された前記構造要素を含む前記階層の上位レベルの構造要素を識別する命令セットとを含む請求項１３５に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１４０】
前記階層の前記最下位レベルの前記構造要素は単語として関連付けられたグリフの集合であり、関心領域として適格である前記構造要素は前記単語を含む段落である請求項１３９に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１４１】
前記関心位置は図形要素内にあり、前記関心領域は前記図形要素である請求項１３９に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１４２】
関心位置の選択を受信する前記命令セットは、タッチスクリーンデバイスの特定の位置においてダブルタップを受信する命令セットを含む請求項１３５に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１４３】
前記文書の前記表示を変更する前記命令セットは、前記関心領域を中央に置くために前記文書のズーム、回転及び平行移動の組み合わせに対する命令セットを含む請求項１３５に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１４４】
前記文書の前記表示を変更する前記命令セットは、
前記関心領域である前記構造要素に基づいて関心矩形を規定する命令セットと、
前記関心矩形全体を表示しつつ、前記関心矩形のサイズを最大にするように前記表示をズームする命令セットとを含む請求項１３５に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１４５】
前記関心矩形は、第１の方向の前記矩形の長さが第１の方向の前記デバイスにおける表示の長さと等しくなるようにズームされ、前記文書の前記表示を変更する前記命令セットは、第２の方向において前記表示の前記関心矩形を中央に置く命令セットを更に含む請求項１４４に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１４６】
前記第１の方向は水平であり、前記第２の方向は垂直である請求項１４５に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１４７】
前記第１の方向は垂直であり、前記第２の方向は水平である請求項１４５に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１４８】
前記コンピュータプログラムは、
前記関心領域から移動するための入力を受信する命令セットと、
構造的に関連する関心領域を強調表示するように前記文書の前記表示を変更する命令セットとを更に含む請求項１３５に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１４９】
前記構造的に関連する関心領域は、読み取り順序が前記識別した構造要素の前である構造要素である請求項１４８に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１５０】
前記構造的に関連する関心領域は、読み取り順序が前記識別した構造要素の後である構造要素である請求項１４８に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１５１】
前記構造的に関連する関心領域は、前記文書において初期の関心領域とは異なるページ上の構造要素であり、前記構造化文書は、前記関心領域と前記構造的に関連する関心領域との間のリンクを含む請求項１４８に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１５２】
少なくとも１つのプロセッサにより実行するためのハンドヘルド表示装置に対するコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
基本要素の集合を関連付けることにより規定された構造要素の階層を含む構造化文書を規定するために関連付けられていない複数の基本要素を含む非構造化文書を分析する命令セットと、
前記表示装置が第１の向きを向いている場合に第１のレイアウトで前記構造化文書の特定の一部を前記ハンドヘルド表示装置に表示する命令セットと、
前記表示装置が第２の向きを向いている場合に前記第１のレイアウトとは異なる第２のレイアウトで前記構造化文書の前記特定の一部を前記ハンドヘルド表示装置に表示する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
【請求項１５３】
前記第１の向きは水平の向きであり、前記第２の向きは垂直の向きである請求項１５２に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１５４】
前記構造化文書の前記一部は１カラムで配置されたテキストを含み、前記第１のレイアウトは前記テキストを３カラムで表示し且つ前記第２のレイアウトは前記テキストを２カラムで表示する請求項１５３に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１５５】
前記ハンドヘルド表示装置は、前記表示装置の前記向きを判定する加速度計を含む請求項１５２に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１５６】
前記ハンドヘルド表示装置はｉＰｈｏｎｅ（登録商標）である請求項１５２に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１５７】
文書を表示するプログラムを規定する方法であって、
非構造化文書を分析することにより構築された構造要素の階層を含む構造化文書を規定するモジュールを規定することと、
前記文書をデバイスに表示するモジュールを規定することと、
前記文書中の関心位置の選択を受信するモジュールを規定することと、
前記関心位置に基づいて前記階層内の構造要素を関心領域として識別するモジュールを規定することと、
前記識別した関心領域を強調表示するように前記文書の前記表示を変更するモジュールを規定することとを含む方法。
【請求項１５８】
前記プログラムはハンドヘルドデバイスのファームウェアに対して規定される請求項１５７に記載の方法。
【請求項１５９】
少なくとも１つのプロセッサにより実行された時に文書中のテキストの選択を規定するコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
関連付けられていない複数のグリフを含む非構造化文書を受信する命令セットと、
グリフの集合を関連付ける命令セットと、
前記グリフの読み取りフローを指定する読み取り順序を識別する命令セットと、
前記文書を表示する命令セットと、
前記表示された文書内のテキストの選択に対する開始点及び終了点を受信する命令セットと、
前記識別したグリフの集合及び意図した読み取りフローを使用して前記開始点から前記終了点までのテキストの選択を規定する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
【請求項１６０】
前記関連付けられたグリフの集合は複数の段落を含み、前記読み取り順序は連続しない第１の段落から第２の段落までの読み取りフローを指定する請求項１５９に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１６１】
前記関連付けられたグリフの集合は複数のカラムを含み、前記開始点及び前記終了点は異なるカラムにある請求項１５９に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１６２】
前記読み取り順序はカラム毎に順序値を指定し、前記テキストの選択は前記開始点を含む前記カラムの前記順序値と前記終了点を含む前記カラムの前記順序値との間の順序値を有する全てのカラムを含む請求項１６１に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１６３】
前記コンピュータプログラムは、
前記開始点が前記読み取り順序で前記終了点の後であるかを判定する命令セットと、
前記開始点が前記終了点の後である場合に前記開始点が前記読み取り順序で前記終了点の前になるように前記選択に対する前記開始点及び前記終了点を交換する命令セットとを更に含む請求項１５９に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１６４】
前記テキスト選択に対する前記開始点及び前記終了点は、カーソルコントローラによりクリック及びドラッグ選択により受信される請求項１５９に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１６５】
前記開始点は、カーソルコントローラボタンが押下された時のカーソルの場所であり、前記終了点は、前記カーソルが前記開始点から移動された後の前記カーソルの場所である請求項１５９に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１６６】
前記テキスト選択に対する前記開始点及び前記終了点は、タッチスクリーンジェスチャにより受信される請求項１５９に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１６７】
前記開始点は、ユーザがオブジェクトにより前記タッチスクリーンに最初に触れた場所であり、前記終了点は、前記ユーザが前記オブジェクトをドラッグした先の場所である請求項１６６に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１６８】
前記オブジェクトは前記ユーザの指である請求項１６７に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１６９】
関連付けられたグリフの集合及び読み取り順序を識別する前記命令セットは前記非構造化文書から構造化文書を規定する命令セットを含み、前記関連付けられたグリフの集合は前記構造化文書の構造要素である請求項１５９に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１７０】
前記構造化文書は、各々が１つ以上の関連付けられたグリフの集合を含む複数のレイアウトを含む請求項１６９に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１７１】
前記コンピュータプログラムは、
前記開始点及び前記終了点が同一レイアウト内にあるかを判定する命令セットと、
前記開始点及び前記終了点が同一レイアウトにない場合に開始点と同一のレイアウトにある新しい終了点を規定する命令セットを更に含む請求項１７０に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１７２】
新しい終了点を規定する命令セットは、
前記開始点から前記終了点までの直線を識別することと、
前記線が前記開始点の前記レイアウトを離れる点を前記新しい終了点として規定することとを含む請求項１７１に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１７３】
テキストの選択を規定する前記命令セットは、
前記開始点及び前記終了点が同一のレイアウトにあるかを判定する命令セットと、
前記開始点及び前記終了点が異なるレイアウトにある場合に前記レイアウトの前記開始点の後の前記開始点の前記レイアウト中の全てのテキストを含むように前記選択を規定する命令セットとを含む請求項１７０に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１７４】
テキストの選択を規定する前記命令セットは、前記開始点の前記レイアウトと前記終了点の前記レイアウトとの間のあらゆるレイアウトの全てのテキストを含むように前記選択を規定する命令セットを更に含む請求項１７３に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１７５】
前記テキストの選択は第２の文書にコピー及び貼り付けするためのものであり、前記テキストは前記読み取り順序を維持して前記第２の文書に貼り付けられる請求項１５９に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１７６】
少なくとも１つのプロセッサにより実行するためのコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
複数の構造要素及び前記構造要素の読み取り順序を含む構造化文書を複数の基本要素を含む非構造化文書の階層モデルとして規定するために前記非構造化文書を分析する命令セットと、
前記文書を表示する命令セットと、
前記文書中のテキストの選択に対する開始点及び終了点を受信する命令セットと、
前記構造要素及び前記構造要素の読み取り順序を使用して前記開始点から前記終了点までの文書中のテキストを選択する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
【請求項１７７】
前記文書は、ハンドヘルド表示装置に表示される請求項１７６に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１７８】
前記開始点は１つの記事内のテキストカラムにあり、前記終了点は前記記事に対するコールアウト内にある請求項１７６に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１７９】
前記コンピュータプログラムは、前記終了点を前記記事のテキストカラムに移動する命令セットを更に含む請求項１７８に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１８０】
テキストを選択する前記命令セットは、前記記事の前記カラムの全てのテキストを選択する命令セットを含む請求項１７８に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１８１】
文書中のテキストの選択を規定するプログラムを規定する方法であって、
関連付けられていない複数のグリフを含む非構造化文書を受信するモジュールを規定することと、
グリフの集合を関連付けるモジュールを規定することと、
前記グリフの読み取りフローを指定する読み取り順序を識別するモジュールを規定することと、
前記文書を表示するモジュールを規定することと、
前記表示された文書内のテキストの選択に対する開始点及び終了点を受信するモジュールを規定することと、
前記識別したグリフの集合及び意図した読み取りフローを使用して前記開始点から前記終了点までのテキストの選択を規定するモジュールを規定することとを含む方法。
【請求項１８２】
少なくとも１つのプロセッサにより実行された時に文書における位置に関して規定される複数の基本要素を含む前記文書に対する構造を規定するコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
特定の基本要素の集合に対して最近接する基本要素の対の間の距離を識別する命令セットと、
前記識別した距離をソートする命令セットと、
区分に対する所定の閾値より大きい前記識別した距離を識別する単一の値を格納する命令セットと、
前記文書に対する構造要素を規定するために前記区分を識別及び分析するのに前記格納した単一の値を使用する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
【請求項１８３】
前記区分に対する前記所定の閾値は、一対の基本要素の間の最短距離を識別する請求項１８２に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１８４】
前記最短距離より近い基本要素の対は同一の基本要素のクラスタにある請求項１８３に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１８５】
少なくとも１つのプロセッサにより実行された時に文書における位置に関して規定される複数の基本要素を含む前記文書に対する構造を規定するコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
特定の基本要素の集合に対して前記集合の最近接する基本要素の対毎のグループ化を識別する命令セットと、
最近接する対から最も離れた対までの順序に基づいて前記基本要素の対毎のグループ化をソートする命令セットと、
区分を形成するのに十分に離間している前記基本要素の対毎のグループ化を識別する単一の値を格納する命令セットと、
前記文書に対する構造要素を規定するために前記区分を識別及び分析するのに前記格納した単一の値を使用する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
【請求項１８６】
前記コンピュータ読み取り可能な記憶媒体はハンドヘルドデバイスのファームウェアである請求項１８５に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１８７】
前記デバイスは携帯電話である請求項１８６に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１８８】
前記デバイスはメディアプレーヤである請求項１８６に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１８９】
前記コンピュータプログラムは、前記構造要素及び前記基本要素を含む構造化文書を規定する命令セットを更に含む請求項１８５に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１９０】
前記文書は複数のグリフを含み、
前記コンピュータプログラムは、グリフの集合を単語として関連付ける命令セットを更に含み、
前記特定の基本要素の集合は単語の最も左側のグリフであり、
構造要素を規定するために前記区分を識別及び分析するのに前記格納した単一の値を使用する前記命令セットは、位置揃えされた単語の集合に対する左揃えガイドを規定する命令セットを含む請求項１８５に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１９１】
前記文書は複数のグリフを含み、
前記コンピュータプログラムは、グリフの集合を単語として関連付ける命令セットを更に含み、
前記特定の基本要素の集合は単語の最も右側のグリフであり、
構造要素を規定するために前記区分を識別及び分析するのに前記格納した単一の値を使用する前記命令セットは、位置揃えされた単語の集合に対する右揃えガイドを規定する命令セットを含む請求項１８５に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１９２】
前記特定の基本要素の集合は基本図形要素であり、構造要素を規定するために前記区分を識別及び分析するのに前記格納した単一の値を使用する前記命令セットは、近傍の基本図形要素を構造図形要素として関連付ける命令セットを含む請求項１８５に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１９３】
前記基本要素はグリフであり、構造要素を規定する前記命令セットは、近傍のグリフの集合を単語として関連付ける命令セットを含む請求項１８５に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１９４】
最近接する基本要素の対毎のグループ化を識別する前記命令セットは、
共通の並び線を含むグリフの集合を識別する命令セットと、
前記グリフの座標に基づいて前記グリフの集合を第１の方向にソートする命令セットと、
前記ソートした集合の連続するグリフの対毎に前記対の前記グリフの間の座標値の差分を計算する命令セットと、
前記計算した差分を第１の配列に格納する命令セットとを含む請求項１９３に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１９５】
最近接する対から最も離れた対までの順序に基づいて前記対毎の基本要素をソートする前記命令セットは、
前記計算した差分値をソートする命令セットと、
前記ソートした差分に対応する前記第１の配列の指標を第２の配列に格納する命令セットとを含む請求項１９４に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１９６】
最小の差分値を格納する前記第１の配列の指標は、前記第２の配列の第１の指標の値として格納される請求項１９５に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１９７】
前記コンピュータプログラムは、グリフ間の最小差分を判定する命令セットを更に含み、前記格納した単一の値は、前記最小差分を格納する前記第１の配列の前記指標が格納される前記第２の配列の指標である請求項１９５に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１９８】
前記最小差分は単語間の空隙を表す請求項１９７に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１９９】
前記区分を識別及び分析するのに前記格納した値を使用する命令セットは、前記単一の値として格納された前記指標以降の前記第２の配列の全ての指標において前記第２の配列の値として格納される第３の配列の指標において前記ソートしたｘ座標値を格納する前記第３の配列を分割する命令セットを含む請求項１９７に記載のコンピュータ読み取り可能な記憶媒体。
【請求項２００】
前記単一の値を格納する前記命令セットは、各々が前記基本要素に対する種々の区分を識別する複数の単一の値を格納する命令セットを含む請求項１８５に記載のコンピュータ読み取り可能な記憶媒体。
【請求項２０１】
前記コンピュータプログラムは、最適な距離尺度を表す理想的な最適な区分を識別するために前記基本要素に対する前記種々の区分を分析することを更に含む請求項２００に記載のコンピュータ読み取り可能な記憶媒体。
【請求項２０２】
文書に対する構造を規定するプログラムを規定する方法であって、
文書における位置に関して規定される複数の基本要素を含む前記文書において最近接する基本要素の対毎のグループ化を識別するモジュールを規定することと、
最近接する対から最も離れた対までの順序に基づいて前記基本要素の対毎のグループ化をソートするモジュールを規定することと、
区分を形成するのに十分に離間している前記対毎にグループ化された基本要素を識別する単一の値を格納するモジュールを規定することと、
前記文書に対する構造要素を規定するために前記区分を識別及び分析するのに前記格納した値を使用するモジュールを規定することとを含む方法。
【請求項２０３】
前記構造要素及び前記基本要素に基づいて構造化文書を規定するモジュールを規定することを更に含む請求項２０２に記載の方法。
【請求項２０４】
前記構造化文書は、前記構造要素がノードである階層構造である請求項２０３に記載の方法。
【請求項２０５】
複数の基本要素を含む文書を分析及び操作する複数の異なる処理を規定することと、
前記基本要素と関連付けられたデータに対する記憶装置を規定することとから成り、前記データの少なくとも一部は前記処理とは別個のメモリ空間に格納され且つ少なくとも２つの異なる処理により共有され、前記処理は前記データに対する参照を使用して前記データにアクセスし、前記データは前記処理により複製されない方法。
【請求項２０６】
前記基本要素と関連付けられたデータに対する前記記憶装置は第１の記憶装置であり、前記方法は、（ｉ）前記基本要素を識別するために前記文書を構文解析し、（ｉｉ）前記基本要素を第２の記憶装置に格納するパーサを更に含む請求項２０５に記載の方法。
【請求項２０７】
前記基本要素と関連付けられた前記データは、前記第２の記憶装置の前記基本要素に対する参照を含む請求項２０６に記載の方法。
【請求項２０８】
前記パーサは、（ｉ）前記基本要素をランダムな順序で識別するために前記文書を構文解析し、（ｉｉ）前記基本要素を前記ランダムな順序で前記第２の記憶装置に格納するためのものである請求項２０６に記載の方法。
【請求項２０９】
前記ランダムな順序は、前記基本要素が前記文書のビットストリーム表現で規定される順序である請求項２０６に記載の方法。
【請求項２１０】
（ｉ）特定の計測値に従って前記基本要素をソートし、（ｉｉ）前記基本要素と関連付けられた前記データをソート済み順序で前記第１の記憶装置に格納するモジュールを規定することを更に含む請求項２０６に記載の方法。
【請求項２１１】
前記基本要素は前記文書における場所に関する情報を含み、前記特定の計測値は前記基本要素の前記場所に基づく請求項２１０に記載の方法。
【請求項２１２】
前記文書の特定のページ内で、前記特定の計測値は、第１計測値として上から下に前記基本要素をソートし、第２計測値として左か右に前記基本要素をソートする請求項２１０に記載の方法。
【請求項２１３】
前記基本要素は複数のグリフを含む請求項２０５に記載の方法。
【請求項２１４】
前記複数の異なる処理は、
グリフの集合をテキスト行として関連付ける処理と、
グリフの集合を単語として関連付ける処理とを含む請求項２１３に記載の方法。
【請求項２１５】
グリフの集合をテキスト行として関連付ける前記処理は、前記基本要素と関連付けられた前記データを参照する第１のストリングとして特定のテキスト行を格納し、
グリフの集合を単語として関連付ける前記処理は、前記基本要素と関連付けられた同一データを参照する第２のストリングとして特定の単語を格納する請求項２１４に記載の方法。
【請求項２１６】
前記同一のデータは、複製されずに双方の処理により使用される請求項２１５に記載の方法。
【請求項２１７】
前記第１のストリング及び前記第２のストリングの各々は、２つの値だけを格納することにより前記データを参照する請求項２１５に記載の方法。
【請求項２１８】
前記２つの値は、第１のデータに対する参照及び前記ストリング中のデータ数のカウントである請求項２１７に記載の方法。
【請求項２１９】
前記第１のストリング及び前記第２のストリングは、同一の第１のデータを参照し、異なるカウントを格納する請求項２１７に記載の方法。
【請求項２２０】
前記基本要素と関連付けられたデータに対する前記記憶装置を管理するための共有メモリデータ構造を規定することを更に含む請求項２０５に記載の方法。
【請求項２２１】
前記共有メモリデータ構造は、前記基本要素と関連付けられた前記データが格納される前記別個のメモリ空間における場所を格納するためのものである請求項２２０に記載の方法。
【請求項２２２】
前記共有メモリデータ構造は、少なくとも２つの他のデータ構造が前記基本要素と関連付けられた前記データを参照する場合に使用するためのものである請求項２２０に記載の方法。
【請求項２２３】
前記少なくとも２つの他のデータ構造は、前記基本要素と関連付けられた前記データの所有権を共有する請求項２２２に記載の方法。
【請求項２２４】
前記共有メモリデータ構造は、前記基本要素と関連付けられた前記データを参照する他のデータ構造の数を格納するためのものである請求項２２０に記載の方法。
【請求項２２５】
少なくとも１つのプロセッサにより実行するためのコンピュータプログラムを格納するコンピュータ読み取り可能な記憶媒体であって、前記コンピュータプログラムは、
複数の基本要素を含む文書を構文解析する命令セットと、
ランダムな順序で前記基本要素を第１の記憶装置に格納する命令セットと、
前記文書における前記基本要素の場所に基づく順序で前記基本要素に対する参照を第２の記憶装置に格納する命令セットと、
文書再構成動作を実行するための命令を受信する命令セットと、
前記基本要素に対するいずれの新しい参照も格納せずに前記受信した命令を実行する命令セットとを含むコンピュータ読み取り可能な記憶媒体。
【請求項２２６】
前記コンピュータプログラムは、
第２の文書再構成動作を実行するための第２の命令セットを受信する命令セットと、
前記第２の文書再構成動作を実行することが前記基本要素に対する新しい参照を必要とすることを判定する命令セットと、
前記第２の記憶装置とは異なる順序で前記基本要素に対する新しい参照を第３の記憶装置に格納する命令セットとを更に含む請求項２２５に記載のコンピュータ読み取り可能な記憶媒体。
【請求項２２７】
前記第２の記憶装置及び前記第３の記憶装置は、同一の物理的記憶装置にある請求項２２６に記載のコンピュータ読み取り可能な記憶媒体。
【請求項２２８】
（ｉ）複数の基本要素を含む文書を構文解析し、（ｉｉ）ランダムな順序で前記基本要素を第１の記憶装置に格納する第１のモジュールを規定することと、
（ｉ）前記ランダムに順序付けされた基本要素に対する参照を格納する第２の記憶装置にメモリを割り当て、（ｉｉ）特定の順序で前記参照を前記割り当てられたメモリに格納する第２のモジュールを規定することと、
前記順序付けされた参照の一部を参照し且つ前記順序付けされた参照のうちの第１の参照に対する参照及びカウント値のみを含むデータ構造を格納する第３のモジュールを規定することと、
（ｉ）文書再構成動作を実行するための命令を受信し、（ｉｉ）前記第１のモジュール、前記第２のモジュール及び前記第３のモジュールのうちメモリ及び計算の使用量を最小限にしつつ前記文書再構成動作を実行することを要求されるモジュールを識別する第４のモジュールを規定することとを含む方法。
【請求項２２９】
前記第３のモジュールのみが特定の文書再構成動作を実行する必要がある場合、前記基本要素のコピー又は前記基本要素に対する新しい参照に対して新しいメモリは割り当てられない請求項２２８に記載の方法。
【請求項２３０】
前記文書は非構造化文書である請求項１、２２、３０、３９、４４、４６、５０、６１、６７、７１、８８、９２、１１２、１２４、１８２、１８５及び２２５のいずれか１項に記載のコンピュータ読み取り可能な記憶媒体。
【請求項２３１】
前記文書はベクトル図形文書である請求項１、２２、３０、３９、４４、４６、５０、６１、６７、７１、８８、９２、１１２、１２４、１８２、１８５及び２２５のいずれか１項に記載のコンピュータ読み取り可能な記憶媒体。
【請求項２３２】
前記文書はＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）文書である請求項１、２２、３０、３９、４４、４６、５０、６１、６７、７１、８８、９２、１１２、１２４、１８２、１８５及び２２５のいずれか１項に記載のコンピュータ読み取り可能な記憶媒体。
【請求項２３３】
前記コンピュータプログラムはハンドヘルドデバイスに対するアプリケーションである請求項１、２２、３０、３９、４４、４６、５０、６１、６７、７１、８８、９２、１１２、１２４、１３５、１５２、１５９、１７６、１８２、１８５及び２２５のいずれか１項に記載のコンピュータ読み取り可能な記憶媒体。
【請求項２３４】
前記コンピュータプログラムはオペレーティングシステムの一部である請求項１、２２、３０、３９、４４、４６、５０、６１、６７、７１、８８、９２、１１２、１２４、１３５、１５２、１５９、１７６、１８２、１８５及び２２５のいずれか１項に記載のコンピュータ読み取り可能な記憶媒体。
【請求項２３５】
前記コンピュータプログラムは、オペレーティングシステム上で実行するアプリケーションである請求項１、２２、３０、３９、４４、４６、５０、６１、６７、７１、８８、９２、１１２、１２４、１３５、１５２、１５９、１７６、１８２、１８５及び２２５のいずれか１項に記載のコンピュータ読み取り可能な記憶媒体。
【請求項２３６】
前記非構造化文書はベクトル図形文書である請求項１３５、１５２、１５９及び１７６のいずれか１項に記載のコンピュータ読み取り可能な記憶媒体。
【請求項２３７】
前記非構造化文書は、ＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）文書である請求項１３５、１５２、１５９及び１７６のいずれか１項に記載のコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書再構成に関する。特に、本発明は、非構造化文書から構造化文書を規定し、そのような処理の効率を向上し且つ構造化文書の表示及び構造化文書との対話を向上する方法に関する。
【背景技術】
【０００２】
文書は、規定された場所においてページに描かれる基本要素の集合としてのみ規定されることが多い。例えばＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）ファイルは、構造の定義を有さず、種々の場所にグリフ、形状及びビットマップを描く命令にすぎない。
【０００３】
ユーザは、標準的なモニタでそのような文書を閲覧でき且つ構造を推定できる。しかし、そのようなファイルは単に基本要素の集合であるため、文書閲覧アプリケーションは文書の意図する構造の知識を有さない。例えば、表は一連の線及び／又は線の間にテキストを有する一連の矩形として表示され、閲覧者がそれを表として認識する。しかし、文書を表示するアプリケーションは、テキストのグループが行及び列に基づく互いに対する関係を示さない。これは、文書がそのような情報を含まないためである。同様に、アプリケーションは、ページ中のテキストのフロー（例えば、１つの列から次の列へのフロー又は埋め込み画像の周囲のフロー）又はユーザにより即座に判定される種々の他の重要な品質を示すこともない。
【０００４】
ユーザが標準的なモニタで単純に文書を閲覧している時は、この文書構造に関する知識の欠落は常に問題になるわけではない。しかし、多くの場合、読者が構造及び要素間の関係を有するワードプロセッサ、画像編集アプリケーション等により生成された文書であるかのようにファイルにアクセスして編集できることは価値あることである。
【０００５】
従って、非構造化文書を再構成できる方法が必要とされる。同様に、文書の表示（例えば、文書全体を１度に画面に表示するのが現実的でない小型スクリーンデバイスに対する）を理想化するため又は文書の要素のインテリジェント選択を可能にするためにそのような再構成された文書構造を利用する方法が必要とされる。
【０００６】
現在、益々多くのコンピューティングアプリケーションがハンドヘルドデバイス（例えば、携帯電話、メディアプレーヤ等）に移行している。従って、文書再構成技術は、一般に標準的なパーソナルコンピュータより消費電力が少ないそのようなデバイスにおいて実行可能である必要がある。しかし、文書再構成は、相当の計算及びクラスタ分析のようなメモリ集中型手順を使用することが多く、メモリの多くの部分を使用することが多い。従って、一般に文書再構成及び特にクラスタ分析をより効率的にする技術が更に必要とされる。
【発明の概要】
【０００７】
本発明の種々の実施形態は、構造化文書を規定するために非構造化文書を分析する種々の技術を使用する。いくつかの実施形態において、非構造化文書は、多くの基本要素を含むが、基本要素間の構造関係を指定する構造要素及び／又はそれらの基本要素に基づく文書の構造属性を含まない。従って、構造化文書を規定するために、いくつかの実施形態は、非構造化文書の基本要素を使用して非構造化文書の種々の幾何学的属性を識別し、識別された幾何学的属性及び基本要素の他の属性を使用して関連する基本要素（例えば、単語、段落、結合グラフ等）、表、ガイド、のど等の構造要素を規定し且つ基本要素及び構造要素の読み取りフローを規定する。
【０００８】
上述したように、いくつかの実施形態は、種々の幾何学的属性を識別するために基本要素を使用する。例えばいくつかの実施形態は、基本要素の集合間の境界線及び境界線により制限された領域を識別する方法を提供する。方法は、文書に対して構造要素を規定するために識別された領域を使用し、基本要素及び構造要素に基づいて構造化文書を規定する。いくつかの実施形態において、構造要素を規定することは、特定の領域の基本要素の集合間の関連付けを行うために各領域を別個に分析することを含む。いくつかの実施形態において、構造化文書を規定することは、識別された領域間の階層関係を識別することを含む。
【０００９】
いくつかの実施形態は、多くの単語を含む非構造化文書を分析する方法を提供する。ここで、各単語は関連するグリフの集合であり、各グリフは位置座標を有する。方法は、位置値のクラスタを識別する。各位置値は、１つの単語と関連付けられ、単語の位置揃えの基本であり、その単語のグリフの位置座標から導出される。方法は、識別された位置値のクラスタに基づいて、単語に対する位置揃えガイドの集合を識別する単語に対する境界要素の集合を規定する。方法は、グリフ及び規定された境界要素に基づいて構造化文書を規定する。いくつかの実施形態は、一対の境界要素の間の空白の少なくとも１つの領域を規定し、その空白の領域に基づいて構造化文書を更に規定する。いくつかの実施形態は、密度クラスタリングを使用して位置値のクラスタを識別する。
【００１０】
いくつかの実施形態は、構造要素を規定するため並びに基本要素及び構造要素の読み取りフローを規定するために幾何学的属性及び基本要素の他の属性を使用する。例えばいくつかの実施形態は、各々が非構造化文書における位置を有する複数のグリフを含む非構造化文書を分析する方法を提供する。方法は、グリフの位置に基づいて、異なるグリフの集合を異なる単語として識別するために異なるグリフの集合間の関連付けを行う。方法は、異なる単語の集合を異なる段落として識別するために異なる単語の集合間の関連付けを行う。方法は、段落の読み取り順序を規定するために連続していない段落の間の関連を規定する。異なる単語の集合を異なる段落として識別するために異なる要素の集合間の関連付けを行うために、いくつかの実施形態は、異なるテキスト行である異なる単語の集合間の関連付けを行い、異なる段落である異なるテキスト行の集合間の関連付けを行う。
【００１１】
いくつかの実施形態は、グリフの集合間の境界線を識別し且ついくつかの境界線が表を形成することを識別する方法を提供する。方法は、いくつかの行及び列に配置されたいくつかのセルを含む表に基づいて表の構造要素を規定する。ここで、各セルは関連したグリフの集合を含む。いくつかの実施形態は、より大きな矩形及びそのより大きな矩形内に含まれたいくつかの矩形を形成する境界線の集合を識別することにより境界線が表を形成することを識別する。いくつかの実施形態において、識別された境界線のうち少なくとも一部の境界線はセルを形成する関連したグリフの集合の位置に基づいて推論される。
【００１２】
いくつかの実施形態は、各々が単一のオブジェクトとして規定される多くの基本図形要素を含む非構造化文書を分析する方法を提供する。文書は、基本図形要素が描かれる順序を示す描画順序を有する。方法は、その描画順序が連続する基本図形要素間の位置関係を識別する。方法は、位置関係に基づいて、いくつかの基本図形要素から単一の構造図形要素を規定する。いくつかの実施形態は、第１の基本図形要素及び第２の基本図形要素を含む構造図形要素のサイズを計算することにより描画順序が連続する第１の基本図形要素と第２の基本図形要素との間の位置関係を識別する。
【００１３】
いくつかの実施形態は、幾何学的分析及び文書再構成をより効果的にする方法を提供する。例えばいくつかの実施形態は、複数の基本要素を含む構造化文書を規定するデフォルトの文書再構成動作の集合を提供する方法を提供する。方法は、プロファイルの階層集合を提供する。各プロファイルは、（ｉ）文書再構成結果の集合及び（ｉｉ）中間文書再構成結果がプロファイルに対する潜在的な文書再構成結果と一致する場合に文書再構成動作を変更するための結果を含む。階層の下位レベルにおけるプロファイルからの命令は、上位レベルにおけるプロファイルからの命令を無効にする。いくつかの実施形態において、特定のプロファイルに対する命令は、中間文書再構成結果がプロファイルに対する潜在的な文書再構成結果と一致した時にテストされるべきであるプロファイルの階層集合の下位レベルにおけるプロファイルの部分集合を含む。
【００１４】
構造化文書が規定されると、いくつかの実施形態は、構造化文書とのユーザ対話を理想化する種々の技術を提供する。例えばいくつかの実施形態は、非構造化文書を分析することにより構築された構造要素の階層を含む構造化文書を表示する方法を提供する。方法は、構造化文書をデバイス（例えば、小型スクリーンデバイス）に表示する。方法は、文書中の関心位置を受信し、関心位置に基づいて階層内の構造要素を関心領域として識別する。方法は、識別された関心領域を強調表示するために文書の表示を変更する。いくつかの実施形態は、関心位置を含む階層の最下位レベルの構造要素を識別し、関心領域として適格な構造要素に到達するまで最下位レベルで識別された構造要素を含む階層の上位レベルの構造要素を識別することにより、構造要素を識別する。いくつかの実施形態は、関心領域から移動するために入力を受信し、構造的に関連する関心領域を強調表示するために文書の表示を変更する。
【００１５】
いくつかの実施形態は、多くのグリフを含む非構造化文書においてテキストの選択を規定する方法を提供する。方法は、関連したグリフの集合及びグリフの読み取りフローを指定する読み取り順序を識別する。方法は、文書を表示し、表示された文書内のテキストの選択のための開始点及び終了点を受信する。方法は、識別されたグリフの集合及び意図された読み取りフローを使用して開始点から終了点までのテキストの選択を規定する。いくつかの実施形態において、関連したグリフの集合は段落であり、読み取り順序は連続しない第１の段落から第２の段落までの読み取りフローを指定する。
【００１６】
いくつかの実施形態は、幾何学的分析及び文書再構成処理の効率を向上する方法を提供する。いくつかの実施形態は、計算集中処理である文書再構成及び／又は幾何学的分析のためのクラスタ分析を使用する。従って、いくつかの実施形態は、文書中の位置に関して規定される多くの基本要素を含む非構造化文書に対して構造を規定する方法を提供する。方法は、最近接する基本要素の対毎のグループを規定し、最近接する対から最も離れた対までの順序に基づいて対毎の基本要素をソートする。方法は、区分を形成するのに十分に離間している対毎の基本要素を識別する単一の値を格納する。方法は、文書に対する構造要素を規定するために、格納された値を使用して区分を識別及び分析する。
【００１７】
いくつかの実施形態は、効率的なデータ構造を使用する方法を更に提供する。例えばいくつかの実施形態は、多くの基本要素を含む非構造化文書を分析及び操作するいくつかの異なる処理を提供する。いくつかの実施形態は、基本要素と関連付けられたデータに対する記憶装置を更に提供する。データの少なくとも一部は、処理とは別個のメモリ空間に格納され、少なくとも２つの異なる処理により共有される。処理は、データに対する参照を使用してデータにアクセスする。データは処理により複製されない。
【図面の簡単な説明】
【００１８】
本発明の新しい特徴を添付の請求の範囲に示す。しかし、本発明のいくつかの実施形態を説明の目的で以下の図面に示す。
【００１９】
【図１】いくつかの実施形態の全体の再構成フローを示す図である。
【図２】文書のページ、並びにそのページにおいて実行されるいくつかの実施形態の幾何学的分析及び文書再構成から得られる種々の結果を示す図である。
【図３】文書のページのゾーンを識別し且つページに対するゾーン木を生成するいくつかの実施形態の処理を概念的に示すフローチャートである。
【図４】いくつかの実施形態において、ページ、並びにページのゾーンを識別し且つページに対するゾーン木を生成するシーケンスを示す図である。
【図５】いくつかのゾーンを含む文書のページを示す図である。
【図６】回転グループを含む複数のゾーン及びゾーン境界図形を含むページを示す図である。
【図７】図５のページに対するいくつかの実施形態のゾーン木を示す図である。
【図８】ページ上の回転グループを規定するいくつかの実施形態の処理を概念的に示すフローチャートである。
【図９】ゾーン境界及び交点を識別するいくつかの実施形態の処理を概念的に示すフローチャートである。
【図１０】種々の図形及びテキストを含むページを示す図である。
【図１１】図１０のページに対するゾーン境界区間及び交点を示す図である。
【図１２】ゾーンを識別するいくつかの実施形態の処理を概念的に示すフローチャートである。
【図１３】図１０のページのゾーンを識別するための図１２の処理を適用することを示す図である。
【図１４】図１０のページのゾーンを識別するための図１２の処理を適用することを示す図である。
【図１５Ａ】ゾーン木を生成するいくつかの実施形態の処理を概念的に示すフローチャートである。
【図１５Ｂ】ゾーン木を生成するいくつかの実施形態の処理を概念的に示すフローチャートである。
【図１６】サイズによりソートされ且つノードグラフに配置された図１０のページのゾーンを示す図である。
【図１７】いくつかの実施形態のゾーン分析アプリケーションのソフトウェアアーキテクチャを概念的に示す図である。
【図１８】文書中のガイド及びのどを識別するいくつかの実施形態の全体の処理を示すフローチャートである。
【図１９】２つのテキストカラムを有するページ並びにそのページに対して識別されたガイド及びのどを示す図である。
【図２０】密度クラスタリングを実行するいくつかの実施形態の処理を概念的に示すフローチャートである。
【図２１】左揃えガイドを判定するいくつかの実施形態の処理を概念的に示すフローチャートである。
【図２２】ページ上の左揃えガイドの識別を示す図である。
【図２３】ページ上の左揃えガイドの識別を示す図である。
【図２４】ページ上の左揃えガイドの識別を示す図である。
【図２５】右揃えガイドを判定するいくつかの実施形態の処理を概念的に示すフローチャートである。
【図２６】文書の領域に対するのどを判定するいくつかの実施形態の処理を概念的に示すフローチャートである。
【図２７】ページ上ののどの識別を示す図である。
【図２８】ページ上ののどの識別を示す図である。
【図２９】ページ上ののどの識別を示す図である。
【図３０】いくつかの実施形態のガイド及びのど分析アプリケーションのソフトウェアアーキテクチャを概念的に示す図である。
【図３１】文書のレイアウト及びフローを判定するいくつかの実施形態の処理を概念的に示すフローチャートである。
【図３２】文書のページに対するレイアウト及びフロー情報を判定するいくつかの実施形態のシーケンスを示す図である。
【図３３】テキスト行を識別及びマージするいくつかの実施形態の処理を概念的に示すフローチャートである。
【図３４】６グループのテキスト行の重なりを有するページを示す図である。
【図３５】図３４のテキスト行のグループのマージを示す図である。
【図３６】差分クラスタリングを実行するいくつかの実施形態の処理を概念的に示すフローチャートである。
【図３７】差分クラスタリングの一例を示す図である。
【図３８Ａ】テキスト行を分割するいくつかの実施形態の処理を概念的に示すフローチャートである。
【図３８Ｂ】テキスト行を分割するいくつかの実施形態の処理を概念的に示すフローチャートである。
【図３９】ページ上のテキスト行を分割する場所の識別を示すシーケンスを示す図である。
【図４０】テキスト行を段落にグループ化するいくつかの実施形態の処理を概念的に示すフローチャートである。
【図４１】ページ上の段落の識別を示す図である。
【図４２】文書の一部におけるカラム及びレイアウトを識別するいくつかの実施形態の処理を概念的に示すフローチャートである。
【図４３】２つの異なるページ上の段落を示す図である。
【図４４】２つの異なるページ上の段落を示す図である。
【図４５】図４３及び図４４のページに対するフローグラフの生成を示す図である。
【図４６】図４３及び図４４のページに対するフローグラフの生成を示す図である。
【図４７】いくつかの実施形態のレイアウト及びフロー分析アプリケーションのソフトウェアアーキテクチャを概念的に示す図である。
【図４８】文書の一部における表を識別するいくつかの実施形態の処理を概念的に示すフローチャートである。
【図４９】完全な境界を有する表の一例を示す図である。
【図５０】接続されるが不完全な境界を有する表の一例を示す図である。
【図５１】境界を有さない表の一例を示す図である。
【図５２】接続されない境界を有する表の一例を示す図である。
【図５３Ａ】完全な境界の集合を有する表を識別し且つ識別された表のセル、行及び列を規定するいくつかの実施形態の処理を概念的に示すフローチャートである。
【図５３Ｂ】完全な境界の集合を有する表を識別し且つ識別された表のセル、行及び列を規定するいくつかの実施形態の処理を概念的に示すフローチャートである。
【図５４】完全な境界を有する表を含むページを示す図である。
【図５５Ａ】接続された境界の集合を有する表を識別及び再構成するいくつかの実施形態の処理を概念的に示すフローチャートである。
【図５５Ｂ】接続された境界の集合を有する表を識別及び再構成するいくつかの実施形態の処理を概念的に示すフローチャートである。
【図５６】接続された境界の集合を有する表の識別及び再構成を示すシーケンスを示す図である。
【図５７Ａ】境界のない表又は接続されない境界を有する表を識別及び再構成するいくつかの実施形態の処理を概念的に示すフローチャートである。
【図５７Ｂ】境界のない表又は接続されない境界を有する表を識別及び再構成するいくつかの実施形態の処理を概念的に示すフローチャートである。
【図５８】接続されない境界を有する表を識別するためにページに対して図５７の処理を適用することを示す図である。
【図５９】接続されない境界を有する表を識別するためにページに対して図５７の処理を適用することを示す図である。
【図６０】接続されない境界を有する表を識別するためにページに対して図５７の処理を適用することを示す図である。
【図６１】いくつかの実施形態の表識別アプリケーションのソフトウェアアーキテクチャを概念的に示す図である。
【図６２】個々のグラフを結合グラフに結合するいくつかの実施形態の処理を概念的に示すフローチャートである。
【図６３】ページ上のグラフの結合を示す図である。
【図６４】結合されるべきグラフを識別するために境界クラスタリングを実行し且つそれらのグラフを結合するいくつかの実施形態の処理を概念的に示すフローチャートである。
【図６５】広がりが計算される２つの図形オブジェクトをそれぞれ有する２つのページを示す図である。
【図６６】サブシーケンスに含めるようにクラスタを処理するいくつかの実施形態の処理を示すフローチャートである。
【図６７】結合されるべきグラフを識別し且つそれらのグラフを１つのグラフとして関連付けるいくつかの実施形態のグラフ結合アプリケーションを概念的に示す図である。
【図６８】コンテンツの種類に合わせてコンテンツ処理を適合するためにプロファイルを使用するいくつかの実施形態の処理を概念的に示すフローチャートである。
【図６９】＃１０封筒のプロファイルに適合する文書を示す図である。
【図７０】いくつかの実施形態のプロファイルの階層集合を示す図である。
【図７１】階層プロファイルに従ってコンテンツを処理するいくつかの実施形態の処理を概念的に示すフローチャートである。
【図７２】階層プロファイリングを使用して文書再構成を実行するいくつかの実施形態の処理を概念的に示すフローチャートである。
【図７３】いくつかの実施形態が特定の方法を実現する最下位レベルの有効なプロファイルを識別する方法を示す図である。
【図７４】４つの異なるページに対するいくつかの実施形態のページプロファイルマッチング処理の一例を示す図である。
【図７５】４つの異なるページに対するいくつかの実施形態のページプロファイルマッチング処理の一例を示す図である。
【図７６】４つの異なるページに対するいくつかの実施形態のページプロファイルマッチング処理の一例を示す図である。
【図７７】４つの異なるページに対するいくつかの実施形態のページプロファイルマッチング処理の一例を示す図である。
【図７８】いくつかの実施形態において関心位置の識別に基づいて文書を表示する処理を概念的に示すフローチャートである。
【図７９】本発明のいくつかの実施形態に従って関心位置が選択され且つ表示が変更される小型スクリーンデバイスにおけるシーケンスを示す図である。
【図８０Ａ】関心領域を識別し且つ表示装置に関心領域を描くために変換を適用するいくつかの実施形態の第１の詳細な処理を示すフローチャートである。
【図８０Ｂ】関心領域を識別し且つ表示装置に関心領域を描くために変換を適用するいくつかの実施形態の第１の詳細な処理を示すフローチャートである。
【図８１Ａ】関心領域を識別し且つ表示装置に関心領域を描くために変換を適用するいくつかの実施形態の第２の詳細な処理を示すフローチャートである。
【図８１Ｂ】関心領域を識別し且つ表示装置に関心領域を描くために変換を適用するいくつかの実施形態の第２の詳細な処理を示すフローチャートである。
【図８２】意味的に再構成された文書を表示するいくつかの実施形態の処理を概念的に示すフローチャートである。
【図８３】いくつかの実施形態の図８２の処理の適用例を示す図である。
【図８４】意味的に再構成された文書において領域間をナビゲートするいくつかの実施形態の処理を概念的に示すフローチャートである。
【図８５】小型スクリーンデバイスに対して意味的に再構成された文書のレイアウトを変更するいくつかの実施形態の処理を概念的に示すフローチャートである。
【図８６】本発明のいくつかの実施形態に従って大きな画面に表示されるような文書のページ及び小型スクリーンデバイス上のページの一部の表示を示す図である。
【図８７】意味的に再構成された文書においてテキストの選択を判定するいくつかの実施形態の処理を概念的に示すフローチャートである。
【図８８】いくつかの実施形態に従って意味的に再構成された文書のページにおけるテキストの選択のシーケンスを示す図である。
【図８９】意味的に再構成された文書におけるテキストの選択を規定するいくつかの実施形態の第１の詳細な処理を示すフローチャートである。
【図９０】意味的に再構成された文書のページにおける選択に対する第１の開始点及び終了点を示す図である。
【図９１】図８９の処理に従って図９０の開始点及び終了点により規定された選択を示す図である。
【図９２】意味的に再構成された文書のページにおける選択に対する第２の開始点及び終了点を示す図である。
【図９３】図８９の処理に従って図９２の開始点及び終了点により規定された選択を示す図である。
【図９４】意味的に再構成された文書におけるテキストの選択を規定するいくつかの実施形態の第２の詳細な処理を示すフローチャートである。
【図９５】図９４の処理に従って図９０の開始点及び終了点により規定された選択を示す図である。
【図９６】図９４の処理に従って図９２の開始点及び終了点により規定された選択を示す図である。
【図９７】クラスタ分析を使用してリソースの制限されたデバイスにおいて文書を意味的に再構成するいくつかの実施形態の処理を概念的に示すフローチャートである。
【図９８】文書が意味的に再構成される際のいくつかの実施形態のシーケンスを示す図である。
【図９９】間接的にソートされた配列を使用することによりデータセットを区分するいくつかの実施形態の処理を概念的に示すフローチャートである。
【図１００】９つのデータ項目を含むデータセットの区分を示す図である。
【図１０１】複数の距離尺度でクラスタ分析を同時に実行するいくつかの実施形態の処理を概念的に示すフローチャートである。
【図１０２】クラスタ分析を実行するいくつかの実施形態のクラスタ分析アプリケーションのソフトウェアアーキテクチャを概念的に示す図である。
【図１０３】文書を効率的に再構成するいくつかの実施形態の処理を概念的に示すフローチャートである。
【図１０４】文書が図１０３の処理に従って構文解析及び分析される際のシーケンスを示す図である。
【図１０５】データが本発明のいくつかの実施形態に従って格納される方法を示す図である。
【図１０６】効率的なメモリ管理技術を使用しつつ、文書再構成処理を実行するＡＰＩを概念的に示す図である。
【図１０７】文書を再構成及び表示し且つ文書と対話するいくつかの実施形態のアプリケーションのソフトウェアアーキテクチャを概念的に示す図である。
【図１０８】図１０７で説明されたアプリケーション等のコンピュータプログラムを格納するコンピュータ可読媒体を生産するいくつかの実施形態の処理を概念的に示すフローチャートである。
【図１０９】本発明のいくつかの実施形態を実現するコンピュータシステムを概念的に示す図である。
【発明を実施するための形態】
【００２０】
以下の説明において、説明の目的で多くの詳細を示す。しかし、本発明がそれらの特定の詳細を使用せずに実現されてもよいことは、当業者には認識されるだろう。例えばいくつかの例において、以下に説明する技術は特定の順序で行われるものとして説明される。しかし、いくつかの実施形態において、それら技術は説明する順序とは異なる順序で実行される。更にそれら技術は、左から右に読まれる言語（例えば、英語）に関して説明されるが、右から左に読まれる言語に対しても容易に適応されることが当業者には理解されるだろう。
【００２１】
Ｉ．概要
本発明のいくつかの実施形態は、非構造化文書から構造化文書を規定する新しい方法を提供する。いくつかの実施形態において、非構造化文書は、形状（例えば、ベクトル図形）、画像（例えば、ビットマップ）及びグリフ(glyph)等の基本要素のみを含むように規定された文書である。いくつかの実施形態において、グリフは、テキスト文字（例えば、英字、数字、句読点又は他のインライン文字）、文字の集合又は文字の一部の視覚表現である。いくつかの実施形態において、グリフは、グリフの輪郭に対するパス定義を含む事前に指定されたスケーラブルベクトル図形の集合であってもよい。いくつかの実施形態において、グリフは種々のサイズに対して最適化された事前に指定されたラスタ画像又はラスタ画像の集合であってもよい。一例として、文字「ｉ」は、ドットの輪郭を示すサブパス及び下部の輪郭を示すサブパスの２つのサブパスを有するパスである単一のグリフにより表現される。別の例として、３つの文字の組み合わせ「ｆｆｉ」は、順番に現れた場合、個々に現れる文字とは僅かに異なる方法で描かれるリガチャと呼ばれる単一のグリフにより表される場合がある。第３の例として、
2016006661.tif 000003
等のアクセント符号付き文字は、２つ以上のグリフ（１つは文字を示し、１つはアクセントを示す）により表される場合もあり、単一のグリフ（アクセントを文字と組み合わせる）により表される場合もある。
【００２２】
いくつかの実施形態の非構造化文書は基本要素間の関係又は関連付けを全く指定しないが、他の実施形態においては最低限のそのような関係及び関連付けを指定する。いくつかの実施形態において、非構造化文書はある程度の構造を有してもよいが、構造は理解不能であるか又は信頼できない。いくつかの実施形態において、非構造化文書は、未知の構造を有するか又は構造化されていないと仮定される。
【００２３】
いくつかの実施形態は、基本要素間の関連付け及び関係、基本要素のグループ化及び順序付け、並びに基本要素のグループの特性を含む構造化文書を非構造化文書から生成する。例えばいくつかの実施形態は、非構造化文書の基本要素を使用して非構造化文書の種々の幾何学的属性を識別し、それらの識別した幾何学的属性を使用して（基本要素の他の属性と共に）構造要素を規定する。いくつかの実施形態の構造要素は、関連した基本要素（例えば、単語、段落、結合グラフ等）、ガイド、のど、テキストフロー、表等を含む。これらの構造要素は、いくつかの実施形態において階層的に関連付けられる（例えば、段落はテキスト行を含み、テキスト行は単語を含み、単語は基本グリフを含む）。いくつかの実施形態において、構造化文書は２つの目的を満たす。すなわち、関連した要素（例えば、表を構成する要素）を識別し、基本要素のフロー順序（すなわち、ユーザが文書の基本要素を読み取ると予想される順序）を識別する。
【００２４】
いくつかの実施形態は、非構造化文書を受信すると、その文書をまず構文解析して構成要素（例えば基本要素、並びに座標位置、描画順序等の基本要素に関連した情報）を得る。例えばテキストの大きなブロックは、非構造化文書において複数の文字グリフとして規定される。各文字グリフは、各グリフのサイズを判定する変倍因子（及び適用される他のあらゆる線形変換）と共に、特定のページ上のアンカが配置されるｘ座標及びｙ座標を有する。各文字グリフは、特定の順序（１つのグリフが別のグリフに重なる時に実行される合成動作に関係する）でページ上に描かれる。いくつかの実施形態は、基本要素に対して幾何学的分析を実行し、文書の幾何学的属性を規定する。例えばいくつかの実施形態は、基本要素間の境界線及び境界線により境界をつけられた領域を識別するために基本要素を分析する。
【００２５】
図１は、いくつかの実施形態の全体のフローを示す。図示するように、文書１００は、最初に（いくつかの実施形態においては、基本要素を識別するために構文解析した後）幾何学的分析モジュール１１０により分析される。幾何学的分析モジュール１１０は、境界線及び境界線により境界をつけられた領域等の幾何学的属性を識別するために文書を分析する。いくつかの実施形態において、領域は直線及び細い矩形等の基本要素により境界をつけられたゾーン（すなわち、特定の基本形状及び画像）を含む。
【００２６】
図２は、入力文書のページ２００、並びに幾何学的分析及び文書再構成から得られた種々の結果を示す。入力文書は、文書を閲覧しているユーザがテキスト、境界、表及び図形オブジェクトとして認識する基本要素の集合を有する非構造化文書である。分析結果２０５は、幾何学的分析モジュール１１０が文書２００において境界線２５０により分離された２つのゾーンＺ１  ２４０及びＺ２  ２４５を認識したことを示す。
【００２７】
いくつかの実施形態において、幾何学的分析モジュール１１０により識別された境界線は、位置揃えガイドを更に含む。いくつかの実施形態において、位置揃えガイドは単語の最初又は終了により形成された垂直なエッジである（例えば、左揃えテキストカラムの左側エッジ）。同様に、いくつかの実施形態において、幾何学的分析により識別された領域は、グリフのグループの間（例えば、ガイドの間）の空白の空隙（間隙, gap）を含む。いくつかの実施形態において、これらの空隙はのど(gutter)と呼ばれる。
【００２８】
分析結果２１０は、テキストの第１のカラムの左側エッジにおける左揃えガイド２１２及びテキストの２つのカラムの間の空白にわたるのど２１４を示す（簡潔にするために、他のガイド及びテキストカラムは示さない）。図１に示すように、いくつかの実施形態の意味分析モジュール１１０の出力は、ゾーン１０５、ガイド１１５及びのど１２５である。
【００２９】
幾何学的分析モジュール１１０から出力されたデータは、文書再構成モジュール１２０に送出される。文書再構成モジュール１２０は、構造化文書を規定するために非構造化文書を分析する処理を継続する。いくつかの実施形態において、文書再構成モジュール１２０は、テキスト、表及び形状等の連続した構造要素を規定するために基本要素間の関連付けを行う。更にいくつかの実施形態は、構造要素の階層及び構造要素間の関係を規定する。
【００３０】
例えばいくつかの実施形態において、文書再構成モジュール１２０は、グリフ、グリフの集合、グリフの集合の集合等の間の関連付けを行う。いくつかの実施形態は、個々のグリフを関連付けて単語にし、単語を関連付けてテキスト行にし、テキスト行を関連付けて段落にする。分析結果２１５は、個々の行２１７及び段落２１９が第１のテキストカラム内で識別されることを示す。
【００３１】
文書再構成モジュール１２０は、グリフにおけるテキストフローを規定するためにグリフのレイアウトを更に識別する。特にテキストフローを規定するために、いくつかの実施形態は、グリフ（又はグリフの集合）の読み取り順序（読み順, reading order）を識別する。読み取り順序は、ユーザがページ上のグリフを読み取ると予想される順序を表す（例えば、第１のカラムの最下部から第２のカラムの最上部へ進み、中央の分離されたテキストボックスをスキップする等）。分析結果２２０は、２つのカラムが文書２００内で識別され、読み取りフロー２２２が第１のカラムの最下部から第２のカラムの最上部に進むことを示す。いくつかの実施形態において、レイアウト及びフローの識別及び規定は、ゾーンの結果２０５、ガイド及びのどの結果２１０、並びにグリフ関連付けの結果２１５を利用する。
【００３２】
文書再構成モジュール１２０は、グリフ以外の基本要素間又は構造要素間の関連付けである文書中の他の構造要素を更に規定する。例えばいくつかの実施形態において、文書再構成モジュール１２０は、幾何学的分析モジュール１１０により識別された領域間、並びに領域内のグリフ間及びグリフの集合間の関連付けとして文書中の表を識別する。例えばいくつかの実施形態は、表のセルとして領域を関連付け、表情報として各領域内のグリフを関連付ける。分析結果２２５は、文書再構成モジュール１２０による文書２００における９つのセル２２９を有する表２２７の識別を示す。いくつかの実施形態は、表の構造要素を規定することにより表を形成する基本要素を関連付ける。初期の文書において、表として閲覧されたものは関連付けられていない基本要素（線及びグリフ）の集合として規定されたが、再構成後、セルは表の構造要素において表のセルとして識別され且つ個々に又は一括して編集可能である。更に示されるように、いくつかの実施形態において、表の識別及び再構成には、ゾーンの結果２０５、グリフ関連付けの結果２１５、並びにレイアウト及びフローの結果２２０を使用する。
【００３３】
いくつかの実施形態は、文書中の２つ以上の基本図形要素又は図形オブジェクト（例えば、形状、画像、写真、ビットマップ等）が１つの構造図形要素としてグループ化されるべき時期を更に識別する。例えば殆どが重なり合う２つのオブジェクトは、非構造化文書において２つの形状又は画像として規定される１つの要素であってもよい。文書再構成モジュール１２０は、それら２つのオブジェクトを１つのオブジェクトとして結合する。分析結果２３０は、初期の文書２００の２つの基本形状（星形及び六角形）が文書再構成モジュール１２０により１つの図形２３２として結合されたことを示す。
【００３４】
図１に示すように、文書再構成モジュール１２０の出力の例は、意味階層データ１３５（すなわち、グリフの関連付け）、レイアウト及びフローデータ１４５、表データ１５５、並びに結合グラフデータ１６５を含む。更にいくつかの実施形態において、この情報の一部はいくつかの文書再構成モジュール１２０の間で渡される。図２は、この情報の全てが構造化文書２３５を規定するのに使用されることを示す。構造化文書２３５は、非構造化文書２００と同一の外観を有するが、構造要素、並びに要素の関連付け、関係及び階層に関する情報を含み、それにより編集、より直観的な表示が可能になる。
【００３５】
文書再構成モジュール１２０からのデータ（並びにいくつかの実施形態においては幾何学的分析モジュール１１０からのデータ）は、文書表示及び対話モジュール１３０により使用される。文書表示及び対話モジュール１３０により、ユーザは文書の閲覧、編集、スクロール等ができる。例えばシーケンス１４０は、直立に保持されるハンドヘルドデバイスに２つのテキストカラムとして表示された文書を示す。ハンドヘルドデバイスが横向きに回転されると、２つのテキストカラムは３カラムに再配置される。この再配置は、要素間の関連付け、特に非構造化文書の一部分でない、グリフにわたるテキストのフローに依存するため、非構造化文書では行えない。
【００３６】
いくつかの実施形態において、文書表示及び対話モジュール１３０は、ユーザにより選択された構造要素（例えば、段落、図形オブジェクト等）を認識し、選択された要素を表示するようにインテリジェントズームできる。いくつかの実施形態において、ユーザは関心位置（すなわち、表示された文書中の特定の場所）を選択し、表示及び対話モジュール１３０は構造要素の階層における適格な構造要素を識別する。いくつかの実施形態は、構造要素の特定の種類を適格な構造要素として規定する。適格な構造要素は、いくつかの実施形態において表示の際に強調表示される関心領域を規定するために使用される。
【００３７】
シーケンス１５０は、段落１７０の選択（例えば、段落内の関心位置を選択することによる）、並びにその後の段落及び近傍のテキストのインテリジェント表示を示す。文書表示及び対話モジュール１３０は、テキスト及び図形オブジェクトのインテリジェント選択、文書のインテリジェントスクロール等の他の機能を更に提供する。
【００３８】
いくつかの実施形態は、中間の分析及び再構成結果を使用して、幾何学的分析及び文書再構成がその場で実行される方法を変更するために階層プロファイリングを使用する。いくつかの実施形態は、プロファイルに対して文書が含むコンテンツの種類を示す中間結果をチェックし、それに従って再構成処理を変更する。いくつかの実施形態において、階層プロファイルは、分析及び再構成モジュールに対してより多くの又はより少ない処理の実行、異なる方法での処理の実行又は処理の再実行を指示できる。例えば文書が１ページの長さであり、１つのテキストカラムを有し且つ形状又は画像を有さないことを中間分析結果が示す場合、いくつかの実施形態は、グリフを関連付けて単語、行及び段落にするための処理のみを実行する。例えば、表の識別は実行されない。
【００３９】
いくつかの実施形態は、より効率的にメモリ及び処理を使用するために種々の新しい効率化技術を採用する。例えばいくつかの実施形態は、他の要素に対してある程度近接して離間される要素のグループを識別するために使用される技術であるクラスタ分析を使用して上述の処理の一部を実行する。いくつかの実施形態は、同一又はほぼ同一のｘ座標から開始又は終了するか、そのｘ座標を中心とするか、あるいはそのｘ座標に位置揃えされる多数の単語に基づいてガイドを識別するためにクラスタ分析を使用する。いくつかの実施形態は、単語間の空隙及び単語間の空隙より大きい空隙を識別するようにグリフ間の異なる大きさの空隙を認識するためにクラスタ分析を使用する。更にいくつかの実施形態は、単一のグリフを得るように結合されるべき基本図形（例えば、形状、画像）を識別するためにクラスタ分析を使用する。
【００４０】
いくつかの実施形態は、ソートされていないデータを参照する順序付けされたデータ（例えば、基本要素位置データ）を使用することにより且つ単一の値を使用してデータの区分を格納することによりクラスタ分析を効率的に実行する。区分という用語が本発明において使用されるように、区分はシーケンスすなわち線形的に順序付けされた集合をサブシーケンスに分割する。サブシーケンスは、同一の順序関係を有するシーケンスの部分集合である。更に区分は、（ｉ）元のシーケンスの全てのメンバが区分のサブシーケンスのただ１つに含まれ、（ｉｉ）区分のサブシーケンスの２つをＳ及びＴとすると、順序関係に従ってＳの全てのメンバがＴの全てのメンバより小さいか又はＴの全てのメンバがＳの全てのメンバより小さいという特性を有する。いくつかの実施形態において、区分を単一の値として格納することにより、複数の区分の検査等の種々のクラスタ分析機能をより効率的に実行できる。
【００４１】
いくつかの実施形態は、データのコピー量を最小限にするアプリケーションプログラムインタフェース（ＡＰＩ）を使用することにより文書再構成処理における効率を向上し、その一方でＡＰＩのユーザにはデータが自由に変更可能であるかのように見える。いくつかの実施形態は、ランダムに順序付けされた配列にデータを格納し、データに対する参照のソート済み配列を規定し、このソート済み配列を多くの集合オブジェクト（例えば、文字データの集合である文字シーケンスオブジェクト）の間で共有してメモリ及び処理の使用を最適化する。これらの効率向上機能等はいくつかの実施形態において使用され、文書再構成が携帯電話、メディアプレーヤ等（例えば、ｉＰｈｏｎｅ（登録商標））のリソースの限定されたデバイスにおいて実行されることを可能にする。
【００４２】
上述したいくつかの実施形態の概要は図１及び図２に示した例を参照して提供されたが、これらの例は本発明のいくつかの実施形態の特徴及び動作を導入する例示的な実施形態としてのみ説明されたことが当業者には認識されるだろう。多くの実施形態は、図１及び図２に示した特徴及び動作とは異なる特徴及び動作を有することが当業者には認識されるだろう。例えば、幾何学的分析が１つのモジュールの集合１１０として説明されたが、いくつかの実施形態は必ずしも全ての幾何学的属性を１度に識別しないことが当業者には認識されるだろう。例えばいくつかの実施形態は、最初に幾何学的分析の部分集合（例えば、文書において１つ以上のゾーンを識別するための領域分析）を行い、その後ガイド及びのどがゾーン毎に識別される。
【００４３】
いくつかの実施形態については以下に更に詳細に説明する。第ＩＩ節において、境界基本要素に基づく文書の領域（すなわち、ゾーン）の識別、並びに構造化文書のフレームワークを形成する階層構造（例えば、文書オブジェクトモデル）の規定について説明する。第ＩＩＩ節において、位置揃え点の間の特定の空間（のど）及びグリフ（例えば、位置揃えガイド）に対する境界要素の識別について説明する。次の第ＩＶ節において、単語、テキスト行、段落、カラム等の構造要素を規定するためにグリフ及びグリフの集合間の関連付けの作成、並びにそれらの構造要素（及び図形、表等の他の要素）にわたるフロー順序の規定について詳細に示す。第Ｖ節において、基本要素からの表の識別、並びに表の構造要素を形成するための基本要素間の関連付けの作成について説明し、第ＶＩ節において、グループ化されるべき基本図形要素の識別、並びに複合図形要素を規定するためのそのような基本要素間の関連付けの作成について説明する。次の第ＶＩＩ節において、コンテンツ処理の効率及び精度を向上できるような事前定義済みプロファイルの集合に対して一致する中間処理結果に基づくコンテンツ処理の変更（第ＩＩ節〜第ＶＩ節で詳述するような文書再構成の例を使用する）について説明する。
【００４４】
次の第ＶＩＩＩ節において、小型スクリーンデバイス（例えば、ハンドヘルド電話又はメディアプレーヤ）において文書を表示するために構造化文書（例えば、文書オブジェクトモデルにより規定された文書）を使用する種々の態様を詳細に示す。小さな画面に対する文書表示の適応及び識別された関心領域の表示について説明する。第ＩＸ節において、ユーザ入力に応答してテキスト（又は文書の他の要素）の選択を規定するために構造化文書を使用することに関して説明する。
【００４５】
第Ｘ節において、文書再構成処理における位置揃えガイド、単語及びグリフ間隔、並びに複合図形の識別に（特に）使用されるクラスタ分析技術の効率を向上する種々の方法について説明する。次の第ＸＩ節において、文書のより効率的な構文解析及び分析を可能にする方法及びデータ構造について詳細に説明する。これらのデータ構造は、文書再構成処理において使用可能なグリフ間の関連付けを行う（例えば、単語、テキスト行、段落等を形成するため）１つの方法を示す。しかし、当該技術において既知であるように、構造要素（例えば、段落、表、複合図形等）を規定するために基本要素（例えば、グリフ、図形要素等）の間の関連付けを行う多くの他の方法が可能であることが当業者には理解されるだろう。第ＸＩＩ節において、いくつかの実施形態の文書再構成アプリケーションのソフトウェアアーキテクチャについて説明し、第ＸＩＩＩ節において、本発明のいくつかの実施形態を実現するコンピュータシステムについて説明する。
【００４６】
ＩＩ．ゾーン分析
１ページに複数の情報の記事、小領域又はカテゴリがある場合、それらは線、画像又は形状により視覚的に示されることが多い。ユーザは、グラフィカルキューがページのゾーンへの分割方法を示すことを意図する方法を容易に識別できるが、これは、コンピュータにとっては大きな問題である（特に、一部の図形基本要素がページコンテンツであることを意図し且つ他の図形基本要素がコンテンツゾーンを視覚的に示すことを意図するような図形基本要素の組み合わせが存在する場合）。
【００４７】
本発明のいくつかの実施形態は、非構造化文書の基本要素（例えば、形状及び画像）に基づいて境界線及びそれら境界線により境界をつけられた領域（例えば、ゾーン）を識別する方法を提供する。いくつかの実施形態において、領域は、続く文書の再構成で使用され、更なる再構成処理の区分化のために使用される。いくつかの実施形態は、コンテンツが所属させられ、コンテンツとそのコンテンツが配置される領域との関連付けを可能にする領域グラフ（すなわち、木等の階層構造）を生成する。いくつかの実施形態は、ページ毎に領域識別を実行する。
【００４８】
図３は、いくつかの実施形態において文書のページのゾーンを識別し且つページに対するゾーン木を生成する処理３００を概念的に示す。処理３００については図４と共に説明する。図４は、いくつかの実施形態に従って文書のページ４００のゾーンを識別し且つページに対するゾーン木４３０を生成するシーケンスを示す。図３に示すように、処理３００は文書のページを受信すること（３０５）により開始する。文書は、多くのページを含むこともある（例えば、電子書籍）が、１ページしか含まないこともある（例えば、広告チラシ）。
【００４９】
次に、処理はページにおいてゾーンを識別する（３１０）。いくつかの実施形態において、ゾーンを識別することは、ゾーン境界及び交わりを識別し且つゾーンを識別するためにゾーン境界を通ることを含む。図４の例を参照すると、処理３００は、ページ４００が５つのゾーンＡ  ４０５、Ｂ  ４１０、Ｃ  ４１５、Ｄ  ４２０及びＥ  ４２５を含むことを識別する。
【００５０】
ゾーンを識別した後、処理３００はページに対するゾーングラフ（すなわち、木等の階層構造）を生成する（３１５）。ゾーングラフはゾーンの階層を示す。例えばゾーン木４３０は、ページ（ノードＰ）に対するゾーンが４つのゾーンＡ、Ｂ、Ｃ及びＤを含むことを示す。更にゾーンＤは、ゾーンＥが完全にゾーンＤ内にあるためゾーンＥを含む。いくつかの実施形態において、第２のゾーンが完全に第１のゾーン内にある場合に第１のゾーンは第２のゾーンの親である。いくつかの実施形態において、親及び子は１つ以上の境界を共有できる。
【００５１】
ゾーングラフを生成した後、処理３００はページのコンテンツをゾーングラフに挿入する（３２０）。その後、処理は終了する。いくつかの実施形態において、ページはテキスト、図形又は他のコンテンツを含む。特定の各コンテンツグループ（例えば、画像、段落、カラム等）は、特定のコンテンツグループを完全に含む最小のゾーンの子として配置される。いくつかの実施形態において、コンテンツが更に分析されると（例えば、テキストの段落へのグループ、表の識別等）、コンテンツオブジェクトのゾーングラフへの挿入は文書再構成処理において後で実行される。更に、文書再構成が実行されると、いくつかの実施形態はゾーングラフを各ゾーンについてのコンテンツ部分木で更新する。
【００５２】
Ａ．専門用語
図５は、いくつかのゾーンを含む文書のページ５００を示す。ページ５００は、ゾーン境界５０５〜５０９を含む多くのゾーン境界を含む。いくつかの実施形態において、ゾーン境界は、ゾーン境界に寄与するゾーン境界図形により規定された太さを有する水平又は垂直（すなわち、直線）のストリップである。いくつかの実施形態において、ゾーン境界の太さは、ゾーン境界に寄与するゾーン境界図形の直立バウンディングボックスの狭い方の幅である。いくつかの実施形態において、特定の要素又は要素の集合に対する直立バウンディングボックスは、要素又は要素の集合を完全に囲む最小の直立矩形（分析されている座標系における）である。
【００５３】
ゾーン境界図形は、細い矩形であるか又は細い矩形である直立バウンディングボックスを有するページの図形オブジェクト（例えば、形状、画像、線）である。例えばゾーン境界５０５〜５０９は、全て特定の（相対的に細い）太さの線である。いくつかの実施形態において、ゾーン境界図形は相対的に細いオブジェクトを含み、そのレンダリングの全て又は一部はゾーン境界の全て又は一部を塗りつぶす。いくつかの実施形態において、ゾーン境界図形は、境界線がゾーン境界に寄与するオブジェクトを更に含む（例えば、塗りつぶされた多角形の１辺は、多角形自体が狭くなく且つ境界の限界にフィットしていなくてもゾーン境界の全て又は一部を示すことができる）。
【００５４】
しかし、ゾーン境界図形は完全な直線でなくてもよい。例えば図６は、ゾーン境界図形６０５を含むページ６００を示す。ゾーン境界図形６０５は、完全な垂直ストリップではなく、ほぼ垂直に位置揃えされる小枝の画像である。いくつかの実施形態は図形をゾーン境界図形として認識し、いくつかの実施形態はそのように認識しない。
【００５５】
図５のページ５００は、交点５１０及び５１１等の多くのゾーン境界の交点を更に含む。いくつかの実施形態において、ゾーン境界の交点は、垂直なゾーン境界と水平なゾーン境界との直交点である。交点５１１が示すように、ゾーン境界の交点はゾーン境界の終端でなくてもよい。いくつかの実施形態において、ゾーン境界の中心のゾーン境界の交点は、ゾーン境界を１つ以上のゾーン境界区間に区切る。例えばページ５００の最下部のゾーン境界は、ゾーン境界区間５１５、５１６、５１７及び５１８に分割される。
【００５６】
従って、いくつかの実施形態において、ゾーンは直立直線形状（まっすぐな直線形状）を形成するゾーン境界区間の集合により制限された閉領域である。直立直線形状は、水平線分及び垂直線分により形成されるあらゆる多角形であり、これは、水平線分及び垂直線分から形成された矩形である直立矩形を含むがこれに限定されない。各ゾーンは、矩形の縁をつけるゾーン境界の外側から形成される形状である直立直線外側境界を有する。更に各ゾーンは、矩形を制限するゾーン境界の内側から形成される形状である直立直線内側境界を有する。
【００５７】
ページ５００は、ゾーンＰ  ５２６（ページ範囲）、ゾーンＡ  ５２０（左側及び右側、並びにゾーンＣ及びＤの上の領域に細いストリップを含む弓型のゾーン）、ゾーンＢ  ５２１、ゾーンＣ  ５２２（ゾーンＥと境界を共有する左側ゾーン）、ゾーンＤ  ５２３（ゾーンＣの鏡像である右側ゾーン）、ゾーンＥ  ５２４及びゾーンＧ  ５２５を含む。いくつかの実施形態において、ゾーンは、ゾーンの外側境界及び内側境界により規定される外側範囲及び内側範囲を有する。
【００５８】
図７は、ページ５００のゾーン木７００を示し、ゾーンＰ（ページ境界）はゾーンＡ、Ｃ、Ｅ及びＤの親であり、ゾーンＢはゾーンＡの子であり、ゾーンＧはゾーンＤの子である。ゾーンＢ、Ｅ及びＧは島の例である。島は、親ゾーンと境界区間を共有しないゾーンである。ゾーンＥはゾーンＣ及びＤと境界区間を共有するが、ゾーンＣ及びＤのいずれも実際にはゾーンＥを囲まないためゾーンＥの親ではない。ゾーン木は、ノードにはそれらが含むコンテンツが読み込まれていることを更に示す。いくつかの実施形態において、各ページの文書オブジェクトモデル（ＤＯＭ）の一部は、そのページのゾーン木のノードに構築される。文書オブジェクトモデルは、ノードがオブジェクトであるグラフとしての文書の表現である。いくつかの実施形態において、このグラフは木であり、その葉ノードは基本要素を表し、非葉ノードは、それらの子ノード間の関係及び子ノードがグループとして有する特性を表す構造オブジェクトである。いくつかの実施形態において、ノードの子の順序はそれら子の読み取り順序を表す。いくつかの実施形態において、根ノードは文書ノードであり、その子はページノードであり、ゾーン木は各ページノードから派生し、フロー木（表、テキストボックス、レイアウト、カラム、段落、リスト及びテキスト行等の構造を表すノードを含む）はゾーンノードの一部から派生し、基本要素（グリフ、形状及び画像等）を表すノードはフロー木の一部のノードの子である。いくつかの実施形態において、構造ノードは、木の親子関係（その有向グラフエッジ）により表された関係に加えてノード間の関係を表す特性を含む。例えば新しいカラムを開始する段落は、前のカラムで終了した段落の続きであってもよく、２つのカラムの間の段落区切りはなくてもよい。この場合、木には異なるカラムノードの親を有する２つの段落ノードがあるが、それらのノードは単一の共通の段落の部分を表す２つのノードであることを示すために互いを指し示す特性を有する。いくつかの実施形態において、ＤＯＭは文書の全ての構造要素を含む文書の階層表現である。いくつかの実施形態は、コンテンツ全体が特定のゾーンの外側境界内に配置され、且つこの特定のゾーンのいずれの子の外側境界内にも配置されない場合に、このコンテンツがこの特定のゾーンの子であることを規定する。従って、ゾーンＢはヘッダテキストを含み、ゾーンＣ及びＤは標準テキストを含み、ゾーンＥ及びＧは画像を含む。
【００５９】
Ｂ．回転グループ
いくつかの実施形態は、ページのいくつかの回転グループを規定し、各回転グループのコンテンツ及びゾーンを別個に分析する。いくつかの実施形態において、回転グループはいずれのゾーン境界も有さないこと以外はゾーンに類似する。回転グループは、同一角度（又は閲覧者が区別するのが困難である程小さい特定の閾値内になるようなほぼ同一の角度）だけ回転される全てのコンテンツを含むように規定される。図８は、ページ上の回転グループを規定するいくつかの実施形態の処理８００を概念的に示す。図示するように、処理８００は、文書のページを受信する（８０５）。そのページは、文書の唯一のページである場合もあり、複数のページのうちの１ページである場合もある。いくつかの実施形態は、ページ毎ではなく複数ページの文書（又は複数ページの小領域）全体に対して回転グループ分析を１度に実行する。
【００６０】
その後、処理はページ上の各オブジェクトの回転角を判定する（８１０）。いくつかの実施形態において、不規則に成形された画像がゼロの回転角を有すると仮定される。例えばページ５００のゾーンＥの画像は、不規則に成形され、非ゼロの回転角を与えられない。水平方向に揃えられたテキストもまたゼロの回転角を有するが、その一方でｘ軸から外れて揃えられるテキストにはある回転角が与えられる。例えばページ５００の領域Ｆ  ５３０のテキストは約−４５°の回転角を有する。同様に、ページ６００のテキスト６１０（「Ｏｒｇａｎｉｃ」及び「Ｐｕｒｅ」）は独自の回転角を有する。図形オブジェクトを回転グループに配置する実施形態において、テキスト６１０の上の矩形画像６１５はテキスト６１０と同一の回転角を有する。
【００６１】
次に処理８００は、回転角によりオブジェクトを順序付ける（８１５）。処理は、特定の閾値を下回る回転角の広がりを有するクラスタにオブジェクトをグループ化する（８２０）。いくつかの実施形態において、特定の閾値と比較される広がりは、グループの最大回転角からグループの最小回転角を減算した値である。非ゼロの閾値を使用することにより、グループ化は最初に受信した文書におけるコンテンツ定義の小さな誤りを考慮できる（例えば、水平から僅かにずれたテキスト行）。
【００６２】
処理８００は、各回転グループを別個に分析する（８２５）。その後、処理は終了する。殆どのページにおいて、殆どの分析が直立（ゼロの角度）グループを含む。いくつかの実施形態は、直立グループ以外のグループに対するゾーン分析を実行せず、回転されたグループのコンテンツをページ全体の子として単に分類する。いくつかの実施形態において、各回転グループは、コンテンツが直立しているように見える座標系を有する。そのような実施形態において、各回転グループは、文書に対するＤＯＭに適合するコンテンツを含むゾーン木を有する。いくつかの実施形態は、ページ上のコンテンツが回転されている区別可能な角度毎に１つの回転グループを規定する。各グループに対する分析については以下に詳細に説明する。
【００６３】
Ｃ．ゾーン境界及び交点の識別
図９は、ゾーン境界及び交点を識別するいくつかの実施形態の処理９００を概念的に示す。処理９００について図１０と共に説明する。図１０は、種々の図形及びテキストを含むページ１０００を示す。
【００６４】
図９に示すように、処理は回転グループを受信し、グループを直立座標系に正規化する（９００）。いくつかの実施形態において、グループを直立座標系に正規化することは、グループの全てのオブジェクトが垂直又は水平になる（例えば、テキスト行が座標系において水平になる）ようにグループに対する座標系を規定することを含む。以下の説明では、回転グループが直立（ゼロの角度）グループであると仮定する。当業者は、コンテンツが直立しているように見える座標系で非ゼロの角度を有する回転グループに同一の技術を適用できる。いくつかの実施形態は、特定の回転グループに対してゾーン識別を実行する前に他の回転グループからのコンテンツを除去する。例えばいくつかの実施形態は、直立直線座標系においてゾーン識別及び分析を実行する前に図６のページ６００からテキスト６１０及び画像６１５を除去する。
【００６５】
処理は、潜在的なゾーン境界を識別する（９１０）。いくつかの実施形態において、潜在的なゾーン境界は、十分に細いいかなる水平又は垂直図形オブジェクトも含む。いくつかの実施形態において、特定の図形オブジェクトが十分に細いかの判定には、絶対測定を使用する（例えば、図形オブジェクトの直立バウンディング矩形の小さい方の寸法が１／２４インチ未満である場合）。他の実施形態において、判定には、相対測定を使用するか（例えば、直立バウンディング矩形の大きい方の寸法が小さい方の寸法の８倍である）、あるいは絶対測定及び相対測定の組み合わせを使用する（例えば、狭い方の寸法は１／１２インチまで許されるが、８：１の相対測定が適用される）。いくつかの実施形態は、ページのサイズに関して閾値を調整する。例えば上記例は、標準的な８．５×１１インチのページに該当するが、はるかに大きなページがより大きい潜在的なゾーン境界を有することができる。
【００６６】
図１０を参照すると、ページ１０００は、潜在的なゾーン境界、すなわち水平境界１００５〜１０１０及び垂直境界（１０１１〜１０１６）として分類されるいくつかの線を含む。しかし、図形オブジェクト１０２０は、ｘ方向に太すぎるため一般に潜在的なゾーン境界として考えられない。
【００６７】
いくつかの実施形態は、少なくとも閾値サイズを有する全ての直立直線形状を識別し、それらの形状の辺を潜在的なゾーン境界として使用する。いくつかの実施形態において、閾値サイズは特定の面積であり、他の実施形態において、閾値幅及び閾値高さを上回る必要がある。例えばオブジェクト１０２０は、エッジを潜在的なゾーン境界としてみなすのに十分な大きさの面積を有するかもしれないが、幅が狭すぎるため別個のゾーンにはならない。一方、星形オブジェクト１０２５は、直立直線形状ではないため、そのエッジはゾーン境界としてみなされない。従って、これらのオブジェクトは、１つのゾーン又は別のゾーン内のコンテンツ（特に図形オブジェクト）として単純に分類される。いくつかの実施形態は、ストロークされている場合はストローク幅を含めて、辺の境界をつける直立矩形として、直立直線形状の辺として識別された潜在的な各ゾーン境界の範囲を設定する。いくつかの実施形態は、ページ境界が回転グループの座標系において直立直線である場合、ページ境界をゾーン境界として更に含む。
【００６８】
潜在的なゾーン境界を識別した後、処理９００はページ上の他のオブジェクトと交差する境界又は境界の一部を除去する（９１５）。例えば潜在的な境界１０１５は、星形オブジェクト１０２５により隠蔽されるため、２つの潜在的なゾーン境界（星形の上の領域及び星形の下の領域）に分割される。いくつかの実施形態は、文字バウンディングボックスと交差するゾーン境界を除去する。いくつかの実施形態において、特定の文字に対する文字バウンディングボックスは文字を完全に囲む最小の矩形である。例えば潜在的なゾーン境界１０１０は、文字「Ｌｏｒｅｍ  Ｉｐｓｕｍ」を横切る。従って、いくつかの実施形態は、潜在的なゾーン境界１０１０を考慮から外す。
【００６９】
次に、処理９００は境界をマージする（９２０）。いくつかの実施形態は、平行であり且つ重なるか又はほぼ重なる境界をマージする。境界は、それらの範囲が交差する時に重なる。例えば一方が他方を完全に囲むように異なる幅の２つの非常に細い矩形が描かれる場合、２つの潜在的なゾーン境界はマージされる。いくつかの実施形態は、重なりをテストするために範囲（潜在的なゾーン境界の幅及び長さの双方）を僅かに拡張する。従って、図１０の境界１０１３及び１０１４はマージされ、境界１０１３及び１０１４の太さより太い１つのゾーン境界１０２７になる。
【００７０】
処理９００は、未処理のマージされた境界があるかを判定する（９２３）。境界がマージされなかった場合、あるいは全てのマージされた境界が処理された場合、以下に説明する９４５に進む。未処理のマージされた境界がある場合、処理は未処理のマージされた境界を選択する（９２５）。処理は、マージされた境界が太すぎるか又はマージされた境界が含むゾーン境界図形が多すぎるかを判定する（９３０）。いくつかの実施形態において、狭い方の幅が特定の閾値を上回る場合、マージされた境界は太すぎる。いくつかの実施形態において、太さのテストは、図形オブジェクトが最初にゾーン境界として分類されるのに十分細いかの判定と同一である。境界が太すぎないと判定された場合、上述した９２３に進む。マージされた境界が太すぎる場合、潜在的なゾーン境界候補からそのマージされた境界を除去し、単一の図形オブジェクトとして分類し（９３５）、９２３に進む。例えばこれは、画像が一連の細い矩形として描かれた場合又は近接して離間された細い棒を含む棒グラフが描かれた場合に起こる。
【００７１】
全てのマージされた境界が検査されると、処理はゾーン境界の交点を識別する（９４５）。上述したように、ゾーン境界の交点は、水平境界が垂直境界と交差する場合に必ず識別される。いくつかの実施形態は、ほぼ交差する点を識別し、それらを交点として分類する。ほぼ交差する点を見つけるために、境界は少し延長され、交点に関してテストされる。いくつかの実施形態は、一定量（例えば、１／４インチ）だけ境界を延長し、その一方で、他の実施形態は、特定のゾーン境界の長さのある割合である量だけ各境界を延長する。延長された境界が交差する場合、ほぼ交差する点は交点として分類され、２つの境界は他方の太さを完全に横切るように延長される。一例として、図１０の境界１０２７及び１００８は完全に交差していない。しかし、それらは交差していると分類されるのに十分近接しており、交差するように延長される。
【００７２】
処理は、１つ以下の交点を有する境界を削除する（９５０）。境界が除去されると、除去された境界と交差していたいずれの境界も依然として少なくとも２つの交点を有するかを判定するために再テストされる。ページ１０００の例において、境界１００６及び境界１０１５の残りの２つの部分は、ゾーン境界の交点を有さないため除去される。ゾーン境界及び交点が識別されると、処理は最も外側の交点を越えて延在するいずれの部分も除去するようにゾーン境界を取り除く（９５５）。例えば境界１０２７及び１００９は、それらの交点を越えて延在する。これら境界は、互いの最も外側の範囲まで延在するように取り除かれる。境界を取り除いた後、処理は後で使用するためにゾーン境界及び交点情報を格納する（９６０）。その後、処理は終了する。
【００７３】
この時点で、ゾーン境界区間及びゾーン境界の交点は全て判定されている。図１１は、垂直なゾーン境界区間１１０５、１１１５、１１２５、１１３５、１１４５、１１５５、１１６５及び１１７５と、水平なゾーン境界区間１１１０、１１２０、１１３０、１１４０、１１５０、１１６０、１１７０及び１１８０を示す。図１１は、ゾーン境界の交点１１０２、１１１２、１１１３、１１２２、１１２３、１１３２、１１３３、１１４２、１１４３、１１５２、１１６２、１１７２、１１８２及び１１９２を更に示す。
【００７４】
Ｄ．ゾーンの識別
ゾーン境界及びゾーン境界の交点が識別されると、ゾーンが識別される。図１２は、ゾーンを識別するいくつかの実施形態の処理１２００を概念的に示す。処理１２００については図１３及び図１４と共に説明する。図１３及び図１４は、ページ１０００のゾーンを識別するための処理１２００の適用法を示す。図１３及び図１４の各々は、シーケンスとして示される。図１３は、第１のゾーン境界を識別するためのシーケンス１３０５〜１３３０を示す。図１３の矢印は方向ベクトルを示し、破線はゾーンを規定するためにゾーン境界区間にわたってとられるパスを示す。図１４は、処理１２００により識別されたゾーンを示す。
【００７５】
図１２に示すように、処理１２００は、グループ又はページに対するゾーン境界及び交点を受信する（１２０５）。いくつかの実施形態において、ゾーン境界及び交点は、上述した処理９００の出力である。処理は、いずれかのゾーン境界区間が存在するかを判定する（１２０７）。存在しない場合、処理は終了する。存在する場合、処理は２つの方向ベクトルを各ゾーン境界区間（すなわち、水平の区間は左右を指し示すベクトルを有し、垂直の区間は上下を指し示すベクトルを有する）に割り当てる（１２１０）。図１３は、ページ１０００に対する各境界区間が双方向の方向ベクトルから開始することを示す（１３０５）。
【００７６】
次に、処理は境界区間ｂ、交点ｉ及び方向ｄを選択する（１２１５）。いくつかの実施形態は開始点をランダムに選択するが、他の実施形態は特定の方向の１番上の最も左側の交点等のヒューリスティック法を使用する。図１３は、交点１１８２で開始して区間１１１５に沿って上方向に移動するランダムな選択を示す（１３０５）。処理１２００は、次の交点に到着するまで交点ｉから方向ｄに進む（１２２０）。
【００７７】
交点に到達すると、処理は、交点が１２１５で選択された開始交点であるかを判定する（１２２５）。交点が元の開始交点である場合、以下に説明する１２６５に進む。元の開始交点でない場合、処理は、ゾーン境界区間を通るパスがその交点で時計方向に曲がれるかを判定する（１２３０）。パスが時計方向に曲がれる場合、パスはそのように曲がる（１２３５）。その後、以下に説明する１２５５に進む。パスが時計方向に曲がれない場合、処理は、パスが交点を通って直線を継続できるかを判定する（１２４０）。パスが直線を継続できる場合、パスはそのように継続する（１２４５）。その後、以下に説明する１２５５に進む。パスが直線を継続できない場合、パスは反時計方向に曲がって次の境界区間に入る（１２５０）。ステップ１２３０及び１２４０で行われた選択により、処理１２００は、境界の各交点において時計方向に曲がることが好ましいことを示す。いくつかの実施形態は、反時計方向に曲がることが好ましいことを示し、このことは同一の結果を与える。
【００７８】
処理は、新しい境界区間を現在の境界区間ｂとして設定し、新しい交点を現在の交点ｉとして設定する（１２５５）。処理は、境界ｂに沿って交点ｉから離れる方向ｄを設定する（１２６０）。その後、上述した１２２０に進む。
【００７９】
元の交点に到達すると、処理１２００は、動作１２１５以降に横断された境界区間の集合としてゾーンＺを規定する（１２６５）。上述したように、図１３は、処理１２００に従うゾーン境界区間の集合の横断を示す。１３０５において、交点１１８２から上方向に移動する区間１１４５から開始することを選択した（円及び短い矢印で図示する）後、パスは交点１１１２に達する。時計方向に曲がることがオプションであるから、パスは区間１１２０に向かって曲がり（１３１０）、交点１１２２で再度時計方向に曲がって区間１１５５に入る。パスは交点１１３２で再度時計方向に曲がって区間１１５０に入るが、交点１１４２では時計方向にも曲がれず直線にも継続できない（１３１５）。パスは反時計方向に曲がって区間１１４５に入り、交点１１５２で曲がって区間１１６０に入り、交点１１６２に向かって進む。交点１１６２において、パスは時計方向に曲がって区間１１７５に入り、交点１１７２において再度時計方向に曲がって区間１１８０に入る（１３２０）。区間１１８０はパスを元の交点１１８２に戻す。
【００８０】
図１３は、区間１１１５、１１２０、１１５５、１１５０、１１４５、１１６０、１１７５及び１１８０の横断、並びにその横断で使用された方向ベクトルにより規定されたゾーン１３００を示す（１３２５）。処理１２００に戻ると、ゾーンＺを規定した（１２６５）後、処理はゾーンＺを横断するのに使用された方向ベクトルを除去する（１２７０）。図１３は、除去されたゾーン１３００を横断するのに使用された方向ベクトルを有するページ１０００のゾーン境界区間を示す（１３３０）。
【００８１】
次に処理１２００は、方向ベクトルが残っていない全ての境界区間を除去する（１２７５）。これは、第１のゾーンが識別された後に行われないが、更なるゾーンのいずれかが識別された後に行われる。ゾーンＺが島（すなわち、その親と境界を共有しないゾーン）である場合、処理１２００はそのゾーンを島として分類する（１２８０）。時計方向に曲がるのが好ましい実施形態において、反時計方向に中央を横断することにより規定されたゾーンは島である。
【００８２】
処理は、いずれかのゾーン境界区間が残っているかを判定する（１２８５）。更にゾーン境界区間が残っている場合、上述した１２１５に進む。あるいは、全てのゾーン境界区間が双方向で使用されると、ページに対する全てのゾーンを規定したことになる。処理はゾーン情報を格納する（１２９０）。その後、処理は終了する。
【００８３】
図１４は、ページ１０００に適用された処理１２００の続きを示す。簡潔にするために、図１４は、ゾーン境界区間の横断の全ての動きを示さない。まず、交点１１１３、１１２３、１１３３及び１１４３のいずれかから開始し、２つのゾーン１４３５及び１４４０が識別される。島ではない子を有さない島の場合に起こるように、これらのゾーンは互いに対する複製である。いくつかの実施形態は、複製ゾーンを除去する。しかし、他の実施形態は、それらのゾーンを通常のゾーン及び島の２つのゾーンとして処理する。次に、交点１１９２から開始すると、ページ境界の全ての可能な分岐路が反時計方向の移動であるため、ゾーン１４４５（ページ境界）が結果として得られる。最後にこれは、横断され且つ除去されるゾーン１４５０及び１４５５を残す。全てのゾーンが横断されると、残っているゾーン境界区間はなくなる。
【００８４】
Ｅ．ゾーン木の生成
ゾーンが識別されると、ゾーングラフ（ゾーン木）が生成される。いくつかの実施形態において、ゾーン木はゾーン毎に行われる文書再構成において使用される。図１５は、ゾーン木を生成するいくつかの実施形態の処理１５００を概念的に示す。図示するように、処理はゾーン及びコンテンツオブジェクトを受信する（１５０５）。いくつかの実施形態において、これらのゾーンは処理１２００等の処理により識別されている。処理は面積によりゾーンをソートする（１５１０）。いくつかの実施形態は、ゾーンをソートする目的で面積が等しい場合に島でないゾーンより大きいものとして島を処理する。
【００８５】
次に処理は、最小のゾーンをｚとして選択する（１５１５）。処理は、ゾーンｚがページに対するゾーングラフにおいてノードを有するかを判定する（１５２０）。ｚがノードを有する場合、以下に説明する１５３０に進む。ｚがノードを有さない場合、処理１５００はゾーンｚに対するノードを規定する（１５２５）。
【００８６】
次に、処理は次に最小のゾーンをゾーンｐとして選択する（１５３０）。処理は、ゾーンｐがゾーンｚを含むか（すなわち、ゾーンｚの外側境界が完全にゾーンｐの外側境界内にあるか）を判定する（１５３５）。ゾーンｐがゾーンｚを含む場合、処理は、ゾーンｚがゾーンｐの子であると判定する（１５４０）。これに基づいて、処理はゾーンｐに対するノードをノードグラフに規定する（１５４５）。処理は、ゾーンｐからゾーンｚまでのエッジを規定する（１５５０）。その後、以下に説明する１５６５に進む。
【００８７】
１５３５においてゾーンｐがゾーンｚを含まないと判定されると、処理は、現在のソーンｐより大きいゾーンが存在するかを判定する（１５５５）。より大きいゾーンが残っている場合、１５３０に進み、次に最小のゾーンをゾーンｐとして選択し、新しいゾーンｐがゾーンｚの親であるかをテストする。ゾーンｐより大きいゾーンがない場合、処理は、ゾーンｚが親ゾーンを有さないと判定する（１５６０）。
【００８８】
次に処理は、ゾーンｚより大きいゾーンがあるかを判定する（１５６５）。より大きいゾーンがある場合、処理は選択対象のゾーンの集合からゾーンｚを除去し（１５７０）、１５１５に進んで親子分析のために別のゾーンを選択する。
【００８９】
図１６は、サイズの順序でソートされ（Ａ’はＡに対する島である）且つノードグラフ１６００に配置されたページ１０００（図１０に示す）のゾーン１４３５（Ａ）、１４４０（Ａ’）、１４５５（Ｂ）、１４５０（Ｃ）、１３００（Ｄ）及び１４４５（Ｅ）を示す。処理１５００を使用して、最初にゾーンＡ（最小のゾーン）に対するノードが規定され、ゾーンは、島ゾーンＡ’がゾーンＡの親であると判定されるまでテストされ、この時、ゾーンＡはノードグラフにおいて規定され、Ａ’からＡまでのエッジが規定される。次に、ゾーンＤは、島ゾーンＡ’の親であると判定され、ゾーンＢ、Ｃ及びＤの全ては親を有さない島ゾーンＥの子であると判定される。いくつかの実施形態において、ゾーン及び島ゾーンのレベルはゾーングラフにおいて常に交互になる。従って、島Ｅ及びＡ’はグラフ１６００の第１のレベル及び第３のレベルにあり、ゾーンＢ、Ｃ、Ｄ及びＡは第２のレベル及び第４のレベルにある。
【００９０】
全てのゾーンが分析されると、１５７３に進み、未処理のコンテンツオブジェクトが存在するかを判定する。コンテンツオブジェクトが存在しない（すなわち、文書がゾーン境界以外空白である）場合、あるいは全てのコンテンツオブジェクトが処理された場合、以下に説明する１５９７に進む。未処理のコンテンツオブジェクトが存在する場合、１５７５に進み、コンテンツオブジェクトｃを選択する。処理は、オブジェクトｃに対するノードを規定する（１５８０）。いくつかの実施形態において、コンテンツオブジェクトは基本オブジェクト（例えば、グリフ、形状又は画像）である。処理は、コンテンツオブジェクトｃを含む最小のゾーンｘを判定する（１５８５）。コンテンツオブジェクトｃを含むゾーンｘが判定されると、処理はゾーンｘからコンテンツオブジェクトｃまでのエッジをゾーングラフに規定する（１５９０）。全てのオブジェクトが追加されると、処理はゾーングラフを格納する（１５９７）。その後、処理は終了する。
【００９１】
いくつかの実施形態において、各ゾーンのコンテンツは更に分析される（例えば、テキストの段落へのグループ化、表の識別等）。また、文書再構成が実行されると、いくつかの実施形態は各ゾーンに対するコンテンツ部分木によりゾーングラフを更新する。ここで、コンテンツ部分木はゾーンの基本オブジェクトの階層グループ化を表す構造ノードを含む。最初にゾーン分析を実行することにより、種々のゾーンからのコンテンツが次の文書再構成ステップにおいて不適切にグループ化されないことを保証する。
【００９２】
いくつかの実施形態において、境界線及びそれら境界線により境界をつけられた領域（例えば、ゾーン）等の幾何学的属性の識別は、更なる文書再構成の準備をする。例えば、プロファイルはゾーンの幾何学的配置に依存してもよく、表又はテキストボックス等の構造要素はゾーンの幾何学的配置から認識されてもよい。
【００９３】
Ｆ．ソフトウェアアーキテクチャ
いくつかの実施形態において、上述したゾーン分析処理は、コンピュータ、メディアプレーヤ、携帯電話（例えば、ｉＰｈｏｎｅ（登録商標））、あるいは他のハンドヘルド又はリソースの制限されたデバイス等の特定のマシンで実行する（又はコンピュータ可読媒体に格納された）ソフトウェアとして実現される。図１７は、文書に対してゾーン分析を実行するいくつかの実施形態のゾーン分析アプリケーション１７００のソフトウェアアーキテクチャを概念的に示す。いくつかの実施形態において、アプリケーションは、スタンドアロンアプリケーションであるか又は別のアプリケーション（例えば、文書再構成アプリケーション）に組み込まれる。その一方で、他の実施形態において、アプリケーションはオペレーティングシステム内に実現されてもよい。
【００９４】
ゾーン分析アプリケーション１７００は、境界識別モジュール１７０５、区間及び交点識別モジュール１７１０、ゾーン識別モジュール１７１５、ゾーングラフビルダ１７２０、並びにゾーン情報記憶装置１７２５を含む。
【００９５】
図１７は、文書コンテンツ１７３０を更に示す。境界識別モジュール１７０５は、文書コンテンツ１７３０から情報を受信する。いくつかの実施形態において、この情報は文書中の全ての図形（例えば、形状、画像、線等）に関する情報である。境界識別モジュール１７０５は、潜在的なゾーン境界を識別し、この情報を区間及び交点識別モジュール１７１０並びにゾーン情報記憶装置１７２５に渡す。いくつかの実施形態において、境界識別モジュール１７０５は、処理９００の一部又は全てを実行する。
【００９６】
区間及び交点識別モジュール１７１０は、境界識別モジュール１７０５及び／又はゾーン情報記憶装置１７２５からゾーン境界情報を受信する。区間及び交点識別モジュール１７１０は、モジュール１７０５により識別された潜在的なゾーン境界に基づいてゾーン境界の交点及びゾーン境界区間を識別する。識別されたゾーン境界の交点及びゾーン境界区間は、ゾーン識別モジュール１７１５に渡され、ゾーン情報記憶装置１７２５に格納される。いくつかの実施形態において、区間及び交点モジュール識別１７１０は、処理９００の一部又は全てを実行する。
【００９７】
ゾーン識別モジュール１７１５は、境界識別モジュール１７０５からゾーン境界情報を受信し、区間及び交点識別モジュール１７１０からゾーン境界の交点及びゾーン境界区間の情報を受信し、且つ／又はゾーン情報記憶装置１７２５から情報を受信する。ゾーン識別モジュール１７１５は、モジュール１７０５及び１７１５からの情報に基づいてゾーンを識別する。識別されたゾーンは、ゾーングラフビルダに渡され、ゾーン情報記憶装置１７２５に格納される。いくつかの実施形態において、ゾーン識別モジュール１７１５は処理１２００の一部又は全てを実行する。
【００９８】
ゾーングラフビルダ１７２０モジュールは、ゾーン識別モジュール１７１５及び／又はゾーン情報記憶装置１７２５からゾーン情報を受信し、文書コンテンツ１７３０からコンテンツ情報を受信する。ゾーングラフビルダ１７２０は、ゾーン情報に基づいて文書に対するゾーングラフを規定し、コンテンツ情報をゾーングラフに読み込む。いくつかの実施形態において、コンテンツ情報が以下の節で説明するような他の再構成処理により識別されると、ゾーングラフビルダ１７２０はゾーングラフにデータを読み込む。いくつかの実施形態において、ゾーングラフビルダ１７２０は処理１５００の一部又は全てを実行する。
【００９９】
いくつかの実施形態において、上述したモジュール又は他のモジュールにより実行された処理の結果は、電子記憶装置に格納される（例えば、文書オブジェクトモデルの一部として）。文書オブジェクトモデルは、ユーザが文書をレビューし且つ／又は文書と対話できるように（例えば、タッチスクリーン、カーソル制御デバイス等を介して）、電子表示装置（例えば、ハンドヘルドデバイス、コンピュータ画面等）に文書を表示するために使用される。
【０１００】
ＩＩＩ．ガイド及びのどの分析
本発明のいくつかの実施形態は、文書又は文書の一部の境界線（例えば、位置揃えガイド）及び塗りつぶされていない空白（例えば、のどと呼ばれるグリフのグループの間の塗りつぶされていない空白の空隙）等の幾何学的属性を識別する方法を提供する。いくつかの実施形態において、のどは２つの位置揃え点の間（例えば、右揃え点と左揃え点との間）の空間である。いくつかの実施形態において、ガイド及びのどの識別は、カラムの識別及びテキスト行の分割等の次の再構成手順において使用される。いくつかの実施形態は、ゾーン毎又はページ毎にガイド及びのどを識別する。
【０１０１】
図１８は、文書中のガイド及びのどを識別するいくつかの実施形態の全体の処理１８００を示す。処理１８００について図１９と共に説明する。図１９は、２つのテキストカラムを有するページ１９００、並びにページ１９００において識別されるガイド及びのどを示す。図１８に示すように、処理１８００は文書の一部を受信する（１８０５）。この一部は、複数ページであってもよく、１ページであってもよく、あるいは前のゾーン分析により識別されたゾーンであってもよい。文書の一部は、本出願の他の箇所で説明する方法によりグリフプリミティブから再構成された単語を含んでもよい。
【０１０２】
処理は、受信した文書の一部のガイドを判定するためにクラスタ分析を適用する（１８１０）。クラスタ分析により、処理は単語の終了又は開始がグループ化されるｘ座標を判定でき、このｘ座標を可能性のある位置揃えガイドにする。上述したように、図１９は、２つのテキストカラムを含むページ１９００を示す。ページ１９００は、ガイドの集合１９０５を含む。いくつかの実施形態は、カラムの最下部の行及び最上部の行をガイドとして判定し、その一方で、他の実施形態は、左揃えガイド及び右揃えガイドのみを判定する。いくつかの実施形態は、中央揃え又は数字のリストの小数点揃え等の他の位置揃えに対するガイドを更に識別する。クラスタ分析及びガイド判定処理については、以下に更に詳細に説明する。
【０１０３】
次に、処理は、文書の一部ののどを判定する（１８１５）。いくつかの実施形態は、のどを判定するために動作１８１０からの情報を使用する。図１９は、カラム１の右揃えガイドとカラム２の左揃えガイドとの間でページ１９００に対して判定されるのど１９１０を示す。いくつかの実施形態はページの余白をのどとして処理するが、他の実施形態は処理しない。ガイド及びのどが判定されると、処理１８００は、文書の更なる再構成のためにガイド及びのどを使用する（１８２０）。その後、処理は終了する。
【０１０４】
Ａ．密度クラスタリング
いくつかの実施形態は、ページ上で同一のｘ座標又はほぼ同一のｘ座標で開始又は終了するテキスト行を探索し且つｘ座標が実際に位置揃え点であるという十分な根拠があるかを判定することにより右揃えガイド及び左揃えガイドを判定する。いくつかの実施形態は、位置揃えガイドを判定するために密度クラスタリングと呼ばれるクラスタ分析の形式を使用する。いくつかの実施形態の密度クラスタリングは、リソースの制限されたデバイス（例えば、ｉＰｈｏｎｅ（登録商標））において実行されるように第Ｘ節において以下に説明するメモリ及び処理効率化を利用する。
【０１０５】
多くの場合、密度クラスタリングは、「ノイズ」又はランダムデータがない場合に鮮明に可視であるクラスタと組み合わされた、非常に多くの「ノイズ」又はランダムデータが存在するという問題に適用可能である。データが実数の集合である場合、クラスタは、所定の密度制約を最適に満たす部分集合として識別される。一般に制約は、他の部分集合より相対的に密度の高い部分集合を選定するように設計される。例えばいくつかの実施形態は、クラスタの最小サイズ及びクラスタの最大広がりを制約として使用する。
【０１０６】
図２０は、密度クラスタリングを実行するいくつかの実施形態の処理２０００を概念的に示す。図示するように、処理は入力データの集合を受信する（２００５）。いくつかの実施形態において、入力データは、ページ上の文字グリフの座標データである。例えば左揃えガイドを見つけるために密度クラスタリングを使用する時、入力データはページ上の各単語の最初の英字のアンカのｘ座標である。
【０１０７】
処理は入力データの集合をソートする（２０１０）。いくつかの実施形態は昇順にデータをソートし、他の実施形態は降順にデータをソートする。例えば位置揃えガイドを判定するために密度クラスタリングを使用する場合、データ（ｘ座標値）は、２つのｘ座標値が等しい場合にソート済みデータにおいて隣り合うように（２つの間に入る同一のｘ座標値を有する他の単語がない限り）最小のｘ座標値から最大のｘ座標値へとソートされる。いくつかの実施形態は、ソート済みデータに対して新しい配列を作成し、その一方で、いくつかの実施形態は、第Ｘ節において以下に説明するように間接的にソートされた指標の配列を使用する。
【０１０８】
次に処理２０００は、集合が少なくとも２つのデータを有するかを判定する（２０１２）。有さない場合、クラスタリングするものがないため処理は終了する。有する場合、ソート済み集合において連続するデータ間の差分の集合を判定すること（２０１５）に進む。そのような集合は、入力データの集合より１少ない値を有する。一例として、ページ上に３つの単語が存在する場合、差分の集合の２つの値は、第１の単語と第２の単語との間のｘ座標値の差分及び第２の単語と第３の単語との間のｘ座標値の差分である。
【０１０９】
次に、処理は変数ｄを差分の集合の未評価の最大の差分に設定する（２０２０）。例えば単語の集合に対する差分が０．７インチ、０．２インチ、０．０インチ及び０．４インチである場合、変数ｄは最初に０．７インチに設定される。処理は、差分がｄ以上である場合は必ずソート済みデータを区分して、データの部分集合の集合を生成する（２０２５）。ｄが最大差分に設定されるため、第１の区分は常にｄに等しい差分でのみソート済みデータを区分する。０．７、０．２、０．０及び０．４の差分を有する５つのデータ値の上記例において、区分により２つの部分集合が生成される（一方の部分集合には最初の値があり、他方の部分集合には他の４つの値がある）。
【０１１０】
問題を解決するために特定の制約を満たす部分集合の集合Ｓを判定する（２０３０）。いくつかの実施形態において、制約の目的は、他の部分集合より相対的に密度の高い部分集合を判定することである。いくつかの実施形態は、最小クラスタサイズ（すなわち、部分集合の値の数の最小値）及び最大クラスタ広がり（すなわち、部分集合の最大値と最小値との間の最大許容差）の２つの密度制約を使用する。位置揃えガイドを判定するために密度クラスタリングを使用する場合、いくつかの実施形態は、評価されているページ又はゾーンの全ての行のうちの何分の１かである最小クラスタサイズを使用し、その一方で、他の実施形態は定数を使用する。いくつかの実施形態は、単語の最初の文字（左揃えの場合）又は最後の文字（右揃えの場合）のフォントサイズの中央値の何分の１かである最大広がりを使用する。
【０１１１】
制約を満たす部分集合の集合Ｓが判定されると、処理は、Ｓが空であるかを判定する（２０３５）。Ｓが空である場合、以下に説明する２０５５に進む。Ｓが少なくとも１つの部分集合を含む場合、処理はＳに対する最適化関数を評価する（２０４０）。いくつかの実施形態は、制約を満たす最大部分集合を有する集合Ｓを探す最適化関数を使用する。他の実施形態は、制約を満たす全ての部分集合にわたり特定の値（例えば、部分集合のサイズ−最小クラスタサイズ）の二乗和を最大にしようとする最適化関数を使用する。更に他の実施形態は、上述した最適化関数が同等の場合は最適化関数の一方を使用し、その後他方を使用する。他の最適化関数は他の実施形態により使用される。
【０１１２】
次に処理は、最適化関数に基づいて、集合Ｓがこの時点までで最適であるかを判定する（２０４５）。Ｓが最適でない場合、以下に説明する２０５５に進む。Ｓが最適である場合、処理は既に見つけられた最適なクラスタの集合としてＳを格納する（２０５０）。Ｓが空でない場合、最初の通過時（ここで、ｄは最大差である）には常にこの時点で最適である。その後の通過時には、現在のＳが格納されたクラスタの集合と比較される。
【０１１３】
処理は、未評価の差分が存在するかを判定する（２０５５）。いくつかの実施形態は、最適なクラスタの集合を見つけるために可能な各区分をテストする。そのようないくつかの実施形態は、第Ｘ節において以下に説明する効率化技術を使用してより高速で効率的な処理を可能にする。未評価の差分があると判定される場合、上述した２０２０に進む。
【０１１４】
全ての差分が評価されると、処理は現在格納されている最適な集合（又は制約を満たすクラスタが見つけられない場合は空の集合）を最終的なクラスタの集合として出力する（２０６０）。位置揃えガイドを判定する場合、最終的なクラスタの集合は非常に近いｘ座標を有する単語のグループである。その後、処理は終了する。密度制約及び最適な測定に加えて、処理２０００は、整合性制約をクラスタに課すことが当業者には理解されるだろう。すなわち、データが指定された空隙の最小値以上の全ての差分で区分されるため、クラスタにおいて連続する値の間のクラスタ内差分がクラスタ間差分以上になることはない。
【０１１５】
Ｂ．位置揃えガイドの判定
上述したように、いくつかの実施形態は、ページ上で同一のｘ座標又はほぼ同一のｘ座標において開始又は終了する関連したグリフの集合（例えば、用語、テキスト行）を探索し且つｘ座標が実際に位置揃え点であるという十分な根拠があるかを判定することにより右揃えガイド及び左揃えガイドを判定する。いくつかの実施形態は、左揃えガイド及び右揃えガイドを見つけるために、類似するが同一ではない処理を使用する。
【０１１６】
図２１は、左揃えガイドを判定するいくつかの実施形態の処理２１００を概念的に示す。処理２１００の一部については図２２〜図２４に関連して説明する。図２２〜図２４は、ページ２２００において左揃えガイドを判定する処理を示す。図２１に示すように、処理２１００は、密度クラスタリングに対する入力データを文書の領域の単語の左エッジのｘ座標として設定する（２１０５）。いくつかの実施形態において、その領域はページ又はページのゾーンである。いくつかの実施形態において、特定の単語の左エッジは、特定の単語の第１のグリフのアンカのｘ座標であり、そのグリフに対して予想される左揃え位置に調整される。
【０１１７】
処理は所望のクラスタ特性を判定する（２１１０）。いくつかの実施形態において、クラスタ特性は上述した密度クラスタリングに対する制約である。いくつかの実施形態は、最小クラスタサイズ（すなわち、部分集合の値の数の最小値）及び最大クラスタ広がり（すなわち、部分集合の最大値と最小値との間の最大許容差）の２つの密度制約を使用する。位置揃えガイドを判定するために密度クラスタリングを使用する場合、いくつかの実施形態は、評価されているページ又はゾーンの全ての行のうちの何分の１かである最小クラスタサイズを使用し、その一方で、他の実施形態は定数を使用する。いくつかの実施形態は、単語の最初の文字（左揃えの場合）又は最後の文字（右揃えの場合）のフォントサイズの中央値の何分の１かである最大広がりを使用する。制約の一例は、最小クラスタサイズが領域のテキスト行の総数の５％であり且つ最大広がりがフォントサイズの中央値の１０％であることである。
【０１１８】
次に処理は、位置揃えガイドであってもよいｘ座標値のクラスタを判定するために判定されたクラスタ特性を使用して入力データに密度クラスタリングを適用する（２１１５）。いくつかの実施形態は、上述したように処理２０００を使用する。
【０１１９】
処理２１００は、未評価のクラスタが存在するかを判定する（２１１７）。クラスタがない場合又は全てのクラスタが評価された場合、処理は終了する。未評価のクラスタが存在する場合、処理はクラスタ（すなわち、クラスタ分析から出力されたクラスタのうちの１つ）を選択する（２１２０）。処理は、クラスタ中の最小値及び最大値である最小ｘ座標及び最大ｘ座標、並びにページの最上部及び最下部である最小ｙ座標及び最大ｙ座標を有する矩形として左揃えガイドを設定する（２１２５）。いくつかの例において、クラスタの全てのｘ座標が同一値を有するため、最小ｘ座標及び最大ｘ座標は同一である。他の例において、偶然にクラスタに含まれる小さな収差又は単語は非ゼロの幅をこの矩形に与える。
【０１２０】
図２２は、いくつかの実施形態において、潜在的な左揃えガイド２２０５を含むページ２２００を示す。単語２２１０が密度クラスタリング処理により右カラムの左エッジを形成する単語とグループ化されるように単語２２１０の開始がそれら単語の開始と十分に近接するため、矩形２２０５の最小ｘ座標は右のカラム２２１５の左エッジにより設定され、その一方で、最大ｘ座標はページの中央の単語「ｔａｔｅ」２２１０により設定される。
【０１２１】
処理２１００は、矩形において開始する単語及び矩形と交差する単語の分析に基づいて制約を満たさないｙ座標の矩形を除去する（２１３０）。その後、上述した２１１７に進む。いくつかの実施形態は、単語が矩形の左側で開始し矩形と交差する場合は必ず矩形の一部を除去する。あらゆるｙ座標において、間に十分な数の境界の単語を有さない２つの交差する単語の間の矩形は除去される。境界の単語は、矩形において開始するか又は矩形の１つのエッジで開始する単語である。いくつかの実施形態は、交差する単語の間に少なくとも５つの境界の単語が存在するという要件を使用し、それらの５つの境界の単語のうち少なくとも１つは、そのテキスト行の最も左側にあるか又は通常の単語の空隙より多い空隙によりテキスト行上の前の単語と離間される必要がある。いくつかの実施形態は、参考として本明細書に取り入れられるＭａｎｓｆｉｅｌｄ他の米国特許出願公開第２００７／０２５０４９７号明細書「Ｓｅｍａｎｔｉｃ  Ｒｅｃｏｎｓｔｒｕｃｔｉｏｎ」で説明された処理を使用し、単語の空隙及びより大きな空隙を判定する。いくつかの実施形態は、動作２１３０を実行するために種々の要件（例えば、交差する単語の間に４つ以下又は６つ以上の境界の単語）を使用する。
【０１２２】
図２３は、矩形２２０５に対する交差する単語を丸で囲んだ状態でページ２２００及び矩形２２０５を示す。交差する単語は、特に単語２３４０（「ｒｅｐｒｅｈｅｎｄｅｒｉｔ」）及び単語２３１５（「ｄｏｌｏｒｅ」）を含む。交差する単語２３４０及び２３１５の間に２つの境界の単語２２１０（「ｔａｔｅ」）及び２３２５（「ｅｓｓｅ」）が存在する。しかし、交差する単語の間の境界の単語に対する要件が３つ以上である場合、矩形はこの小領域においても除去される。いくつかの実施形態は、交差する単語の一番上(greatest ascent)から一番下(greatest descent)まで及び交差する単語の間の適格でない領域のみを除去する。他の実施形態は、交差する単語２３３０（「ａｕｔｅｉｒ」）からその上にある境界の単語２３３５（「ｒｅｐｒｅｈｅｎｄｅｒｉｔ」）までの領域等の位置揃えガイドを超える可能性が高い領域を更に除去する。
【０１２３】
図２４は、ページ２２００に対する左揃えガイド２４０５及び２４１０を示す。ページの中央のコールアウト領域のために、特定のｘ座標における左揃えガイドはページ２２００全体の長さにわたって伸びていない。
【０１２４】
上述したように、いくつかの実施形態は、右揃えガイドを判定するために処理２１００に類似する処理を使用する。図２５は、右揃えガイドを判定するいくつかの実施形態の処理２５００を概念的に示す。図示するように、処理は、密度クラスタリングに対する入力データを文書の領域の単語の右エッジのｘ座標として設定する（２５０５）。その領域は、いくつかの実施形態においてページ又はページのゾーンである。いくつかの実施形態において、特定の単語の右エッジは、特定の単語の最後のグリフのアンカのｘ座標＋単語の最後のグリフに対する前進ベクトルのｘ座標であり、グリフに対して予想される右揃え位置に調整される。
【０１２５】
処理は、所望のクラスタ特性を判定する（２５１０）。いくつかの実施形態において、クラスタ特性は上述した密度クラスタリングに対する制約である。いくつかの実施形態は、最小クラスタサイズ（すなわち、部分集合の値の最小数）及び最大クラスタ広がり（すなわち、部分集合の最大値と最小値との間の最大許容差）の２つの密度制約を使用する。位置揃えガイドを判定するために密度クラスタリングを使用する場合、いくつかの実施形態は、評価されているページ又はゾーンの全ての行のうちの何分の１かである最小クラスタサイズを使用し、その一方で、他の実施形態は定数を使用する。いくつかの実施形態は、単語の最初の文字（左揃えの場合）又は最後の文字（右揃えの場合）のフォントサイズの中央値の何分の１かである最大広がりを使用する。制約の一例は、最小クラスタサイズが領域のテキスト行の総数の５％であり且つ最大広がりがフォントサイズの中央値の１０％であることである。
【０１２６】
次に処理は、位置揃えガイドでありうるｘ座標値のクラスタを判定するために判定されたクラスタ特性を使用して入力データに密度クラスタリングを適用する（２５１５）。いくつかの実施形態は、上述したように処理２０００を使用する。
【０１２７】
処理は、未処理のクラスタが存在するかを判定する（２５１７）。クラスタがない場合又は全てのクラスタが処理された場合、処理は終了する。未処理のクラスタが存在する場合、処理はクラスタ（すなわち、クラスタ分析から出力されたクラスタのうちの１つ）を選択する（２５２０）。処理は、クラスタ中の最小値及び最大値である最小ｘ座標及び最大ｘ座標、並びにページの最上部及び最下部である最小ｙ座標及び最大ｙ座標を有する矩形として右揃えガイドを設定する（２５２５）。いくつかの例において、クラスタの全てのｘ座標が同一値を有するため、最小ｘ座標及び最大ｘ座標は同一である。他の例において、偶然にクラスタに含まれる小さな収差又は単語は非ゼロの幅を矩形に与える。
【０１２８】
処理は、矩形において終了する単語及び矩形と交差する単語の分析に基づいて制約を満たさないｙ座標において矩形を除去する（２５３０）。その後、上述した２５１７に進む。いくつかの実施形態は、単語が矩形と交差するか又は矩形において開始し且つ矩形の右側で終了する場合は必ず矩形の一部を除去する。あらゆるｙ座標において、間に十分な数の境界の単語を有さない２つの交差する単語の間の矩形は除去される。境界の単語は、矩形において終了するか又は矩形の１つのエッジで終了する単語である。いくつかの実施形態は、交差する単語の間に少なくとも５つの境界の単語が存在するという要件を使用し、それらの５つの境界の単語のうち少なくとも１つは、そのテキスト行の最も右側にあるか又は通常の単語の空隙より多い空隙によりテキスト行上の次の単語と離間される必要がある。いくつかの実施形態は、上述した米国特許出願公開第２００７／０２５０４９７号明細書で説明された処理を使用し、単語の空隙及びより大きな空隙を判定する。いくつかの実施形態は、動作２５３０を実行するために種々の要件（例えば、交差する単語の間に４つ以下又は６つ以上の境界の単語）を使用する。
【０１２９】
Ｃ．のどの判定
ガイドを判定した後、いくつかの実施形態は領域（例えば、ゾーン、ページ等）ののどを判定する。いくつかの実施形態は、領域の関連したグリフの間の塗りつぶされていない空白（例えば、のど）のグループ化を判定するために、ガイド判定処理（例えば、処理２１００及び２５００）からの情報を使用する。いくつかの実施形態は、領域ののどを判定するためにガイドに加えて他の位置揃え点を使用する。
【０１３０】
図２６は、領域に対するのどを判定するいくつかの実施形態の処理２６００を概念的に示す。処理２６００の部分については図２７〜図２９と共に説明する。図２７〜図２９は、ページ２７００においてのどを識別する処理を示す。
【０１３１】
図２６に示すように、処理は位置揃え情報を受信する（２６０５）。いくつかの実施形態において、この情報は処理２１００及び２５００により判定されたガイドである。いくつかの実施形態は、他の位置揃え点及びガイドを含む。例えばいくつかの実施形態において、左揃えされた（行揃えされていない）テキストのテキスト行の終端は右揃え点として処理される。これにより、ガイドが第１のカラムの右エッジにおいて見つけられない場合でも、のどはカラムの空隙において識別される。同様に、いくつかの実施形態において、右揃えされたテキストの左エッジ又は中央に置かれたテキストの両側のエッジは位置揃え点として考えられる。
【０１３２】
処理２６００は、未処理の右揃え点があるかを判定する（２６０７）。右揃え点がない場合又は全ての点が処理された場合、処理は終了する。未処理の右揃え点がある場合、処理は右揃え点を選択する（２６１０）。いくつかの実施形態においては、処理は最も左側の右揃え点を最初に識別し、他の実施形態においては、処理はランダムな右揃え点を選択する。
【０１３３】
処理は、左揃え点が選択した右揃え点と領域の右エッジとの間に存在するかを判定する（２６１５）。左揃え点がない場合、上述した２６０７に進む。あるいは、右揃え点と領域エッジとの間に少なくとも１つの左揃え点がある場合、処理は選択した右揃え点から領域と交差して移動して次の左揃え点を識別する（２６２０）。のどが存在するかを判定するために処理がテストするのは、それら２つの点の間の領域である。
【０１３４】
右揃え点及び左揃え点が識別されると、処理は、最小ｘ座標である右揃え点及び最大ｘ座標である左揃え点を有する矩形としてのどを設定する（２６２５）。矩形の最小ｙ座標及び最大ｙ座標は、ページの最上部及び最下部である。図２７は、ページ２７００及びのどになりうるものとしてテストされる矩形２７０５を示す。最小ｘ座標は、第１のカラムの右エッジの右揃え点であり、最大ｘ座標は第２のカラムの左エッジの左揃え点である。
【０１３５】
次に、処理は、矩形と交差し且つ矩形に境界をつける単語の分析に基づいて制約を満足しないｙ座標においてのどを除去する（２６３０）。いくつかの実施形態は、単語が矩形と交差するか又は矩形において開始する場所において矩形の一部を除去する。あらゆるｙ座標において、間に十分な数の境界の単語を有さない２つの交差する単語の間の矩形は除去される。のどに対する境界の単語は、矩形の左エッジで終了するか又は矩形の右エッジで開始する単語である。いくつかの実施形態は、交差する単語の間に少なくとも５つの境界の単語が存在するという要件を使用し、それらの５つの境界の単語のうち少なくとも１つは、そのテキスト行の最も左側にあるか又は通常の単語の空隙より多い空隙によりテキスト行上の前の単語と離間される必要があるか、あるいはそのテキスト行の最も右側にあるか又は通常の単語の空隙より多い空隙によりテキスト行上の次の単語と離間される必要がある。いくつかの実施形態は、上記の米国特許出願公開第２００７／０２５０４９７号明細書で説明された処理を使用し、単語の空隙及びより大きな空隙を判定する。いくつかの実施形態は、動作２６３０を実行するために種々の要件（例えば、交差する単語の間に４つ以下又は６つ以上の境界の単語）を使用する。その後、処理は上述した２６０７に進む。
【０１３６】
図２８は、矩形２７０５に対する交差する単語を丸で囲んだ状態でページ２７００及び矩形２７０５を示す。交差する単語は、特に単語２８１０（「ｃｉｌｌｕｍ」）及び単語２８１５（「ｎｕｌｌａ」）を含む。交差する単語２８１０及び２８１５の間に境界の単語２８２０（「ｅｕ」）が存在する。しかし、交差する単語の間の境界の単語に対する要件が２つ以上である場合、矩形はこの小領域においても除去される。いくつかの実施形態は、交差する単語の一番上(greatest ascent)から一番下(greatest descent)まで及び交差する単語の間の適格でない領域のみを除去する。他の実施形態は、のどを超える可能性が高い領域を更に除去する。
【０１３７】
図２９は、ページ２７００に対するのど２９０５及び２９１０を示す。ページの中央のコールアウト領域のために、２つの主なカラムの間ののどはページ全体の長さにわたっていない。
【０１３８】
いくつかの実施形態は、意味再構成処理  中にガイド及びのどを使用する。例えば、のどはテキスト行を分割し且つカラムを識別するために使用される。処理について、以下の第ＩＶ節において説明する。
【０１３９】
Ｄ．ソフトウェアアーキテクチャ
いくつかの実施形態において、上述したガイド及びのど分析処理は、コンピュータ、メディアプレーヤ、携帯電話（例えば、ｉＰｈｏｎｅ（登録商標））、あるいは他のハンドヘルド又はリソースの制限されたデバイス等の特定のマシンで実行する（又はコンピュータ可読媒体に格納された）ソフトウェアとして実現される。図３０は、文書におけるガイド及びのどを識別するいくつかの実施形態のガイド及びのど分析アプリケーション３０００のソフトウェアアーキテクチャを概念的に示す。いくつかの実施形態において、アプリケーションは、スタンドアロンアプリケーションであるか又は別のアプリケーション（例えば、文書再構成アプリケーション）に組み込まれる。その一方で、他の実施形態において、アプリケーションはオペレーティングシステム内に実現されてもよい。
【０１４０】
ガイド及びのど分析アプリケーション３０００は、ガイド識別モジュール３００５、密度クラスタリングモジュール３０１０及びのど識別モジュール３０１５、並びにガイド及びのど情報記憶装置３０２０を含む。
【０１４１】
図３０は、文書コンテンツ３０２５を更に示す。ガイド識別モジュール３００５は、文書コンテンツ３０２５から情報を受信する。ガイド識別モジュール３００５は、文書において位置揃えガイドを識別するために文書コンテンツを分析する。識別されたガイドは、のど識別モジュール３０１５、ガイド及びのど情報記憶装置３０２０、並びに文書コンテンツ３０２５に渡される。いくつかの実施形態において、ガイド識別モジュール３００５は、処理２１００及び２５００の一部又は全てを実行する。
【０１４２】
ガイド識別モジュール３００５は、密度クラスタリングモジュール３０１０に情報を渡し、密度クラスタリングモジュール３０１０から情報を受信する。潜在的なガイドを判定するために、密度クラスタリングモジュール３０１０は、ガイド識別モジュール３００５並びに／あるいはガイド及びのど情報記憶装置３０２５から入力データを受信し、入力データに対して密度クラスタリングを実行する。いくつかの実施形態において、密度クラスタリングモジュール３０１０は処理２０００の一部又は全てを実行する。
【０１４３】
のど識別モジュール３０１５は、ガイド識別モジュール３００５及び文書コンテンツ３０２５から情報を受信する。のど識別モジュールは、文書においてのどを識別するために受信情報を分析する。識別されたのどは、ガイド及びのど情報記憶装置３０２０並びに文書コンテンツ３０２５に渡される。いくつかの実施形態において、のど識別モジュール３０１５は処理２６００の一部又は全てを実行する。
【０１４４】
いくつかの実施形態において、上述したモジュール又は他のモジュールにより実行された処理の結果は、電子記憶装置に格納される（例えば、文書オブジェクトモデルの一部として）。文書オブジェクトモデルは、ユーザが文書をレビューでき且つ／又は文書と対話できるように（例えば、タッチスクリーン、カーソル制御デバイス等を介して）、電子表示装置（例えば、ハンドヘルドデバイス、コンピュータ画面等）に文書を表示するために使用される。
【０１４５】
ＩＶ．レイアウト及びフローの判定
一般に、文書はコンテンツの黙示的構造及びフローを有する。特に、いくつかの例において、順序付けされた文字シーケンス（及びインライングラフィックス）は単語を構成し、順序付けされた単語シーケンスはテキスト行を構成し（又はハイフンによりテキスト行をまたぐ）、順序付けされたテキスト行シーケンスは段落を構成し、順序付けされた段落シーケンスはカラムを構成し（又はカラムをまたぐ）、順序付けされたカラムシーケンスはレイアウトを構成し、順序付けされたレイアウトシーケンスは文書の小領域を構成する。この構造が電子文書のファイル形式で提供されない場合、以前はソフトウェアから構造にアクセスできなかった。文書を単に閲覧することは文書構造を必ずしも必要としないが、文書の編集、インポート、検索、書式設定又は転用を行うアプリケーションは適切に機能するために文書構造及びフローの知識を必要とする。
【０１４６】
本発明のいくつかの実施形態は、文書又は文書のある領域のレイアウト及びフローを判定する方法を提供する。これは、意味階層（例えば、文書の単語、行及び段落）、並びにカラム等のレイアウト特性及び意図した文書の読み取りのためのどのようにカラムが調和しているかを判定することを含む。いくつかの実施形態において、処理の目的は、ユーザが最初から最後まで文書を読み取る順序を識別することである。
【０１４７】
図３１は、文書のレイアウト及びフローを判定するいくつかの実施形態の処理３１００を概念的に示す。処理３１００について図３２と共に説明する。図３２は、２つのテキストカラムを含む文書のページ３２００に対して判定される種々のレイアウト及びフロー情報のシーケンスを示す。図３２において、ページ３２００のコンテンツが重要ではなく、行及び段落等が重要であることが理解されるだろう。図３１に示すように、処理３１００は文書の一部を受信する（３１０５）。いくつかの実施形態において、その一部は文書全体であるか、あるいは小領域、ページ又はゾーンである。
【０１４８】
処理は、受信した文書中のテキスト行を識別する（３１１０）。これは、必要に応じて共通の並び線及びマージ基本線を共有する文字（例えば、下付き文字及び上付き文字）を識別することを含む。図３２は、行３２０５及び３２１０の識別を示す。いくつかの実施形態の行識別処理は、第Ａ項において以下に更に詳細に説明する。
【０１４９】
次に、処理はテキスト中の単語を識別する（３１１５）。いくつかの実施形態は、テキスト中の単語を識別するために、上述した米国特許出願公開第２００７／０２５０４９７号明細書で説明したように差分クラスタリングを使用する。図３２は、行３２０５の単語３２１５（「Ｌｏｒｅｍ」）及び行３２１０の単語３２２０（「ａｍｅｔ」）を含むページ３２００の単語の識別を示す。単語識別処理については、第Ｂ項で以下に更に詳細に説明する。
【０１５０】
処理は、テキストが不連続であるテキスト行を分割する（３１２０）。図３２は、行３２０５が行３２２５及び３２３０に分割され且つ行３２１０が行３２３５及び３２４０に分割されることを示す。いくつかの実施形態の行分割処理については、第Ｃ項で以下に更に詳細に説明する。
【０１５１】
行を分割した後、処理はテキスト行を段落に配置する（３１２５）。図３２は、ページ３２００上で識別された段落３２４５及び３２５０を示す。段落識別処理については、第Ｄ項で以下に更に詳細に説明する。
【０１５２】
最後に、処理は段落をカラム及びレイアウトに配置する（３１３０）。図３２は、ページ３２００上で識別されたカラム３２５５及び３２６０を示す。カラム及びレイアウト識別処理については、第Ｅ項で以下に更に詳細に説明する。
【０１５３】
いくつかの実施形態は、処理３１００の全ての動作を１度に実行しない。いくつかの実施形態は、処理３１００の動作の間で他の文書再構成処理を実行する。例えばいくつかの実施形態は、テキスト行及びテキスト中の単語を判定するが、テキスト行を分割する前にガイド及びのどを識別する。
【０１５４】
Ａ．最初の行識別
上述したように、いくつかの実施形態において、テキスト行は識別される必要がある。特定のテキスト行の全ての文字が共通の並び線を必ずしも共有しないため、いくつかの実施形態は、２つの行の文字が同一のテキスト行の一部（例えば、上付き文字及び下付き文字）として読み取られることが意図されるという根拠に基づいて行をマージしようとする。
【０１５５】
図３３は、テキスト行を識別及びマージするいくつかの実施形態の処理３３００を概念的に示す。処理３３００については図３４及び図３５と共に説明する。図３４は、重なり合うテキスト行の６つのグループ３４０５〜３４３０を含むページ３４００を示す。図３５は、本発明のいくつかの実施形態に係るこれらのテキスト行のグループのマージを示す。
【０１５６】
図３３に示すように、処理は文書の一部を受信する（３３０５）。いくつかの実施形態において、その一部は文書のページ又はページのゾーン等である。処理は、その文書の一部に文字があるかを判定する（３３０７）。文字がない場合、処理は終了する。文字がある場合、処理は共通の並び線を共有する文字を基本テキスト行として関連付ける（３３１０）。文字は、同一のｙ座標のアンカ点を有する場合、いくつかの実施形態において共通の並び線を共有する。一般に、共通の並び線を共有する文字の関連付けにより、標準的なテキスト行をグループ化する。いくつかの実施形態は、基本テキスト行のｙ座標のアンカ点が厳密に等しい必要はないが互いの小さな閾値内になる必要があるような小さな閾値を使用する。
【０１５７】
次に、処理は垂直に重なり合うテキスト行のグループを識別する（３３１５）。第１の行のバウンディング矩形がｙ座標値において第２の行のバウンディング矩形と重なり合う場合、いくつかの実施形態において、２つの行は垂直に重なり合う。図３５は、垂直に重なり合うテキスト行の６つのグループ、すなわち行３５０５及び３５０６、行３５１０及び３５１１、行３５１５及び３５１６、行３５２０、３５２１及び３５２２、行３５２５及び３５２６、並びに行３５３０及び３５３１を含むページ３４００を示す。行３５２０及び３５２２が互いに重なり合わないが双方とも行３５２１と重なるため、行３５２０は１つのグループにおいて行３５２２と関連付けられる。水平方向の重なりはないが、行３５３０及び３５３１は、垂直に重なり合うため、いくつかの実施形態において最初にグループ化される。
【０１５８】
その後、処理は未評価のグループを選択し（３３２０）、異なる小領域のテキスト行の間で水平に重なり合わない小領域にグループを区分する（３３２５）。第１のテキスト行のバウンディングボックスのｘ座標が第２のテキスト行のバウンディングボックスのｘ座標と重なり合う場合、いくつかの実施形態において、２つのテキスト行は水平に重なり合う。例えば行３５３０及び３５３１は、水平に重なり合わず同一行であると考えられる可能性が低いため、この時点で区分される。いくつかの実施形態は、テキスト行の最初及び最後で短い距離（例えば、間隔文字の半分）だけ水平方向の重なりの基準を拡張し、その結果、行の最初及び最後のオフセット文字（例えば、下付き文字及び上付き文字）がマージされる。例えば、行３５１０と行３５１１との間に水平方向の重なりはないが、行３５１０の終端が行３５１１の開始に十分近いため、それらの行は区分されない。
【０１５９】
選択したグループを区分した後、処理はグループから未評価の小領域を選択し（３３３０）、最上部から最下部へと小領域の行をソートする（３３３５）。従って、行３５２０〜３５２２を含む選択した小領域が選択される場合、行は、１番目に行３５２０、２番目に行３５２１、３番目に行３５２２になるようにソートされる。種々の実施形態は、昇順、降順、並び線、又は行の垂直位置の他の基準により行をソートする。
【０１６０】
その後、処理は小領域の最上部の未評価の行を選択する（３３４０）。次に、処理は選択した行の最初（左から右に読まれる言語の場合は左から読む）の未評価の文字を選択する（３３４５）。処理は、選択した文字が次の行にマージされるかを判定する（３３５０）。いくつかの実施形態は、選択した文字が次の行のあらゆる文字と水平にそれ程重なり合わない場合に文字が次の行にマージされることを可能にする。いくつかの実施形態は、文字の間のある少ない量の水平方向の重なりを可能にする。左から右に読まれる言語の場合、いくつかの実施形態は、オフセット文字に対する共通の間隔調整を考慮するために、マージされる文字の左側の重なりがマージされる文字の右側の重なりより少ないことを可能にする。
【０１６１】
更に、いくつかの実施形態は、重なり合う文字の元の挿入順が隣接する場合、あらゆる量の重なりを可能にする。いくつかの実施形態において、挿入順は、文字がページに書かれる順序である。多くの場合（常にではないが）、文字は読まれる順序で書かれるため、垂直及び水平に重なり合う２つの文字が挿入順で隣接する場合、それらの文字は共に読まれることを意図する可能性が高い。
【０１６２】
選択した文字が次の行にマージ可能であると判定される場合、処理は選択した文字を次の行にマージする（３３５５）。その後、以下に説明する３３６５に進む。あるいは、選択した文字がマージできない場合、処理は選択した文字を選択した行に保持する（３３６０）。
【０１６３】
次に処理は、選択した行が更に文字を含むかを判定する（３３６５）。現在選択されている行に更なる文字がある場合、３３４５に進み、その行の次の未評価の文字を選択する。あるいは、その行の全ての文字が評価された場合、処理は、現在の小領域が更なる行を含むかを判定する（３３７０）。現在選択されている小領域に更なる行がある場合、３３４０に進み、次の未評価の行を選択する。
【０１６４】
小領域の全ての行が評価された場合、処理は、選択したグループが更なる小領域を含むかを判定する（３３７５）。現在選択されているグループに更なる小領域がある場合、３３３０に進み、別の小領域を選択し且つその小領域の行をマージする。あるいは、グループ中の全ての小領域が評価された場合、処理は、文書の一部に評価するグループが更に存在するかを判定する（３３８０）。更なるグループがある場合、３３２０に進み、別のグループを選択する。あるいは、全てのグループが評価された場合、行のマージはその文書の一部に対して終了し、処理が終了する。
【０１６５】
図３５は、いくつかの実施形態においてページ３５００に対する行のマージの結果を示す。行３５０６は、行３５０５にマージできるため、行３５０５は行３５０６の上付き文字「ｍ」を含み、その一方で、行３５０６は空であるため除去される。行３５１０と３５１１との間には水平方向の重なりがないが、行３５１０の終端は行３５１１の開始と十分に近く、それらの行は区分されず、行３５１０の全てが３５１１にマージされる。行３５１６の双方の文字は、行３５１５にマージされる。
【０１６６】
行３５２０〜３５２２は完全にマージできない。行３５２０の文字「ｂ」は最初に行３５２１にマージされる。その後、行３５２１の文字「Ａ」は、文字「ｃ」と重なり合わないため行３５２２にマージされる。しかし、文字「ｂ」は、文字「ｃ」と完全に重なり合うため行３５２２にマージされない。従って、行３５２１は「ｂ」のみを含み、行３５２２は「Ａ」及び「ｃ」を含み、行３５２０は空である。上述したように、いくつかの実施形態は、「ｂ」及び「ｃ」が挿入順で隣接する場合、「ｂ」を行３５２２にマージする。
【０１６７】
同様に、行３５２５及び３５２６はマージされない。行３５２６の全ての文字は、行３５２５の１つ以上の文字と多くの部分が重なり合うため、行３５２５にマージされない。行３５２６の「Ｔ」がページ３５００に対する挿入順で行３５２５の「ｈ」と「ｎ」との間になる可能性は低い。最後に、行３５３０及び３５３１は、間に水平方向の重なりがなく且つ従って動作３３２５において区分されるためマージされない。
【０１６８】
行が識別され且つマージされた後、いくつかの実施形態において単語が識別される。いくつかの実施形態は、単語内の英字の間及び単語の間の間隔に基づいて単語を識別するために米国特許出願公開第２００７／０２５０４９７号明細書で説明されるような差分クラスタリングを使用する。いくつかの実施形態において、差分クラスタリングは、セグメントの空隙、カラムの空隙等に関する情報を更に提供する。いくつかの実施形態は、差分クラスタリングを実行するために以下に第Ｘ節で説明するメモリ及び処理効率化技術を使用する。
【０１６９】
Ｂ．差分クラスタリングを使用する単語及び空隙の識別
図３６は、差分クラスタ分析を実行するいくつかの実施形態の処理３６００を概念的に示す。多くの形態のクラスタ分析は、複数のクラスタリングのレベル／階層が存在する可能性があるため、グループ／クラスタ数の予知を必要とする。例えば天体をグループ化するためにクラスタ分析を使用する場合、クラスタ数の指定により、クラスタ分析が星のレベル、太陽系のレベル、銀河のレベル又は超銀河団のレベルで天体をグループ化するかを判定する。しかし、コンテンツの要素間の構造関係を発見するためにクラスタ分析を使用する場合、例えばグループ数は多くの場合に未知である。例えばテキストのページの場合、所定の最初のテキスト行が２つ以上の段落の部分を含むかもしれないように、文書が２カラム以上のテキストを有してもよいため、グリフが単語を構成し、単語が組み合わされて行を形成し、行のグループが段落を形成すると推定できない。
【０１７０】
いくつかの実施形態において、クラスタ分析は、別のクラスタの点に対する距離より互いに近接するクラスタに点をグループ化するためにデータ点の集合に適用可能な一組の技術である。いくつかの実施形態において、クラスタ分析は、グリフ、単語及びテキスト行等のオブジェクト間の水平方向及び垂直方向の空隙を表すデータ点に適用される。例えばいくつかの実施形態は、次に説明するｋ平均クラスタ分析を使用する。空間的空隙を表す数字（ｐ１，．．．，ｐＮ）の集合及びｋ（クラスタ数）に対する既知の値から開始すると、技術は不等式の形態Ｃｊ＝｛ｐｉ｜ａｊ≦ｐｉ＜ａｊ＋１｝で定義されたｋ個のクラスタＣ１，．．．，ＣＫに数字を区分するために使用される。式中、ａ１，．．．，ａｋ＋１は増加シーケンスである。ｋ平均技術を適用する前に、差分ｐｉ＋１−ｐｉはサイズによりソートされ、ｋ−１番目に大きい差分は区分点になるように利用される。例えばｐｉ＋１−ｐｉがｋ−１番目に大きい差分の１つである場合、ｐｉ＋１はｐｉとは異なるクラスタにあり、ｐｉ＋１は連続した値ａｊのうちの１つである。ｋ平均クラスタ分析は、クラスタを繰り返し改善するために適用される。ｋ平均技術は、各クラスタ中の数字の平均をとり、最も近い計算された平均と関連付けることによりｐｉをクラスタに分散させることを含む。これは、クラスタ又はそれらの平均に変化がなくなるまで繰り返し実行される。
【０１７１】
いくつかの実施形態において、本明細書において「差分クラスタリング」と呼ばれる開示された技術は、所定のソースコンテンツを含むコンテンツ要素間に存在する構造関係のレベル数及び／又はそのようなレベル間の１つ以上の階層関係、並びにコンテンツ要素が判定された各レベルの別のコンテンツと関連付けられるかを判定するために使用される１つ以上の特性を判定するために使用される。いくつかの実施形態において、差分クラスタリングはｋ平均技術を他の技術と共に利用する。図３６に示す例において、コンテンツ要素の位置の間の差分（間隔）は差分クラスタリング分析を使用して分析される。いくつかの実施形態において、コンテンツ要素間の間隔を分析することにより、コンテンツ要素は間隔のグループ化データを使用して少なくとも部分的にグループ化される。いくつかの実施形態において、間隔の各方向成分は別個に分析される。例えば水平成分に対する差分クラスタリング分析は、文字間隔と単語間隔とカラム間隔とを区別するために使用される。いくつかの実施形態において、垂直成分に対する差分クラスタリング分析は、行間隔と段落間隔とテキストボックス間隔とを区別するために使用される。処理３６００は、単一の方向成分に対する差分クラスタリング分析を概念的に示す。処理は、１つ以上の追加の方向成分を分析するために再度使用されてもよい。いくつかの実施形態において、１次元以上で差分クラスタ分析を実行した結果は、１つ以上のレベルのコンテンツ要素間の構造関係を判定するために組み合わされる。
【０１７２】
図３６に示すように、処理３６００は文書の一部を受信する（３６０５）。処理は、文書の要素の場所を識別する（３６１０）。いくつかの実施形態において、要素は、文字、グリフ、画像、行、図、ボックス、セル、余白及び／又は種々の他のコンテンツ要素を含む。いくつかの実施形態において、要素の場所は、１つ以上の位置座標成分を判定し且つ／又はそれらを要素に割り当てることを含む。いくつかの実施形態において、要素の場所はある順序で編成される。例えば、クラスタの水平方向の間隔を分析する場合、文字は文字の行毎に水平座標の昇順に編成される。いくつかの実施形態において、要素の位置座標値は要素間の間隔と関連付けられるのが望ましく、位置値は要素の幅／長さに対して補正される。例えば要素の編成順のｎ番目の位置の要素に対する補正された水平座標（ｘ座標）値を判定する場合、以下の式が使用される。
【数１】
2016006661.tif 000004
式中、Ｘ’ｎは補正された位置座標値であり、Ｘｎは元の位置座標値であり、Ｗｉはｉ番目の位置の要素の幅である。いくつかの実施形態において、要素の幅は、要素が表す文字、フォントサイズ、文字の書式等に基づく。いくつかの実施形態は、文字毎の既知のアンカ座標を使用し且つ特定の文字毎の座標をその特定の文字の幅により調整することにより補正された位置座標値を判定する。
【０１７３】
次に処理は、隣接する要素の場所の間の１次差分を判定する（３６１５）。いくつかの実施形態において、少なくとも１つの同一の位置座標成分値を有する２つの要素が少なくとも１つの他の位置座標成分値において隣接し合って順序付けられる場合、一方の要素は他方の要素に隣接する。例えば２つのグリフが同一のテキスト行に属し且つそれらの間に他のグリフが存在しない場合、それらグリフは互いに隣接する。いくつかの実施形態において、２つの要素の対応する位置座標成分値の間の差分が極限値より小さいか又は範囲値内である場合、それらの要素は少なくとも１つの同一の位置座標成分を有する。種々の実施形態において、２つの要素が要素の識別された場所と関連付けられた編成及び／又は順序で互いに隣接している場合、一方の要素は他方の要素と隣接している。いくつかの実施形態において、場所の間の１次差分は幅／長さが補正された位置座標値の間の差分である。例えば補正された水平座標（ｘ座標）の編成順のｎ番目及びｎ＋１番目の位置の隣接する要素に対する補正された水平座標値の間の差分を判定する場合、いくつかの実施形態においては以下の式が使用される。
【数２】
2016006661.tif 000005
いくつかの実施形態において、１次差分はコンテンツのグリフ間の空隙間隔と関連付けられる。
【０１７４】
次に、処理３６００は１次差分をソートする（３６２０）。いくつかの実施形態において、１次差分を編成することは１次差分を昇順に順序付けすることを含む。いくつかの実施形態において、１次差分を編成することは、１つ以上の１次差分に重み値を割り当て且つ重み値を使用して少なくとも部分的に１次差分を編成することを含む。例えばいくつかの実施形態において、使用されるフォント並びにサイズ、デフォルトの英字間隔及びフォントファイルと共に格納されたカーニング値のテーブルを含むそのフォント計測値を与えられて、特定のグリフの対毎に予想されたグリフ間隔で、実際のグリフ間隔は除算される。実際の間隔と予想された間隔との比は昇順に順序付けされ、この比の値は、残りの差分クラスタリング方法において１次差分の代わりに使用される。
【０１７５】
処理は、ソート済み１次差分の間の２次差分を判定する（３６２５）。例えば、１次差分の編成順のｉ番目及びｉ＋１番目の位置における１次差分の間の２次差分を判定する場合、以下の式が使用される。
【数３】
2016006661.tif 000006
式中、Δ２Ｘｉはｉ番目の２次差分であり、ΔＸ（ｉ）はソート済み１次差分のｉ番目の位置の１次差分であり、ΔＸ（ｉ＋１）は同一のソート済み１次差分のｉ＋１番目の位置の１次差分である。いくつかの実施形態において、２次差分はグリフの間隔の間の差分と関連付けられる。
【０１７６】
次に、処理３６００は２次差分を分析することによりクラスタレベル数を判定する（３６３０）。いくつかの実施形態において、２次差分を分析することは、判定された２次差分を編成することを含む。いくつかの実施形態において、２次差分を編成することは、２次差分を昇順に順序付けし且つ／又は２次差分値の昇順に２次差分をグラフ化することを含む。いくつかの実施形態において、２次差分を編成することは、１つ以上の２次差分に重み値を割り当てることを含む。いくつかの実施形態において、２次差分を編成することは、２次差分を１つ以上のグループにグループ化することを含む。いくつかの実施形態において、２次差分は、グループ間差分又はグループ内差分としてそれぞれ分類される。
【０１７７】
グループ内差分は、相対的により小さい２次差分値と関連付けられ、同一のクラスタリンググループ内の１次差分の２次差分を表すことができる。グループ内差分の一例は、文字幅で補正された同一の単語内の英字間の間隔において見つけられると予想される相対的に小さな変化である。グループ間差分は、相対的により大きい差分値と関連付けられ、異なるクラスタリンググループ間の１次差分の２次差分を表すことができる。グループ間差分の一例は、２つの単語間の空間と同一の単語内の２つの英字間の空間との間の相対的に大きな差分である。
【０１７８】
いくつかの実施形態において、２次差分をグループ内の値及びグループ間の値に分類することは、２平均クラスタ分析を順序付けされた２次差分値に適用することにより達成される。特に、（ｐ１，．．．，ｐＮ）を利用して昇順で｛Δ２Ｘ１，．．．，Δ２ＸＮ｝を得る。同様に、データ値の２つのクラスタを区別するのに十分であるクラスタ分析のあらゆる他の技術が順序付けされた２次差分値に適用可能である。グループ内差分は第１のクラスタＣ１＝｛ｐｉ｜ａ１≦ｐｉ＜ａ２｝にあり、グループ間差分は第２のクラスタＣ２＝｛ｐｉ｜ａ２≦ｐｉ＜ａ３｝にある。式中、ａ１＜ａ２＜ａ３である。いくつかの実施形態において、上述したように分析された空間関係に基づいてコンテンツ要素が編成されると判定されるレベル数は、差分クラスタ分析を通して見つけられたグループ間差分の数より１つ多い。例えば２つのグループ間差分が存在する場合、構造レベル数は３である。単純な例を利用して、単一のテキスト行を構成する単語を形成する文字を考慮する。ｘ−ｘ方向の文字間の間隔の１次差分は、文字間隔と単語間隔との間の２次差分（１つのグループ間差分）を与え、構造の２つのレベル（単語及び行）を示す。テキストが２つのカラムにあった場合、更なる２次差分（単語間隔とカラム間隔との間）が検出されており、合計で２つのグループ間差分に対してｘ方向の３つの構造レベルを示す（単語、行及びカラム）。特定のコンテンツに適用可能である場合はｙ方向の分析を繰り返し且つ結果を組み合わせることにより、いくつかの実施形態において文字間の間隔及び文字のグループで示される更なる構造レベル（例えば、段落等）を識別する。
【０１７９】
処理は、各クラスタレベルの特性を判定する（３６３５）。その後、処理は終了する。いくつかの実施形態において、特性を判定することは、どの１次差分（及び／又は１次差分の範囲）がどのクラスタレベルと関連付けられるかを判定することを含む。いくつかの実施形態において、特性を判定することは、クラスタレベルと関連付けられた１次差分と関連付けられた統計値を計算することを含む。例えばクラスタレベルと関連付けられた１次差分の一部の平均値、最小値、最大値を判定することにより、コンテンツ中のグリフ間の平均、最小及び最大間隔が判定される。
【０１８０】
Ｌをクラスタリングのレベル数とする。いくつかの実施形態において、Ｌは２次差分の第２のクラスタの点の数をカウントし且つ１を加算することにより計算される。次に、例えば以下の２つの方法のうちの１つの方法により、各レベルに対応する１次差分のグループが識別され、補正されたＸｎ’個の値のクラスタが各レベルにおいて識別される。
【０１８１】
１つの可能性は、１次差分に対してＬ平均クラスタ分析を実行することである。結果として得られるＬ個のクラスタは、各レベルに対応する１次差分のグループである。次に、レベルｍにおけるＸｎ’のクラスタ数Ｋｍは、１次差分の（ｍ＋１）番目、（ｍ＋２）番目、．．．、Ｌ番目のクラスタの点の数＋１により計算される。最後に、レベルｍにおけるＫｍ個のクラスタを生成するために、補正されたＸｎ’個の値に対してＫｍ平均分析を実行する。
【０１８２】
第２の可能性は、各１次差分ΔＸｎ＝Ｘｎ＋１’−Ｘｎ’を最初に計算する時にその差分を生成するために減算された連続するＸ個の値の対の一方を識別するために使用できる指標ｎと共に１次差分の値を格納することである。値及び指標参照を単一の「１次差分」データ構造に格納する。同様に、各２次差分を最初に計算する時、その差分を生成するために値が減算された連続する「１次差分」データの対の一方を識別するために使用できる指標参照と共に２次差分の値を格納する。ここで、第２のクラスタにある２次差分毎に（すなわち、グループ間差分毎に）、１次差分の区分点を識別するために指標参照を使用する。これは、指標が別個のクラスタに入るように区分される一対の１次差分値を識別することを意味する。このように区分することにより、元のデータにおけるクラスタリングのＬ個のレベルに対応する１次差分のＬ個のクラスタが生成される。ここで、レベルｎにおけるＸｎ個の値のクラスタは以下のように識別される。すなわち、１次差分の（ｍ＋１）番目、（ｍ＋２）番目、．．．、及びＬ番目のクラスタにおける１次差分データ毎に、その指標参照をＸｎ’個の値の区分点として使用する。
【０１８３】
図３７は、差分クラスタリングの一例を示す。いくつかの実施形態において、図３７の例は、図３６の処理３６００と関連付けられる。１次差分値のグループ３７０５、３７１０及び３７１５は、１次差分値と関連付けられたライン上に、最小値から最大値という順序でプロットされる。各点は、例えばテキスト文字又は他のグリフから隣接するテキスト文字又はグリフまでの距離である差分値と関連付けられ、図３７において、点は例を明示的に示すために互いの上に重ね合わされない。
【０１８４】
図示する例において、データはグリフ間の水平方向の間隔と関連付けられる。１次差分値を順序付けすることにより、例は１次差分値の３つのグループ３７０５、３７１０及び３７１５を示す。１次差分値のグループ３７０５は、単語を構成するグリフ間の間隔と関連付けられる。１次差分値のグループ３７１０は、単語間の間隔と関連付けられる。１次差分値のグループ３７１５は、カラム間の間隔と関連付けられる。隣接する１次差分値の対毎に、２次差分値（すなわち、１つの１次差分と隣接する１次差分との間の差分）が判定され、２次差分値と関連付けられたライン上に、昇順にプロットされる。２次差分値のグループ３７２０、３７２５及び３７３０の各々は２次差分値と関連付けられた１つ以上の点を含む。いくつかの実施形態において、点３７２５は２次差分値のグループを含む関連した２次差分点のグループのメンバである。
【０１８５】
いくつかの実施形態において、点３７３０は２次差分値のグループを含む関連した２次差分点のグループのメンバである。いくつかの実施形態において、３７２０は、１つのクラスタとして識別され、３７２５は３７３０と共に第２のクラスタとして識別される。同一の単一の１次差分値グループ内の１次差分値間の２次差分値（グループ内差分）は、２次差分値グループ３７２０に含まれる。テキスト文書において、例えば一般に単語内の文字間の文字の幅が補正された間隔又は単語の異なる対の間の間隔は僅かだけ変動する。グループ３７０５及び３７１０のグループ間の隣接する点の間の２次差分は点３７２５に含まれる。グループ３７１０及び３７１５のグループ間の隣接する点の間の２次差分は点３７３０に含まれる。この例においてグループ間の２次差分値が２つ存在するため、２＋１（３）個のグループ化レベル（この例においては、１つのカラム内のテキスト行の単語、文又は文の一部、並びに複数のカラム）が存在する。グループ３７０５の１次差分値の最小値及び最大値を判定することにより、単語を構成するグリフ間の最小間隔及び最大間隔が判定でき、同様に、グループ３７１０及び３７１５は単語間隔及びカラム間隔をそれぞれ判定するために使用される。
【０１８６】
いくつかの実施形態において、各グループ化レベルと関連付けられた最小間隔及び最大間隔は、例えば単語を構成する文字のグループを識別することによりコンテンツ要素（例えば、グリフ）をグループ化するため、カラム内のテキスト行に単語をグループ化するため等に使用される。クラスタ分析から判定されたデータを使用することにより、グリフは判定されたグループ化レベルにグループ化される。部分的な理由として、分析されているコンテンツの構造又は他の要素の集合にあるグループ化レベルの数を事前に認識する必要がないため、あらゆる任意のコンテンツに関して迅速に且つ自動的に分析を実行できる。グループ化レベルの数に関わらず、レベル数は２つの処理ステップのみで判定される。グループ３７０５の１次差分値の平均値を判定することにより、単語を構成するグリフ間の平均間隔が判定できる。同様に、単語を構成するグリフに対して、他の統計量が判定できる。同様に、グループ３７１０及び３７１５の１次差分値の分析は、単語間隔及びカラム間隔に関係する統計量を判定するために使用される。
【０１８７】
Ｃ．行の分割
単語及びセグメント区切り情報が生成された後、いくつかの実施形態はテキスト行を分割する。２つ（又はそれ以上）の小領域のテキストが共に読まれることを意図しない可能性が高いため、テキスト行が分割され、例えば、テキスト行は２つ以上のカラムにまたがる。いくつかの実施形態は、テキスト行を分割するために差分クラスタリング（例えば、セグメント空隙等）からの情報と共に第ＩＩＩ節で上述した処理から導出されたガイド及びのど情報を使用する。
【０１８８】
図３８は、テキスト行を分割するいくつかの実施形態の処理３８００を概念的に示す。処理３８００の部分について図３９と共に説明する。図３９は、ページ３９００の行が分割されるべき場所の識別を示すシーケンスを示す。図３８に示すように、処理３８００は文書の一部に対するテキスト行、ガイド及びのど情報、並びにセグメント区切り情報を受信する（３８０５）。テキスト行情報は、いくつかの実施形態においては処理３３００の出力であり、ガイド及びのど情報は、いくつかの実施形態においては処理２１００、２５００及び２６００の出力である。セグメント区切り（又はセグメント空隙）情報は、上述した米国特許出願公開第２００７／０２５０４９７号明細書及びいくつかの実施形態で説明したように差分クラスタリングの出力の１つである。いくつかの実施形態において、その文書の一部は文書全体、小領域、ページ、又はページのゾーンである。
【０１８９】
次に、処理は受信したテキスト行の並び線のｙ座標に基づいてそれらテキスト行をソートする（３８１０）。ページの最下部から開始すると、処理は最下部の未評価のテキスト行を選択し（３８１５）、選択された行において潜在的な分割を識別する（３８２０）。行の２つの単語間のあらゆる空隙が（１）差分クラスタリングにより規定されるようにセグメント空隙であるか、あるいは（２）通過するガイド又はのどを有する時、いくつかの実施形態は潜在的な分割を規定する。他の実施形態は、潜在的な分割に対して一方の規定又は他方の規定のみ、あるいは種々の規定を使用する。
【０１９０】
処理は、いずれかの潜在的な分割が識別されたかを判定する（３８２２）。何も規定されていない場合、以下に説明する３８４５に進む。分割が識別された場合、処理は現在選択されているテキスト行から潜在的な分割を選択する（３８２５）。処理は、その潜在的な分割のｘ区間が前のテキスト行からのいずれかの潜在的な分割のｘ区間と重なり合うかを判定する（３８３０）。評価された第１のテキスト行は、前のテキスト行を有さないため、重なり合う潜在的な分割は存在しない。現在選択されている潜在的な分割のｘ区間が前の行からの潜在的な分割のｘ区間と重なり合わない場合、上述した３８２２に進む。重なり合う場合、重なり合う潜在的な分割を関連付ける（３８３５）。その後、上述した３８２２に進む。
【０１９１】
未評価の潜在的な分割がそれ以上存在しない場合、処理は、評価する行が更に存在するかを判定する（３８４５）。更なる行が残っている場合、３８１５に進み、次の行における潜在的な分割を識別し、重なり合うかに関してテストする。
【０１９２】
全ての行が評価された場合、その文書の一部における全ての潜在的な分割が識別され且つ関連付けられている。処理は、偽肯定（すなわち、テキスト行を実際に分割すべきでない潜在的な分割）を除去するためにいくつかの動作を実行する。処理は、潜在的な分割のあらゆるグループが識別されたかを判定する（３８４７）。何も識別されなかった場合、処理は終了する。識別された場合、処理は関連付けられた潜在的な分割のグループを選択し（３８５０）、選択したグループの潜在的な分割を完全に通過する矩形ストリップを規定する（３８５５）。いくつかの実施形態において、ストリップは、選択したグループの全ての潜在的な分割のｘ区間の共通部分であるｘ区間を有する（すなわち、２つの潜在的な分割が殆ど重なり合わないストリップに対するｘ区間は非常に細い）。
【０１９３】
図３９は、いくつかのテキスト行を含むページ３９００を示す。殆どのテキスト行は、２つのカラムの間で分割される。しかし、並び線はいずれのカラムにおいても同一である。従って、行分割処理の前、第１のカラムの各行は第２のカラムの行と同一の行にある。図３９は、関連付けられた潜在的な分割の４つの矩形ストリップ３９０５、３９１０、３９１５及び３８２０を更に示す。
【０１９４】
選択したグループに対して矩形ストリップを規定した後、処理は、ストリップが閾値より少ない数のテキスト行にまたがるかを判定する（３８６０）。１つ又はいくつかのテキスト行のみにまたがるストリップは、読む時の実際の分割を表す可能性は低いが、行内のタブ又は他の区切りでない空隙であってもよい。両端を揃えられたテキストのために単語間の空隙が非常に大きい場合、場合によってはセグメント空隙が差分クラスタリングにより見つけられる。ストリップが閾値より少ない数の行にまたがる場合、処理は、潜在的な分割のリストからそのグループを除去し（３８６５）、それら場所においてテキスト行を分割しない。その後、以下に説明する３８９０に進む。ページ３９００において、ストリップ３９１０及び３９２０を構成する潜在的な分割は、カラム区切りの可能性があるほど十分な分割を有していないため除去される。潜在的な分割はタブ又は大きい単語空隙である可能性が更に高い。
【０１９５】
スプリットが少なくとも閾値の数の行にまたがる場合、処理は、現在のストリップが別のストリップから閾値距離内にあるかを判定する（３８７０）。いくつかの実施形態は、別のストリップが現在のストリップから閾値距離内にあるかを判定する時にテストされており且つまだ除去されていない前のストリップのみを見る。現在のストリップが別のストリップから閾値距離内にある場合、処理は垂直方向により短いストリップ（場合によっては、行が全て同一サイズである場合、これはより少ないテキスト行にまたがるストリップである）を含むグループを除去する（３８７５）。その後、以下に説明する３８９０に進む。
【０１９６】
ページ３９００のストリップ３９０５及び３９１５の双方は、動作３８６０を通過するのに十分なテキスト行をまたがるものとして適格である。しかし、いくつかの実施形態において、ストリップは互いに近接しすぎていて双方が維持されない。従って、３９１５が２つのストリップのうち長い方のストリップであるため、ストリップ３９０５を構成する潜在的な分割のグループは除去される。この処理により、いくつかの実施形態において、リスト項目マーカ又は数字がこれらにより参照される項目と分割されること、並びに他の潜在的に問題となる分割が防止される。
【０１９７】
現在のストリップが別のストリップと近接しすぎない場合、処理は、ストリップがセグメント空隙でない行の後続する潜在的な分割を閾値の数だけ含むかを判定する（３８８０）。いくつかの実施形態において、単語のエッジが偶然整列しているガイド及び／又はのどを識別できる。これは、特にテキストが単一文字幅のフォント（例えば、Ｃｏｕｒｉｅｒ）で表示される場合に当てはまる可能性が高い。ストリップが後続する非セグメント空隙の潜在的な分割を少なくともこの閾値の数だけ含む場合、処理は、潜在的な分割のリストからそのグループを除去し（３８８５）、それらの場所においてテキスト行を分割しない。
【０１９８】
次に、処理は、種々の閾値の要件に対してテストされていない潜在的な分割のグループが更に存在するかを判定する（３８９０）。更にグループが残っている場合、３８５０に進み、潜在的な分割の次のグループを選択及び評価する。あるいは、全てのグループが評価された場合、処理は、除去されていない分割のいずれかを使用してテキスト行を分割する（３８９５）。その後、処理は終了する。ページ３９００に対して示された例において、使用される分割のみが、２つのテキストカラムを分離する中央にある分割である。
【０１９９】
処理３８００は潜在的な分割のグループを除去するための３つの特定のテスト（動作３８６０、３８７０及び３８８０）を使用して示されるが、いくつかの実施形態はそれらの一部のみを採用し、他の実施形態は潜在的な分割を考慮から外すために不図示の他のテストを使用する。
【０２００】
Ｄ．段落の識別
いくつかの実施形態において、テキスト行がマージされ且つ分割されると、行は段落にグループ化される。図４０は、テキスト行を段落にグループ化するいくつかの実施形態の処理４０００を概念的に示す。処理の部分について図４１と共に説明する。図４１は、文書のページ４１００における段落の識別を示す。図４０に示すように、処理４０００は文書の一部に対するテキスト行を受信する（４００５）。いくつかの実施形態において、テキスト行は、処理４０００が実行される前にマージされ（例えば、処理３３００により）且つ分割されている（例えば、処理３８００により）。いくつかの実施形態において、文書の一部は、文書全体、文書の小領域、ページ、ゾーン等である。
【０２０１】
処理は、文書の一部に行が存在するかを判定する（４００７）。存在しない場合、処理は終了する。存在する場合、受信した文書の一部の最上部から開始し、処理は文書の一部において第１の未評価のテキスト行を選択する（４０１０）。処理は、選択した行の下に２つ以上のテキスト行が存在するかを判定する（４０１５）。いくつかの実施形態において、行は動作４０１５の目的で選択した行の下にあると考えられる下位行に対して互いの特定の垂直方向の距離内に存在すべきである。いくつかの実施形態は、テキスト行が同一の段落に属するかに関する判断を行うために少なくとも３つのテキスト行を必要とする。いくつかの実施形態において、比較を行うために２つの間隔（すなわち、第１のテキスト行と第２のテキスト行との間の間隔及び第２のテキスト行と第３のテキスト行との間の間隔）が必要であるため、この要件が課される。
【０２０２】
選択したテキスト行の下に２つ以上の行が存在する場合、以下に説明する４０３０に進む。あるいは１つ以下の行が選択したテキスト行の下にある場合、処理は選択した行のみを段落に配置する（４０２０）。処理は、文書の一部において更なる行が存在するかを判定する（４０２５）。それ以上行がない場合（例えば、文書の一部においてテキスト行が１つだけ存在する場合）、処理は終了する。更なる行が存在する場合、４０１０に進み、次のテキスト行を選択する。
【０２０３】
４０１５において、４０１０で選択された行（すなわち、現在の段落における第１の行）の下に２つ以上のテキスト行が存在する場合、処理は選択したテキスト行の下の次の２つの行を識別する（４０３０）。その後、処理は、間隔及び位置揃えが３つの行の間で一貫しているかを判定する（４０３５）。いくつかの実施形態において、この判定は、第１の行から第２の行までの垂直方向の距離が第２の行から第３の行までの垂直方向の距離と同一であるかを検査することを含む。いくつかの実施形態は、垂直方向の間隔を判定するためにテキスト行の並び線を使用する。いくつかの実施形態において、位置揃えの差分は、１つの行がインデントされて開始するか又は他の行の左側で終了する場合に識別され、それにより段落の開始又は終了である可能性があることを知らせる。
【０２０４】
間隔及び位置揃えが一貫していない場合、処理は、選択した第１の行を含む段落に識別された行のいずれかを追加するかを判定するためにヒューリスティックルールを適用する（４０４０）。例えばいくつかの実施形態において、最初の２つの行が近接しており、第３の行が離れている場合、最初の２つの行は１つの段落に配置され、第３の行は次の段落の開始である。同様に、いくつかの実施形態において、第１の行が第２の行及び第３の行から離れている場合、第１の段落は１行の段落であり、次の段落は第２の行で開始する。いくつかの実施形態において、行間の位置揃えの差分に対して同様の規則が使用される。ヒューリスティックルールの適用後、４０１０に進み、次の未評価のテキスト行（すなわち、段落にまだ割り当てられていない次の行）を選択し、新しい段落を開始する。
【０２０５】
間隔及び位置揃えが３つの行の間で一貫している場合、処理は、３つの全ての行を同一段落に配置する（４０４５）。いくつかの実施形態は、段落の間隔及び位置揃え特性（属性, property）を識別する。例えばいくつかの実施形態は、左揃え、右揃え、両端揃え、中央揃え等として段落を識別する。いくつかの実施形態は、複数の可能性を可能にしている（例えば、第１の行がインデントされ、全ての３つの行が右揃えされたか又は非常に近接し、下の２つの行が左揃えされた段落は、左揃え、右揃え又は両端揃えのいずれかであってもよい）。
【０２０６】
新しい段落の開始を識別する最初の段階の後、処理４０００は段落に行を追加しようとする。いくつかの実施形態において、行の追加は、段落の開始を構成する３つの行から判定された間隔及び位置揃え特性に基づく。他の実施形態において、段落に対する間隔及び位置揃え特性と不一致ではない行が追加されるため、間隔及び位置揃え特性はあらゆる更なる根拠に基づいて向上される。
【０２０７】
次に処理は、文書の一部において更なる行が存在するかを判定する（４０４７）。更に行が存在しない場合（すなわち、文書の一部が３つの行のみを有する場合）、処理は終了する。更に行が存在する場合、処理は文書の一部において次のテキスト行を識別する（４０５０）。処理は、現在の段落と識別された次の行との間に間隔又は位置揃えの不整合があるかを判定する（４０５５）。不整合がある場合、処理は段落を終了し、上述した４０１０に進む。このような場合、前に不整合を起こした行は４０１０で選択される行となる。
【０２０８】
間隔及び位置揃えが整合している場合、処理はその行を現在の段落に追加する（４０６０）。その後、上述した４０４７に進む。いくつかの実施形態において、位置揃えの不整合は、識別された次のテキスト行が段落の特性（例えば、両端揃え）の１つに適合しない場合に見つけられる。同様に、段落の最後の行と次の行との間の間隔が段落の間隔と比較して増加した場合、いくつかの実施形態において、間隔の不整合が見つけられる。
【０２０９】
いくつかの実施形態は、他の停止条件（例えば、識別された行が段落に追加されない結果を与える条件）を採用する。例えばいくつかの実施形態は、識別された行の最初の単語が、左揃えの段落の最後の行の終端の余白にはまるかを認識する。はまる場合、もし新しい行が現在の段落の一部であったとすればこの単語は新しい行の最初ではなく最後の行の終端の余白に入るはずであるから、新しい行は次の段落の一部であると仮定される。同様に、いくつかの実施形態は、新しい段落を示すようなインデントを認識する。いくつかの実施形態の第３の条件は、識別された行が一様に書式設定され（例えば、全て太字であるか又はより大きいフォントサイズである）且つ前の行のあらゆる文字の書式とは異なるかである。
【０２１０】
処理４０００が完了すると、文書の一部における全ての段落が識別され、全てのテキスト行が段落に割り当てられる。いくつかの実施形態は、カラム及びレイアウトを識別するために段落を使用する。
【０２１１】
図４１は、４つの段落を含むページ４１００を示す。処理４０００をこのページに適用すると（ページは文書の一部である場合）、段落４１０５、４１１０、４１１５及び４１２０が識別される。いくつかの実施形態の処理は、最初の３つの行をグループ化し、第４の行及び第５の行を追加することにより開始し、第６の行４１２５で間隔及び位置揃えの不整合が起き、段落４１０５を５行で終了する。その後、処理は第６の行から開始し、以下の２つの行の間の間隔及び位置揃えの不整合に気付く。行６が行７及び８の互いの距離より行７及び８から離れているため、行６は段落４１１０全体であり、次の段落４１１５は行７から開始する。段落４１１５及び４１２０は同様に識別される。
【０２１２】
Ｅ．カラム及びレイアウトの識別
いくつかの実施形態は、段落を識別した後、段落をカラム及びレイアウトに配置する。いくつかの実施形態において、カラムは、テキストが上から下に一貫して読まれる垂直方向に順序付けられた段落のグループである。いくつかの実施形態のレイアウトは、重なり合わないカラムの集合であり、いくつかの実施形態の線形レイアウトは、テキストが最も左側のカラムの最上部から最も右側のカラムの最下部に一貫して読まれる水平方向に順序付けされたカラムのグループである。例えばいくつかの実施形態は、１つのカラムを含む単一の線形レイアウトとして、セグメント化されていないテキスト行を含み且つヘッダ又はフッタを有さない単純なページを分類する。
【０２１３】
図４２は、いくつかの実施形態において文書の一部のカラム及びレイアウトを識別する処理４２００を概念的に示す。処理４２００について図４３〜４６と共に説明する。図４３及び図４４は、２つの異なるページ４３００及び４４００における段落を示す。図４５及び図４６は、２つのページ４３００及び４４００に対するフローグラフの生成をそれぞれ示す。
【０２１４】
図４２に示すように、処理４２００は文書の一部に対する段落の情報を受信する（４２０５）。いくつかの実施形態の文書の一部は、文書全体、文書の小領域、ページ、ゾーン等である。いくつかの実施形態において、段落情報は上述した処理４０００を使用して判定される。処理は、選択する段落が存在するかを判定する。存在しない場合、処理は終了する。
【０２１５】
選択する段落が存在する場合、処理は段落を選択する（４２１０）。いくつかの実施形態において、文書の一部の段落は左上から開始して順番に選択される。その一方で、他の実施形態において、段落はランダムな順番で選択される。
【０２１６】
次に、処理はｉｎ−ｏｒｄｅｒ、ｏｕｔ−ｏｒｄｅｒ、ｌｅｆｔ−ｏｒｄｅｒ及びｒｉｇｈｔ−ｏｒｄｅｒ、並びにそれらの値の各々に付属する段落の集合を計算する（４２１５）。いくつかの実施形態において、段落ｐのｏｕｔ−ｏｒｄｅｒは集合Ｂ（ｐ）を使用して計算される。集合Ｂ（ｐ）は、最初、水平方向に段落ｐと重なり合う（すなわち、ｘ座標と重なり合う）文書の一部における段落ｐの下の全ての段落である。例えば、図４３は、段落Ｐ  ４３０５を含む１１個の段落を含むページ４３００を示す。集合Ｂ（Ｐ）は、最初｛Ｑ，Ｒ，Ｓ，Ｔ，Ｕ｝である。次にｐに最近接する段落はｑとして識別され、段落ｑと水平方向に重なり合う全ての段落は集合Ｂ（Ｐ）から除去される。段落Ｐ  ４３０５の場合、段落Ｑ  ４３１０は段落Ｐに最近接し、段落Ｒ  ４３１５、Ｓ  ４３２０、Ｔ  ４３２５及びＵ  ４３３０は集合Ｂ（Ｐ）から除去される。この時点で集合Ｂ（Ｐ）は｛Ｑ｝である。
【０２１７】
いくつかの実施形態は、最初に集合Ｂ（ｐ）にあったｐに次に最近接する段落に継続し、この次に最近接する段落の下にあり且つ水平方向に重なり合うあらゆる段落をＢ（ｐ）から除去する。他の実施形態は、集合Ｂ（ｐ）に残っているｐに次に最近接する段落に継続し、この段落と水平方向に重なり合うあらゆる段落をＢ（ｐ）から除去する。いずれの方法でも、図４３の例において、段落Ｐ  ４３０５に対する集合Ｂ（Ｐ）は｛Ｑ｝である。ｐのｏｕｔ−ｏｒｄｅｒは、集合Ｂ（ｐ）の濃度（すなわち、要素数）である。これは、Ｂ（ｐ）の段落毎に繰り返される。従って、この場合、段落Ｐ  ４３０５のｏｕｔ−ｏｒｄｅｒは１である。１より大きいｏｕｔ−ｏｒｄｅｒを有する段落の例として、段落Ｒ  ４３１５の場合、集合Ｂ（Ｒ）は｛Ｓ，Ｘ｝であるため段落Ｒ  ４３１５のｏｕｔ−ｏｒｄｅｒは２である。
【０２１８】
段落ｐのｉｎ−ｏｒｄｅｒは、いくつかの実施形態において、集合Ａ（ｐ）を使用することによりｏｕｔ−ｏｒｄｅｒと同様に計算される。集合Ａ（ｐ）は、最初、水平方向にｐと重なり合うｐの上の文書の一部における全ての段落である。ｐに最近接する段落は段落ｑとして選択され、段落ｑと水平方向に重なり合う段落はＡ（ｐ）から除去される。これは、Ａ（ｐ）の段落毎に繰り返される。ページ４３００の例において、段落Ｐ  ４３０５に対する集合Ａ（Ｐ）は空の集合であり、段落Ｒ  ４３１５に対する集合Ａ（Ｒ）は｛Ｑ，Ｗ｝である。段落ｐのｉｎ−ｏｒｄｅｒは集合Ａ（ｐ）の濃度（すなわち、要素数）である。
【０２１９】
段落ｐのｌｅｆｔ−ｏｒｄｅｒ及びｒｉｇｈｔ−ｏｒｄｅｒは、いくつかの実施形態において、集合Ｌ（ｐ）（同一の除去規則を使用して、ｐと垂直方向に重なり合うｐの左側の段落）及び集合Ｒ（ｐ）（同一の除去規則を使用して、ｐと垂直方向に重なり合うｐの右側の段落）を使用して同様に計算される。いくつかの実施形態は、言語の方向が上から下であると判定された（例えば、外部手段により）時にフローグラフ（以下を参照）に対してＬ（ｐ）及びＲ（ｐ）を使用する。ページ４３００の場合、段落Ｐ  ４３０５に対する集合Ｒ（Ｐ）は｛Ｖ｝であり、段落Ｖ  ４３３５に対する集合Ｌ（Ｖ）は｛Ｐ｝である。段落Ｒ  ４３１５に対する集合Ｌ（Ｒ）及びＲ（Ｒ）は双方とも空である。
【０２２０】
選択された段落に対してｉｎ−ｏｒｄｅｒ、ｏｕｔ−ｏｒｄｅｒ、ｌｅｆｔ−ｏｒｄｅｒ及びｒｉｇｈｔ−ｏｒｄｅｒが計算されると、処理４２００は、種々の値が計算される必要がある段落が更に残っているかを判定する（４２２０）。更に段落が残っている場合、４２１０に進み、別の段落を選択する。
【０２２１】
値が全ての段落に対して計算されると、処理は段落に対するフローグラフを生成する（４２２５）。いくつかの実施形態のフローグラフは、評価されている文書の一部の各段落がノードになるように生成される。有向エッジが段落ｐに対するノードから集合Ａ（ｐ）の段落に対する各ノードに対して描かれる。いくつかの実施形態において、これは、集合Ｂ（ｐ）の段落に対する各ノードから段落ｐに対するノードまでの有向エッジを描くことと同一である。図４５はページ４３００に対する初期フローグラフ４５０１を示す。
【０２２２】
次に、処理４２００はコールアウトを識別する（４２３０）。いくつかの実施形態において、識別されたコールアウトはフローグラフから除去される。いくつかの実施形態において、コールアウトは、ページ上の残りのテキストに依存しない順序で読み取られることを意図したページ上のテキスト要素である。コールアウトのいくつかの例には、ヘッダ及びフッタ、脚注、欄外の注、サイドバー、並びに雑誌の記事における大きなフォントの引用文等の他の要素のうち配置されたテキストの他のブロックが含まれる。
【０２２３】
いくつかの実施形態は、テキスト要素の幾何学的配置、ページにおけるテキスト要素の位置、テキスト要素のフロー特性（ｉｎ−ｏｒｄｅｒ、ｏｕｔ−ｏｒｄｅｒ、ｌｅｆｔ−ｏｒｄｅｒ及びｒｉｇｈｔ−ｏｒｄｅｒ）及び要素の書式特性の組み合わせに基づいてコールアウトを識別する。例えば、頂点ｖがページの最上部に近接する１行の段落を含む場合、１行の段落からＡ（ｖ）のあらゆる要素までの距離は１行の高さより大きく、Ｌ（ｖ）≦１であり、Ｒ（ｖ）≦１であり、Ｌ（ｖ）及びＲ（ｖ）のあらゆる頂点がこれらの条件を共有する。その後、いくつかの実施形態は、段落をヘッダコールアウトとして分類する。フッタコールアウトに対する要件は、ページの最下部まで及びＢ（ｖ）の要素までの距離を探すこと以外はいくつかの実施形態において同様である。
【０２２４】
いくつかの実施形態は、カラムに突出している（且つ自身のゾーンに存在しない）サイドバー、ランダムに配置されたテキストボックス、他のテキスト（例えば、図の表題）に対して明示的な関係を有さない小さいビット数のテキスト等をコールアウトとして識別する。いくつかの実施形態は、純粋なテキスト分析に基づいてこれらの判定（及びフロー特性の他の判定）を行い、その一方で、他の実施形態は画像を分析に組み込む（例えば、図の表題に対する更なる根拠として）。例えばいくつかの実施形態において、いくつかの実施形態は、Ａ（ｐ）及びＢ（ｐ）の全ての要素から離れた単一行の段落を分離された小さな段落として識別する。いくつかの実施形態において、単一のテキスト行を有する段落が画像の範囲により囲まれ且つ特定の方法で画像の範囲と位置揃えされた（例えば、最下部の近くに中心が置かれる、最上部の近くに中心が置かれる等）場合、表題が識別される。
【０２２５】
２つ以上の段落の矩形バウンディングボックスが交差する場合、いくつかの実施形態は、１つの段落以外の全ての段落を交差コールアウトとして識別する。例えば２つの段落ｐ及びｑが重なり合い、Ｂ（ｐ）＝｛ｑ，ｒ｝であるとする。ｒがｉｎ−ｏｒｄｅｒとして１を有する場合又はｑがＡ（ｒ）にある場合、いくつかの実施形態において、ｑは交差コールアウトである。いくつかの実施形態は、書式及び／又は位置揃え特性がＡ（ｐ）又はＢ（ｐ）の段落と一貫していないあらゆる段落ｐを交差コールアウトとして分類する。２つの段落が交差し且つ上記規則が当てはまらない場合、いくつかの実施形態はより小さな領域を有する段落をコールアウトとして分類する。
【０２２６】
文書の一部の段落に対するフローグラフを生成した後、処理４２００はフローグラフのノードをカラムにマージする（４２３５）。いくつかの実施形態は、Ａ（ｐ）＝｛ｑ｝且つＢ（ｑ）＝｛ｐ｝である場合に段落ｐ及びｑに対するノードをマージする。これは、いくつかの実施形態において、段落ｐ及びｑは同一のカラムに入ることを示す。いくつかの実施形態において、新しいノードｐｑはＡ（ｐｑ）＝Ａ（ｑ）、Ｂ（ｐｑ）＝Ｂ（ｐ）、Ｌ（ｐｑ）＝Ｌ（ｐ）＋Ｌ（ｑ）及びＲ（ｐｑ）＝Ｒ（ｐ）＋Ｒ（ｑ）を有する。例えば図４５において、フローグラフ４５０１は、ノードＳ  ４５２０、Ｔ  ４５２５及びＵ  ４５３０が変更されたフローグラフ４５０２においてノードＳＴＵ４５７５にマージされるように変更される。他のノードは同様に変更される。
【０２２７】
図４６は、ノードが最初にカラムにマージされた後の図４４のページ４４００に対するフローグラフ４６０１を示す。いくつかの実施形態は、段落Ｒ  ４４２０が２つのカラムにまたがり且つ左側及び右側の双方に段落を有するため、段落Ｒ  ４４２０をコールアウトとして識別する。従って、いくつかの実施形態は、フローグラフ４６０１からノードＲ  ４６２０を除去する。これにより、ノードをカラムに更にマージできる。
【０２２８】
コールアウトが識別されると（且ついくつかの実施形態においてはフローグラフから除去されると）、処理４２００はフローグラフをレイアウトに区分する（４２４０）。いくつかの実施形態は、区分処理の一部として拡大エッジ及び縮小エッジに対するラベルを規定する。いくつかの実施形態において、段落ｐのｏｕｔ−ｏｒｄｅｒが１より大きく且つ集合Ｂ（ｐ）の各段落ｑのｉｎ−ｏｒｄｅｒが１である場合、ｐからＢ（ｐ）の各ｑまでのエッジは拡大エッジである。同様に、いくつかの実施形態において、段落ｐのｉｎ−ｏｒｄｅｒが１より大きく且つ集合Ａ（ｐ）の各段落ｑのｏｕｔ−ｏｒｄｅｒが１である場合、Ａ（ｐ）の各ｑからｐまでのエッジは縮小エッジである。図４５は、ノードＲ  ４５１５に入るエッジが双方とも縮小エッジであり、ノードＲ４５１５から出るエッジが双方とも拡大エッジであることを示す。
【０２２９】
いくつかの実施形態の区分は、エッジが全てラベル付けされた各頂点ｖを検査する。ｖのｉｎ−ｏｒｄｅｒが１より大きい場合、いくつかの実施形態は、Ｂ（ｖ）においては各ｐに対してＡ（ｐ）＝｛ｖ｝である場合に、要素がＢ（ｖ）である区分を規定する。同様に、ｖのｏｕｔ−ｏｒｄｅｒが１より大きい場合、いくつかの実施形態は、Ａ（ｖ）においては各ｐに対してＢ（ｐ）＝｛ｖ｝である場合に、要素がＡ（ｖ）である区分を規定する。これらの区分の双方が可能である場合、頂点ｖはそれ自体のみで区分として規定される。これらの規則に基づいて、フローグラフ４５０２は３つの区分４５１１、４５１２及び４５１３に区分される。
【０２３０】
いくつかの実施形態は、区分間で幾何学的に重なり合うことなく最小数の区分が規定されるようにあらゆる残りのノードを１つ以上の区分に配置する。複雑なページ構造のために、いくつかの実施形態は上述した規則より緩和された区分規則を使用する。例えば、ノードｖのｏｕｔ−ｏｒｄｅｒが１より大きいことを除いて区分がノードｖから作成される場合、ｖから離れており且つｖに対して狭いＡ（ｖ）の要素はいくつかの実施形態において削除される。Ａ（ｖ）に１つだけ要素が残っている場合、ｖから除去された頂点までのエッジは除去され、区分は継続される。区分が完了すると、処理４２００は終了する。
【０２３１】
いくつかの実施形態において、各区分は線形レイアウトに対応し、最終的な（マージされた）ノードの各々はカラムに対応する。区分が規定されると、いくつかの実施形態は、のどの幅、余白、インライン又は浮動画像等の文書の一部の特性を計算する。
【０２３２】
更にレイアウト及びフロー情報（単語、行、段落及びカラムデータを含む）は、第ＶＩＩＩ節及び第ＩＸ節で以下に説明するように、文書の表示に特に使用され、よりロバスト性の高い文書とのユーザ対話を可能にする。例えばいくつかの実施形態において、ユーザはいくつかのテキストカラム、画像、コールアウト、表題等を含む複雑な文書を閲覧したいと考え、文書のテキスト全体をテキストエディタにコピー及び貼り付けをできてもよい。これを達成するために、読み取り順序は、文書の各要素に割り当てられ、ユーザが文書の要素を読み取る順序を識別しようとする。
【０２３３】
例えばいくつかの実施形態は、ユーザが文書又はページの最初から最後までカラムを読む際の予想された順序に読み取り順序が従うように、読み取り順序をカラムに割り当てる。他の実施形態は、読み取り順序を他の構造要素（例えば、段落、単語等）に割り当てる。いくつかの実施形態において、ユーザがそのような文書のテキスト全体を別のアプリケーションにコピー及び貼り付ける場合、テキストはアプリケーションにおいてユーザが読む順序で表示される。これは、厳密に上から下への構成で全てのテキストを順序付けする標準的なＰＤＦファイルからコピー及び貼り付けすることとは異なる。
【０２３４】
いくつかの実施形態は、画像及び形状を読み取り順序に挿入する。例えばいくつかの実施形態は、特定のテキストカラムと関連付けられているものとして特定の画像を識別し、テキストカラムの前又は後（文書における根拠に依存する）に画像を挿入する。一例として、いくつかの実施形態は、画像が画像に対する表題と関連付けられることを識別し、その表題の直前で画像を読み取り順序に挿入する。
【０２３５】
いくつかの実施形態は、構造要素間のリンクを更に規定する。例えばいくつかの実施形態は、実際に１つの段落であるカラムの最後の段落と次のカラムの最初の段落との間のリンクを規定するために読み取り順序を使用する。いくつかの実施形態において、１つの特定のカラムに割り当てられた各段落を有する階層を維持するために、カラムを結ぶ別個の段落は規定されない。その代わり、２つの段落間のリンクが規定され、それら段落が実際には１つの段落であることを示す。いくつかの実施形態は、第２のカラムの最上部の段落が実際には第１のカラムの最後の段落の継続であるかを判定するために（すなわち、間隔、位置揃え、フォント書式等を検査する）行を段落に追加するテストと類似するテストを使用する。例えばユーザが規定されたいずれかの段落内で段落を選択することを意図した選択動作（例えば、トリプルクリック）を実行する場合、リンクが使用され、実際の段落全体はリンクに基づいて選択される。
【０２３６】
いくつかの実施形態は、レイアウト（例えば、ページにわたるリンク付け）又はゾーンの間のリンクを更に規定する。例えばいくつかの実施形態は、連続するテキスト（例えば、話が異なるページに継続することを示す新聞のテキスト）を認識でき、連続するテキストを含むレイアウト中のテキストをテキストが継続するレイアウトにリンクできる。いくつかの実施形態は、プロファイルがマッチングされ、リンク付けが行われるべきであることを示す場合にそのようなリンク付けを試行する。例えば文書が新聞として識別された場合、いくつかの実施形態は、連続するテキストを検索する。
【０２３７】
Ｅ．ソフトウェアアーキテクチャ
いくつかの実施形態において、上述したレイアウト及びフロー分析処理はコンピュータ、メディアプレーヤ、携帯電話（例えば、ｉＰｈｏｎｅ（登録商標））、あるいは他のハンドヘルド又はリソースの制限されたデバイス等の特定のマシンで実行する（又はコンピュータ可読媒体に格納された）ソフトウェアとして実現される。図４７は、文書のレイアウト及びフローを識別するいくつかの実施形態のレイアウト及びフロー分析アプリケーション４７００のソフトウェアアーキテクチャを概念的に示す。いくつかの実施形態において、アプリケーションは、スタンドアロンアプリケーションであるか又は別のアプリケーション（例えば、文書再構成アプリケーション）に組み込まれる。その一方で、他の実施形態において、アプリケーションはオペレーティングシステム内に実現されてもよい。
【０２３８】
レイアウト及びフロー分析アプリケーション４７００は、行識別モジュール４７０５、行マージモジュール４７１０、単語識別モジュール４７１５、差分クラスタリングモジュール４７２０、行分割モジュール４７２５、段落識別モジュール４７３０、カラム及びレイアウト識別モジュール４７３５及び順序計算機４７４０を含む。
【０２３９】
図４７は、文書コンテンツ４７４５を更に示す。行識別モジュール４７０５は、文書コンテンツ４７３０から情報を受信する。いくつかの実施形態において、この情報は文書中の文字の位置に関する情報である。行識別モジュール４７０５は、ページ上の共通の並び線を有する文字を識別し、それらを行に割り当てる。行識別モジュールは、行マージモジュール４７１０に情報を渡し、行マージモジュール４７１０から情報を受信する。行マージモジュールは、垂直方向に重なり合う行のグループを識別し、行がマージされるべきであるかを判定する。いくつかの実施形態において、行マージモジュール４７１０は上述した処理３３００の一部又は全てを実行する。行マージモジュール４７１０はこの情報を行識別モジュール４７０５に渡し、行識別モジュール４７０５は最終的なテキスト行を識別する。行識別モジュール４７０５は、行情報を文書コンテンツ４７４５及び行分割モジュール４７２５に渡す。
【０２４０】
単語識別モジュール４７１５は、文書コンテンツ４７４５から情報を更に受信する。いくつかの実施形態において、この情報は文書中の文字の位置に関する情報である。単語識別モジュール４７１５は、単語としてグループ化されるべき文字を識別する。単語識別モジュール４７１５は、差分クラスタリングモジュール４７２０に情報を渡し、差分クラスタリングモジュール４７２０から情報を受信する。差分クラスタリングモジュール４７２０は、文字間の異なる空隙レベル（例えば、単語空隙、セグメント空隙等）を返すために文書の文字に対して差分クラスタリングを実行する。単語識別モジュール４７１５は、単語を識別するために差分クラスタリングの結果を使用する。単語識別モジュール４７１５は、文書コンテンツ４７４５及び行分割モジュール４７２５にその結果（及びセグメント空隙等の他の差分クラスタリングの結果）を渡す。
【０２４１】
行分割モジュール４７２５は、行識別モジュールから行情報を受信し、単語識別モジュールから空隙情報を受信し、文書コンテンツ４７４５から他の情報（例えば、のど情報）を受信する。行分割モジュール４７２５は、行が分割されるべき場所を識別し、その分割に基づいて新しい行情報を出力する。新しい行情報は、文書コンテンツ４７４５及び段落識別モジュール４７４５に渡される。いくつかの実施形態において、行分割モジュール４７２５は処理３８００の一部又は全てを実行する。
【０２４２】
段落識別モジュール４７３０は、行分割モジュール４７２５から行情報を受信し、文書コンテンツ４７４５から他の情報（例えば、位置揃え情報）を受信する。段落識別モジュール４７３０は、段落にグループ化されるべき行を識別し、結果情報を出力する。段落情報は、文書コンテンツ４７４５並びにカラム及びレイアウト識別モジュール４７３５に渡される。いくつかの実施形態において、段落識別モジュール４７３０は処理４０００の一部又は全てを実行する。
【０２４３】
カラム及びレイアウト識別モジュール４７３５は、段落識別モジュール４７３０から段落情報を受信し、文書コンテンツ４７４５から他の情報（例えば、ゾーン情報）を受信する。カラム及びレイアウト識別モジュール４７３５は、段落をカラムにグループ化し、カラムをレイアウトにグループ化する。カラム及びレイアウト情報モジュール４７３５は、順序計算機４７４０に情報を渡し、順序計算機４７４０から情報を受信する。順序計算機４７４０は、モジュール４７３５から段落情報を受信し、段落に対するｉｎ−ｏｒｄｅｒ、ｏｕｔ−ｏｒｄｅｒ、ｌｅｆｔ−ｏｒｄｅｒ及びｒｉｇｈｔ−ｏｒｄｅｒ（並びに対応する集合Ａ、Ｂ、Ｌ及びＲ）を計算する。この情報は、フローグラフを生成する際に使用するためにモジュール４７３５に返される。カラム及びレイアウト識別モジュール４７３５からの結果は、文書コンテンツ４７４５に渡される。いくつかの実施形態において、カラム及びレイアウト識別モジュール４７４５は上述した処理４２００の一部又は全てを実行する。
【０２４４】
いくつかの実施形態において、上述したモジュール又は他のモジュールにより実行された処理の結果は電子記憶装置に格納される（例えば、文書オブジェクトモデルの一部として）。文書オブジェクトモデルは、ユーザが文書をレビューし且つ／又は文書と対話できる（例えば、タッチスクリーン、カーソル制御デバイス等を介して）ように電子表示装置（例えば、ハンドヘルドデバイス、コンピュータ画面等）に文書を表示するために使用される。
【０２４５】
Ｖ．表の識別
本発明のいくつかの実施形態は、文書中の表を識別する。いくつかの実施形態は、表のセル、行及び列を識別し、テーブルの編集、スプレッドシートへのエクスポート等を可能にする。第ＩＩ節で説明した処理から得られるゾーン情報並びに第ＩＶ節で説明した処理から得られるレイアウト及びフロー情報は、いくつかの実施形態の表識別処理において使用される。いくつかの実施形態は、表が押し出し及び影付け等の効果を含む場合に共通であるが、表が重なり合う形状及び画像に含まれた関連のない図形のグループとして描かれる場合でも表を識別及び再構成できる。
【０２４６】
図４８は、文書の一部にある表を識別するいくつかの実施形態の処理４８００を概念的に示す。図示するように、処理は、文書の一部に対するゾーン及びレイアウト情報を受信する（４８０５）。いくつかの実施形態において、ゾーン情報は第ＩＩ節で説明した処理の出力であり、レイアウト情報は第ＩＶ節で説明した処理の出力である。いくつかの実施形態において、文書の一部は、文書のページ又はページのゾーン等である。
【０２４７】
処理は、完全な境界を有する表を識別する（４８１０）。図４９は、完全な境界を有する表４９００の一例を示す。いくつかの実施形態は、範囲が全て直立矩形である２つ以上のゾーンにより全体的に区分された島（第ＩＩ節で規定したような）であるあらゆるゾーンを分類する。これらの区分する矩形は表のセルである。完全な境界を有する表の識別について、以下の第Ａ項において更に詳細に説明する。
【０２４８】
次に、処理４８００は接続された境界を有する表を識別する（４８１５）。図５０は、接続されるが不完全な境界を有する表５０００の一例を示す。いずれかの境界が接続の集合を介して他のいずれかの境界に接続されるように実際に描かれる表の全ての境界が互いに交差する場合、いくつかの実施形態において、表は接続された境界を有する。表５０００は、表の外側境界が描かれていないため不完全な境界を有する。接続されるが不完全な境界を有する表の識別について、以下の第Ｂ項において更に詳細に説明する。
【０２４９】
次に、処理４８００は、境界を有さないか又は接続されない境界を有する表を識別する（４８２０）。図５１は、境界を有さない表５１００の一例を示す。図５２は、接続されない境界を有する表５２００を示す。表５１００とは異なり、表５２００はいくつかの境界が描かれるが、境界は接続集合を形成しない。境界が接続集合を形成しない表の場合、いくつかの実施形態は、表を識別するためにレイアウト情報を使用することを必要とする。境界を有さないか又は接続されない境界を有する表の識別について、以下の第Ｃ項において更に詳細に説明する。
【０２５０】
文書の一部における全ての表が識別されると、処理は編集及び他のソフトウェアによりアクセス可能な表を規定する（４８２５）。その後、処理は終了する。いくつかの実施形態において、これにより、ユーザは表の個々のセルを編集したり、表の行及び列を選択したり、表情報をスプレッドシートにインテリジェントコピーしたりできる。
【０２５１】
Ａ．完全な境界を有する表
本発明のいくつかの実施形態は、全ての境界が境界図形（例えば、線、細い矩形、細い画像、塗りつぶされた矩形の境界等）のある組合せにより描かれる表を識別する。境界図形を識別し且つゾーンを識別するために境界図形を使用するいくつかの実施形態の処理について、第ＩＩ節において上述した。
【０２５２】
図５３は、完全な境界の集合を有する表を識別し且つ識別された表のセル、行及び列を規定するいくつかの実施形態の処理５３００を概念的に示す。いくつかの実施形態において、処理５３００は、黙示的境界が不完全な境界を有するか又は境界を有さない表に対して識別された後にそれらの表を識別及び規定するためにも使用される。そのような処理について、第Ｂ項及び第Ｃ項において更に詳細に説明する。処理５３００については図５４と共に説明する。図５４は、完全な境界を有する表を含むページ５４００を示す。
【０２５３】
図５３に示すように、処理は文書の一部に対するゾーン情報を受信する（５３０５）。いくつかの実施形態において、文書の一部は、文書全体、文書の小領域又は文書のページである。いくつかの実施形態におけるゾーン情報は、第ＩＩ節で上述した処理から出力された情報であり、ゾーン境界及び交点情報並びに識別されたゾーン及びゾーングラフ情報を含む。
【０２５４】
処理５３００は、全てが矩形である２つ以上のゾーンにより全体的に区分された島を識別する（５３１０）。上述したように、いくつかの実施形態において、島は境界区間を親ゾーンと共有しないゾーンである。図５４は、矩形により区分された１つの島５４０１を含むページ５４００を示す。図示するように、１３個の矩形は、１３個の矩形ゾーンによりカバーされるページ領域が厳密に島５４０１の領域であるように、島５４０１を完全に区分する。従って、島５４０１は表として識別される。
【０２５５】
次に処理は、５３１０で識別された島のうち未処理の島が存在するかを判定する（５３１１）。島が識別されないか又は識別された全ての島が表として処理された場合、処理は終了する。未処理の島が存在する場合、処理は次に識別された島を選択する（５３１４）。いくつかの実施形態において、識別された全ての島が処理される限り、それら島に対する特定の順序付けはない。
【０２５６】
処理５３００は、選択した島の水平境界を上から下にソートする（５３１５）。いくつかの実施形態は、上端がもっとも高い境界が最初になるように、境界の最上部の境界線によりソートする。いくつかの実施形態における水平境界は、島の境界を含み且つ表として識別された島内の水平境界区間である。図５４は、１６個の水平境界区間５４０５〜５４２０を示す。いくつかの実施形態において、水平境界区間は、第ＩＩ節で上述した処理９００等の処理により識別される。
【０２５７】
順番にソートされた水平境界区間を使用して、処理は第１の未評価の水平境界を選択し（５３２０）、表の次の水平格子線を規定する（５３２５）。図５４の例において、境界区間５４０５又は５４０６は第１の選択された境界であり、その時点において、格子線１が規定される。
【０２５８】
処理は、選択された境界を現在の格子線に割り当て、格子線に割り当てられた全ての境界のｙ区間の交点に格子線の垂直範囲を設定する（５３３０）。現在選択されている境界が初めて現在の格子線に割り当てられる場合、格子線のｙ区間は単純に境界のｙ区間である。しかし、複数の境界が格子線に割り当てられる場合、格子線のｙ区間は割り当てられた全ての境界のｙ区間を含む。
【０２５９】
処理は、格子線に割り当てられていない水平境界が更に存在するかを判定する（５３３５）。更に水平境界が残っていない場合、以下に説明する５３４５に進む。更に境界が残っている場合、処理は、次の境界のｙ区間が現在の格子線のｙ区間と重なり合うかを判定する（５３４０）。ｙ区間が重なり合わない場合、現在の格子線の全ての境界は規定されており、５３２０に進んで次の境界を選択し、新しい格子線を開始する。しかし、ｙ区間が重なり合う場合、５３３０に進んで現在の格子線に境界を割り当て、格子線のｙ区間を更新し、次の境界に継続する。
【０２６０】
図５４に示すように、島５４０１に対する第１の境界として境界５４０５又は５４０６を選択した後、それら２つの境界の他方が次に選択され、水平格子線１に追加される。境界５４０７及び５４０８を含む水平格子線２が次に規定され、水平格子線６（境界５４１８〜５４２０）まで規定される。
【０２６１】
全ての水平境界が格子線に割り当てられると、処理５３００は垂直境界を考慮する。処理５３００は、選択された島の垂直境界を左から右にソートする（５３４５）。いくつかの実施形態は、最も左にある左端を有する境界が最初になるように境界の左端境界によりソートする。いくつかの実施形態における垂直境界は、島の境界を含み且つ表として識別された島内の垂直境界区間である。図５４は、１８個の垂直境界区間５４２５〜５４４２を示す。いくつかの実施形態において、垂直境界区間は第ＩＩ節で上述した処理９００等の処理により識別される。
【０２６２】
順番にソートされた垂直境界区間を使用して、処理は第１の未評価の垂直境界を選択し（５３５０）、表の次の垂直格子線を規定する（５３５５）。図５４の例において、境界区間５４２６〜５４２８のうちの１つは第１の選択された境界であり、この時点において垂直格子線１が規定される。
【０２６３】
処理は、現在の格子線に選択した境界を割り当て、格子線に割り当てられた全ての境界のｘ区間の交わりに格子線の水平範囲を設定する（５３６０）。従って、現在選択されている境界が初めて現在の格子線に割り当てられる場合、格子線のｘ区間は単純に境界のｘ区間である。しかし、複数の境界が格子線に割り当てられる場合、格子線のｘ区間は割り当てられた全ての境界のｘ区間を含む。
【０２６４】
処理は、格子線に割り当てられていない垂直境界が更に存在するかを判定する（５３６５）。境界がそれ以上残っていない場合、以下に説明する５３７５に進む。更に境界が残っている場合、処理は、次の境界のｘ区間が現在の格子線のｘ区間と重なり合うかを判定する（５３７０）。ｘ区間が重なり合わない場合、現在の格子線の全ての境界は規定されており、５３５０に進んで次の境界を選択し、新しい格子線を開始する。あるいは、ｘ区間が重なり合う場合、５３６０に進んで現在の格子線に境界を割り当て、格子線のｘ区間を更新し、次の境界に継続する。島５４０１に対する第１の境界として境界５４２５〜５４２８のうちの１つを選択した後、他の３つの境界のうちの１つが選択され且つ垂直格子線１に追加される。それら４つの全ての境界が垂直格子線１に追加されると、境界５４２９〜５４３３を含む垂直格子線２が次に規定され、垂直格子線４（境界５４３８〜５４４２）まで規定される。
【０２６５】
全ての垂直境界が評価されると、全ての格子線が表に対して規定されたことになる。処理５３００は垂直格子線の前に水平格子線を規定したが、いくつかの実施形態は垂直格子線を最初に規定することが当業者には理解されるだろう。
【０２６６】
次に処理は、表のセルに行及び列の番号を割り当てる（５３７５）。いくつかの実施形態において、島を区分する各ゾーンはセルである。いくつかの実施形態において、セルは上側境界の格子線から下側境界の格子線までの行に及ぶ。例えば、図５４のセル５４５０は、上側境界が水平格子線１の一部であり且つ下側境界が水平格子線３の一部であるため行１及び２に及ぶ。同様に、いくつかの実施形態において、セルは左側境界の格子線から右側境界の格子線までの列に及ぶ。例えばセル５４５０は、左側境界が垂直格子線１の一部であり且つ右側境界が垂直格子線２の一部であるため列１に及ぶ。
【０２６７】
表構造（すなわち、格子線、セル、行及び列）が再構成されると、処理は表に対する書式情報を判定する（５３８０）。その後、上述した５３１１に進み、表として処理する識別された島が更に存在するかを判定する。いくつかの実施形態において、表書式情報は、ゾーン境界を構成する境界図形及び背景グラフィックスから得られる。例えば特定のセルを範囲に含むか又は特定のセルを横切る複数の背景形状が存在する場合、いくつかの実施形態は、種々の背景形状を合成し且つ必要に応じてそれを格子線境界に対してクリッピングすることにより結果として得られる形状の色又は画像レンダリングを判定する。同様に、いくつかの実施形態は、見える形状の色の加重平均に基づいてセル境界の色を判定する。いくつかの実施形態において、加重平均の重みは、各色に対して表示される領域の量に基づく。いくつかの実施形態は、影付け又は押し出し等の境界書式を更に認識する。
【０２６８】
いくつかの実施形態において、表を識別し且つ表構造を判定することにより、表は関連のない図形の集合ではなく一般的なワードプロセッサにより生成されたかのように利用できる。例えばいくつかの実施形態において、ユーザは、表のセルを個々に編集したり、情報をスプレッドシートにエクスポートしたり、表データをソートしたりできる。
【０２６９】
いくつかの実施形態は、表を識別するために処理５３００のみを使用する。しかし、これにより、完全な境界の集合を有する表のみが識別される。他の実施形態は、完全な境界図形を有さないが表の構造及びレイアウトを有する表を識別するために以下の第Ｂ項及び第Ｃ項で説明する処理を使用する。
【０２７０】
Ｂ．接続された境界を有する表
完全な境界の集合を有する表に加えて、いくつかの実施形態は、不完全であるが接続された境界の集合を有する表を識別する。図５０は、そのような表５０００を示す。いくつかの実施形態は、意図した表の境界である可能性のある黙示的境界を規定するために処理を使用し、実際の表を識別及び再構成するために上述した処理５３００等の処理を適用する。
【０２７１】
図５５は、接続された境界の集合を有する表を識別及び再構成するいくつかの実施形態の処理５５００を概念的に示す。処理５５００について図５６と共に説明する。図５６は、ページ５６００において接続されるが不完全である境界を有する表を識別するシーケンスを示す。
【０２７２】
図５５に示すように、処理５５００は文書の一部に対する潜在的なゾーン境界及び境界交点の集合を受信する（５５０５）。いくつかの実施形態において、潜在的なゾーン境界及び交点は第ＩＩ節で上述したような処理９００により判定される。他の実施形態は、文書の一部に対して潜在的なゾーン境界を判定するために他の処理を使用する。いくつかの実施形態における文書の一部は、文書全体、文書の小領域又は文書のページである。
【０２７３】
次に処理５５００は、５５０５で受信した潜在的なゾーン境界の全てを含む集合Ｕを規定する（５５１０）。処理は、Ｕが空であるかを判定する（５５１５）。集合が空である場合、接続されるゾーン境界が存在しないため処理は終了する。
【０２７４】
あるいは、集合Ｕが少なくとも１つのゾーン境界を含む場合、処理はＵから境界ｂを選択し、新しい接続集合Ｃを規定する（５５２０）。いくつかの実施形態は、左上隅に最近接する左上の境界から開始するか、あるいは最初に選択する境界を判定するために他のヒューリスティック法を使用する。他の実施形態は、境界ｂをランダムに選択する。選択した境界ｂは、集合Ｕから除去され且つ集合Ｃに追加される（５５２５）。いくつかの実施形態において、接続集合Ｃは、全てが交点の集合を介して接続される境界の集合である。
【０２７５】
処理は、現在の境界ｂに対してまだ評価されていない境界ｚを集合Ｕから選択し（５５３０）、境界ｚが境界ｂと交差するかを判定する（５５３５）。いくつかの実施形態において、境界ｚが境界ｂと交差するかを判定することは、受信した交点の１つが境界ｚを境界ｂに接続するかを判定することを含む。境界が交差しない場合、以下に説明する５５４５に進む。あるいは、境界が交差する場合、処理は現在の接続集合Ｃに境界ｚを追加し、ｚをキューに入れる（５５４０）。いくつかの実施形態は、次の接続集合に進む前に更なる接続に関して評価する必要がある接続集合の境界を常時監視するためにキューを使用する。
【０２７６】
次に処理は、集合Ｕのいずれかの境界が現在の境界ｂとの交差に関してまだ評価されていないかを判定する（５５４５）。更に境界が残っている場合、５５３０に進んで別の境界ｚを選択し、新しい境界ｚが現在の境界ｚと交差するかを判定する。
【０２７７】
あるいは、Ｕの全ての境界が現在の境界ｂとの交差に関して評価された場合、処理５５００は、キューが空であるかを判定する（５５５０）。少なくとも１つの境界がキューにある場合、処理はキューの次の境界を新しく選択された境界ｂとして設定する（５５５５）。その後、５５２５に進み、Ｕに残っている境界が新しく選択された境界ｂと交差するかを評価する。
【０２７８】
あるいは、キューが空である場合、現在の接続集合Ｃの全ての要素が割り当てられ、処理は、集合Ｕが空であるかを判定する（５５６０）。Ｕが空ではない場合、５５２０に進み、新しい境界ｂを選択し且つ新しい接続集合Ｃを規定する。
【０２７９】
Ｕが空である場合、全ての境界は処理され、各接続集合に入れられる。図５６は、７つの境界５６０５〜５６３５を含むページ５６００を示す。処理５５００を適用すると、それらの７つの境界は３つの接続集合５６４０（境界５６０５を含む）、５６４５（境界５６１０及び５６１５を含む）及び５６５０（境界５６２０〜５６３５を含む）に割り当てられる。それらの接続集合の各々は、その接続集合の少なくとも１つの他の境界と交差し且つその接続集合外のいずれの境界とも交差しない境界を含む。
【０２８０】
集合Ｕが空であるために全ての接続集合が識別されると、処理は集合Ｃを選択し（５５６５）、Ｃの直立バウンディングボックスを形成する４つの境界を集合Ｃに追加する（５５７０）。いくつかの実施形態において、直立バウンディングボックスは接続集合の全ての境界を含む最小の直立矩形である。例えば、図５６は接続集合５６５０の直立バウンディングボックスを形成する４つの境界５６５５〜５６７０を示す。接続集合５６４０は単一の線であるため、その直立バウンディングボックスは単に線の外側エッジである。接続集合５６４５の直立バウンディングボックスを形成する４つの境界のうち２つは境界５６１０及び５６１５であり、その一方で、追加の境界５６７５及び５６８０はいくつかの実施形態において動作５５７０により追加される。
【０２８１】
処理は、接続集合Ｃが残っているかを判定する（５５７５）。少なくとも１つの集合が残っている場合、５５６５に進んで別の集合Ｃを選択する。全ての集合が評価されると、処理は全ての接続集合からの全ての境界を使用してゾーンを識別する（５５８０）。いくつかの実施形態は、ゾーンを識別するために処理１２００（第ＩＩ節で上述した）又は同様の処理を適用する。
【０２８２】
ゾーンが識別されると、処理５５００はゾーンから表を識別し、表を再構成する（５５８５）。その後、処理は終了する。ゾーンが接続集合の直立バウンディングボックスからの黙示的境界を使用して識別されると、いくつかの実施形態は表を再構成するために第Ａ項で説明したような処理５３００を適用する。図５６は、１つの表５６８５がページ５６００で識別されることを示す。表は３列及び３行の合計９つのセルを有する。
【０２８３】
いくつかの実施形態は、表及びセルゾーン（並びにそれらのゾーンを構成する境界図形）を除去し、何も存在すべきでないゾーンを規定しないように黙示的境界なしでゾーンを再識別する。いくつかの実施形態は、第ＩＩ節で上述したようなゾーングラフを判定するために表及びセルゾーンを再挿入する。そのような実施形態は、表及びセルゾーンの識別並びにそれらの構造を含む完全なゾーングラフを生成する。
【０２８４】
Ｃ．境界を有さないか又は接続されない境界を有する表
完全な境界の集合又は少なくとも接続された境界の集合を有する表に加えて、いくつかの実施形態は、境界を有さないか又は接続されない境界を有する表を識別する。図５１は境界を有さない表５１００を示し、図５２は接続されない境界を有する表５２００を示す。いくつかの実施形態は、意図した表の境界になる可能性のある黙示的境界を規定するために処理を使用し、実際の表を識別及び再構成するために処理５３００等の処理を適用する。境界が接続集合を形成しない表の場合、いくつかの実施形態は、ゾーン情報に加えて表を識別するためにレイアウト情報を使用することを必要とする。
【０２８５】
図５７は、境界を有さないか又は接続されない境界を有する表を識別及び再構成する処理５７００を概念的に示す。処理５７００について図５８〜図６０と共に説明する。図５８〜図６０は、接続されない境界を有する表を識別するために処理５７００をページ５８００に適用することを示す。
【０２８６】
図５７に示すように、処理は主ゾーンに対するレイアウト情報を受信する（５７０５）。いくつかの実施形態において、主ゾーンはページであるが、あらゆる他のゾーンであってもよい。いくつかの実施形態のレイアウト情報は、第ＩＶ節で説明した４０００及び４２００等の処理から出力された情報である。この情報は、主ゾーンにおける段落、カラム及びレイアウトの識別を含む。
【０２８７】
処理５７００は、主ゾーンにおいて未処理のレイアウトが存在するかを判定する（５７０７）。主ゾーンにレイアウトがない場合、あるいは全てのレイアウトが処理された場合、以下に説明する５７４０に進む。レイアウトがある場合、処理は主ゾーン内のレイアウトを選択する（５７１０）。処理は、レイアウトの直立直線範囲において黙示的ゾーン境界を規定する（５７１５）。いくつかの実施形態において、直立直線範囲はレイアウト中の全ての段落を完全に囲む最小の矩形である。処理は、レイアウトのカラムを分離する垂直の空白及びカラム内のレイアウトの段落を分離する水平の空白において黙示的ゾーン境界を規定する（５７２０）。
【０２８８】
図５８はページ５８００を示す。ページは、３つのより小さいゾーン、すなわち左上隅のゾーン５８０５、中央の灰色で影をつけられたゾーン５８１０及び最下部にあるゾーン５８１５を含む。いくつかの実施形態において、ゾーン５８１０及び５８１５は島である。主ゾーン（ページ５８００）は２つのレイアウト５８２０及び５８２５を含む。図５９に示すように、選択したレイアウト５８２０を有する処理は、レイアウト５８２０のバウンディングボックスの周囲及びレイアウト５８２０の３つのカラムの間に黙示的境界５９０５〜５９２５を規定する。レイアウトがゾーン５８１０の最上部により境界をつけられるため、いくつかの実施形態においてレイアウトの最下部の範囲は黙示的境界を必要としない。同様の黙示的境界５９８５〜５９９７は、レイアウト５８２５に対して規定される。
【０２８９】
次に処理５７００は、外側に拡張して別のカラムの段落のバウンディングボックスと交差する水平境界（例えば、黙示的境界）がレイアウト中に存在するかを判定する（５７２５）。この水平一貫性検査は、レイアウトが単にカラムに分割される一般的な段落の集合である場合とは対照的に実際には表構造を有することを保証する。レイアウトが水平一貫性検査を通過しない場合、上述した５７０７に進む。レイアウトが水平一貫性検査を通過した場合、処理は表又は表の一部であってもよい潜在的なレイアウトを常時監視する集合Ｓにレイアウトを追加する（５７３０）。その後、５７０７に進む。
【０２９０】
処理は、主ゾーンがそれ以上レイアウトを含まないことを判定した後（５７０７）、主ゾーン内に未処理のゾーンがあるかを判定する（５７４０）。主ゾーンが他にゾーンを含まない場合、あるいは全てのゾーンが処理された場合、処理は黙示的境界を規定することを終了し、以下に説明する５７７５に進む。
【０２９１】
少なくとも１つの未処理のゾーンが主ゾーンに存在する場合、処理はより小さいゾーンの１つを選択する（５７４５）。処理は、より小さいゾーンがレイアウトを１つだけ含む島であるかを判定する（５７５０）。ページ５８００において、ゾーン５８１０及び５８１５はレイアウトを１つだけ含む島であり、その一方で、ゾーン５８０５は、その境界がページ境界を含むためレイアウトを１つだけ含むが島ではない。
【０２９２】
選択したゾーンがレイアウトを１つだけ含む島でない場合、処理５７００は上述した５７４０に進む。選択したゾーンがレイアウトを１つだけ含む島である場合、処理はレイアウトのカラムを分離する垂直の空白及びカラム内のレイアウトの段落を分離する水平の空白において黙示的ゾーン境界を規定する（５７５５）。図５９は、ゾーン５８１０のカラムの間に規定される黙示的ゾーン境界５９７１及び５９７２を示す。
【０２９３】
処理は、外側に拡張して別のカラムの段落のバウンディングボックスと交差する水平境界（例えば、黙示的境界）がレイアウト中に存在するかを判定する（５７６０）。この水平一貫性検査は、レイアウトが単にカラムに分割される一般的な段落の集合である場合とは対照的に実際には表構造を有することを保証する。レイアウトが水平一貫性検査を通過しない場合、上述した５７４０に進む。レイアウトが水平一貫性検査を通過する場合、処理は表又は表の一部であってもよい潜在的なレイアウトを常時監視する集合Ｓにレイアウトを追加し（５７６５）、５７４０に進む。
【０２９４】
ページ５８００は、いくつかの実施形態においてはレイアウトを１つだけ含む島であるゾーン５８１５を含む。図５９は、ゾーン５８１５に対して規定された黙示的境界５９３０〜５９８０を示す。しかし、水平境界５９４５〜５９８０の全てが外側に延長された場合にレイアウトの他の段落のバウンディングボックスと交差するため、このレイアウトは水平一貫性検査を通過しない。従って、ゾーン５８１５のレイアウトはページ５８００に対する集合Ｓに追加されず、黙示的境界５９３０〜５９８０は保持されない。
【０２９５】
全てのゾーンが評価されると、処理は集合Ｓのレイアウトからの黙示的ゾーン境界並びにそれらの黙示的ゾーン境界と交差するあらゆるゾーン境界図形を使用してゾーン分析を適用する（５７７５）。いくつかの実施形態は、ゾーン境界区間、交点及びゾーン境界を識別するために第ＩＩ節で上述した方法を使用する。
【０２９６】
処理５７００は、集合Ｓのレイアウトのうち潜在的な表を識別する（５７８０）。いくつかの実施形態は、潜在的な表を識別するために（及びそれらの構造を再構成するために）第Ａ項で説明した処理３５００を使用する。次に処理は、特定の表の条件を満たさない潜在的な表を不適格であると判定する（５７８５）。その後、処理は終了する。いくつかの実施形態は、境界図形のみでは不十分である場合に表を識別する強力な根拠が存在ことを保証するために潜在的な表に対して追加の条件を課す。例えばいくつかの実施形態は、全てのセルが厳密に１行１列に及ぶこと、あるいはセルの高さ及び幅がページの寸法と比較して小さいこと、あるいは各境界の太さが表の寸法と比較して小さいことを要求する。いくつかの実施形態は、これらの条件及び他の要件のうちの１つ、いくつか又は全てを要求する。図６０は、ゾーン５８１０並びにレイアウト５８２０及び５８２５が表６０００に組み合わされ、ゾーン５８０５及び５８１５のコンテンツがそのまま残ることを示す。
【０２９７】
文書の一部における全ての表が識別されると、いくつかの実施形態において、ユーザは、表の個々のセルを編集したり、表の行及び列を選択したり、表の情報をスプレッドシートにインテリジェントコピーしたりできる。更にいくつかの実施形態において、テキストフロー、読み取り順序及び表示は、表を識別し且つそれらを再構成することにより向上される。
【０２９８】
Ｄ．ソフトウェアアーキテクチャ
いくつかの実施形態において、上述した表の識別は、コンピュータ、メディアプレーヤ、携帯電話（例えば、ｉＰｈｏｎｅ（登録商標））、あるいは他のハンドヘルド又はリソースの制限されたデバイス等の特定のマシンで実行する（又はコンピュータ可読媒体に格納された）ソフトウェアとして実現される。図６１は、文書の表を識別するいくつかの実施形態の表識別アプリケーション６１００のソフトウェアアーキテクチャを概念的に示す。いくつかの実施形態において、アプリケーションは、スタンドアロンアプリケーションであるか又は別のアプリケーション（例えば、文書再構成アプリケーション）に組み込まれる。その一方で、他の実施形態において、アプリケーションはオペレーティングシステム内に実現されてもよい。
【０２９９】
表識別アプリケーション６１００は、ゾーン分析モジュール６１０５、表識別モジュール６１１０、ゾーン境界接続モジュール６１１５、黙示的境界規定モジュール６１２０及びレイアウト分析モジュール６１２５を含む。
【０３００】
図６１は、文書コンテンツ６１３０を更に示す。ゾーン分析モジュール６１０５は、文書コンテンツ６１３０から情報（例えば、図形に関する情報）を受信する。いくつかの実施形態において、ゾーン分析モジュール６１０５は図１７のゾーン分析モジュール１７００と同一である。ゾーン分析モジュールは、ゾーン境界接続モジュール６１１５及び表識別モジュール６１１０にゾーン情報を出力する。
【０３０１】
表識別モジュール６１１０は、ゾーン分析モジュール６１０５からゾーン情報を受信する。いくつかの例においては、ゾーン情報は文書の最終的なゾーンであるが、他の例においては、ゾーン情報は特定の表識別の目的で黙示的境界を含むゾーンである。表識別モジュール６１１０は、受信したゾーン情報に基づいて表を識別し、この情報を文書コンテンツ６１４５に渡す。いくつかの実施形態において、表識別モジュール６１１０は処理５３００の一部又は全てを実行する。
【０３０２】
ゾーン境界接続モジュール６１１５は、ゾーン分析モジュール６１０５からゾーン境界情報を受信し、この情報に基づいてゾーン境界の接続集合を規定する。接続集合は、黙示的境界規定モジュール６１２０に渡される。いくつかの実施形態において、ゾーン境界接続モジュール６１１５は処理５５００の一部又は全てを実行する。
【０３０３】
レイアウト分析モジュール６１２５は、文書コンテンツ６１３０から情報（例えば、レイアウト情報）を受信する。レイアウト分析モジュール６１２５は、レイアウトが潜在的に表の一部であるかを判定し、適格であるレイアウトを黙示的境界規定モジュール６１２０に渡す。いくつかの実施形態において、レイアウト分析モジュール６１２５は処理５７００の一部又は全てを実行する。
【０３０４】
黙示的境界規定モジュール６１２０は、レイアウト分析モジュール６１２５からレイアウト情報を受信し、ゾーン境界接続モジュール６１１５からゾーン境界の接続集合を受信する。黙示的境界規定モジュール６１２０は、受信した情報に基づいて文書のページに対する黙示的境界を規定し、この情報をゾーン分析モジュール６１０５に渡す。
【０３０５】
いくつかの実施形態において、上述したモジュール又は他のモジュールにより実行された処理の結果は、電子記憶装置に格納される（例えば、文書オブジェクトモデルの一部として）。文書オブジェクトモデルは、ユーザが文書をレビューし且つ／又は文書と対話できるように（例えば、タッチスクリーン、カーソル制御デバイス等を介して）、電子表示装置（例えば、ハンドヘルドデバイス、コンピュータ画面等）に文書を表示するために使用される。
【０３０６】
ＶＩ．グラフの結合
いくつかの実施形態において、非構造化文書は、単一の要素として処理されることを意図されるが文書においてそのように規定されない基本要素（例えば、形状及び画像）を含む。そのような基本要素は、文書の孤立した小さな領域を占有する場合、境界クラスタリングと呼ばれる新しいクラスタ分析技術を使用して関連付けられる。いくつかの実施形態において、境界クラスタリングの目的は、クラスタの広がりを最小にし、それと同時にクラスタの基本要素の数を最大することである。ここで、広がりはクラスタの基本要素（例えば、形状）の集合の範囲から計算される。いくつかの実施形態において、範囲は形状又は形状の集合に対するバウンディングボックスに基づく。
【０３０７】
本発明のいくつかの実施形態は、結合されるべき領域のグラフ（すなわち、図形オブジェクト）を識別する方法を提供する。これらの結合されたグラフは、更なる再構成の目的で１つのオブジェクトとして処理される。更に結合されたグラフは、閲覧、選択、ズーム、コピー、移動、編集等が行われる時に１つのオブジェクトとして処理される。いくつかの実施形態は、第ＶＩＩＩ節及び第ＩＸ節で以下に説明する選択、表示及びナビゲーション処理で使用するために結合されたグラフを１つのオブジェクトとして処理する。
【０３０８】
図６２は、個々のグラフを結合グラフに結合するいくつかの実施形態の処理６２００を概念的に示す。処理６２００について図６３と共に説明する。図６３は、ページ６３００上のいくつかのグラフの全てではないが一部を結合することを示す。図６２に示すように、処理６２００は文書の一部を受信する（６２０５）。いくつかの実施形態において、文書の一部は、文書全体、文書の小領域、ページ又はゾーンである。いくつかの実施形態は文書全体に対して１度にグラフ結合処理を実行し、その一方で、いくつかの実施形態はゾーン毎又はページ毎に処理を実行する。
【０３０９】
処理は、文書の一部におけるグラフを識別する（６２１０）。図６３は、６つのグラフ、すなわち７つの先端のある星６３０５、五角形６３１０、八角形６３１５、十字形６３２０、三角形６３２５及び５つの先端のある星６３３０を含むページ６３００を示す。
【０３１０】
処理は、識別されたグラフの一部を結合するためにクラスタ分析を使用する（６２１５）。その後、処理は終了する。いくつかの実施形態は、処理６４００を参照して以下に詳細に説明する境界クラスタリングと呼ばれるクラスタ分析の形態を使用する。いくつかの実施形態は、クラスタ分析を実行するために第Ｘ節で以下に説明される効率化技術を適用する。いくつかの実施形態は、グラフが近接しており且つそれらがとるページ又はゾーンの一部が大きすぎない場合にそれらグラフを結合する。図６３は、７つの先端のある星６３０５及び五角形６３１０が単一のグラフ６３３５に結合され、三角形６３２５及び５つの先端のある星６３３０が単一のグラフ６３４０に結合されることを示す。それらがページ６３００において孤立しているため、八角形６３１５及び十字形６３２０は互いに又は他のいずれのグラフにも結合されない。
【０３１１】
Ａ．境界クラスタリング
図６４は、結合されるべきグラフを識別するために境界クラスタリングを実行し且つそれらグラフを結合するいくつかの実施形態の処理６４００を概念的に示す。いくつかの実施形態において、処理６４００は、第Ｘ節で以下に説明するメモリ及び処理効率（例えば、間接的にソートされた配列、高速区分等）を利用する。図示するように、処理は文書の一部に対するグラフを受信する（６４０５）。いくつかの実施形態において、文書の一部は、文書全体、文書の小領域、ページ又はゾーンである。
【０３１２】
処理は、少なくとも２つのグラフが文書の一部に存在するかを判定する（６４０７）。１つ又は０個のグラフが存在する場合、クラスタリングを実行してグラフを結合しようとする理由がないため、処理は終了する。少なくとも２つのグラフが存在する場合、処理は描画順序でグラフをソートする（６４１０）。いくつかの実施形態において、描画順序は、オブジェクトがページに描かれる順序である。多くの場合、複数のオブジェクトが単一のオブジェクトとして処理されることを意図する場合、それらオブジェクトは順番に描かれる。しかし、いくつかの実施形態は、ページ上のオブジェクトの場所等の他のヒューリスティック法に基づいてソートする。
【０３１３】
次に処理は、描画順序で第１のグラフを現在のグラフｇとして設定する（６４１５）。処理は、ｇが文書の一部における最後のグラフであるかを判定する（６４２０）。ｇが最後のグラフである場合、グラフｇと次のグラフとの間の広がりは計算されないため、以下に説明する６４４０に進む。
【０３１４】
グラフｇが最後のグラフでない場合、処理は、描画順序が次のグラフとグラフｇとの間の広がりを計算し（６４２５）、計算された広がりを配列に格納する（６４３０）。いくつかの実施形態において、広がりは２つのオブジェクトが互いに対してどの程度近接しているかの基準である。いくつかの実施形態は、広がりを計算するために２つのオブジェクトのバウンディングボックスを使用する。例えばいくつかの実施形態は、図形オブジェクトの集合の広がりを、図形オブジェクトの集合が適合する最小の直立バウンディングボックスの幅及び高さの合計を、ページの幅及び高さの合計で除算したものとして、計算する。
【０３１５】
図６５は、広がりが計算される２つの図形オブジェクトをそれぞれ有する２つのページ６５０１及び６５０２を示す。ページ６５０１は２つの図形オブジェクト６５０５及び６５１０を含み、その一方で、ページ６５０２はオブジェクト６５０５及び６５１０と同一の形状及びサイズを有するがページ上の異なる場所に配置された２つの図形オブジェクト６５１５及び６５２０を含む。図６５は、オブジェクト６５０５及び６５１０に対する最小のバウンディングボックス６５２５、並びにオブジェクト６５１５及び６５２０に対する最小のバウンディングボックス６５３０を更に示す。上述した広がりを計算するために計測値を使用すると、オブジェクト６５０５及び６５１０に対する広がりは（ＸＳ１＋ＹＳ１）／（Ｘｐ＋ＸＹ）であり、オブジェクト６５１５及び６５２０に対する広がりは（ＸＳ２＋ＹＳ２）／（Ｘｐ＋ＸＹ）である。いくつかの実施形態は、オブジェクトの集合に対するバウンディングボックスの面積をページの面積で除算したものとして広がりを計算する。いくつかの実施形態は、オブジェクト自体の個々のバウンディングボックスと比較してオブジェクトの集合に対するバウンディングボックスのサイズ等のページサイズに関連しない計測値を使用する。
【０３１６】
次に処理は、次のグラフを現在のグラフｇとして設定する（６４３５）。その後、上述した６４２０に進む。全ての広がりが計算されると、処理はグラフのクラスタを規定するために差分クラスタリングに対する１次差分として広がりを使用する（６４４０）。いくつかの実施形態は、上述した米国特許出願公開第２００７／０２５０４９７号明細書で説明されるような差分クラスタリングを実行する。いくつかの実施形態の差分クラスタリングが入力値の間の差分のみを必要とし且つ実際の入力値を必要としないため、広がりは実際の差分として生じないが１次差分として使用される。いくつかの実施形態において、差分クラスタリングの結果として得られるクラスタは、異なるクラスタのグラフ間の広がりと比較して同一クラスタの連続したグラフ間の相対的に小さな広がりを有する。
【０３１７】
広がりは、ゆえに境界クラスタリングの概念は、ページ上の図形オブジェクトに限定されないことが当業者には理解されるだろう。例えば、広がりは３次元オブジェクト間で計算され（面積ではなく体積を使用して又は２次元ではなく３次元のバウンディングボックスにわたり合計することにより）、３次元オブジェクトをクラスタリングするために使用される（例えば、ビデオ合成アプリケーション等の３次元メディア編集アプリケーションにおいて）。
【０３１８】
差分クラスタリングが使用された後、１次差分である広がりにより図形のクラスタが規定される。処理６４００は、未評価のクラスタからクラスタＣを選択する（６４４５）。その後、特定の制約を満たすグラフのサブシーケンスの集合になるようにＣを処理する（６４５０）。異なる実施形態は、結合グラフを規定するために異なる制約を使用する。
【０３１９】
いくつかの実施形態は、サブシーケンスのオブジェクトが描画順序で連続している必要があるという要件を課す。第１の区分のオブジェクトのグループの直立範囲が第２の区分のオブジェクトのグループの直立範囲から分離されるように各々が描画順序で連続している２つの空でないサブシーケンスにクラスタを区分する方法がないため、いくつかの実施形態は１つのシーケンスのオブジェクトが相互に重なり合っていることを要求する。いくつかの実施形態により課される第３の要件は、各サブシーケンスが密度制約を満たすことであり、これは、各サブシーケンスが十分に小さい全体の広がりを有する十分な数のグラフ（例えば、２つ）を含むことを保証する。
【０３２０】
いくつかの実施形態は、上記条件の変更されたものを使用する。例えば、直立矩形範囲の代わりに、いくつかの実施形態は、画像の不透明な画素の周囲のパス等のより狭い範囲を使用する。いくつかの実施形態において、各サブシーケンスにおけるオブジェクトの集合は単一のグラフとして結合される。
【０３２１】
次に処理６４００は、評価するクラスタが更に存在するかを判定する（６４５５）。更にクラスタが残っている場合、６４４５に進んで別のクラスタを選択し、サブシーケンスに含めるようにそのクラスタを処理する。全てのクラスタが処理されている場合、処理は終了する。ここで、グラフは結合されると、閲覧、選択、ズーム、コピー、移動、編集等が行われる時に１つのオブジェクトとして処理される。いくつかの実施形態は、第ＶＩＩＩ節で以下に説明する選択、表示及びナビゲーション処理において使用するために結合グラフを１つのオブジェクトとして処理する。
【０３２２】
Ｂ．クラスタをサブシーケンスに含める処理
上述したように、グラフのクラスタが識別された後、いくつかの実施形態は、最終的な結合グラフを識別するため（及び各結合グラフを構成する基本要素を関連付けるため）にサブシーケンスに含めるように各クラスタを処理する。図６６は、サブシーケンスに含めるようにクラスタを処理するいくつかの実施形態の処理６６００を示す。いくつかの実施形態において、処理６６００はクラスタ毎に処理６４００の動作６４５０で実行される。
【０３２３】
図示するように、処理６６００はグラフのクラスタを受信する（６６０５）。上述したように、いくつかの実施形態において、このクラスタは、描画順序で順序付けされるグラフに対する１次差分として広がりを使用する境界クラスタリングの出力である。処理は、クラスタが空であるか（すなわち、グラフを含まないか）を判定する（６６０７）。クラスタが空である場合、処理は終了する。空でない場合、処理はまだサブシーケンスにないクラスタの第１のグラフを選択する（６６１０）。いくつかの実施形態において、動作６６１０を初めて通る時に選択したグラフがグラフを含む文書において描かれるクラスタの第１のグラフであるように、クラスタは描画順序で順序付けされる。
【０３２４】
処理は、選択したグラフを含む新しいサブシーケンスを規定する（６６１５）（この時、選択したグラフはサブシーケンスの唯一のグラフである）。新しいサブシーケンスは選択したグラフの範囲を有する。いくつかの実施形態において、選択したグラフの範囲は、グラフを含む最小の直立バウンディングボックスである。他の実施形態は、例えばグラフの全ての不透明な画素を完全に囲む最小面積のパスを使用して異なる方法でグラフの範囲を規定する。
【０３２５】
次に処理６６００は、更にグラフがクラスタに存在するかを判定する（６６２０）。クラスタにそれ以上グラフがない場合、以下に説明する６６４５に進む。存在する場合、処理はクラスタの次のグラフを選択する（６６２５）。いくつかの実施形態において、クラスタの次のグラフはクラスタにある描画順序が次のグラフである。
【０３２６】
処理は、新しいグラフ（すなわち、６６２５で選択されたグラフ）の範囲が現在のサブシーケンスの範囲と交差するかを判定する（６６３０）。上述したように、異なる実施形態は異なる方法でグラフの範囲を規定する。複数のグラフを含むサブシーケンスの範囲について以下に説明する。新しいグラフの範囲が現在のサブシーケンスの範囲と交差しない場合、処理は現在のサブシーケンスを格納し（例えば、サブシーケンスのリストに）（６６４０）、上述した６６１０に進み、次のサブシーケンスを開始する。次のサブシーケンスは、６６３０で最近テストされたグラフから開始する。これは、そのグラフがまだサブシーケンスにないクラスタの第１のグラフであるためである。
【０３２７】
新しいグラフ（６６２５で選択された）の範囲が現在のサブシーケンスの範囲と交差する場合、処理はサブシーケンスに新しいグラフを追加し、先のサブシーケンスの範囲と新しく追加されたグラフの範囲との交わりとなるようにサブシーケンスの範囲を変更する（６６３５）。その後、上述した６６２０に進み、サブシーケンスにグラフを追加する試みを継続する。
【０３２８】
いくつかの実施形態において、複数のグラフを含むサブシーケンスの範囲は全てのグラフを含む最小の直立バウンディングボックスである。他の実施形態において、範囲はサブシーケンスのグラフに対する全ての直立バウンディングボックスの結合である（そのような実施形態において、サブシーケンスの範囲は必ずしも矩形であるとは限らない）。グラフの全ての不透明な画素を含む最小面積のパスとしてグラフの範囲を規定するいくつかの実施形態において、範囲はサブシーケンスの全てのグラフの周囲のそのようなパスであってもよく、あるいはサブシーケンスの各グラフに対するそのようなパスの結合であってもよい。
【０３２９】
クラスタの全てのグラフが初期サブシーケンスに配置されると、処理は第１のサブシーケンスＳ１を選択する（６６４５）。いくつかの実施形態において、各サブシーケンスは、描画順序が連続するグラフを含み、それらサブシーケンスは、第１のサブシーケンスが描画順序で第１のグラフを含むサブシーケンスになるように描画順序に基づいて配置される。
【０３３０】
処理は、更なるサブシーケンスが存在するかを判定する（すなわち、初めて処理を通過する時にサブシーケンスが１つだけ存在するか否かを判定する）（６６５０）。それ以上サブシーケンスが存在しない場合、処理は終了する。サブシーケンスが存在する場合、処理は次のサブシーケンスＳ２を選択する（６６５５）。
【０３３１】
次に処理６６００は、Ｓ１及びＳ２の範囲が交差するかを判定する（６６６０）。上述したように、異なる実施形態において、サブシーケンスの範囲は異なる方法で規定される（すなわち、いくつかの実施形態においては、直立バウンディングボックスに基づき、他の実施形態においては、不透明な画素の周囲のパスに基づく）。Ｓ１及びＳ２の範囲が交差しない場合、処理はＳ１になるようにＳ２を規定し（６６６５）、６６５０に進んで元のＳ２に対して次のサブシーケンスをテストする。
【０３３２】
範囲が交差する場合、処理は２つのサブシーケンスをマージし（６６７０）、６６４５に進んで第１のサブシーケンスをＳ１として選択する。いくつかの実施形態は、第１のサブシーケンスに戻り、どんな方法でもマージできないサブシーケンスの集合が最初から処理されるまで処理を終了しない。しかし、他の実施形態は、６６４５に戻った時に最近マージされたサブシーケンスの前のサブシーケンスをＳ１として選択し且つ第１のサブシーケンスにおいて最初からやり直すのではなくその時点から処理することにより処理時間を節約する。
【０３３３】
クラスタがサブシーケンスに含まれるように処理すると、サブシーケンスは上述した密度制約等の制約に対してテストされる。いくつかの実施形態は、結合グラフにおいて関連付けられるグラフに対してサブシーケンスに特定の最小数のグラフがあることを要求する（例えば、２つ、５つ等）。いくつかの実施形態は、広がり（上述したように計算された）が特定の数（例えば、０．４、０．５等）より小さいことを要求した。
【０３３４】
Ｃ．ソフトウェアアーキテクチャ
いくつかの実施形態において、上述したグラフ結合処理は、コンピュータ、メディアプレーヤ、携帯電話（例えば、ｉＰｈｏｎｅ（登録商標））、あるいは他のハンドヘルド又はリソースの制限されたデバイス等の特定のマシンで実行する（又はコンピュータ可読媒体に格納された）ソフトウェアとして実現される。図６７は、結合されるべきグラフを識別し且つそれらのグラフを１つの図形として関連付けるいくつかの実施形態のグラフ結合アプリケーション６７００を概念的に示す。いくつかの実施形態において、アプリケーションは、スタンドアロンアプリケーションであるか又は別のアプリケーション（例えば、文書再構成アプリケーション）に組み込まれる。その一方で、他の実施形態において、アプリケーションはオペレーティングシステム内に実現されてもよい。
【０３３５】
図６７は、グラフ結合器６７０５、境界クラスタリングモジュール６７１０及び広がり計算機６７１５、並びに文書コンテンツ６７２５を示す。グラフ結合器モジュールは、文書コンテンツ６７２５から情報を受信する。いくつかの実施形態において、情報は各グラフの場所及びグラフの描画順序に関する情報である。
【０３３６】
グラフ結合器６７０５は、広がり計算機６７１５に情報（例えば、描画順序でのグラフの位置及びグラフの場所）を渡す。いくつかの実施形態の広がり計算機６７１５は、連続したグラフの対毎に広がりを計算し、この情報を境界クラスタリングモジュール６７１０に渡す。
【０３３７】
境界クラスタリングモジュール６７１０は、グラフ結合器６７０５及び広がり計算機６７１５から情報を受信し（例えば、１次差分として処理される広がりの配列）、受信した情報に対して境界クラスタリングを実行する。境界クラスタリングの結果はグラフ結合器に戻される。いくつかの実施形態において、グラフ結合器６７０５は、グラフの特定のクラスタが単一のグラフとして関連付けられるべきであるかを識別するために境界クラスタリングモジュールから受信したクラスタの更なる処理を実行し、その関連付けを文書コンテンツ６７２５に返す。
【０３３８】
いくつかの実施形態において、上述したモジュール又は他のモジュールにより実行された処理の結果は、電子記憶装置に格納される（例えば、文書オブジェクトモデルの一部として）。文書オブジェクトモデルは、ユーザが文書をレビューし且つ／又は文書と対話できるように（例えば、タッチスクリーン、カーソル制御デバイス等を介して）、電子表示装置（例えば、ハンドヘルドデバイス、コンピュータ画面等）に文書を表示するために使用される。
【０３３９】
ＶＩＩ．処理を制御するためのプロファイル
文書中の構造要素として視覚情報を解釈することは、処理されている文書中のコンテンツの種類に依存する。従って、意味再構成（並びに他のコンテンツ処理技術）は、コンテンツの種類に合わせて分析を適合させることにより改善される。いくつかの実施形態は、処理されるコンテンツの種類を識別し且つ識別されたコンテンツの種類に合わせてコンテンツの処理を適合させる方法を提供する。いくつかの実施形態は、第ＩＩ節〜第ＶＩ節において上述した文書再構成に対してコンテンツの種類の識別に基づくコンテンツ処理の適合を適用する。
【０３４０】
いくつかの実施形態は、処理されるコンテンツの種類を識別するためにプロファイルを使用する。プロファイルは、全ての論理的述語ＰＮが特定のコンテンツに対して真である場合にのみプロファイルが特定のコンテンツと一致するような形式（Ｐ１＾Ｐ２＾Ｐ２＾．．．＾ＰＮ）の論理命題を含む。いくつかの実施形態において、プロファイルの集合は階層型である。プロファイルの階層集合は、処理の種々の段階で到達する種々の階層レベルに対するプロファイルを有する。いくつかの実施形態において、下位レベルのプロファイルからの命令は上位レベルのプロファイルからの命令に優先する。
【０３４１】
図６８は、コンテンツの種類に合わせてコンテンツ処理を適合させるためにプロファイルを使用するいくつかの実施形態の処理６８００を概念的に示す。図示するように、処理はコンテンツを受信する（６８０５）。いくつかの実施形態において、コンテンツは再構成される文書である。他の実施形態において、コンテンツは文書であるが、その文書に対して実行される処理は再構成以外の分析である。いくつかの実施形態において、コンテンツは他の種類のコンテンツ（例えば、オーディオ及び／又はビデオコンテンツ）であってもよい。例えばいくつかの実施形態は、ビデオコンテンツを分析してビデオコンテンツをシーン、動作等の階層に区切り、早い段階の結果に基づいて分析の後の段階を変更してもよい。
【０３４２】
次に処理は、種々のコンテンツの種類に対するプロファイルに基づいて受信したコンテンツの種類を識別する（６８１０）。いくつかの実施形態において、プロファイルは、論理的述語の全てがコンテンツに対して真である場合にのみコンテンツと一致する１つ以上の論理的述語から成る論理命題を含む。いくつかの実施形態において、プロファイルがコンテンツと一致する場合、プロファイルはコンテンツ処理を実行する方法を指定する。文書処理の場合、いくつかの実施形態において、プロファイルは視覚要素の集合に当てはまる属性の集合を含む。例えば＃１０封筒に印刷されることが意図された文書に対する簡略化されたプロファイルは（ページの＃＝１＾段落の＃＜＝２＾幅＝９．５”＾高さ＝４．１２５”）であってもよい。
【０３４３】
図６９は文書６９００を示す。文書の種類を識別する際、いくつかの実施形態は、全ての論理的述語が真であるプロファイルに到達するまで複数のプロファイルをテスト  する。文書６９００の場合、幅ｘが９．５”であり且つ高さｙが４．１２５”である時、文書６９００は、２つの段落６９０５及び６９１０を含む１ページだけを有するため＃１０封筒として識別される。
【０３４４】
コンテンツの種類が識別されると、処理６８００は識別されたコンテンツの種類に適合されたコンテンツ処理を実行する（６８１５）。その後、処理は終了する。いくつかの実施形態において、識別されたコンテンツの種類に合わせて処理を適合することは、処理を追加及び除去すること、処理の実行方法を変更すること、処理の実行順序を変更することを含む。例えば文書再構成の場合、文書がカラム、ヘッダ又はフッタを有さないテキスト行の単一ページであると判定される時、文書再構成処理は適合するように適切に変えられうる。いくつかの実施形態は、テキスト行を識別し、テキスト行の単語を識別し、テキスト行を段落にグループ化するが、他の処理（例えば、カラム及びレイアウトを識別する処理４２００又は表識別処理）が必要とされていないことが文書の種類に基づいて認識されるためそれら他の処理を実行しない。
【０３４５】
Ａ．階層プロファイリング
いくつかの実施形態は、コンテンツの種類に合わせてコンテンツ処理を適合させるためにプロファイルの階層集合を使用する。図７０は、文書再構成のためのいくつかの実施形態のプロファイルの階層集合７０００を示す。プロファイルの階層集合７０００は２つの文書プロファイル７００１及び７００２、３つの小領域プロファイル７００５〜７００７、８つのページプロファイル７０１０〜７０１７及び４つのゾーンプロファイル７０２０〜７０２３を含む。
【０３４６】
図示するように、各文書プロファイルは自身のプロファイル木を有する。いくつかの実施形態において、文書プロファイルが識別されると、階層木の小領域プロファイルのみがテストされる。例えば文書が文書プロファイルＡ  ７００１として識別されると、小領域プロファイルＡ  ７００５及び小領域プロファイルＢ  ７００６のみがテストされる。同様に、小領域プロファイル（又は他のあらゆる下位レベルプロファイル）が識別されると、その特定のプロファイルが有する木にあるプロファイルのみがテストされる。
【０３４７】
いくつかの実施形態において、いくつかのプロファイルは階層の上位レベルの複数のプロファイル間で共有される。例えばページプロファイルＣ  ７０１２は３つの小領域プロファイル７００５〜７００７の全ての間で共有される。従って、文書の小領域が小領域プロファイルＡ  ７００５、小領域プロファイルＢ  ７００６及び小領域プロファイルＣ  ７００７のいずれのプロファイルとして識別されても、ページプロファイルＣ  ７０１２はその小領域の各ページに対する可能なページプロファイルの１つとしてテストされる。
【０３４８】
図７１は、コンテンツに対してプロファイルをマッチングし、一致したプロファイルに依存してコンテンツ処理を動的に構成するいくつかの実施形態の処理７１００を概念的に示す。図示するように、処理は処理されるコンテンツを受信する（７１０５）。いくつかの実施形態において、コンテンツは第ＩＩ節〜第ＶＩ節において上述した処理に従って再構成される文書である。他の実施形態において、コンテンツは、オーディオ及び／又はビデオコンテンツ、あるいは分析される他の種類のコンテンツである。
【０３４９】
次に処理は、階層の最上位についてのプロファイルを選択する（７１１０）。いくつかの実施形態において、特定のプロファイルを選択することは、コンテンツについて特定のプロファイルの論理命題を評価することと、プロファイルがコンテンツと一致することを識別することとを含む。いくつかの実施形態において、階層の最上位からプロファイルを選択するために、まず、ある量の処理が実行される必要がある。一致するプロファイルを見つける前に複数のプロファイルがテストされてもよいが、いくつかの実施形態において、１回に１つのプロファイルのみが階層の最上位において選択される。例えば図７０のプロファイルの階層集合７０００を参照すると、文書は文書プロファイルＡ  ７００１又は文書プロファイルＢ  ７００２に一致するが、１つが一致すると、一致するプロファイルが選択される。
【０３５０】
階層からプロファイルを選択した後、処理は選択したプロファイルに対して処理を適用する（７１１５）。例えば文書再構成を参照すると、コンテンツが単純な１ページの文書である場合、一組の再構成方法が適用される。一方、文書が図を含み且つ多くのページを有する書籍である場合、異なる再構成方法の集合が適用される。いくつかの実施形態は、１度に全ての方法を適用せず、下位レベルの新しいプロファイルが選択可能かを判定する前にプロファイルにより指定された順序で１度に１つの方法を適用する。
【０３５１】
次に処理は、階層の次のレベルに進むのに十分なほど処理が進んでいるかを判定する（７１２０）。いくつかの実施形態において、これは、十分な処理方法が完了していて且つ階層の次のレベルのプロファイルがマッチングのテストをされる次のレベルに関して十分な情報が利用可能にされているかを判定することを含む。処理が十分に進んでいない場合、７１１５に進み、上述したように処理の適用を継続する。
【０３５２】
階層の次のレベルに対して処理が十分に進むと、処理は階層の次のレベルに対するプロファイルを選択する（７１２５）。いくつかの実施形態において、階層の特定のレベルのコンテンツエンティティ（例えば、小領域、ページ、ゾーン等）毎に、その特定のレベルに対して１度に１つのプロファイルのみが選択可能である。例えば図７０のプロファイルの階層集合７０００を参照すると、文書プロファイルＡ  ７００１と一致する文書の小領域は小領域プロファイルＡ  ７００５及び小領域プロファイルＢ  ７００６の双方にではなくいずれかに一致する。更にいくつかの実施形態において、コンテンツエンティティに対するプロファイルの選択は、上記コンテンツエンティティに対するプロファイルの選択に基づいて制約される。例えば上記例において、文書が文書プロファイルＡ  ７００１に一致したため、特定の小領域は小領域プロファイルＣ  ７００７に対してテストされないため、小領域プロファイルＣ  ７０００７と一致することはない。
【０３５３】
次に処理は、新しく選択したプロファイルに基づいて、階層の前のレベルから処理方法を変更する（７１３０）。いくつかの実施形態において、あらゆる下位レベルプロファイルは上位レベルプロファイルからの既に規定されたいずれの処理方法も無効にできる。変更は、処理方法を除去すること、特定の方法の実行方法を変更すること、方法を追加すること、方法の実行順序を変更すること等を含むことができる。例えば、処理（例えば、第ＩＶ節で上述した処理３８００）が文書中の行を分割するのに既に使用された場合、カラムに対する十分な根拠があるかに関する判定により、ページが複雑なページとして分類されるか又は単純なページとして分類されるかを判定できる。ページが単純なページ（すなわち、カラムに対する極小の根拠）である場合、いくつかの実施形態において、行分割方法は実際に行を分割するのではなく行の空隙にタブを挿入するように変更される。同様に、ページがゾーン境界図形を含まない単純なページである場合、いくつかの実施形態において、ゾーン分析処理は除去される。
【０３５４】
方法を追加する一例として、いくつかの実施形態において、特定の文書を新聞として識別するプロファイルは、記事が特定のタイトルを有する特定のページに継続することを指定するレイアウトの終端のテキストを検索する方法を追加してもよい。そのような方法は、文書中の２つのレイアウト（又はゾーン）の間のリンクを規定して２つのレイアウト（又はゾーン）が１つの記事を形成することを示すために、指定されたページを探索してタイトルを見つける。
【０３５５】
次に変更された処理方法により、処理７１００は選択したプロファイルに対する処理方法を適用する（７１３５）。いくつかの実施形態において、これは、最も最近選択したプロファイルについての方法よりむしろ、階層の上位レベルのプロファイルについての方法を含む。例えば特定の方法が文書プロファイルにおいて指定され且つ選択した小領域プロファイルがこの特定の方法を変更しない場合か又はこの特定の方法が実行されるか否かを変更しない場合、この特定の方法は文書プロファイルに従って実行される（まだ実行されていない場合）。いくつかの実施形態は、１度に全ての方法を適用せず、下位レベルの新しいプロファイルが選択可能であるかを判定する前にプロファイルにより指定された順序で１度に１つの方法を適用する。
【０３５６】
次に処理は、テストするプロファイルの階層に下位レベルが存在するかを判定する（７１４０）。階層にそれ以上下位レベルが存在しない場合、以下に説明する７１５０に進む。存在する場合、階層の次のレベルに進むのに十分なほど処理が進んでいるかを判定する（７１４５）。いくつかの実施形態において、これは、十分な処理方法が完了していて且つ階層の次のレベルのプロファイルがマッチングのテストをされる次のレベルに関して十分な情報が利用可能にされているかを判定することを含む。処理が十分に進んでいない場合、７１３５に進み、上述したように処理の適用を継続する。階層の次のレベルに対して処理が十分に進むと、上述したように、７１２５に進んで階層の次のレベルに対して１つ以上のプロファイルを選択する。
【０３５７】
それ以上階層の下位レベルがないと判定した場合（７１４０）、処理は、コンテンツ処理が完了しているかを判定する（７１５０）。いくつかの実施形態において、処理方法の全てが最下位レベルプロファイルに対して適用されている場合、コンテンツ処理は完了している。処理が完了している場合、処理は終了する。処理が完了していない場合、上述した７１３５に進み、コンテンツの処理を継続する。
【０３５８】
Ｂ．意味再構成方法を実現するための階層プロファイリングの使用
いくつかの実施形態は、第ＩＩ節〜第ＶＩ節において上述した意味再構成方法をより効率的に且つ正確に実現するために階層プロファイリングを利用する。いくつかの実施形態において、階層プロファイルは方法を追加、除去、変更又は再実行するために使用される。いくつかの実施形態は、一致するプロファイルがない場合に全ての可能な再構成方法を実現するデフォルトプロファイルを含む。しかし、階層の下位のプロファイルが選択される場合、選択されたプロファイルは特定の方法を実行するか否か及び／又は特定の方法の実現方法に関するデフォルトプロファイルを無効にできる。
【０３５９】
いくつかの実施形態において、プロファイルのマッチングが処理の種々の段階で行われる。従って、いずれかの所定の時間に起動されたプロファイルの集合は処理中に変更可能であり、方法の継承は、新しい各プロファイルが起動された後に再評価される必要がある。新たに起動されたプロファイルが処理方法を再順序付け、追加又は除去できるため、いくつかの実施形態はコンテンツ処理中に継承の効果を更に変更する。
【０３６０】
図７２は、階層プロファイリングを使用して文書再構成を実行するいくつかの実施形態の処理７２００を概念的に示す。図示するように、処理は文書を受信する（７２０５）。いくつかの実施形態において、文書は意味再構成技術を使用して再構成されるベクトル図形文書（例えば、ＰＤＦ文書）である。
【０３６１】
次に処理７２００は、文書に対するプロファイルを識別する（７２１０）。いくつかの実施形態において、全ての可能な再構成方法を実現するデフォルトプロファイルが最初に割り当てられる。しかし、いくつかの実施形態は、いずれの再構成方法も適用せずに文書の固有の特性（例えば、ページ数、ページサイズ等）に基づいて文書プロファイルを識別できる。
【０３６２】
初期プロファイルが識別されると、処理は識別したプロファイルと関連付けられた再構成方法を識別する（７２１５）。初期プロファイルが単純にデフォルトプロファイルである場合、全ての可能な方法が識別される。しかし、プロファイルが識別した文書プロファイル又は階層の下位レベルのプロファイルである場合、いくつかの例においては一部の再構成方法のみが識別される。例えばいくつかのプロファイルは、特定の処理を実行する実装を明示的に規定せず、また処理を実行しないことを指定しない。
【０３６３】
処理は、識別した方法のうちの１つを選択する（７２２０）。いくつかの実施形態において、選択された方法は、再構成方法の指定された実行順序に基づく。例えばいくつかの実施形態のデフォルトプロファイルは、再構成方法を実現するデフォルトの順序を指定する。デフォルトの順序は、例えばゾーン分析方法を最初に実行し、テキスト行を識別し、その後ガイド及びのど分析を実行すること等を指定してもよい。
【０３６４】
いくつかの実施形態において、方法を識別することは、現在のプロファイルにより除外される方法を識別することを含む。例えば再構成処理は、ページに対する既に識別された潜在的なゾーン境界を有してもよい。いくつかの実施形態において、少なくとも特定の密度のゾーン境界があり、テキストパターンが適切に一致する場合、ページは道路地図として識別される。従って、残りのゾーン分析（例えば、ゾーンを識別すること）は、文書の作成者がページの別個の領域になることを意図しない過度の数の小さなゾーンにページを区切るため実行されない。
【０３６５】
同様に、いくつかの実施形態において、文書がワードプロセッシング文書であることを指定する文書プロファイルはカラム識別の方法を含む。しかし、文書中の特定のページが埋め込みコンテンツを有する場合、特定のページに対するプロファイルは、その方法を実行しないようにする命令によりカラム識別ステップを無効にできる。
【０３６６】
方法が選択されると、処理７２００は方法に対する実装を選択する。いくつかの実施形態において、有効な（すなわち、選択された）プロファイルは、方法を実現できるか、あるいは階層の上位の有効なプロファイルから方法の実装を継承できる。処理は、選択した方法が現在の（すなわち、有効な最下位レベル）プロファイルについて明示的に規定されているかを判定する（７２２５）。選択した方法が明示的に規定される場合、処理は現在のプロファイルに対する方法の実装を選択する（７２３０）。その後、以下に説明する７２５０に進む。
【０３６７】
選択した方法が明示的に規定されない場合、処理は、選択した方法が階層の上位レベルの有効なプロファイルについて規定されているかを判定する（７２３５）。処理が階層の上位の有効なプロファイルについて規定されている場合、処理は有効な上位レベルプロファイルから方法の実装を選択する（７２４０）。その後、以下に説明する７２５０に進む。処理が規定されない場合、方法は方法のデフォルト実装を選択する（７２４５）。
【０３６８】
図７３は、いくつかの実施形態が特定の方法を実現する有効な最下位レベルプロファイルを継承する方法を示す。図７３は、文書再構成プロファイルの階層７３００を示す。階層は、全ての方法に対するデフォルト実装の集合７３０５、種々の文書プロファイルに対する実装の集合７３１０、種々の小領域プロファイルに対する実装の集合７３１５、種々のページプロファイルに対する実装の集合７３２０及び種々のゾーンプロファイルに対する実装の集合７３２５を含む。破線により示されるように、ゾーンプロファイル７３３０は現在（最下位レベル）の有効なプロファイルであり、その一方で、ページプロファイル１  ７３３５、小領域プロファイルＸ  ７３４０及び文書プロファイル２  ７３４５も有効である。
【０３６９】
ゾーンプロファイル１  ７３３０が現在の有効なプロファイルであるので、特定の方法（例えば、ガイド識別）を実現する試みは、特定の方法に対する実装を明示的に規定するかを判定するためにゾーンプロファイル１  ７３３０に対する実装の集合を参照することである。ゾーンプロファイル１  ７３３０が一実装を明示的に規定する場合、この実装が選択される。明示的に規定しない場合、有効なページプロファイル１  ７３３５が検査される。有効なプロファイルは、特定の方法の一実装が規定されるまで又は全ての方法に対するデフォルト実装の集合７３０５に到達するまで階層を上位方向に向かって検査される。方法を実現する最下位レベルの有効なプロファイルが識別される場合、この実装は現在の有効なプロファイルにより継承される。方法を実現する有効なプロファイルがない場合、現在の有効なプロファイルはデフォルトプロファイルからの実装を継承する。
【０３７０】
処理７２００が方法に対する一実装を選択した後、処理は選択した実装を使用して再構成を実行する（７２５０）。いくつかの実施形態において、実行された再構成は、第ＩＩ節〜第ＶＩ節において上述した１つ以上の処理を含む。
【０３７１】
次に処理は、新しいプロファイルが識別されるかを判定する（７２５５）。各方法が実行された後、いくつかの実施形態は、プロファイルマッチングエンジンが利用可能な全ての再構成データを送出する。いくつかの実施形態のプロファイルマッチングエンジンは、受信した情報に基づいて、特定のプロファイル（例えば、現在の有効なプロファイルの下である階層の次のレベルのプロファイル）をテストするのに十分な情報があるかを判定する。十分な情報がある場合、プロファイルマッチングエンジンは、プロファイルの種々の論理的述語に対して情報をテストする。いくつかの実施形態は、一致する可能性が最も高いプロファイル又は最小の作業量を必要とするプロファイルが最初にテストされるようにプロファイルを順序付けする。プロファイルマッチングについては、第Ｃ項において以下に更に詳細に説明する。
【０３７２】
新しいプロファイルが識別されない場合、処理は、文書の再構成が完了しているかを判定する（７２６５）。いくつかの実施形態において、有効なプロファイルの集合により指定された（且つ下位レベルの有効なプロファイルにより除去されない）全ての方法が完了している場合、再構成は完了している。再構成が完了している場合、処理は終了する。再構成が完了していない場合、７２２０に進み、上述したように次に識別された方法を選択する。
【０３７３】
新しいプロファイルが識別される場合、処理７２００は新しいプロファイルにより指定されたあらゆる再構成結果を除去する（７２６０）。特に実行されるべき又は実行されるべきでない特定の方法を指定することに加えて、いくつかの実施形態のプロファイルは、特定の方法の結果が取り消されるべきであることを指定する。例えばゾーン分析方法が実行された後でも、プロファイルは、ゾーン情報（境界、交点、ゾーン等）が結果から除去されるべきであること及び他のいくつかの方法が実行された後にゾーン分析が再実行されるべきであることを指定してもよい。その後、上述した７２１５に進み、再構成が完了するまで続行する。
【０３７４】
Ｃ．プロファイルマッチング
上述したように、いくつかの実施形態において、プロファイルは、全てがプロファイルに対して真である必要がある論理的述語の集合である。いくつかの実施形態は、コンテンツ処理結果を受信し、現在の有効なプロファイルに対して次のレベルのプロファイルをテストするのに十分な情報が存在するかを判定し、コンテンツ処理結果をプロファイルに対してテストするプロファイルマッチングエンジンを使用する。いくつかの実施形態は、結果が到着しそうな順序及び一致する可能性が最も高いプロファイルに基づいてプロファイルをテストする特定の順序を指定する。
【０３７５】
図７４〜図７７は、４つの異なるページに対するいくつかの実施形態のページプロファイルマッチング処理の一例を示す。図７４は、４つのページプロファイル、すなわち単純なページ７４０１、標準的なページ７４０２、リッチページ７４０３及びレイアウトページ７４０４を示す。各プロファイルは、少なくとも１つの論理的述語を含む。すなわち、特にプロファイル７４０１は３つの述語７４１１〜７４１３を含み、プロファイル７４０２は４つの述語７４２１〜７４２４を含み、プロファイル７４０３は２つの述語７４３１及び７４３２を含み、プロファイル７４０４は述語を１つだけ含む。
【０３７６】
図７４は、図示した順序でページプロファイルに対してテストされるページ７４００を更に示す。ページ７４００は、図形オブジェクト７４５０及びテキスト行７４６０のみを含む。ページ７４００のボディは、子（ページ境界であり、それ自体は子を有さない）を１つだけ有し、１つのレイアウトにおいて１カラムのテキストのみがあるため、ゾーンに対するプロファイルは単純である。いくつかの実施形態において、プロファイルが一致すると、他のプロファイルはテストされない。図７４の破線は、ページ７４００に対するページプロファイルを判定するためにプロファイルマッチングエンジンにより使用された述語を通るパスを示す。第１に、エンジンはページのボディが子を１つだけ有するかを判定する（述語７４１１）。この述語が真として評価されるため、エンジンは、子が子ゾーンを有さないと判定する（述語７４１２も真）。最後に、エンジンは、ゾーンプロファイルが単純であるか（すなわち、１つのレイアウトに１カラムのテキストのみが存在するか）を判定する（述語７４１３も真）。全ての３つの述語がページ７４００に対して真であるため、プロファイルマッチングエンジンは、ページ７４００が単純なページであると判定する。従って、特定の方法（例えば、カラムの識別）はページ７４００については除去される。
【０３７７】
図７５は、ページプロファイル７４０１〜７４０４に対してテストされる第２のページ７５００を示す。ページ７５００は、図形オブジェクト７５４０、ヘッダ行７５４５及び２カラムのテキスト行７５５０を含む。ページ７５００のボディは１つの子（子を有さないページ境界）を有し、ゾーンのテキストはヘッダ及び２カラムのテキストである。図７５の破線は、ページ７５００に対するページプロファイルを判定するためにプロファイルマッチングエンジンにより使用された述語を通るパスを示す。最初にエンジンは、ページのボディが子を１つだけ有するかを判定する（述語７４１１）。この述語が真であると評価されるため、エンジンは、子が子ゾーンを有するかを判定する（述語７４１２も真）。エンジンは、ゾーンプロファイルが単純なプロファイルであるかを判定する（述語７４１３は偽）。ヘッダ及び２つのカラムが存在するため、ゾーンプロファイルは単純ではなく、述語７４１３が偽となり、マッチングエンジンは次のプロファイルをチェックする。述語７４２１〜７４２４は全てページ７５００に対して真であるため、プロファイルマッチングエンジンは、ページ７５００が標準的なページであることを判定する。これらが全て図７４のページ７４００に対して真であり、単純なページプロファイル７４０１が最初に評価（マッチング）されるため、標準的なページプロファイル７４０２はページ７４００に対してチェックされることはなかった。
【０３７８】
図７６は、ページプロファイル７４０１〜７４０４に対してテストされる第３のページ７６００を示す。ページ７６００は、テキストを有するヘッダゾーン、サイドバー、中央のコールアウトの周囲の主レイアウト及びテキストを有する最下部ゾーンを含むいくつかの子を有する主ゾーンを含む。図７６の破線は、ページ７６００に対するページプロファイルを判定するためにプロファイルマッチングエンジンにより使用された述語を通るパスを示す。最初にエンジンは、ページのボディが子を１つだけ有するかを判定する（述語７４１１）。この述語が真として評価されるため、エンジンは、子が子ゾーンを有さないかを判定する（述語７４２１は偽）。第１ゾーンは複数の子を有するため、述語７４１２は偽であり、マッチングエンジンは次のプロファイルをチェックする。述語７４２２は、同様の理由で偽であるため、マッチングエンジンは第３のプロファイルに進み、述語７４３１及び７４３２は、レイアウト数が少なく且つページが主フローレイアウト（同心矩形を囲むレイアウト）を有するために真と評価される。従って、ページ７５００はリッチページとして分類される。
【０３７９】
図７７は、ページプロファイル７４０１〜７４０４に対してテストされる第４のページ７７００を示す。ページ７７００は、図形を有する大きいゾーン及びテキストを有する島、並びにテキストを有するより小さいゾーンを含む。図７７の破線は、ページ７４００に対するページプロファイルを判定するためにプロファイルマッチングエンジンにより使用された述語を通るパスを示す。最初にエンジンは、ページのボディが子を１つだけ有するかを判定する（述語７４１１）。この述語は偽と評価されるため、マッチングエンジンは次のプロファイルをチェックする（同様の理由で偽となる）。第３のプロファイルにおいて、ページ７７００が主フローレイアウトを有さないため、述語７４３２は偽である。述語７４４１は常に真であるため、ページ７７００はレイアウトページとして分類される。ページが前のいずれのプロファイルとも一致しないとレイアウトページとして自動的に分類されるため、述語７４４１は常に真である。プロファイルが一致すると、再構成方法はプロファイル中の命令に従って実行、除去等が行われる。
【０３８０】
ＶＩＩＩ．関心領域の識別及び選択、並びに文書のナビゲーション及び表示
多くの場合、電子書籍リーダ等の文書閲覧アプリケーションは、文書を最適に表示し且つ文書内を最適にナビゲートする方法を認識する必要がある。これは、文書のページ全体を読みやすいように１度に表示できない小型スクリーンデバイスにおいて特に重要である。例えば場合によっては、文書ビューアは、コンテンツの表のエントリが文書の特定の小領域にリンクしていること、あるいは文書の２つの小領域が関連していること（例えば、コールアウトが特定の記事の一部であること又は１つのカラムが次のカラムに続くこと）を認識できるべきである。
【０３８１】
本発明のいくつかの実施形態は、文書の表示及びナビゲーションのために文書再構成から得られた情報（すなわち、段落及びカラム情報、表情報等）を使用する。特にいくつかの実施形態は、小型スクリーンデバイス（例えば、メディアプレーヤ、携帯電話等）における表示及びナビゲーションに対して意味的に再構成された文書の表示及びナビゲーションを適応させる。
【０３８２】
Ａ．関心領域の識別及び選択
いくつかの実施形態は、意味的に再構成された文書中の関心領域を識別及び選択し、関心領域の選択に基づいて文書の表示を変更する方法を提供する。図７８は、いくつかの実施形態において関心位置の識別に基づいて文書を表示する処理７８００を概念的に示す。処理７８００については図７９と共に説明する。図７９は、本発明のいくつかの実施形態に従って関心位置が選択され且つ表示が変更される小型スクリーンデバイスにおけるシーケンス７９００（７９０５〜７９２０）を示す。
【０３８３】
図７８に示すように、処理７８００は、意味的に再構成された文書中の関心位置の指示を受信する（７８０５）。いくつかの実施形態において、意味的に再構成された文書は、第ＩＩ節〜第ＶＩ節において上述したように文書再構成の結果である文書オブジェクトモデルを含む。いくつかの実施形態における文書オブジェクトモデルは、文書再構成処理中にコンテンツ情報を読み込まれた後、第ＩＩ節で説明されたようなゾーングラフを含む。いくつかの実施形態の文書オブジェクトモデルは、コンテンツ（例えば、カラム、段落、画像等）の読み取り順序を更に示す。
【０３８４】
いくつかの実施形態は、ディスプレイにおける点の選択として関心位置の指示を受信する。例えば選択は、カーソル制御デバイス（例えば、マウス、タッチパッド等）により行われる。関心位置は、ユーザが画面をタップすること（例えば、シングルタップ、ダブルタップ、ピンチング動作等）によりタッチスクリーンデバイスにおいて指示できる。図７９を参照すると、シーケンス７９００は、ユーザ７９２５が文書の一部分を表示しているディスプレイ７９３０において１つの点を選択することを示す（７９０５）。関心位置７９３５は、ユーザが選択するために画面に触れたディスプレイ７９３０における点に示される（７９１０）。
【０３８５】
次に処理７８００は、意味的に再構成された文書中の関心領域を識別する（７８１０）。シーケンス７９００は、段落７９４０が関心位置７９３５の選択に基づいて関心領域として識別されたことを示す。いくつかの実施形態は、関心位置７９３５の場合のように関心位置が段落のバウンディングボックス内にある場合にその段落を関心領域として識別する。
【０３８６】
関心領域の識別後、処理７８００は、関心領域を表示装置の閲覧領域に配置するために要求された変換を適用する（７８１５）。いくつかの実施形態において、処理８０００及び８１００に関して以下に説明するように、変換は回転、ズーム及び平行移動の組み合わせを含む。次に処理は、適用された変換に基づいて文書を描く（７８２０）。その後、処理は終了する。シーケンス７９００は、指定された変換に従って、段落７９４０が拡大され且つ垂直及び水平方向に中央に置かれたことを示す（７９２０）。いくつかの実施形態において、処理は元の（すなわち、非構造化）文書を表示するが、文書をパン及びズームするために構造要素（例えば、構造化文書から得られる）の位置の知識を使用する。
【０３８７】
図８０は、関心領域を識別し、表示装置上に関心領域を描くために変換を適用するいくつかの実施形態の詳細な処理８０００を概念的に示す。図示するように、処理８０００は関心位置を受信する（８００５）。いくつかの実施形態において、関心位置はユーザによる選択（例えば、カーソル制御デバイス又はタッチスクリーンによる選択）に基づいて使用される。
【０３８８】
関心位置に基づいて、処理は受信した関心位置に基づく意味的に再構成された文書中の選択したオブジェクトを判定する（８０１０）。いくつかの実施形態において、選択したオブジェクトは文字、単語、テキスト行、画像等であってもよい。いくつかの実施形態において、意味的に再構成された文書は、第ＩＩ節〜第ＶＩ節において上述したように文書再構成の結果である文書オブジェクトモデル（ＤＯＭ）を含む。いくつかの実施形態における文書オブジェクトモデルは、文書再構成処理中にコンテンツ情報を読み込まれた後、第ＩＩ節で上述したようなゾーングラフを含む。
【０３８９】
次に処理は、段落又は図形オブジェクトに到達するまで文書階層を上位方向に進む（８０１５）。いくつかの実施形態において、文書階層は、コンテンツ情報を読み込まれたゾーングラフ（すなわち、ＤＯＭ）である。選択したオブジェクトが単語である場合、いくつかの実施形態において、処理はその単語から単語を含むテキスト行に、テキスト行を含む段落に向かって階層を進む。
【０３９０】
処理は、識別したオブジェクトが段落であるかを判定する（８０２０）。識別したオブジェクトが段落でない場合、それは図形オブジェクトである。いくつかの実施形態において、図形オブジェクトは形状、画像又は結合グラフ（すなわち、複合図形オブジェクト）のいずれかであってもよい。識別したオブジェクトが図形オブジェクトである場合、処理は識別したオブジェクトの直立バウンディングボックスとして関心矩形（ＲＯＩ）を規定する（８０２５）。その後、ＲＯＩの幅及び高さが表示領域の幅及び高さより大きくならないようにズームする（８０３０）。その後、以下に説明する８０６０に進む。
【０３９１】
識別したオブジェクトが段落である場合、処理は段落の親カラムの幅及び段落の高さを有する矩形を規定する（８０３５）。処理は、段落に対する任意の回転を矩形に適用し、回転された矩形の直立バウンディングボックスとしてＲＯＩを規定する（８０４０）。いくつかの実施形態において、段落は、文書オブジェクトモデルの回転グループにある場合に回転される。いくつかの実施形態は、第ＩＩ節で上述したように回転グループを規定する。
【０３９２】
その後、段落の並び線（回転前）が表示領域の対角線より急であるかを判定する（８０４５）。例えば表示領域が正方形である場合、並び線が４５°より急であるか否かが判定される。段落の並び線が表示領域の対角線より急である場合、ＲＯＩが表示領域の高さより大きくならないようにズームする（８０５０）。その後、以下に説明する８０６０に進む。一方、段落の並び線が表示領域の対角線より急でない場合、ＲＯＩが表示領域の幅より大きくならないようにズームする（８０５５）。
【０３９３】
次に処理８０００は、ＲＯＩ（上記動作で規定されるような）が水平方向に表示領域に適合するかを判定する（８０６０）。ＲＯＩが水平方向に適合する場合、処理はＲＯＩを水平方向の中央に配置する（８０６５）。その後、以下に説明する８０７５に進む。ＲＯＩが水平方向に適合しない場合、処理は関心位置を水平方向の中央に配置する（８０７０）。その後、ＲＯＩが垂直方向に表示領域に適合するかを判定する（８０７５）。ＲＯＩが垂直方向に適合する場合、処理はＲＯＩを垂直方向の中央に配置する（８０８０）。その後、以下に説明する８０８７に進む。ＲＯＩが垂直方向に適合しない場合、処理は関心位置を垂直方向の中央に配置する（８０８５）。
【０３９４】
次に処理は、関心位置を含むページの最下部又は最上部のエッジが表示領域にあるかを判定する（８０８７）。表示領域にある場合、１ページのみが表示され且つ表示領域全体が垂直方向に占有されるように、可視のページのエッジを表示領域の対応する（すなわち、最上部又は最下部の）エッジに移動する（８０９０）。その後処理は、関心位置を含むページの右エッジ又は左エッジが表示領域にあるかを判定する（８０９２）。表示領域にある場合、１ページのみが表示され且つ表示領域全体が垂直方向に占有されるように、可視のページのエッジを表示領域の対応する（すなわち、右又は左）エッジに移動する（８０９５）。最後に処理は、上記変換の全てを適用された表示領域を再度描く（８１９７）。その後、処理は終了する。
【０３９５】
いくつかの実施形態は、選択した関心領域を表示するために変換（例えば、ズーム、平行移動、回転等）の他の組み合わせを使用する。例えば処理８０００は、図形オブジェクトである関心領域と比較して、段落である関心領域に対して異なる方法でズームの仕方を判定し、その一方で、他の実施形態は、ズームが全ての関心領域に対して同一になるように関心領域を規定する。例えば以下に説明する処理８１００は、このように関心領域においてズームする。
【０３９６】
図８１は、関心領域を識別し、表示装置上に関心領域を描くために変換を適用するいくつかの実施形態の詳細な処理８１００を概念的に示す。処理８１００は、上述した処理８０００と同様である。いくつかの実施形態において、ユーザは処理８０００でのズーム変換が好ましいか又は処理８１００でのズーム変換が好ましいかを選択できる。他の実施形態は、２つの処理のうちの一方を実現する。図示するように、処理８１００は関心位置を受信する（８１０５）。いくつかの実施形態において、関心位置はユーザによる選択（例えば、カーソル制御デバイス又はタッチスクリーンによる選択）に基づいて使用される。
【０３９７】
関心位置に基づいて、処理は受信した関心位置に基づく意味的に再構成された文書において選択したオブジェクトを判定する（８１１０）。いくつかの実施形態において、選択したオブジェクトは文字、単語、テキスト行、画像等であってもよい。いくつかの実施形態において、意味的に再構成された文書は、第ＩＩ節〜第ＶＩ節において上述したように文書再構成の結果である文書オブジェクトモデルを含む。いくつかの実施形態における文書オブジェクトモデルは、文書再構成処理中にコンテンツ情報を読み込まれた後、第ＩＩ節で上述したようなゾーングラフを含む。
【０３９８】
次に処理８１１５は、段落又は図形オブジェクトに到達するまで文書階層を上位方向に進む（８１１５）。いくつかの実施形態において、文書階層は、コンテンツ情報を読み込まれたゾーングラフである。選択したオブジェクトが単語である場合、いくつかの実施形態において、処理はその単語から単語を含むテキスト行に、テキスト行を含む段落に向かって階層を進む。
【０３９９】
処理は、識別したオブジェクトが段落であるかを判定する（８１２０）。識別したオブジェクトが段落でない場合、それは図形オブジェクトである。いくつかの実施形態において、図形オブジェクトは形状、画像又は結合グラフ（すなわち、複合図形オブジェクト）のいずれかであってもよい。識別したオブジェクトが図形オブジェクトである場合、処理は識別したオブジェクトの直立バウンディングボックスとして関心矩形（ＲＯＩ）を規定し（８１２５）、以下に説明する８１５０に進む。
【０４００】
識別したオブジェクトが段落である場合、処理は、段落の親カラムの幅及び段落の高さを有する矩形を規定する（８１３５）。処理は、段落に対するあらゆる回転を矩形に適用する（８１４０）。いくつかの実施形態において、段落は、文書オブジェクトモデルの回転グループにある場合に回転される。いくつかの実施形態は、第ＩＩ節で上述したように回転グループを規定する。
【０４０１】
その後処理は、関心位置の上にある第１の特定の数の行及び関心位置の下にある第２の特定の数の行を含む直立バウンディングボックスとしてＲＯＩを規定する（８１４５）。この規定は、ユーザが関心位置に興味があり且つその関心位置の上下の特定の数の行のテキストを見たいだろうという仮定に基づく。
【０４０２】
規定されたＲＯＩを使用して、処理８１００は、ＲＯＩの幅及び高さが閲覧領域の幅及び高さより大きくならないようにズームする（８１５０）。
【０４０３】
次に処理８１００は、ＲＯＩ（上記動作で規定されるような）が水平方向に表示領域に適合するかを判定する（８１６０）。ＲＯＩが水平方向に適合する場合、処理はＲＯＩを水平方向の中央に配置する（８１６５）。ＲＯＩが水平方向に適合しない場合、処理は関心位置を水平方向の中央に配置する（８１７０）。その後、ＲＯＩが垂直方向に表示領域に適合するかを判定する（８１７５）。ＲＯＩが垂直方向に適合する場合、処理はＲＯＩを垂直方向の中央に配置する（８１８０）。ＲＯＩが垂直方向に適合しない場合、処理は関心位置を垂直方向の中央に配置する（８１８５）。
【０４０４】
関心位置及び／又は関心領域を中央に配置した後、処理は、関心位置を含むページの最下部又は最上部のエッジが表示領域にあるかを判定する（８１８７）。表示領域にある場合、１ページのみが表示され且つ表示領域全体が垂直方向に占有されるように、可視のページのエッジを表示領域の対応する（すなわち、最上部又は最下部の）エッジに移動する（８１９０）。その後、処理は、関心位置を含むページの右エッジ又は左エッジが表示領域にあるかを判定する（８１９２）。表示領域にある場合、１ページのみが表示され且つ表示領域全体が垂直方向に占有されるように、可視のページのエッジを表示領域の対応する（すなわち、右又は左）エッジに移動する（８１９５）。最後に処理は、上記変換の全てを適用された表示領域を再度描き（８１９７）、終了する。
【０４０５】
Ｂ．意味的に再構成された文書の表示及びナビゲーション
いくつかの実施形態は、意味的に再構成された文書の表示及びナビゲーションを最適化する種々の方法を提供する。いくつかの実施形態において、表示及びナビゲーションは小型スクリーンデバイス（例えば、メディアプレーヤ、携帯電話等）に対して最適化される。
【０４０６】
図８２は、意味的に再構成された文書を表示するいくつかの実施形態の処理８２００を概念的に示す。図示するように、処理は意味的に再構成された文書を受信する（８２０５）。いくつかの実施形態において、意味的に再構成された文書は、第ＩＩ節〜第ＶＩ節で上述したように文書再構成の結果である文書オブジェクトモデルを含む。いくつかの実施形態における文書オブジェクトモデルは、文書再構成処理中にコンテンツ情報を読み込まれた後、第ＩＩ節で説明されたようなゾーングラフを含む。
【０４０７】
処理は、意味的に再構成された文書を小領域に分割する（８２０５）。いくつかの実施形態において、分割は文書に対する文書オブジェクトモデルの情報に基づく。いくつかの実施形態において、各小領域は順序づけされた単語シーケンス、関連付けられた図形オブジェクト及び他のネストされた小領域である。例えばネストは、枠で囲まれた例又はメモ、あるいは表のセルとして現れる。
【０４０８】
処理８２１５は、小領域にわたる自然なフローに対応するように再構成文書の閲覧を適応させる。その後、処理は終了する。いくつかの実施形態において、適応は複数の方法で表せる。図８３は、いくつかの実施形態のそのような１つの適応を示す。図８３は、最初２つのカラム８３１０及び８３１５で意味的に再構成された文書の一部を表示しているデバイス８３０５を示す。いくつかの実施形態において、文書は最初２つのカラムを有していたが、他の例において、文書はデバイス８３０５で閲覧するように既に適応されている。
【０４０９】
図８３は、デバイス８３０５の向きを変更することを示す。デバイスは、向きを変更されたことを認識するための加速度計又は他のそのようなデバイスを含む。従って、ビューは、テキストが水平方向になるように９０°回転する。しかし、同一の２つのカラム８３１０及び８３１５は表示されない。これらのカラムのテキストは、全てのテキストが同一サイズで依然として表示され且つ可読性が維持されるように３つのカラム８３２０〜８３３０に分割される。意味再構成処理により共に配置された文書オブジェクトモデルは、テキストの読み取り順序が第１のカラムで上から下に流れ且つその後第１のカラムの最上部に戻ることを示すため、これは可能である。
【０４１０】
図８４は、意味的に再構成された文書中の領域間をナビゲートするいくつかの実施形態の処理８４００を概念的に示す。図示するように、処理８４００は意味的に再構成された文書の領域を表示する（８４０５）。いくつかの実施形態において、意味的に再構成された文書は、第ＩＩ節〜第ＶＩ節において上述したように文書再構成の結果である文書オブジェクトモデルを含む。いくつかの実施形態における文書オブジェクトモデルは、文書再構成処理中にコンテンツ情報を読み込まれた後、第ＩＩ節で説明されたようなゾーングラフを含む。意味的に再構成された文書の領域は、いくつかの実施形態において文書オブジェクトモデルにより規定され、テキスト領域、図形等を含むことができる。
【０４１１】
処理８４００は、表示された領域の終端を通過した入力スクロールを受信する（８４１０）。いくつかの実施形態において、終端は領域の最下部（スクロールダウン）又は最上部（スクロールアップ）であってもよい。例えば、テキストのカラムの一部が表示される場合、処理は、カラムの最上部へのスクロールアップ又はカラムの終端へのスクロールダウンの入力を受信する。
【０４１２】
処理は、文書の意味的に再構成された階層モデル（すなわち、文書オブジェクトモデル）を使用して文書のフローにおける次の領域をディスプレイに自動的に移動する（８４１５）。上述したように、処理は文書オブジェクトモデルを使用して文書中のテキスト及び関連した図形にわたるフローを認識できる。カラムの例に継続すると、ユーザがカラムの終端を通過してスクロールダウンした場合、いくつかの実施形態は次のカラムの最上部にジャンプする。いくつかの実施形態は、第２のカラムの最上部からのテキストを第１のカラムの最下部に付加し、テキストが全て１つのカラムであるかのようにスクロールし続ける。
【０４１３】
図８５は、小型スクリーンデバイスに対して意味的に再構成された文書のレイアウトを変更するいくつかの実施形態の処理８５００を概念的に示す。図示するように、処理は特定のレイアウトを有する意味的に再構成された文書を受信する（８５０５）。いくつかの実施形態において、意味的に再構成された文書は、第ＩＩ節〜第ＶＩ節において上述されたように、文書再構成の結果である文書オブジェクトモデルを含む。いくつかの実施形態における文書オブジェクトモデルは、文書再構成処理中にコンテンツ情報を読み込まれた後、第ＩＩ節で説明されたようなゾーングラフを含む。
【０４１４】
図８６は、各々がいくつかのテキスト行を含む特定の２カラムレイアウトを有する文書のページ８６００を大画面に表示されたように又は意味再構成せず表示されるように示す。ページ８６００の第１のカラムは６つのテキスト行及び第７のテキスト行の一部にわたる単語の集合８６０５を含む。
【０４１５】
処理８５００は、文書の階層モデル（すなわち、文書オブジェクトモデル）を使用して文書のフローを維持しつつ小型スクリーンデバイスで閲覧するためにレイアウトを変更する（８５１０）。処理は、小型スクリーンデバイスに少なくとも変更したレイアウトの一部を表示する（８５１５）。その後、処理は終了する。図８６は、ページ８６００の第１のカラムのテキスト８６０５を表示する小型スクリーンデバイス８６１０を示す。しかし、テキストは、小型クスリーンデバイスにおいて理想的な閲覧をするように適応されている。ユーザが目を細めて見る必要があるようにテキストを非常に小さく表示するのではなく、テキストサイズが拡大され、行毎の単語数が減少される。いくつかの実施形態において、スクロールダウンにより、ユーザは順番にテキストを読み続けられる。
【０４１６】
いくつかの実施形態において、文書に対する文書オブジェクトモデルは、種々の状況、表示領域のサイズ及び表示領域のアスペクト比に対してレイアウトを適応的に表示する方法に関する提案を含む。これらの提案は、いくつかの実施形態において、再構成の結果に基づいて文書再構成処理中に生成されるか、ユーザ設定として設定されるか、あるいは文書の最初の作成者により設定される。いくつかの実施形態は、文書と共に再構成文書情報（例えば、文書オブジェクトモデル）を格納し、再構成文書と共にそのようなユーザ設定を格納できる。いくつかの実施形態は、ＸＭＬ形式で又はＰＤＦ（又は同様の形式の）文書のメタデータとして文書情報を格納する。
【０４１７】
ＩＸ．レイアウトにわたるテキストの選択
文書の表示及びナビゲーションに加えて、テキストを選択する機能は、ユーザにとって非常に重要だろう。複数のレイアウトに分割されることになる複数の異なるテキストフロー（例えば、複数の記事）を含む複雑なページは、順番にテキストをインテリジェント選択しようとするアプリケーションにとって問題となる可能性がある。テキストを選択する（例えば、コピー及び貼り付けをするために）場合、文字、単語、テキスト行等の順序付けが保存されることが重要である。これは、カラム内の選択だけでなく、複数のカラム、レイアウト、ゾーン又はページに及ぶ選択を含む。
【０４１８】
いくつかの実施形態は、意味的に再構成された文書内のテキストを選択する方法を提供する。いくつかの実施形態において、意味的に再構成された文書は、第ＩＩ節〜第ＶＩ節において上述したように文書再構成の結果である文書オブジェクトモデルを含む。いくつかの実施形態における文書オブジェクトモデルは、文書再構成処理中にコンテンツ情報を読み込まれた後、第ＩＩ節で説明されたようなゾーングラフを含む。いくつかの実施形態の文書オブジェクトモデルは、レイアウト内のカラムの読み取り順序及び１つのレイアウトから次のレイアウトへのフロー等のレイアウト及びフロー情報を含む。
【０４１９】
図８７は、意味的に再構成された文書におけるテキストの選択を判定するいくつかの実施形態の処理８７００を概念的に示す。図示するように、処理８７００は文書に対するゾーン及びレイアウト情報を受信する（８７０５）。いくつかの実施形態において、ゾーン情報は、第ＩＩ節に上述したように文書のコンテンツを読み込まれたゾーングラフを含む。いくつかの実施形態において、レイアウト情報は、第ＩＶ節で上述したようなカラム及びレイアウト、並びにレイアウト中及びレイアウト間の読み取りフローを含む。
【０４２０】
処理は、文書の一部を表示する（８７１０）。いくつかの実施形態において、文書は標準的な画面に元の閲覧寸法で表示される。しかし、いくつかの実施形態は、第ＶＩＩＩ節で上述した処理の１つを使用して適応的に文書を表示する（例えば、小型スクリーンデバイスに文書を表示する場合）。
【０４２１】
処理８７００は、選択の開始点を受信する（８７１５）。更に処理は、選択の終了点を受信する（８７２０）。いくつかの実施形態は、カーソル制御デバイス（例えば、マウス）、キーボード又はそれらの組み合わせを介して開始点及び終了点を受信する。例えば選択は、ユーザがマウスによりテキストの開始点をクリックし、マウスボタンを押下したままテキストの終了点までドラッグし、マウスボタンを解放することにより規定される。同様の処理が他のカーソル制御デバイスを使用して実行可能である。いくつかの実施形態は、例えば単語を選択するためのダブルクリック又はテキスト行を選択するためのトリプルクリックであるカーソル制御デバイスによる他の種類の選択を可能にする。いくつかの実施形態において、更にユーザは、意味的に再構成された文書中のテキストを選択するためにキーボードの選択キー（例えば、シフトキー及び矢印キー）を使用できる。
【０４２２】
ドラッグ選択の場合、いくつかの実施形態は、マウスが最初にクリックされた点を開始点と規定し、マウスボタンが押下されている場合はカーソルの現在の点又はマウスボタンが解放された場合にはマウスボタンの解放点を終了点と規定する。ダブルクリック及びトリプルクリック、あるいは構造要素（例えば、段落、カラム等）を選択する他のそのような選択機構の場合、いくつかの実施形態は、構造要素のバウンディングボックスの左下の点を開始点と規定し、右上の点を終了点と規定する。いくつかの実施形態において、構造要素のバウンディングボックスは、印刷の範囲を結合したもののバウンディングボックスである。いくつかの実施形態において、文字に対する印刷の範囲は、左側のアンカ点から右側のアンカ点＋幅（可能性として後続の文字によるカーニングにより調整される）に拡張され、アンカの上のアセンダからアンカの下のディセンダまで拡張される。
【０４２３】
処理は、開始点、終了点、並びに文書のレイアウト及びフロー特性を使用して選択したテキストの小領域を判定する（８７２５）。その後、処理は終了する。種々の実施形態は、意味的に再構成された文書において開始及び終了点を与えられたその文書のどのレイアウトからどのテキストが選択されるかを厳密に判定する種々の詳細な処理を提供する。その一部の処理について以下に説明する。
【０４２４】
図８８は、意味的に再構成された文書のページ８８０１におけるテキストの選択のシーケンス８８００を示す。ページ８８０１は、２つの主なカラム８８０５及び８８１０を含み、ページの中央に小さなコールアウト８８１５（異なるレイアウトである）を含む。シーケンス８８００は、選択に対する開始点８８２０及び終了点８８２５を更に示す。これらの開始点及び終了点から結果として得られるテキストの選択８８３０は、その開始点から第１のカラムの最下部まで及び第２のカラムの最上部から終了点まで及ぶ。中央のコールアウト８８１５のテキストは、図示した実施形態においては選択されない。中央のコールアウト８８１５が選択８８３０に含まれるような選択処理の変形例が可能であることは当業者には理解されるだろう。
【０４２５】
図８９は、意味的に再構成された文書におけるテキストの選択を規定するいくつかの実施形態の詳細な処理８９００を概念的に示す。図示するように、処理８９００は、文書に対するゾーン及びレイアウトを受信する（８９０５）。いくつかの実施形態において、ゾーン情報は、第ＩＩ節において上述したように、文書のコンテンツを読み込まれたゾーングラフを含む。いくつかの実施形態において、レイアウト情報は、第ＩＶ節で上述したようなカラム及びレイアウト、並びにレイアウト中及びレイアウト間の読み取りフローを含む。
【０４２６】
次に処理は、文書中の各カラムに読み取り順序を割り当てる（８９１０）。いくつかの実施形態は、各ページにおいてゼロの読み取り順序から開始する（すなわち、読み取られる第１のカラムに読み取り順序ゼロが割り当てられる）。いくつかの実施形態は、特定のレイアウト内で、各カラムに割り当てられた読み取り順序がレイアウトのカラムの順序と一貫している必要があり且つ特定のレイアウト外のカラムが特定のレイアウトの開始カラム及び終了カラムの読み取り順序の間の読み取り順序を有することができないという要件を課す。いくつかの実施形態において、読み取り順序が最初になるレイアウトに関する決定は任意である。他の実施形態は、ページの設計に基づいてレイアウトからレイアウトへの読み取り順序を識別する。
【０４２７】
その後、処理は文書の一部を表示する（８９１５）。いくつかの実施形態において、文書は標準的な画面において元の閲覧寸法で表示される。しかし、いくつかの実施形態は、第ＶＩＩＩ節で上述した処理の１つを使用して文書を適応的に表示する（例えば、小型スクリーンデバイスに文書を表示する場合）。
【０４２８】
処理は、テキスト選択のための開始点及び終了点を受信する（８９２０）。いくつかの実施形態は、カーソル制御デバイス（例えば、マウス）、キーボード又はそれらの組み合わせを介して開始点及び終了点を受信する。例えば選択は、ユーザがマウスでテキストの開始点をクリックし、マウスボタンを押下したままテキストの終了点までドラッグし、マウスボタンを解放することにより規定される。他のカーソル制御デバイスを使用して同様の処理が実行できる。いくつかの実施形態は、例えば単語を選択するためのダブルクリック又はテキスト行を選択するためのトリプルクリックであるカーソル制御デバイスによる他の種類の選択を可能にする。いくつかの実施形態において、更にユーザは、意味的に再構成された文書中のテキストを選択するためにキーボードの選択キー（例えば、シフトキー及び矢印キー）を使用できる。
【０４２９】
次に処理は、開始点及び終了点が同一レイアウトにあるかを判定する（８９２５）。開始点及び終了点が同一レイアウトにない場合、処理は開始点と同一レイアウトにおいて新しい終了点を判定する（８９３０）。いくつかの実施形態は、ユーザが選択デバイスを第２のレイアウトに誤って移動させてしまった可能性が高いという仮定の下、及び選択が複数のレイアウトに及ぶのと対照的に単一のレイアウト内にある方がより確実に判定できるため、開始点と同一のレイアウトに終了点を移動する。いくつかの実施形態は、開始点から終了点までの線を規定し、線が開始点のレイアウトを離れる場所が新しい終了点として規定される。他の実施形態は、開始点のレイアウトへと、終了点を水平方向又は垂直方向に平行移動させる。
【０４３０】
処理は、開始点が読み取り順序で終了点より前であるかを判定する（８９３５）。いくつかの実施形態において、開始点及び終了点が同一カラムにある場合、読み取り順序は、２つの点の高い方（及び同一の高さの場合は最も左側）の点が読み取り順序の早い点になるように判定される。開始点が読み取り順序で終了点より後である場合、処理は、開始点が読み取り順序で終了点より常に先になるように選択の開始点及び終了点を交換する（８９４０）。
【０４３１】
次に処理８９００は、開始点及び終了点が同一カラムにあるかを判定する（８９４５）。２つの点が同一カラムにある場合、処理は開始点から終了点までそのカラムのテキストを選択する（８９５０）。その後、処理は終了する。２つの点が同一カラムにない場合、処理は開始点から開始点を含むカラムの最下部まで、終了点を含むカラムの最上部から終了点まで及び間にある全てのカラムのテキストを選択する（８９５５）。その後、処理は終了する。いくつかの実施形態において、最初に選択した文字は開始点の文字又は開始点の右側の文字であり、最後に選択した文字は終了点の文字又は終了点の左側の文字である。いくつかの実施形態において、終了点が２つの行の間にある場合、上の全ての行が選択され、下の行は選択されない。テキストが選択されると、処理は終了する。
【０４３２】
図９０は、意味的に再構成された文書のページ９０００を示す。ページ９０００は、２つの主なカラム９００５及び９０１０並びに中央のテキストボックス９０１５を含む。図示するように、これらはそれぞれ読み取り順序を割り当てられる（カラム９００５は読み取り順序１を有し、カラム９０１０は読み取り順序２を有し、テキストボックス９０１５は読み取り順序３を有する）。図９０は、選択の開始点９０２０及び終了点９０２５並びに開始点及び終了点により規定された線９０３０を更に示す。図９１は、処理８９００に従って開始点９０２０及び終了点９０２５により規定された選択９１００を示す。線９０３０がテキストボックス９０１５を含むが、それは異なるレイアウトであるため、処理８９００に従ってテキストは選択されない。選択９１００は開始点から終了点にわたり、開始点の下にあるカラム９００５の全ての行及び開始点の上にあるカラム９０１５の全ての行を選択する。
【０４３３】
図９２は、ページ９０００、異なる選択の開始点９２２０及び終了点９２２５、並びに開始点及び終了点により規定された線９２３０を示す。図９３は、処理８９００のいくつかの実施形態に従って開始点９２２０及び終了点９２２５により規定された選択９３００を示す。終了点９２２５が開始点９２２０と同一のレイアウトにないため、終了点は開始点９２２０と同一のレイアウトの点に移動される。図９３に示した実施形態は、開始点と終了点との間に線を描き、線が開始点のレイアウトを離れる場所に終了点を移動する。選択９３００は、終了点９２２５を点９３０５に移動した結果である。
【０４３４】
図９４は、意味的に再構成された文書中のテキストの選択を規定するいくつかの実施形態の別の詳細な処理９４００を示す。いくつかの実施形態は、処理８９００又は処理９４００を実現する。他の実施形態により、ユーザは、テキストの選択が処理８９００（選択を１つのレイアウトに制限する）を使用して行われるか又は処理９４００（複数のレイアウトにわたる選択を可能にする）を使用して行われるかを選択できる（例えば、メニューオプションを介して）。
【０４３５】
図示するように、処理９４００は、文書に対するゾーン及びレイアウト情報を受信する（９４０５）。いくつかの実施形態において、ゾーン情報は、第ＩＩ節で上述したように文書のコンテンツを読み込まれたゾーングラフを含む。いくつかの実施形態において、レイアウト情報は、第ＩＶ節で上述したようなカラム及びレイアウト、並びにレイアウト中及びレイアウト間の読み取りフローを含む。
【０４３６】
次に処理は、文書の各カラムに読み取り順序を割り当てる（９４１０）。いくつかの実施形態は、各ページにおいてゼロから開始する。いくつかの実施形態は、特定のレイアウト内で、各カラムに割り当てられた読み取り順序がレイアウトのカラムの順序と一貫している必要があり且つ特定のレイアウト外のカラムが特定のレイアウトの開始カラム及び終了カラムの読み取り順序の間の読み取り順序を有することができないという要件を課す。いくつかの実施形態において、読み取り順序で最初になるレイアウトに関する決定は任意である。他の実施形態は、ページの設計に基づいてレイアウトからレイアウトへの読み取り順序を識別しようとする。
【０４３７】
その後、処理９４００は文書の一部を表示する（９４１５）。いくつかの実施形態において、文書は標準的な画面において元の閲覧寸法で表示される。しかし、いくつかの実施形態は、第ＶＩＩＩ節で上述した処理の１つを使用して文書を適応的に表示する（例えば、小型スクリーンデバイスに文書を表示する場合）。
【０４３８】
処理は、テキスト選択のための開始点及び終了点を受信する（９４２０）。いくつかの実施形態は、カーソル制御デバイス（例えば、マウス）、キーボード又はそれらの組み合わせを介して開始点及び終了点を受信する。例えば選択は、ユーザがマウスでテキストの開始点をクリックし、マウスボタンを押下したままテキストの終了点までドラッグし、マウスボタンを解放することにより規定される。他のカーソル制御デバイスを使用して同様の処理が実行できる。いくつかの実施形態は、例えば単語を選択するためのダブルクリック又はテキスト行を選択するためのトリプルクリックであるカーソル制御デバイスによる他の種類の選択を可能にする。いくつかの実施形態において、更にユーザは、意味的に再構成された文書中のテキストを選択するためにキーボードの選択キー（例えば、シフトキー及び矢印キー）を使用できる。
【０４３９】
処理９４００は、開始点と終了点との間の線を規定する（９４２５）。開始点又は終了点（あるいはその双方）がカラムにない（すなわち空白、図形等にある）場合、処理は、線が通過する最後のカラムのエッジに新しい開始点又は終了点（あるいはその双方）を規定する（９４３０）。いくつかの実施形態は、線がエッジを通過するカラムのエッジでこの点を規定する。他の実施形態は、新しい開始点又は終了点を規定するために開始点又は終了点をカラムに入るように水平方向に平行移動する。
【０４４０】
処理は、開始点が読み取り順序で終了点より前であるかを判定する（９４３５）。いくつかの実施形態において、開始点及び終了点が同一カラムにある場合、読み取り順序は、２つの点の高い方（及び同一の高さの場合は最も左側）の点が読み取り順序の早い点になるように判定される。開始点が終了点より前である場合、以下に説明する９４４５に進む。開始点が読み取り順序で終了点より後である場合、処理は、開始点が読み取り順序で終了点より常に先になるように選択の開始点及び終了点を交換する（９４４０）。
【０４４１】
次に処理は、開始点から開始点を含むカラムの終端まで、終了点を含むカラムの先頭から終了点まで及び読み取り順序で開始カラムと終了カラムとの間にある全てのカラムのテキストを選択する（９４４５）。その後、処理は終了する。いくつかの実施形態において、最初に選択した文字は開始点の文字又は開始点の右側の文字であり、最後に選択した文字は終了点の文字又は終了点の左側の文字である。いくつかの実施形態において、終了点が２つの行の間にある場合、上の全ての行が選択され、下の行は選択されない。
【０４４２】
図９５は、処理９４００に従って開始点９０２０及び終了点９０２５（図９０のページ９０００における）により規定された選択９５００を示す。開始点９０２０及び終了点９０２５（図９０に示す）が同一レイアウトにあるため、中央のテキストボックス９０１５は、読み取り順序で終了点のカラムの後であるため選択されない。線９０１５に沿ってドラッグするユーザはボックス９０１５を通過し、その点において、カラム９０１０の全て及びテキストボックス９０１５の一部が選択される（以下の図９６を参照）。しかし、カーソルがボックス９０１５を離れると、カーソルの場所（終了点）までのカラム９０１０の一部のみが選択される。
【０４４３】
同様に、図９６は、処理９４００に従って開始点９２２０及び終了点９２２５（図９２のページ９０００における）により規定された選択９６００を示す。終了点９２２５が開始点９２２０とは異なるレイアウトにあるため、カラム９００５の殆ど及びカラム９０１０の全てを含む開始点のレイアウト全体が選択される。更にボックス９０１５のテキストは、終了点９２２５まで選択される。
【０４４４】
図９１及び図９３と図９５及び図９６とは、処理８９００又は処理９４００を使用して利用可能な異なる選択オプションを示す。可能性として有益である他の結果を得るために文書のレイアウト及びフローを使用する他の選択処理が可能であることは、当業者には理解されるだろう。
【０４４５】
Ｘ．効率的なクラスタ分析
上記の種々の節で説明したように、本発明のいくつかの実施形態は、文書再構成を実行するためにクラスタ分析を利用する。例えば、位置揃えガイドは密度クラスタリングを使用して識別され、結合グラフは境界クラスタリングを使用して識別され、文字間の空隙は差分クラスタリングを使用して単語及びセグメント空隙を識別するために使用される。しかし、クラスタ分析はメモリを非常に多く使用する可能性があるため、携帯電話又はメディアプレーヤ等のリソースの制限されたデバイスがクラスタ分析を実行するのは困難である可能性がある。
【０４４６】
従って、本発明のいくつかの実施形態は、効率的なクラスタ分析を実行する方法を提供する。いくつかの実施形態において、効率的なクラスタ分析により、クラスタ分析はリソースの制限されたデバイス（例えば、ハンドヘルドデバイス）で実行できる。リソースの制限されたデバイスは、利用可能なメモリ、処理能力、その双方、あるいは他の演算リソースに関して制限される。
【０４４７】
いくつかの実施形態において、クラスタ分析は、ソートされていない配列の指標を格納する間接的にソートされた配列を使用する。いくつかの実施形態は、異なる距離尺度毎にクラスタ分析を繰り返し且つ結果を比較することとは対照的に、データの最適な区分をより迅速に見つけられるように、複数の異なる距離尺度でデータを同時に区分するために間接的にソートされた配列を使用する。
【０４４８】
図９７は、クラスタ分析を使用して文書を意味的に再構成するいくつかの実施形態の処理９７００を概念的に示す。図示するように、処理９７００は、リソースを制限されたデバイスで文書を受信する（９７０５）。いくつかの実施形態において、デバイスは、メディアプレーヤ、携帯電話（例えば、ｉＰｈｏｎｅ（登録商標））又は他のハンドヘルドデバイスである。いくつかの実施形態において、文書は構造情報を含まないベクトル図形文書である。
【０４４９】
処理は、リソースの制限されたデバイスで文書データに対して効率的なクラスタ分析を実行する（９７１０）。例えばいくつかの実施形態は、単語及びセグメント空隙を識別するために差分クラスタリングを実行し、位置揃えガイドを識別するために密度クラスタリングを実行し、複合図形を識別するために境界クラスタリングを実行する。
【０４５０】
最後に、処理はクラスタ分析の結果に基づいてリソースの制限されたデバイスで文書を意味的に再構成する（９７１５）。その後、処理は終了する。図９８は、文書９８０５がリソースの制限されたデバイス９８１０で意味的に再構成される際のいくつかの実施形態のシーケンス９８００を示す。文書９８０５は、まず、座標を有する文字の集合９８１５に構文解析される（９８０１）。例えば、文字９８２０（「ｒ」）は座標｛Ｘ２，Ｙ２｝を有する。いくつかの実施形態は、図形オブジェクト（例えば、画像、形状等）を更に構文解析する。
【０４５１】
次に、効率的なクラスタ分析は文書データに適用される（９８０２）。いくつかの実施形態において、これは、単語を識別するために差分クラスタリングを使用すること、ガイドを識別するために密度クラスタリングを使用すること及び結合するグラフを識別するために境界クラスタリングを使用することを含む。他の再構成処理が更に実行される（９８０３）。例えばいくつかの実施形態において、段落及びカラムが識別される。いくつかの実施形態において、クラスタ分析処理及び他の再構成処理は、実行順序に関する限り必ずしも差別されないことが当業者には理解されるだろう。効率的なクラスタ分析及び他の再構成処理の結果は、表示、ナビゲート等が行える意味的に再構成された文書９８２５である。
【０４５２】
Ａ．演算子の集合であるクラスタ分析
いくつかの実施形態は、実数（ｒ１，ｒ２，．．．，ｒＮ）のシーケンスに適用されるいくつかの演算子に基づいてクラスタ分析を実行する（差分クラスタリングであるか、密度クラスタリングであるか、境界クラスタリングであるかに関わらず）。いくつかの実施形態は以下の演算子を含む。
・差分演算子Ｄ（（ｒ１，ｒ２，．．．，ｒＮ））＝（ｒ２−ｒ１，ｒ３−ｒ２，．．．，ｒＮ−ｒＮ−１）。いくつかの実施形態において、差分演算子Ｄは要素ｒＮの対毎のグループ化を規定する（すなわち、対｛ｒ２，ｒ１｝、｛ｒ３，ｒ２｝等に対する値を規定する）。
・ソート演算子Ｓ（（ｒ１，ｒ２，．．．，ｒＮ））＝（ｓ１，ｓ２，．．．，ｓＮ）。式中、（ｓ１，ｓ２，．．．，ｓＮ）は、ｓ１≦ｓ２≦．．．≦ｓＮとなるような（ｒ１，ｒ２，．．．，ｒＮ）の順列である。
・区分演算子Ｐ（ｇ，（ｒ１，ｒ２，．．．，ｒＮ））＝（（ｒ１，．．．，ｒＫ１），（ｒＫ１＋１，．．．，ｒＫ２），．．．，（ｒＫｐ＋１，．．．，ｒＫＭ），（ｒＫＭ＋１，．．．，ｒＮ）。式中、Ｊが集合｛Ｋ１，．．．ＫＭ｝にある場合、ｒＪ＋１−ｒＪ≧ｇである。いくつかの実施形態において、変数ｇは空隙最小値と呼ばれ、演算子Ｐは、２つの連続する値の差分が空隙最小値を上回る全ての場所でシーケンス（ｒ１，ｒ２，．．．，ｒＮ）を重なり合わないサブシーケンスに区分する。
・サブシーケンスの隣接する対を結合して単一のサブシーケンスにするために区分されたシーケンス（演算子Ｐの出力等）に何度も繰り返し作用する結合演算子Ｃ。いくつかの実施形態において、隣接する対を結合する時期を判定するテストは領域に依存しない。
・領域に依存しないテストに基づいて一部のクラスタを除去するために区分されたシーケンスに作用するフィルタリング演算子Ｆ。第ＩＩＩ節で説明した密度制約はＦの使用の一例である。
【０４５３】
差分クラスタリングのいくつかの実施形態は、上記演算子に関して実行される。同様に、境界クラスタリングは１次差分の代わりに広がり値を用いて差分クラスタリングを使用するため、境界クラスタリングのいくつかの実施形態は上記演算子によって実行される。
【０４５４】
例えばいくつかの実施形態は、ソート演算子Ｓを入力データに適用し、その後、１次差分を生成するために差分演算子Ｄを適用する。Ｓ及びＤは、２次差分（差分間の差分）を生成するために結果として得られたデータに適用される。２次差分はＳによりソートされ、２次差分は２つの互いに素のサブシーケンス（レベル内差分及びより大きいレベル間差分）に分割される。
【０４５５】
いくつかの実施形態において、分割することは、３次差分を取得するために２次差分にＤを更に適用し、その後、３次差分を順序付けするためにＳを適用することを含む。一般に２次差分における分割は、残りの３次差分より実質的に大きい３次差分が１つ存在する場合に行われる。いくつかの実施形態は領域別因子も評価する。
【０４５６】
分割が確立されると、いくつかの実施形態は、各区分がクラスタリングのレベルを表すように順序付けされた第１の差分を区分するために最小の第２のレベル内差分と等しい空隙最小値を使用してＰを適用する。いくつかの実施形態はこの区分にＣを適用するが、いくつかの実施形態は適用しない。特定のレベルでデータをクラスタに区分するために、いくつかの実施形態は、特定のレベルで最小の差分に等しい空隙最小値を使用して（ソート済み）入力データにＰを適用する。いくつかの実施形態は、この時点でもＣを適用するが、クラスタ区分を結合するためにレベル区分とは異なる基準が使用される場合が多い。最後に、いくつかの実施形態は一部のクラスタを不適格であると判定するためにＦを適用する。
【０４５７】
密度クラスタリングのいくつかの実施形態は、上記演算子に関して実行される。例えばいくつかの実施形態は、１次差分を生成するために入力データにＳを適用した後にＤを適用し、差分をソートするためにＳを適用する。差分ｄの各々に対して、いくつかの実施形態は、空隙最小値ｄを使用して演算子Ｐにより順序付けされた入力データを区分し、密度制約を使用して区分をフィルタリングする。フィルタリング後の各区分は、最適化計測値により測定され、最適な区分が最終的なクラスタリングとして選択される。いくつかの実施形態は、最大の差分から開始してソート済みシーケンス中のより小さい値に連続的に移動し、１次差分（空隙最小値である）中をループする。
【０４５８】
いくつかの実施形態において、ループは、十分な情報が存在する場合に効率化のために早く終了できる。特にいくつかの実施形態は、連続する各区分が、以前にはクラスタの１つを有する区分であって２つのクラスタに分割されたものであろうことを認識する。いくつかの実施形態は、最小サイズ密度制約を満たさないクラスタがその後もそのような制約を満たすことがないため、それらのクラスタは廃棄されることを更に認識する。いくつかの実施形態において、区分の全てのクラスタが最小サイズを下回ると、ループは早く終了される。
【０４５９】
Ｂ．クラスタ分析に対する効率的なデータ構造
いくつかの実施形態は、メモリ及び処理の節約を可能にする効率的なデータ構造を使用して効率的なクラスタ分析を実行する。例えばデータに対して新しい配列を生成するのではなくデータをソートする（例えば、演算子Ｓを入力データに適用する）時、いくつかの実施形態は、参照する値の順序でソートされた指標の配列をソートされていないデータの配列に規定する。これは、いくつかの実施形態において間接的にソートされた配列と呼ばれる。例では配列を使用するが、他のあらゆる適切なデータ構造が使用されてもよいことが当業者には理解されるだろう。
【０４６０】
図９９は、間接的にソートされた配列を使用してデータセットを区分するいくつかの実施形態の処理９９００を概念的に示す。処理９９００については図１００と共に説明する。図１００は、９つのデータ項目（０．００、７．４３、１７．１４、２５．４６、２６．６０、３０．３５、３４．２５、３９及び４６．９７）を含むデータセットの区分を示す。図９９に示すように、処理９９００は、クラスタリングされるデータ値を含むソート済み配列Ａを受信する（９９０５）。いくつかの実施形態において、データは文書中の単語を識別するための又は位置揃えガイドを識別するための文字位置データである。図１００を参照すると、データセットは指標Ａ［０］〜Ａ［８］を有するソート済み配列Ａ  １００１０に格納される。
【０４６１】
次に処理９９００は、配列Ａの連続した値の対を比較することにより配列Ａの１次差分の配列Ｄ（Ａ）を規定及び格納する（９９１０）。いくつかの実施形態において、配列Ｄ（Ａ）は、第Ａ項で説明した演算子Ｄを使用して生成される。図１００は、データ間の１次差分を格納する配列Ｄ  １００１５を示す。例えば指標Ｄ［３］の値は、配列Ａ  １００１０の指標Ａ［４］の値から指標Ａ［３］の値を減算したものである。
【０４６２】
次に処理は、ソート関数を配列Ｄ（Ａ）に適用することによりＤ（Ａ）の指標の間接的にソートされた配列Ｓ（Ｄ（Ａ））を規定及び格納する（９９１５）。いくつかの実施形態において、ソート関数は第Ａ項で上述した演算子Ｓである。図１００は、配列Ｄ  １００１５の値をソートする間接的にソートされた配列Ｓ（Ｄ）１００２０を示す。配列１００２０の第１の値（「３」）は、最小の１次差分（「１．１４」）である配列Ｄ  １００１５の指標３を参照する。配列１００２０の第２の値は、２番目に最小の１次差分である配列Ｄ  １００１５の指標４を参照する。
【０４６３】
その後、処理はデータを区分する際に使用されるクラスタ間の空隙の最小サイズを判定する（９９２０）。いくつかの実施形態において、これは、第Ａ項で上述した区分演算子Ｐと共に使用する空隙最小値ｇである。最小空隙サイズは、いくつかの実施形態においてはユーザにより指定され、あるいは他の実施形態においては解決される問題に固有の値である。いくつかの実施形態は、データに基づく種々の空隙最小値が使用されるように複数の区分を使用する（例えば、密度クラスタリングの場合）。
【０４６４】
次に処理９９００は、配列Ｓ（Ｄ（Ａ））に格納された連続した指標を使用してデータをクラスタに区分する（９９２５）。処理は区分を格納する（９９３０）。その後、処理は終了する。いくつかの実施形態は、間接的にソートされた配列に格納された指標を使用してデータを区分する。いくつかの実施形態において、空隙最小値（すなわち、有効な空隙最小値）より大きい最小の１次差分に対応するＳ（Ｄ（Ａ））に格納された指標は、ソート済みデータ配列の指標に対応し、その後でデータが分割されるべきである。有効な空隙最小値の後の配列Ｓ（Ｄ（Ａ））に格納された全ての指標は、空隙最小値より大きい空隙を表すため、ソート済みデータを分割すべき場所を示す。
【０４６５】
図１００は、この例では有効な空隙最小値が配列Ｄ  １００１５の指標７にある７．９７であることを示す。従って、データの区分１００２５は、３つの場所（指標７、２及び１の後）で分割されるため、４つのクラスタを有する。いくつかの実施形態は、配列Ｓ（Ｄ（Ａ））の単一の指標として区分を格納する。区分１００２５は、値５を有する指標１００３０として格納される。これは、有効な空隙最小値に対応する指標が配列１００２０の指標５に格納されるため、データを区分するための指標が配列１００２０の指標５以上に格納されることを示す。
【０４６６】
上記処理９９００は、クラスタ分析に対する複数の処理及びメモリ効率化を可能にする。第１に、実際のデータの１０進数の値ではなく指標（整数である）をソート済み差分配列に格納することにより記憶空間を節約する。第２に、区分を複数の別個の配列として実際に格納する代わりに、区分は間接的にソートされた配列の指標を参照する単一の整数値として格納され、大きなデータの配列に対して評価されている区分が複数ある場合に実質的にメモリを節約できる。第３に、データを区分する指標は間接的にソートされた配列から迅速に読み取られ、これにより実質的に処理時間を節減する。
【０４６７】
これらの効率化は、クラスタ分析を実行する多くの方法で活用される。図１０１は、複数の距離尺度でクラスタ分析を同時に実行するいくつかの実施形態の処理１０１００を概念的に示す。いくつかの実施形態において、処理１０１００は、処理９９００により提供された効率化を利用する。図示するように、処理１０１００は、クラスタリングされるデータ値の間接的にソートされた差分配列を規定する（１０１０５）。これは、図１００の配列１００２０等の配列であり、いくつかの実施形態において、入力データ値をソートし、１次差分を利用し且つそれらをソートすることにより得られる。
【０４６８】
処理１０１００は、いくつかの異なる距離尺度でデータ値を同時に区分する（１０１１０）。いくつかの実施形態において、これは、複数の区分が種々の空隙最小値を使用してデータに対して生成されることを意味する。例えば密度クラスタリングの場合、いくつかの実施形態において、それぞれのありうる区分が生成される。いくつかの実施形態において、１次差分が間接的にソートされた配列でソートされるため、データに対する区分位置は間接的にソートされた配列に格納された指標として迅速に読み取られる。
【０４６９】
次に処理は、間接的にソートされた配列の指標を参照する整数値として各区分を格納する（１０１１５）。図１００の整数値１００３０は、単一の整数値として区分を格納する一例である。処理は、最適な距離尺度（及び従って最適な区分）を判定する（１０１２０）。例えばいくつかの実施形態は、第ＩＩＩ節において密度クラスタリングに関して説明されたような最適化基準を使用する。更にいくつかの実施形態は、最適化基準に対して区分をテストする前に制約を使用して区分の一部のクラスタを削除する。
【０４７０】
最後に、最適な距離尺度が判定されると、処理は解決される問題に対するクラスタの集合として最適な距離尺度から導出されたデータの区分を格納する（１０１２５）。その後、処理は終了する。いくつかの実施形態において、クラスタの集合は、最適な集合であると判定されると、新しい配列として格納される。
【０４７１】
上記説明は、区分演算子を繰り返し使用するために得られた効率化を示すが、間接的にソートされた配列及び区分を単一の値として格納することによるメモリ及び処理効率化は、クラスタ分析の他の側面にも適用可能である。例えば結合演算子は、いくつかの実施形態において同一の効率化を利用できる。
【０４７２】
上述したように、いくつかの実施形態の結合演算子Ｃは、区分の隣接するクラスタを結合し、これを繰り返すことが可能である。隣接するクラスタの結合は、区分における分割を除去することとして表される。これらの分割の各々が間接的にソートされた配列の連続した指標のうちの１つに対応するため、クラスタを結合することは、シーケンスの特定の指標を不適格であると判定するものとして規定される。従って、結合演算子を区分に適用した結果は、的確な指標（すなわち、新しい区分が分割される指標）のシーケンス（例えば、配列）でありうる。いくつかの実施形態において、そのようなサブシーケンスを格納することは、結合されているクラスタのデータ中を直接移動するよりはるかに速い。
【０４７３】
更に差分のクラスタを結合すること（これは差分のレベルの組み合わせであるのが効果的である）は、データクラスタ（差分クラスタとは対照的に）が選択された特定のレベルに対して迅速に読み取られる効率に悪影響を及ぼさない。差分のクラスタを結合した後でも、Ｌ番目以降の間接的にソートされた差分のクラスタの指標は、レベルＬにおけるデータクラスタに対する分割点である。結合による変更は、間接的にソートされた第１の差分クラスタの各々が開始する場所を判定する間接的にソートされた第２の差分の数が減少することである。
【０４７４】
フィルタリング演算子（制約に基づいてデータのクラスタを削除する）がデータのクラスタにのみ（差分のクラスタにではなく）適用されるため、データクラスタはフィルタリング演算子が適用される時には既に判定されているため、区分及び結合演算子の上記実現例を介して得られた効率化に干渉しない。
【０４７５】
効率化は、第ＩＶ節で上述したように、差分クラスタリングで実行される第２のレベル内差分及び第２のレベル間差分への第２の差分の分割においても得られる。いくつかの実施形態において、分割点を判定するために使用された条件は、結果として得られるデータ及び第１の差分のクラスタリングに依存してもよい。従って、これらの条件の評価は、差分の区分（及びデータの区分）を判定する際の効率化から直接利益を得る。
【０４７６】
例えば文書再構成に適用されるような差分クラスタリングの場合、第２の差分の分割は、１次差分に対応し且つそれぞれ１次差分より大きいテキスト行上の単語区切り及びセグメント区切り（例えば、カラム、タブ等の空隙）を判定するために使用される。いくつかの実施形態において、目的は、第１の差分の第２のクラスタの最小値が適用可能なフォントに対する予想される間隔文字の幅よりそれ程小さくならないように第２の差分を分割することである。更に、第２の目的は、データクラスタ（各データクラスタは単語である）が適用可能な言語の単語に対して標準的な平均サイズを有することである。潜在的な分割点は、結果として得られる第１の差分のクラスタ及びデータのクラスタがそれらの予想とどの程度異なるかに依存して比較的に低く評価される。いくつかの実施形態において、そのような評価は、最適な分割点を判定する式において第２の差分に直接適用された他の基準（例えば、分割の相対的なサイズ、分割位置のパーセンタイル及び分割時のパーセント値の増加）と組み合わせることができる。第２の差分における種々の分割は、上述した処理により更に効率的に繰り返しテストされる。
【０４７７】
上述したクラスタ分析及び特定の効率化技術は、文書再構成における使用に関して主に説明されたが、それらは、集合と、集合の要素の対についての距離関数が存在し、集合と比較して明らかに小さい距離により分離された要素の部分集合を識別する必要性がある、あらゆる問題に適用可能であることが当業者には理解されるだろう。例えばクラスタ分析は、眼の移動、マウスの移動又はタッチスクリーン対話を測定することにより取得された位置データをクラスタリングことによりアプリケーション、ウェブページ又はビデオとのユーザ対話を分析することに適用される。別の例として、ラスタ画像（すなわち、ビットマップ）は、符号化するのに使用された色の数を減少することにより圧縮される。クラスタ分析は、色の各クラスタが単一の色（多くの場合、そのメンバの平均に等しい）により置換されるように縮小された色の集合を選択するために元の色の集合に対して使用される。更に別の例は、いくつかの画像認識技術（例えば、生体認証、光学文字認識、通貨検証等）及びラスタ画像のベクトル命令化が空間及び色座標軸により規定された距離空間の画素のクラスタリングに依存することである。最後の一例として、実験データ（例えば、科学データ又はビジネスデータ）のパターンは、軸が関心パラメータである空間にデータ点を描くことにより見つけられることが多い。クラスタ分析はこのデータに適用される。尚、所定のクラスタの全ての点は全ての関心パラメータのほぼ同一の値を有する。
【０４７８】
Ｃ．ソフトウェアアーキテクチャ
いくつかの実施形態において、上述したクラスタ分析は、コンピュータ、メディアプレーヤ、携帯電話（例えば、ｉＰｈｏｎｅ（登録商標））、あるいは他のハンドヘルド又はリソースの制限されたデバイス等の特定のマシンで実行する（又はコンピュータ可読媒体に格納された）ソフトウェアとして実現される。図１０２は、クラスタ分析を実行するいくつかの実施形態のクラスタ分析アプリケーション１０２００のソフトウェアアーキテクチャを概念的に示す。いくつかの実施形態において、アプリケーションは、スタンドアロンアプリケーションであるか又は別のアプリケーション（例えば、文書再構成アプリケーション）に組み込まれる。その一方で、他の実施形態において、アプリケーションはオペレーティングシステム内に実現されてもよい。
【０４７９】
クラスタ分析アプリケーション１０２００は、密度クラスタリングモジュール１０２０５、差分クラスタリングモジュール１０２１０及び境界クラスタリングモジュール１０２１５を含む。アプリケーションは、格納モジュール１０２２０、差分モジュール１０２２５、区分モジュール１０２３０、結合モジュール１０２３５及びフィルタリングモジュール１０２４０、並びにクラスタ分析記憶装置１０２４５を更に含む。
【０４８０】
図１０２は、文書コンテンツ１０２５０を更に示す。クラスタ分析アプリケーション１０２００は、文書再構成と関連しないクラスタ分析を使用する他の処理に対して使用できることが当業者には理解されるだろう。密度クラスタリングモジュール１０２０５、差分クラスタリングモジュール１０２１０及び境界クラスタリングモジュール１０２１５は全て、文書コンテンツ１０２５０から情報（例えば、基本要素位置データ）を受信する。密度クラスタリングモジュール１０２０５は、モジュール１０２２０〜１０２４０を部分的に使用して第ＩＩＩ節で説明したように密度クラスタリングを実行する。差分クラスタリングモジュール１０２１０は、モジュール１０２２０〜１０２４０を部分的に使用して第ＩＶ節で説明したように差分クラスタリング実行する。境界クラスタリングモジュール１０２１５は、モジュール１０２２０〜１０２４０を部分的に使用して第ＶＩ節で説明したように境界クラスタリングを実行する。モジュール１０２０５〜１０２１５の出力は、文書コンテンツ１０２５０に返される。
【０４８１】
いくつかの実施形態において、５つのモジュール１０２２０〜１０２４０は、第Ａ項で上述した５つの演算子と関連した動作を実行する。いくつかの実施形態のソートモジュール１０２２０は、モジュール１０２０５〜１０２１５のうちの１つからデータ受信し、そのデータを順序付ける（例えば、最小値から最大値へ）。いくつかの実施形態の差分モジュール１０２２５は、モジュール１０２０５〜１０２１５のうちの１つからデータを受信し、隣接するデータ間の差分を判定する。いくつかの実施形態の区分モジュール１０２３５は、モジュール１０２０５〜１０２１５のうちの１つからデータを受信し、そのデータを複数の部分集合に区分する。いくつかの実施形態の結合モジュール１０２３５は、モジュール１０２０５〜１０２１５のうちの１つから複数の部分集合としてデータを受信し、種々の条件に従って隣接する部分集合を結合する。いくつかの実施形態のフィルタリングモジュール１０２４０は、いくつかの実施形態において区分されたデータシーケンスを受信し、種々の制約に基づいて区分を除去する。
【０４８２】
モジュール１０２２０〜１０２４０は、クラスタ分析記憶装置１０２４５にデータを格納し、モジュール１０２０５〜１０２１５にデータを返す。いくつかの実施形態において、ソートモジュール１０２２０は、ソート済み指標配列（すなわち、間接的にソートされた配列）として結果をクラスタ分析記憶装置１０２４５に格納する。いくつかの実施形態において、区分モジュールは、間接的にソートされた配列の指標を参照する単一の整数値として区分をクラスタ分析記憶装置１０２４５に格納する。
【０４８３】
ＸＩ．文書の構文解析及び分析に対する効率的なデータ構造
本発明のいくつかの実施形態は、文書のより効率的な構文解析及び分析を可能にする新しい方法及びデータ構造を提供する。いくつかの実施形態は、データが操作された時にデータの冗長なコピーを最小限にするアプリケーションプログラミングインタフェース（ＡＰＩ）を提供する。いくつかの実施形態において、ＡＰＩは、オペレーティングシステム、ライブラリ、サービス又はフレームワークがコンピュータプログラムにより行われた要求をサポートするために提供する関数、プロシージャ、メソッド、クラス又はプロトコルの集合である。いくつかの実施形態において、ＡＰＩは静的にリンクされるが、他の実施形態において、ＡＰＩは動的にリンクされる。
【０４８４】
一般に、ＡＰＩは内部データのコピーを返すか又は何らかの方法で操作される前にコピーされる必要がある内部データに対する読み取りのみのアクセス権を与える。これにより多くの層の冗長データが作成され、処理は遅くなり且つメモリが過度に消費される。いくつかの実施形態は、データ構造が性能及びメモリ消費に関して最適にされるのと同時にオブジェクトＡＰＩがプログラマにとって最適にされるように、オブジェクトをそれらのデータと分離することによりその問題を解決する。いくつかの実施形態は、第ＩＩ節〜第Ｘ節で説明したように文書を再構成するためにそのようなＡＰＩを使用する。しかし、そのようなＡＰＩは、構文解析された入力データのあらゆる種類の分析に使用できることが当業者には認識されるだろう。
【０４８５】
いくつかの実施形態は、ユーザ（例えば、ＡＰＩを使用するプログラマ又はソフトウェアアプリケーション）が明示的な制約なしでＡＰＩのクラスメンバの独立した変更可能なコピーを有しているかのようにユーザに見えるＡＰＩを提供する。換言すると、ＡＰＩは、ＡＰＩを介して返されたあらゆるオブジェクトがユーザにより完全に変更可能であるかのようにユーザには見える。しかし、いくつかの実施形態において、オブジェクトは、本当に必要な場合に自身を実際にコピーし、多くの場合、実際に使用されるメモリ量を最小限にするようにメモリを管理する。いくつかの実施形態のメモリ管理は、他のオブジェクトによるポインタの使用を常時監視する共有メモリオブジェクトを有するソート済みポインタ配列を使用することにより行われる。いくつかの実施形態において、複数のオブジェクトは全て、共有メモリオブジェクトを介して同一のポインタ配列を参照でき、これにより、分析の全ての段階においてデータのコピーを作成する場合と比較して実質的にメモリを節約できる。ポインタが以下の特定の特徴を説明するために使用されるが、あらゆる種類の参照データ構造を使用できることが当業者には理解されるだろう。
【０４８６】
Ａ．共有ポインタによる文書再構成
いくつかの実施形態は、文書を再構成するために上述したようなＡＰＩを使用する。図１０３は、文書を効率的に再構成するいくつかの実施形態の処理１０３００を概念的に示す。処理１０３００については図１０４と共に説明する。図１０４は、文書１０４００が処理１０３００に従って構文解析及び分析される際のシーケンスを示す。
【０４８７】
図１０３に示すように、処理１０３００は文書の一部を受信する（１０３０５）。いくつかの実施形態において、文書の一部はページであり、処理はページ毎に動作する。他の実施形態において、文書の一部は、文書全体、文書の小領域又はページ上のゾーンである。処理は、文書の一部の文字を判定するために文書を構文解析し（１０３１０）、構文解析されたデータに対する文字の配列を格納する（１０３１５）。
【０４８８】
図１０４は、文書１０４００がランダムに順序付けされた文字の配列１０４０５に構文解析されることを示す。これらの例は配列を使用するが、あらゆる他の適切なデータ構造が使用されてもよいことが当業者には理解されるだろう。いくつかの実施形態において、文書を構文解析することは、文書を表すバイトストリームを読み取ること及びストリームをストリーム中の情報の利用可能な表現（文字配列等）に変更することを含む。いくつかの実施形態において、ストリームの文字はランダムに読み取られる。これは、配列１０４０５の順序がランダムであるためである。いくつかの実施形態の文字は、座標及び／又はページ番号を有する。いくつかの実施形態において、各文字は、関連する座標又はページ番号の値を含むオブジェクトとして格納される。
【０４８９】
処理１０３００は、文書の一部に対する文字を順序付けするソート済みポインタ配列を規定する（１０３２０）。いくつかの実施形態において、ページに対する文字は上から下への第１のソート及び左から右への第２のソートによりソートされる。複数のページを文字配列に格納するいくつかの実施形態は、最初にページでソートする。図１０４は、ソート済み文字に対して規定されるポインタの配列１０４１０を示す。第１のポインタ１０４１１は、配列１０４０５の英字「Ｌ」を指し示し、第２のポインタ１０４１２は英字「ｏ」を指し示す。いくつかの実施形態において、別個の新しい配列を規定及び格納するのではなく、初期の文字配列に対するポインタの配列を規定することによりメモリを節約する。
【０４９０】
次に処理は、ストリングオブジェクトを操作する命令を受信する（１０３２５）。いくつかの実施形態は、ストリングオブジェクトを、ソート済みポインタ配列における場所に対するポインタ、及びストリングにある文字数のカウントとして規定する。例えばページ全体のストリングオブジェクトは、ソート済みポインタ配列の第１のポインタ（左上の文字）を指し示し、ページ上の文字数のカウントを与える。
【０４９１】
いくつかの実施形態において、命令は、ストリングの分割、ストリングの結合、文字の追加、文字の除去及び文字の再順序付けを含む。いくつかの実施形態において、これらの動作は、第ＩＩ節〜第Ｘ節において上述したように文書を再構成し且つ再構成された文書を使用する処理の一部として呼び出される。例えば行がマージされるいくつかの例において、文字の順序は変更される必要がある。ゾーンが規定される場合、いくつかの実施形態はゾーン毎にストリングを規定する。これは、多くの場合、ストリングの分割、ストリングの結合又はその双方を含む。
【０４９２】
命令を受信後、処理は、命令が既に割り当てられているポインタ（例えば、１０３２０で規定されたソート済みポインタ配列）のみを使用して実行されるかを判定する（１０３３０）。いくつかの実施形態において、ストリングを分割することは、既に割り当てられているポインタを使用することのみを含む。文書再構成の場合、いくつかの処理は、ストリングの分割（例えば、行識別、行分割等）のみを含む。更にソート済みポインタ配列において互いに隣り合うストリングを結合することは、いくつかの実施形態において既に割り当てられたポインタを使用することのみを含む。
【０４９３】
図１０４は、文書１０４００において２つの行を識別した結果として配列１０４１０の既に割り当てられたポインタを参照する２つのストリングオブジェクト１０４１５及び１０４２０を与える方法を示す。第１の行は、Ｌ１０４１１に対するポインタを指し示し且つカウント１５（第１の行の文字数）を有するストリングオブジェクト１０４１５により規定される。第２の行は、ｓ１０４１３に対するポインタを指し示し且つカウント７（第２の行の文字数）を有するストリングオブジェクト１０４２０により規定される。これらの行を規定するために、新しいポインタが割り当てられる必要はない。文書を再構成する際に関わる可能性のある数百又は数千の動作にわたり、大きなメモリ効率化及び処理時間効率化（配列が探索される必要がないため）が得られる。
【０４９４】
同一のポインタ１０４１０は、単語が識別される時に使用可能である。例えばストリングオブジェクト１０４２５及び１０４３０は文書１０４００の２つの単語を規定する。これらの単語は、ストリングオブジェクト１０４１５及び１０４２０と同一の開始ポインタを指し示すが、単語が行より短いため異なるカウントを有する。しかし、新しいポインタはこれらの単語を規定するために割り当てられる必要はなく、新しいストリングオブジェクトのみが必要である。文書全体に対して、数百又は数千の異なるストリングオブジェクトが全て同一のポインタ配列（ポインタ１０４１０等）を参照してもよいため、新しいポインタ配列に対してメモリを繰り返し割り当てることによりメモリを非常に節約する。
【０４９５】
受信した命令が既に割り当てられたポインタのみを使用して実行できる場合、処理１０３００は、メモリにおいて既に割り当てられている共有ポインタを使用して命令を実行する（１０３３５）。その後、以下に説明する１０３５５に進む。既に割り当てられたポインタのみを使用して実行できない場合、処理は、命令が新しいポインタの集合を使用して実行できるかを判定する（１０３４０）。
【０４９６】
いくつかの実施形態は、既に割り当てられているポインタのみを使用して実行できない場合に新しいポインタを割り当てるが、命令は文字配列の直接のデータ操作を要求しない。いくつかの実施形態において、共有されたポインタ配列において互いに隣り合っていないストリングを結合することは、結合されたストリングに対するストリングオブジェクトがソート済み配列の１つのポインタを指し示し且つ配列において前に進むことにより表されないため新しいポインタの割り当てを必要とする。例えば図１０４を参照すると、ある動作が第１の行を第２の行の終端に付加することを呼び出した場合、付加された行に対するストリングオブジェクトは配列１０４１０を指し示せない。その代わり、新しいポインタ配列が要求された順序で割り当てられる必要がある。
【０４９７】
受信した命令が新しいポインタの割り当てを使用して実行できる場合、処理は文字配列に対する新しいポインタの割り当てを使用することにより命令を実行する（１０３４５）。その後、以下に説明する１０３５５に進む。新しいポインタの割り当てを使用して実行できない場合、処理は文字配列の一部又は全体の新しいコピーを使用して命令を実行する（１０３５０）。文書データを直接編集すること（すなわち、ユーザが単語を文書に追加すること）は、いくつかの実施形態において、文字の実際の配列を操作せずに実行できない命令の一例である。しかし、ユーザが単語を文書に追加することは、完全に新しいコピーを必要とせず、文字を配列に追加し、文字に対する新しいポインタ配列を規定することにより処理される。同様に、テキスト行をマージすることは、１つのテキスト行の文字が次のテキスト行に挿入され、それにより互いに対する文字の順序が変更されるため、多くの場合に新しいポインタ配列を必要とする。
【０４９８】
次に処理は、ストリングオブジェクトを操作する更なる命令が受信されたかを判定する（１０３５５）。更なる命令が受信された場合、上述した１０３３０に進み、最も効率的な命令の実行方法を判定する。更なる命令が受信されない場合、処理は終了する。この処理は、共有データを使用して得られるメモリ及び処理の節約の階層を示す。元のデータは種々のポインタ配列間で共有され、各ポインタ配列は多くのストリングオブジェクト間で共有される。受信した命令セット毎（ＡＰＩへの呼び出し毎）に、最も効率的な命令の実行方法が使用される。理想的には、命令は新しいポインタの作成を要求せず、新しいストリングオブジェクトのみが作成される必要がある。これが不可能である場合、新しい文字配列を作成するのとは対照的に元のデータを共有する新しいポインタを作成することにより依然としてメモリを節約できる。
【０４９９】
処理１０３００についてはストリングオブジェクト及び特に文書再構成のためのストリングオブジェクトを参照して説明したが、データをコピーするのとは対照的に、既に割り当てられたポインタを使用し且つ新しいポインタを割り当てることを好むことを示すことにより得られた効率化は、メモリ及び処理時間が限定される広範な問題に適用可能であることが当業者には認識されるだろう。
【０５００】
Ｂ．共有メモリオブジェクト
いくつかの実施形態において、各ポインタ配列は、配列のポインタの使用を管理する共有メモリオブジェクトを有する。いくつかの実施形態において、特定のポインタ配列に対する共有メモリオブジェクトは、特定の配列を参照するデータオブジェクト（例えば、ストリングオブジェクト）を常時監視する。いくつかの実施形態において、共有メモリオブジェクトは、ポインタ配列が開始するメモリの場所に関しても常時監視する。
【０５０１】
図１０５は、データが本発明のいくつかの実施形態に従って格納される方法を示す。図１０５は、データ配列１０５０５、ソート済みポインタ配列１０５１０、共有メモリオブジェクト１０５１５及びデータオブジェクト１０５２０を示す。データ配列１０５０５は、いくつかの実施形態においてランダムに順序付けされた構文解析済みデータ（例えば、構文解析された文書の文字データ）である。
【０５０２】
ソート済みポインタ配列１０５１０は、データ配列１０５０５に対するポインタ配列である。いくつかの実施形態において、各ポインタは配列１０５０５のデータ項目を指し示す。ポインタは、データのソートに基づく順序で配置される。例えば文書の場合、いくつかの実施形態において、ポインタは指し示す文字の読み取り順序で配置される。
【０５０３】
データオブジェクト１０５２０の各々は、ポインタ配列１０５１０における場所に対する参照及びカウントを含む。特定のデータオブジェクトに対するポインタ配列１０５１０における場所は、データオブジェクトが参照する第１のデータを指し示すポインタである。例えばデータオブジェクトが単語「Ａｒｒａｙ」に対するストリングオブジェクトである場合、データオブジェクトは、「Ａ」を指し示すポインタが見つけられるポインタ配列における場所を指定する。データオブジェクトは、カウント５を更に含む。
【０５０４】
図１０５は、共有メモリオブジェクト１０５１５を更に示す。いくつかの実施形態において、共有メモリオブジェクトはデータオブジェクト１０５２０によりソート済み配列１０５１０の使用を管理する。共有メモリオブジェクト１０５１５は、配列１０５１０を参照するデータオブジェクト１０５２０の数のカウントを保持する。
【０５０５】
いくつかの実施形態は、第１のデータオブジェクト（配列の開始を指し示し且つ配列全体のカウントを有する）が規定された場合、共有メモリオブジェクト１０５１５を規定しない。しかし、第２のデータオブジェクトが配列を指し示すと、配列は共有され、共有メモリオブジェクト１０５１５は、個々のオブジェクトが配列を共有するデータオブジェクトの数及び配列の開始場所の情報を有さないため、この情報を常時監視するように規定される。従って、いくつかの実施形態において、データオブジェクトがポインタ配列を指し示すように設定された時にオブジェクトが存在しない場合、データオブジェクト１０５２０は、ポインタ配列に対する共有メモリオブジェクトをインスタンス化するために関数を呼び出せる。オブジェクト１０５２０の数が０になった場合、共有メモリオブジェクト１０５１５は、ポインタ１０５１０の割り当てを解除し、メモリから除去される。
【０５０６】
いくつかの実施形態において、ポインタ配列１０５１０を共有する個々のデータオブジェクト１０５２０は、他のオブジェクト１０５２０も配列１０５１０のポインタを使用しているという知識を有さない。更にオブジェクト１０５２０は、配列１０５１０の開始又は終了の知識を有さず、配列１０５１０のポイントを単に参照する。しかし、いくつかの実施形態の共有メモリオブジェクト１０５２０は、メモリにおける配列の開始場所を認識している。
【０５０７】
Ｃ．ソフトウェアアーキテクチャ
いくつかの実施形態において、上述したＡＰＩは、コンピュータ、メディアプレーヤ、携帯電話（例えば、ｉＰｈｏｎｅ（登録商標））、あるいは他のハンドヘルド又はリソースの制限されたデバイス等の特定のマシンで実行する（又はコンピュータ可読媒体に格納された）ソフトウェアとして実現される。図１０６は、第Ａ項及び第Ｂ項で説明した効率化技術を使用しつつ文書再構成処理を実行するＡＰＩ１０６００を概念的に示す。
【０５０８】
ＡＰＩ１０６００は、幾何学的分析モジュール１０６１０、文書再構成モジュール１０６１５、並びに表示及び対話モジュール１０６２０を含む。いくつかの実施形態において、ＡＰＩ１０６００は、外部アプリケーション１０６０５により使用されるために提供される関数、プロシージャ、メソッド、クラス及び／又はプロトコルの集合である。
【０５０９】
ＡＰＩ１０６００は、外部アプリケーション１０６０５によりパブリックメソッドに対する要求（例えば、関数呼び出し）を受信する。いくつかの実施形態において、複数の外部アプリケーションが存在する。例えばＡＰＩがハンドヘルドデバイス（例えば、ｉＰｈｏｎｅ（登録商標））に提供される場合、外部アプリケーションはＰＤＦビューア（例えば、電子書籍リーダ）、ワードプロセッサ（例えば、Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄ、Ａｐｐｌｅ  Ｐａｇｅｓ等）、ウェブブラウザ（例えば、Ｍｉｃｒｏｓｏｆｔ  Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ、Ａｐｐｌｅ  Ｓａｆａｒｉ、Ｍｏｚｉｌｌａ  Ｆｉｒｅｆｏｘ等）等であってもよい。
【０５１０】
ＡＰＩ１０６００により提供される種々のパブリックメソッドは、幾何学的分析及び文書再構成を実行したり、文書オブジェクトモデルにアクセスしたりする種々のプライベートメソッドを呼び出す。データ（例えば、パーサにより最初に識別される基本要素）は、文書再構成データ１０６２５に格納される。外部アプリケーションは、データにアクセスできるように見える（例えば、単語、テキスト行等を識別するために文字を操作している間）が、実際には、第Ａ項及び第Ｂ項において上述したように、ＡＰＩを介して外部アプリケーションにより操作されるクラスメンバはデータに対する参照の格納のみを行うようにクラスメンバを規定することにより実際のデータから分離される。
【０５１１】
ＸＩＩ．全体のソフトウェアアーキテクチャ
いくつかの実施形態において、上述した処理は、コンピュータ、メディアプレーヤ、携帯電話（例えば、ｉＰｈｏｎｅ（登録商標））、あるいは他のハンドヘルド又はリソースの制限されたデバイス等の特定のマシンで実行する（又はコンピュータ可読媒体に格納された）ソフトウェアとして実現される。図１０７は、文書の再構成及び表示並びに文書との対話を行ういくつかの実施形態のアプリケーション１０７００のソフトウェアアーキテクチャを概念的に示す。いくつかの実施形態において、アプリケーションは、スタンドアロンアプリケーションであるか又は別のアプリケーションに組み込まれる。その一方で、他の実施形態において、アプリケーションはオペレーティングシステム内に実現されてもよい。更に他の実施形態において、図１０７に示したモジュールは複数のアプリケーション間で分割される。例えばいくつかの実施形態において、１つのアプリケーションは文書オブジェクトモデルを生成し、別のアプリケーションは文書を表示し且つ文書オブジェクトモデルと対話する（以下の完全な説明を参照）。
【０５１２】
アプリケーション１０７００は、パーサ１０７１０、プロファイリングモジュール１０７２０、意味再構成モジュール１０７３０、クラスタ分析モジュール１０７４０、ユーザ対話モジュール１０７５０及び表示適応モジュール１０７６０を含む。アプリケーション１０７００は、文書データ記憶装置１０７１５、プロファイル記憶装置１０７２５、クラスタ分析記憶装置１０７３５及び文書オブジェクトモジュール記憶装置１０７４５を更に含む。図１０７は、カーソルコントローラドライバ１０７７５、キーボードドライブ１０７８０及び表示モジュール１０７８５を含むオペレーティングシステム１０７７０を更に示す。いくつかの実施形態において、図示するように、合成アプリケーションがオペレーティングシステムとは別個のスタンドアロンアプリケーションである場合でも、カーソルコントローラドライバ１０７７５、キーボードドライバ１０７８０及び／又は表示モジュール１０７８５はオペレーティングシステム１０７７０の一部である。
【０５１３】
図示するように、パーサ１０７１０は文書１０７０５を受信する。いくつかの実施形態において、文書はベクトル図形（例えば、ＰＤＦ）を含むフォーマットされていない文書である。パーサ１０７１０は、文書情報を構文解析し、構文解析されたデータを文書データ記憶装置１０７１５に格納する。いくつかの実施形態において、構文解析されたテキストデータは上記の第ＸＩ節で説明したように文字配列として格納される。
【０５１４】
意味再構成モジュール１０７３０は、文書データ１０７１５から文書オブジェクトモデル１０７４５を生成するために文書を再構成する。意味再構成モジュール１０７３０は、ゾーン分析、ガイド及びのど識別、レイアウト及びフロー識別、表識別及び結合グラフ識別のような処理を実行する。
【０５１５】
意味再構成モジュールの出力は、プロファイリングモジュール１０７２０に送出される。プロファイリングモジュール１０７２０は、階層プロファイルをマッチングするプロファイルマッチングエンジンを含み、第ＶＩＩ節で説明したように再構成の実行に関する進め方を意味再構成モジュールに通知する。
【０５１６】
意味再構成モジュール１０７１０は、クラスタ分析モジュール１０７４０に情報を更に渡す。いくつかの実施形態において、クラスタ分析モジュール１０７４０は、ガイド識別のための密度クラスタリング、単語及びセグメント空隙情報のための差分クラスタリング及び結合すべきグラフを識別するための境界クラスタリングを実行する。クラスタ分析モジュールは、第Ｘ節で説明したように配列及び指標を格納するためにクラスタ分析記憶装置１０７３５を使用する。クラスタ分析の結果は、意味再構成モジュール１０７３０に返される。
【０５１７】
意味再構成モジュール１０７３０は、文書を再構成すると、文書オブジェクトモデル１０７４５を格納する。文書オブジェクトモデル１０７４５は、第ＩＩ節で説明したコンテンツを読み込んだゾーングラフ等の意味的に再構成された文書に関する全ての情報を格納する。
【０５１８】
表示適応モジュール１０７６０は、文書の表示方法を判定するために文書オブジェクトモデル１０７４５を使用する。例えばいくつかの実施形態の表示適応モジュールは、小型スクリーンデバイスに文書を表示するために第ＶＩＩＩ節で説明した処理を実行する。表示適応モジュール１０７６０は、画面上の実際の表示を管理する表示モジュール１０７８５に表示情報を渡す。
【０５１９】
ユーザ対話モジュール１０７５０は、カーソルコントローラドライバ１０７７５及びキーボードドライバ１０７８０から入力情報を受信する。入力情報は、第ＩＸ節で上述したような選択及び文書の編集等の文書に対する動作を実行するようにユーザ対話モジュール１０７５０に指示する。文書が編集された場合、文書オブジェクトモデル１０７４５は編集を反映するように変更される必要がある。
【０５２０】
いくつかの実施形態において、上述のモジュール又は他のモジュールの一部により実行された処理の結果は電子記憶装置に格納される（例えば、文書オブジェクトモデルの一部として）。文書オブジェクトモデルは、ユーザが文書をレビューでき且つ／又は文書と対話できる（例えば、タッチスクリーン、カーソル制御デバイス等を介して）ように電子表示装置（例えば、ハンドヘルドデバイス、コンピュータ画面等）に文書を表示するために使用される。
【０５２１】
図１０８は、上述したアプリケーション１０７００等のコンピュータプログラムを格納するコンピュータ可読媒体を製造するいくつかの実施形態の処理１０８００を概念的に示す。いくつかの実施形態において、コンピュータ可読媒体は配布可能な不揮発性電子記憶媒体（例えば、ＣＤ−ＲＯＭ、ハードディスク、デバイスファームウェア等）である。
【０５２２】
図示するように、処理１０８００は、図１のモジュール１１０等の幾何学的分析モジュールを規定する（１０８０５）により開始する。そのようなモジュールの更に詳細な例は、図１７の境界識別モジュール１７０５、１７１０の区間及び交点識別モジュール、ゾーン識別モジュール１７１５及びゾーングラフビルダ１７２０を含む。いくつかの実施形態において、これらのモジュールは、基本要素の集合間の境界線を識別し、境界線により制限された領域を識別する。いくつかの実施形態において、モジュールは、図形基本要素を潜在的な境界線として識別し、潜在的な境界線の一部を実際の境界線として識別し、ゾーンを識別するために実際の境界線を横断し、且つ識別されたゾーンにより階層文書モジュールを規定する。
【０５２３】
処理は、図１のモジュール１２０等の文書再構成モジュールを規定する（１０８１０）。いくつかの実施形態において、図１０７の意味再構成モジュール１０７３０は、幾何学的分析モジュール及び文書再構成モジュールの双方を含むが、他の実施形態では一方のみを含む。
【０５２４】
処理１０８００は、プロファイル１０７２５等の階層プロファイルの集合を規定する（１０８１５）。次に処理は、クラスタ分析を実行するモジュールの集合を規定する（１０８２０）。クラスタ分析モジュール１０７４０は、そのようなモジュールの一例である。処理は、表示適応モジュール０７６０等の文書を適応的に表示するモジュールを規定する（１０８２５）。次に処理１０８００は、モジュール１０７５０等の文書とのユーザ対話を受信するモジュールを規定する（１０８３０）。
【０５２５】
更に、処理は他のモジュールを規定する（１０８３５）。例えばいくつかの実施形態は、入力文書（例えば、アプリケーションにより受信された文書）を構文解析するモジュール又は種々の文書再構成動作を実行する時にメモリ及び処理時間を効率的に使用するモジュールを含む。
【０５２６】
処理１０８００は、コンピュータ可読記憶媒体にアプリケーションを格納する（１０８４０）。上述したように、いくつかの実施形態において、コンピュータ可読記憶媒体は配布可能なＣＤ−ＲＯＭである。いくつかの実施形態において、媒体は、固体デバイス、ハードディスク、ＣＤ−ＲＯＭ又は他の不揮発性コンピュータ可読記憶媒体のうちの１つ以上である。いくつかの実施形態において、媒体はハンドヘルドデバイス（例えば、ｉＰｈｏｎｅ（登録商標））のファームウェアであってもよい。
【０５２７】
処理１０８００により規定された種々の要素は、本発明のいくつかの実施形態を組み込むアプリケーションに対して規定され且つコンピュータ可読記憶媒体に格納されるモジュール、規則及び処理を網羅していないことが当業者には理解されるだろう。更に、いくつかの実施形態が処理１０８００により規定された要素の全てではなくそれら要素の部分集合のみを含むことが同様に可能である。
【０５２８】
また、処理１０８００は概念上の処理であり、実際の実現例は異なってもよい。例えば種々の実施形態は、異なる順序で種々の要素を規定してもよく、いくつかの要素を１つの動作で規定してもよく、単一の要素の既定を複数の動作に分解してもよい。更に処理１０８００は、いくつかのサブ処理として実現されてもよく、あるいはマクロ処理の他の動作と組み合わされてもよい。
【０５２９】
ＸＩＩＩ．コンピュータシステム
上述した特徴及びアプリケーションの多くがコンピュータ読み取り可能な記憶媒体（コンピュータ可読媒体とも呼ばれる）に記録された命令セットとして指定されるソフトウェア処理として実現される。これらの命令は、１つ以上の計算要素（プロセッサ又はＡＳＩＣ及びＦＰＧＡのような他の計算要素等）により実行される場合、命令で指示された動作を計算要素に実行させる。コンピュータは広義の意味を有し、プロセッサを有するあらゆる電子デバイスを含むことができる。コンピュータ可読媒体の例は、ＣＤ−ＲＯＭ、フラッシュドライブ、ＲＡＭチップ、ハードドライブ、ＥＰＲＯＭ等を含むが、それらに限定されない。コンピュータ可読媒体は、無線で又は有線接続を介して通過する搬送波及び電子信号を含まない。
【０５３０】
本明細書において、「ソフトウェア」という用語は、プロセッサにより処理するためにメモリに読み込まれる磁気記憶装置に格納されたアプリケーション又は読み取り専用メモリに常駐するファームウェアを含むことを意図する。いくつかの実施形態において、複数のソフトウェア発明は、別個のソフトウェア発明のままであるがより大きいプログラムの小部分として実現できる。いくつかの実施形態において、複数のソフトウェア発明は別個のプログラムとしても実現できる。最後に、ここで説明されるソフトウェア発明を共に実現する別個のプログラムのあらゆる組み合わせが本発明の範囲内である。いくつかの実施形態において、ソフトウェアプログラムは、１つ以上のコンピュータシステムで動作するためにインストールされた時にソフトウェアプログラムの動作を実行する１つ以上の特定のマシン実現例を規定する。
【０５３１】
図１０９は、本発明のいくつかの実施形態を実現するコンピュータシステムを示す。そのようなコンピュータシステムは、種々の他の種類のコンピュータ可読媒体に対する種々のコンピュータ可読媒体及びインタフェースを含む。コンピュータシステム１０９００は、バス１０９０５、プロセッサ１０９１０、グラフィックス処理装置（ＧＰＵ）１０９２０、システムメモリ１０９２５、読み出し専用メモリ１０９３０、永続的記憶装置１０９３５、入力デバイス１０９４０及び出力デバイス１０９４５を含む。
【０５３２】
バス１０９０５は、コンピュータシステム１０９００の複数の内部デバイスを通信可能に接続する全てのシステム、周辺装置及びチップセットバスを統括的に表す。例えばバス１０９０５は、プロセッサ１０９１０を読み出し専用メモリ１０９３０、ＧＰＵ１０９２０、システムメモリ１０９２５及び永続的記憶装置１０９３５と通信可能に接続する。
【０５３３】
プロセッサ１０９１０は、本発明の処理を実行するために実行する命令及び処理するデータを種々のメモリユニットから検索する。いくつかの実施形態において、プロセッサは、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ＡＳＩＣ又は命令を実行する種々の他の電子構成要素を含む。いくつかの命令は、ＧＰＵ１０９２０に渡されて実行される。ＧＰＵ１０９２０は、種々の計算の負担を軽減でき、あるいはプロセッサ１０９１０により提供された画像処理を補完できる。いくつかの実施形態において、そのような機能性は、ＣｏｒｅＩｍａｇｅのカーネルシェーディング言語を使用して提供される。
【０５３４】
読み出し専用メモリ（ＲＯＭ）１０９３０は、プロセッサ１０９１０により必要とされる静的データ及び命令並びにコンピュータシステムの他のモジュールを格納する。一方、永続的記憶装置１０９３５は読み出し／書き込みメモリ素子である。この素子は、コンピュータシステム１０９００がオフの場合にも命令及びデータを格納する不揮発性メモリユニットである。本発明のいくつかの実施形態は、大容量記憶装置（磁気ディスク又は光ディスク、並びにそれに対応するディスクドライブ等）を永続的記憶装置１０９３５として使用する。
【０５３５】
他の実施形態は、取り外し可能記憶装置（フロッピー（登録商標）ディスク、フラッシュドライブ又はＺＩＰ（登録商標）ディスク、並びにそれに対応するディスクドライブ等）を永続的記憶装置として使用する。永続的記憶装置１０９３５と同様に、システムメモリ１０９２５は読み出し／書き込みメモリ素子である。しかし、記憶装置１０９３５とは異なり、システムメモリはランダムアクセスメモリ等の読み出し／書き込み揮発性メモリである。システムメモリは、プロセッサが実行時に必要とする命令及びデータの一部を格納する。いくつかの実施形態において、本発明の処理は、システムメモリ１０９２５、永続的記憶装置１０９３５及び／又は読み出し専用メモリ１０９３０に格納される。例えば種々のメモリユニットは、いくつかの実施形態に従ってマルチメディアアイテムを処理する命令を含む。プロセッサ１０９１０は、いくつかの実施形態の処理を実行するために実行する命令及び処理するデータをそれらの種々のメモリユニットから検索する。
【０５３６】
バス１０９０５は、入力デバイス１０９４０及び出力デバイス１０９４５に更に接続する。入力デバイスにより、ユーザはコンピュータシステムに対して情報を通信でき且つコマンドを選択できる。入力デバイス１０９４０は、英数字キーボード及びポインティングデバイス（「カーソル制御デバイスとも呼ばれる）を含む。出力デバイス１０９４５は、コンピュータシステムにより生成された画像を表示する。出力デバイスは、ブラウン管（ＣＲＴ）又は液晶ディスプレイ（ＬＣＤ）等の表示装置及びプリンタを含む。
【０５３７】
最後に図１０９に示すように、バス１０９０５はネットワークアダプタ（不図示）を介してコンピュータ１０９００をネットワーク１０９６５に結合する。このように、コンピュータは、コンピュータのネットワーク（ローカルエリアネットワーク（「ＬＡＮ」）、ワイドエリアネットワーク（「ＷＡＮ」）又はイントラネット等）、あるいはインターネット等のネットワークのネットワークの一部であってもよい。コンピュータシステム１０９００のいずれか又は全ての構成要素は、本発明と共に使用されてもよい。
【０５３８】
いくつかの実施形態は、機械可読媒体又はコンピュータ可読媒体（あるいはコンピュータ可読記憶媒体、機械可読媒体又は機械可読記憶媒体と呼ばれる）にコンピュータプログラム命令を格納するマイクロプロセッサ、記憶装置及びメモリ等の電子構成要素を含む。そのようなコンピュータ可読媒体のいくつかの例は、ＲＡＭ、ＲＯＭ、読み出し専用コンパクトディスク（ＣＤ−ＲＯＭ）、記録可能コンパクトディスク（ＣＤ−Ｒ）、書き換え可能コンパクトディスク（ＣＤ−ＲＷ）、読み出し専用デジタル汎用ディスク（例えば、ＤＶＤ−ＲＯＭ、２層ＤＶＤ−ＲＯＭ）、種々の記録可能／書き換え可能ＤＶＤ（例えば、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ等）、フラッシュメモリ（例えば、ＳＤカード、ミニＳＤカード、マイクロＳＤカード等）、磁気及び／又は固体ハードドライブ、読み出し専用及び記録可能ブルーレイディスク、ＵＤＯ（Ｕｌｔｒａ  Ｄｅｎｓｉｔｙ  Ｏｐｔｉｃａｌ）ディスク、他のあらゆる光学媒体又は磁気媒体、並びにフロッピー（登録商標）ディスクを含む。コンピュータ可読媒体は、少なくとも１つのプロセッサにより実行可能なコンピュータプログラムを格納してもよく、種々の動作を実行するための命令セットを含む。命令セットを格納及び実行するように構成されたハードウェアデバイスの例は、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、プログラマブル論理デバイス（ＰＬＤ）、ＲＯＭ及びＲＡＭデバイスを含むがそれらに限定されない。コンピュータプログラム又はコンピュータコードの例は、コンパイラにより生成されるような機械コード、並びにインタプリタを使用してコンピュータ、電子構成要素又はマイクロプロセッサにより実行される高レベルコードを含むファイルを含む。
【０５３９】
本明細書及び本出願の請求の範囲で使用されるように、「コンピュータ」、「サーバ」、「プロセッサ」及び「メモリ」という用語は全て電子デバイス又は他の技術デバイスを示す。これらの用語は、ユーザ又はユーザのグループを除外する。詳細に記す目的で、表示という用語は、電子デバイスに表示することを意味する。本明細書及び本出願の請求の範囲で使用されるように、「コンピュータ可読媒体」という用語は、コンピュータにより読み取り可能な形態で情報を格納する有形の物理オブジェクトにのみ限定される。この用語は、あらゆる無線信号、有線でダウンロードされた信号及び他のあらゆる一時的な信号を除外する。
【０５４０】
本発明は、多くの特定の詳細を参照して説明されたが、本発明の趣旨の範囲から逸脱せずに他の特定の形態で具体化できることが当業者には理解されるだろう。例えばいくつかの実施形態は、各ページが単一の画像として規定される文書を受信する。しかし、いくつかの実施形態は、グリフ及び場合によっては形状（例えば、線、矩形等）を認識するために文書に対して光学文字認識を実行でき、その後文書が再構成される。更にいくつかの実施形態は、特定の基本要素に対して特定の幾何学的分析及び文書再構成動作を実行するものとして説明された。しかし、動作は他の種類の基本要素にも適用できることが当業者には認識されるだろう。例えばガイド識別は、垂直境界線を形成するグリフの関連付けを識別するため（すなわち、グリフを関連付けるため又はグリフの関連付けを規定するため）に密度クラスタリングを使用することを含むものとして説明される。しかし、同様の動作は、境界線（例えば、破線）を形成する基本形状のクラスタを探すために適用される。
【０５４１】
更に、多くの図面（図３、図８、図９、図１２、図１５、図１８、図２０、図２１、図２５、図２６、図３１、図３３、図３６、図３８、図４０、図４２、図４８、図５３、図５５、図５７、図６２、図６４、図６６、図６８、図７１、図７２、図７８、図８０〜図８２、図８４、図８５、図８７、図８９、図９４、図９７、図９９、図１０１、図１０３及び図１０８）は処理を概念的に示す。これらの処理の特定の動作は、図示し且つ説明した厳密な順序で実行されなくてもよい。特定の動作は、１つの連続した一連の動作で実行されなくてもよく、種々の特定の動作が種々の実施形態において実行されてもよい。更に処理は、いくつかのサブ処理を使用して又はより大きなマクロ処理の一部として実現される。従って、本発明は上述の例示した詳細により限定されず、添付の請求の範囲によって規定されることが当業者には理解されるだろう。
【図１】
2016006661.tif 000007
【図２】
2016006661.tif 000008
【図３】
2016006661.tif 000009
【図４】
2016006661.tif 000010
【図５】
2016006661.tif 000011
【図７】
2016006661.tif 000012
【図８】
2016006661.tif 000013
【図９】
2016006661.tif 000014
【図１０】
2016006661.tif 000015
【図１１】
2016006661.tif 000016
【図１２】
2016006661.tif 000017
【図１３】
2016006661.tif 000018
【図１４】
2016006661.tif 000019
【図１５Ａ】
2016006661.tif 000020
【図１５Ｂ】
2016006661.tif 000021
【図１６】
2016006661.tif 000022
【図１７】
2016006661.tif 000023
【図１８】
2016006661.tif 000024
【図１９】
2016006661.tif 000025
【図２０】
2016006661.tif 000026
【図２１】
2016006661.tif 000027
【図２２】
2016006661.tif 000028
【図２３】
2016006661.tif 000029
【図２４】
2016006661.tif 000030
【図２５】
2016006661.tif 000031
【図２６】
2016006661.tif 000032
【図２７】
2016006661.tif 000033
【図２８】
2016006661.tif 000034
【図２９】
2016006661.tif 000035
【図３０】
2016006661.tif 000036
【図３１】
2016006661.tif 000037
【図３２】
2016006661.tif 000038
【図３３】
2016006661.tif 000039
【図３４】
2016006661.tif 000040
【図３６】
2016006661.tif 000041
【図３７】
2016006661.tif 000042
【図３８Ａ】
2016006661.tif 000043
【図３８Ｂ】
2016006661.tif 000044
【図３９】
2016006661.tif 000045
【図４０】
2016006661.tif 000046
【図４１】
2016006661.tif 000047
【図４２】
2016006661.tif 000048
【図４３】
2016006661.tif 000049
【図４４】
2016006661.tif 000050
【図４５】
2016006661.tif 000051
【図４６】
2016006661.tif 000052
【図４７】
2016006661.tif 000053
【図４８】
2016006661.tif 000054
【図４９】
2016006661.tif 000055
【図５１】
2016006661.tif 000056
【図５３Ａ】
2016006661.tif 000057
【図５３Ｂ】
2016006661.tif 000058
【図５４】
2016006661.tif 000059
【図５５Ａ】
2016006661.tif 000060
【図５５Ｂ】
2016006661.tif 000061
【図５６】
2016006661.tif 000062
【図５７Ａ】
2016006661.tif 000063
【図５７Ｂ】
2016006661.tif 000064
【図６１】
2016006661.tif 000065
【図６２】
2016006661.tif 000066
【図６３】
2016006661.tif 000067
【図６４】
2016006661.tif 000068
【図６５】
2016006661.tif 000069
【図６６】
2016006661.tif 000070
【図６７】
2016006661.tif 000071
【図６８】
2016006661.tif 000072
【図６９】
2016006661.tif 000073
【図７０】
2016006661.tif 000074
【図７１】
2016006661.tif 000075
【図７２】
2016006661.tif 000076
【図７３】
2016006661.tif 000077
【図７８】
2016006661.tif 000078
【図８０Ａ】
2016006661.tif 000079
【図８０Ｂ】
2016006661.tif 000080
【図８１Ａ】
2016006661.tif 000081
【図８１Ｂ】
2016006661.tif 000082
【図８２】
2016006661.tif 000083
【図８４】
2016006661.tif 000084
【図８５】
2016006661.tif 000085
【図８７】
2016006661.tif 000086
【図８９】
2016006661.tif 000087
【図９０】
2016006661.tif 000088
【図９１】
2016006661.tif 000089
【図９２】
2016006661.tif 000090
【図９３】
2016006661.tif 000091
【図９４】
2016006661.tif 000092
【図９５】
2016006661.tif 000093
【図９６】
2016006661.tif 000094
【図９７】
2016006661.tif 000095
【図９９】
2016006661.tif 000096
【図１００】
2016006661.tif 000097
【図１０１】
2016006661.tif 000098
【図１０２】
2016006661.tif 000099
【図１０３】
2016006661.tif 000100
【図１０４】
2016006661.tif 000101
【図１０５】
2016006661.tif 000102
【図１０６】
2016006661.tif 000103
【図１０７】
2016006661.tif 000104
【図１０８】
2016006661.tif 000105
【図１０９】
2016006661.tif 000106
【図６】
2016006661.tif 000107
【図３５】
2016006661.tif 000108
【図５０】
2016006661.tif 000109
【図５２】
2016006661.tif 000110
【図５８】
2016006661.tif 000111
【図５９】
2016006661.tif 000112
【図６０】
2016006661.tif 000113
【図７４】
2016006661.tif 000114
【図７５】
2016006661.tif 000115
【図７６】
2016006661.tif 000116
【図７７】
2016006661.tif 000117
【図７９】
2016006661.tif 000118
【図８３】
2016006661.tif 000119
【図８６】
2016006661.tif 000120
【図８８】
2016006661.tif 000121
【図９８】
2016006661.tif 000122
【手続補正書】
【提出日】平成27年8月12日(2015.8.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
文書を再構成するプログラムを規定する方法であって、
複数の関連づけられていない基本要素を含む非構造化文書内の基本要素の集合を識別するための文書再構成動作のデフォルト集合を規定し、前記非構造化文書から構造化文書を規定するために基本要素の前記集合間の関連を構造要素として規定することと、
それぞれのプロファイルが（ｉ）潜在的な文書再構成結果の集合と、（ｉｉ）前記構造化文書を規定するための文書再構成動作の前記デフォルト集合とは異なる文書再構成動作の変更された集合を規定するために、中間文書再構成結果が前記プロファイルについての前記潜在的な文書再構成結果とマッチする場合に文書再構成動作の前記集合を変更する命令と、を含むプロファイルの階層的な集合を規定することと、
文書再構成動作の前記集合を変更するために、中間文書再構成結果をプロファイルの前記階層的な集合内のプロファイルとマッチングさせるモジュールを規定することと、を含み、
前記中間文書再構成結果は、少なくとも１つの文書再構成動作によって基本要素の集合間の関連として規定された構造要素を含み、
プロファイルの前記階層的な集合の下位レベルにあるプロファイルからの命令は、上位レベルにあるプロファイルからの命令をオーバーライドする
ことを特徴とする方法。
【請求項２】
プロファイルの前記階層的な集合は、文書、セクション、ページ及びゾーンのうちの少なくとも２つに対するプロファイルを含み、それぞれの文書プロファイルは可能なページプロファイルの特定の集合を指定し、それぞれのページプロファイルは可能なゾーンプロファイルの特定の集合を指定することを特徴とする、請求項１に記載の方法。
【請求項３】
第１の文書プロファイルについてのページプロファイルの前記集合は特定のページプロファイルを含み、第２の文書プロファイルについてのページプロファイルの前記集合も前記特定のページプロファイルを含むことを特徴とする、請求項２に記載の方法。
【請求項４】
特定のプロファイルの前記命令は、前記中間文書再構成結果が前記特定のプロファイルについての前記潜在的な文書再構成結果とマッチする場合にテストされるべきである、プロファイルの前記階層的な集合の下位レベルにあるプロファイルの部分集合を含むことを特徴とする、請求項１に記載の方法。
【請求項５】
特定のプロファイルの前記命令は、特定の文書再構成動作を実行しない命令を含むことを特徴とする、請求項１に記載の方法。
【請求項６】
前記特定のプロファイルはページについてのプロファイルであり、前記特定のプロファイルについての潜在的な文書再構成結果の前記集合は、前記ページが１つのテキストカラムのみを有するという結果を含み、前記特定のプロファイルについての前記命令はテキスト行を分割する動作を実行しない命令を含むことを特徴とする、請求項５に記載の方法。
【請求項７】
文書を再構成する方法であって、
前記文書に関する情報を生成するために、複数の基本要素を含む非構造化文書を前記複数の基本要素から前記文書内の構造要素を識別することにより再構成するための、文書再構成動作のデフォルト集合からの１以上の文書再構成動作を実行することと、
前記実行された文書再構成動作の結果に基づいて、前記非構造化文書についての第１のプロファイルを識別することと、
前記文書に関する生成された前記情報に基づいて、前記文書についての前記再構成動作を調整するために、前記識別された第１のプロファイルに従って文書再構成動作の前記集合を変更することと、
前記文書の一部に関する情報を生成するために、前記変更された集合からの１以上の文書再構成動作を実行することと、
前記実行された文書再構成動作の前記結果に基づいて、前記文書の前記一部についての第２のプロファイルを識別することと、
前記一部に関して生成された前記情報に基づいて前記一部についての前記文書再構成動作を調整するために、前記識別された第２のプロファイルに従って前記文書の前記一部に対して実行する文書再構成動作の前記集合を変更することと、
を含むことを特徴とする方法。
【請求項８】
前記識別された第１のプロファイルに従って文書再構成動作の前記集合を変更することは、実行される再構成動作の前記集合から特定の再構成動作を除くことを含むことを特徴とする、請求項７に記載の方法。
【請求項９】
再構成動作の前記デフォルト集合は、前記再構成動作が実行される順序を指定することを特徴とする、請求項７に記載の方法。
【請求項１０】
前記識別された第１のプロファイルに従って文書再構成動作の前記集合を変更することは、前記再構成動作が実行される前記順序を変更することを含むことを特徴とする、請求項９に記載の方法。
【請求項１１】
前記第１のプロファイルは、前記実行された文書再構成動作の結果に基づいて前記非構造化文書についての文書タイプを識別する文書プロファイルであることを特徴とする、請求項７に記載の方法。
【請求項１２】
前記文書の前記一部は前記文書の特定のページであり、前記文書の前記一部について前記識別された第２のプロファイルは前記特定のページについてのページタイプを識別するページプロファイルであることを特徴とする、請求項１１に記載の方法。
【請求項１３】
前記ページプロファイルの命令は、前記非構造化文書の前記特定のページを再構成する前記文書プロファイルの矛盾する命令をオーバーライドすることを特徴とする、請求項１２に記載の方法。
【請求項１４】
前記ページプロファイルの命令と矛盾しない前記文書プロファイルの命令は、前記ページプロファイルの前記識別の後にも依然として動作することを特徴とする、請求項１２に記載の方法。
【請求項１５】
複数の基本要素を含む文書を再構成する方法であって、
前記基本要素に基づいて前記文書の構造に関係する要素の集合を識別するために、動作のデフォルト集合からの１以上の文書再構成動作を実行することと、
前記識別された要素の集合を、プロファイルの階層的な集合の第１のレベルにある、文書再構成動作の集合を実行する命令を含む特定のプロファイルの条項の集合と比較することと、
要素の前記集合が前記特定のプロファイルの条項の前記集合とマッチする場合、前記特定のプロファイルの前記命令に従って文書再構成動作の前記デフォルト集合を変更することと、
前記特定のプロファイルの前記命令において規定されていない少なくとも１つの文書再構成動作について、プロファイルの前記階層的な集合の第２のより高位のレベルにあるプロファイルからの命令に従って前記動作を実行することと、
を含むことを特徴とする方法。
【請求項１６】
条項の前記集合は前記識別された要素の集合に関する述語ステートメントの集合を含み、前記識別された要素の集合を条項の前記集合と比較することは、全ての前記述語ステートメントが真であるか否かを判定することを含むことを特徴とする、請求項１５に記載の方法。
【請求項１７】
条項の前記集合は前記文書の特定の部分に関する条項であり、文書再構成動作の前記デフォルト集合を変更することは、前記文書の前記特定の部分について実行される文書再構成動作の前記集合のみを変更することを特徴とする、請求項１５に記載の方法。
【請求項１８】
要素の前記集合が、プロファイルの前記階層的な集合の前記第１のレベルにある前記特定のプロファイルの条項の前記集合とマッチしない場合、前記識別された要素の集合を、プロファイルの前記階層的な集合の第２のレベルにある異なるプロファイルの異なる条項の集合と比較することをさらに含むことを特徴とする、請求項１５に記載の方法。
【請求項１９】
少なくとも１つの処理部により実行される、請求項７乃至１８の何れか１項に記載の方法を実行するための命令の集合を含むプログラムを格納する機械読み取り可能な媒体。
【請求項２０】
少なくとも１つの処理部と、
前記少なくとも１つの処理部により実行される、請求項７乃至１８の何れか１項に記載の方法を実行するための命令の集合を含むプログラムを格納する機械読み取り可能な媒体と、
を備えることを特徴とする電子デバイス。
【外国語明細書】
2016006661000001.pdf