(57)【特許請求の範囲】
【請求項１】
ウェブコンテンツの抽出方法であって、
構造エンジンにより複数のノードを含む階層構造を第１のウェブページ内で検出し、
記事エンジンにより該複数のノードから潜在的な記事ノードを識別し、
前記記事エンジンにより前記階層構造内で最高ランクを有する前記識別された潜在的な記事ノードのうちの１つを第１の記事ノードとして選択し、
前記記事エンジンにより前記第１の記事ノードからコンテンツを抽出し、
前記記事エンジンにより、前記第１のウェブページが、前記第１の記事ノードのコンテンツの続きであるコンテンツを有する第２の記事ノードを含む第２のウェブページの存在を示すコンテンツを含むノードを含むか否かを判定し、
その判定結果が肯定である際に、
前記構造エンジンにより複数のノードを含む階層構造を前記第２のウェブページ内で検出し、
前記記事エンジンにより該複数のノードから潜在的な記事ノードを識別し、
前記記事エンジンにより前記第２のウェブページの前記階層構造内で最初に現れた前記識別された潜在的な記事ノードを前記第２の記事ノードとして選択し、
前記記事エンジンにより該第２の記事ノードからコンテンツを抽出し、
生成エンジンにより前記第１の記事ノード及び前記第２の記事ノードから抽出されたコンテンツを生成する、
という各ステップを含む、ウェブコンテンツの抽出方法。
【請求項２】
前記記事エンジンにより、前記第１の記事ノードの前記コンテンツを、該第１の記事ノードと同じ階層レベルにある他のノードからのコンテンツとマージするステップと、前記記事エンジンにより、前記第２の記事ノードの前記コンテンツを、該第２の記事ノードと同じ階層レベルにある他のノードからのコンテンツとマージするステップとを更に含み、
前記生成ステップが、該マージされたコンテンツを生成するステップからなる、
請求項１に記載の方法。
【請求項３】
前記記事エンジンにより、前記第１の記事ノードと同じ階層レベルにあるノード及び前記第２の記事ノードと同じ階層レベルにあるノードであって、広告コンテンツ及び所定のしきい値未満の量のテキストコンテンツのうちの一方又は両方を含むノードを識別し、
前記記事エンジンにより、該識別されたノードからのコンテンツを前記マージされるコンテンツから除外する、
という各ステップを更に含む、請求項２に記載の方法。
【請求項４】
潜在的な記事ノードを識別する前記ステップが、所定のしきい値を越える量のテキストコンテンツを含む複数のノードのうちの１つ又は２つ以上を識別するステップからなる、請求項１ないし請求項３の何れか一項に記載の方法。
【請求項５】
前記テキストコンテンツの量が単語数又は文字数である、請求項４に記載の方法。
【請求項６】
コンピュータ実行可能命令が記録されたコンピュータ読み取り可能媒体であって、該命令が、
複数のノードを含む階層構造を第１のウェブページ内で検出し、
該複数のノードから潜在的な記事ノードを識別し、
前記階層構造内で最高ランクを有する前記識別された潜在的な記事ノードを第１の記事ノードとして選択し、
該第１の記事ノードからコンテンツを抽出し、
前記第１のウェブページが、該第１の記事ノードの該コンテンツの続きであるコンテンツを有する第２の記事ノードを含む第２のウェブページの存在を示すコンテンツを含むノードを含むか否かを判定し、
その判定結果が肯定である場合に、
複数のノードを含む階層構造を前記第２のウェブページ内で検出し、
該複数のノードから潜在的な記事ノードを識別し、
前記第２のウェブページの前記階層構造内で最初に現れた前記識別された潜在的な記事ノードを前記第２の記事ノードとして選択し、
該第２の記事ノードからコンテンツを抽出し、
前記第１の記事ノード及び第２の記事ノードから抽出されたコンテンツを生成する、
という各ステップを処理システムに実行させるものである、コンピュータ読み取り可能媒体。
【請求項７】
前記命令が前記処理システムに実行させる前記ステップが、前記第１の記事ノードの前記コンテンツを、該第１の記事ノードと同じ階層レベルにある他のノードからのコンテンツとマージするステップと、前記第２の記事ノードの前記コンテンツを、該第２の記事ノードと同じ階層レベルにある他のノードからのコンテンツとマージするステップとを含み、
前記生成ステップが、該マージされたコンテンツを生成するステップからなる、
請求項６に記載のコンピュータ読み取り可能媒体。
【請求項８】
前記命令が前記処理システムに実行させる前記ステップが、
前記第１の記事ノードと同じ階層レベルにあるノード及び前記第２の記事ノードと同じ階層レベルにあるノードであって、広告コンテンツ及び所定のしきい値未満の量のテキストコンテンツのうちの一方又は両方を含むノードを識別し、
該識別されたノードからのコンテンツを前記マージされるコンテンツから除外する、
という各ステップを含む、請求項７に記載のコンピュータ読み取り可能媒体。
【請求項９】
潜在的な記事ノードを識別する前記ステップが、所定のしきい値を越える量のテキストコンテンツを含む複数のノードのうちの１つ又は２つ以上を識別するステップからなる、請求項６ないし請求項８の何れか一項に記載のコンピュータ読み取り可能媒体。
【請求項１０】
前記テキストコンテンツの量が単語数又は文字数である、請求項９に記載のコンピュータ読み取り可能媒体。
【請求項１１】
ウェブコンテンツ抽出システムであって、
複数のノードを含む階層構造をウェブページ内で検出するよう動作する構造エンジンと、
該複数のノードから潜在的な記事ノードを識別し、及び前記階層構造内で最高ランクを有する前記識別された潜在的な記事ノードを記事ノードとして選択して該記事ノードからコンテンツを抽出するよう動作する、記事エンジンと、
該記事ノードから抽出されたコンテンツを生成するよう動作する生成エンジンとを備えており、
前記構造エンジンが、複数のノードを含む階層構造を第１のウェブページ内で検出し、
前記記事エンジンが、前記複数のノードから潜在的な記事ノードを識別し、前記階層構造内で最高ランクを有する前記識別された潜在的な記事ノードのうちの１つを第１の記事ノードとして選択し、該第１の記事ノードからコンテンツを抽出し、及び該第１の記事ノードのコンテンツの続きであるコンテンツを有する第２の記事ノードを含む第２のウェブページの存在を示すコンテンツを含むノードを前記第１のウェブページが含むか否かを判定し、
その判定結果が肯定である際に、
前記構造エンジンが、前記第２のウェブページ内で複数のノードを含む階層構造を検出し、
前記記事エンジンが、該複数のノードから潜在的な記事ノードを識別し、該第２のウェブページの該階層構造内で最初に現れた前記識別された潜在的な記事ノードを前記第２の記事ノードとして選択し、及び該第２の記事ノードからコンテンツを抽出し、
前記生成エンジンが、前記第１の記事ノード及び前記第２の記事ノードから抽出されたコンテンツを生成する、
ウェブコンテンツ抽出システム。
【請求項１２】
前記記事エンジンが、前記記事ノードの前記コンテンツを、該記事ノードと同じ階層レベルにある他のノードからのコンテンツとマージし、及び該マージされるコンテンツを抽出するよう動作することができ、
前記生成エンジンが、該マージされたコンテンツを生成するよう動作するものである、
請求項１１に記載のウェブコンテンツ抽出システム。
【請求項１３】
前記記事エンジンが、
前記記事ノードと同じ階層レベルにあるノードであって、広告コンテンツ及び所定のしきい値未満の量のテキストコンテンツのうちの一方又は両方を含むノードを識別し、及び
該識別されたノードからのコンテンツを前記マージされるコンテンツから除外する
よう動作するものである、請求項１２に記載のウェブコンテンツ抽出システム。
【請求項１４】
前記記事エンジンが、
所定のしきい値を越える量のテキストコンテンツを含む前記複数のノードのうちの１つ又は２つ以上を識別することにより潜在的な記事ノードを識別する
よう動作するものである、請求項１１ないし請求項１３の何れか一項に記載のウェブコンテンツ抽出システム。
【請求項１５】
前記テキストコンテンツの量が単語数又は文字数である、請求項１４に記載のウェブコンテンツ抽出システム。
【発明の詳細な説明】
【背景技術】
【０００１】
ウェブページは、プリント用ではなくディスプレイ画面用に設計されることが多い。テキスト及びイメージを含み得る主な記事に加えて、ウェブページは、動的に生成される広告その他の周辺の情報を含むことが多い。その結果として、ウェブページをプリントすることを望むユーザは、その結果に不満を覚えることが多い。プリントされたウェブページは、複数頁にまたがる乱雑な外観を有するものとなる可能性があり、この場合、主な記事は、広告その他の周辺のコンテンツが散在した状態で１頁上に現れ又は２頁以上に分割されることになる。
【図面の簡単な説明】
【０００２】
【図１】ウェブページフォーマットの例示的な描写である。
【図２】コンテンツが散在した状態の図１のウェブページフォーマットの例示的な描写である。
【図３】一実施形態による階層構造の例示的な描写である。
【図４】一実施形態による階層構造の例示的な描写である。
【図５】一実施形態による階層構造の例示的な描写である。
【図６】一実施形態による抽出されたコンテンツの例示的な描写である。
【図７】一実施形態により選択され抽出されたコンテンツが除去された後の例示的な描写である。
【図８】一実施形態により生成されたコンテンツの例示的な描写である。
【図９】一実施形態による選択的コンテンツ抽出システムの例示的な描写である。
【図１０】一実施形態による図９のシステムを実施することができる環境の例示的な描写である。
【図１１】様々な実施形態を実施するために実行する各ステップを示すフローチャートである。
【図１２】様々な実施形態を実施するために実行する各ステップを示すフローチャートである。
【発明を実施するための形態】
【０００３】
序論：
以下で説明する様々な実施形態は、１つのウェブページ又は一連の関連するウェブページからコンテンツを選択的及び自動的に抽出するよう動作するものである。該抽出されたコンテンツは、次いで生成することが可能である。本書で用いる場合、抽出されたコンテンツの生成とは、印刷、表示、通信、及び電子的な記憶を含み得るものであるが、これらに限定されるものではない。
【０００４】
動作時には、ウェブページが調査されてDOM（Document Object Model）等の階層構造が識別される。該構造の複数のノードが調査されて潜在的な記事ノードが識別される。一例では、潜在的な記事ノードとは、一定のしきい値を越える量のテキストを含むノードである。該しきい値は、所定の文字数又は単語数を規定するものである。該構造内で最初に現れる潜在的な記事は、記事ノードとして識別される。該記事ノード及び同一階層レベルにある兄弟（sibling）ノードからのコンテンツが抽出され、マージされ、及び生成される。場合によっては、兄弟ノードからの広告等のコンテンツは除去される。
ウェブコンテンツ：
ウェブコンテンツは、ユーザへ情報を伝達するために使用することができる。該情報は、ユーザが要求した記事コンテンツ、並びに、ウェブサイト識別子、リンク、及び種々の広告といった周辺コンテンツを含むものである。記事コンテンツは、ニュース記事、レシピ、又は他の任意の話題といった、特定の主題に関するテキスト及びイメージ等の情報を含むことが可能である。
【０００５】
図１は、ウェブページ10の例示的なフォーマットである。図示のフォーマットは、例示的なものであるが、記事12、ヘッダ14、カラム16、及びフッタ18を含む、共通のセクションを含む。記事セクション12は、特定の関心の主題に関するテキスト及びイメージ等の記事コンテンツを含む。その例として、ニュース記事、建築計画、及びレシピが挙げられるが、これらに限定されるものではない。該記事セクションはまた、その記事コンテンツに直接関係のないインライン広告及びその他の周辺コンテンツを含むことが可能である。ヘッダ14は典型的には、ウェブサイトを識別するデータやナビゲーションリンクを含み、またバナー広告を含むことが多い。カラム16は、記事セクション14のコンテンツに関係し又は該コンテンツとは無関係の広告及びリンクを含むことが可能である。フッタ18は、ウェブサイトを識別するデータ、該ウェブサイトのためのナビゲーションリンク、及び広告を含むことが可能である。
【０００６】
図２は、各セクション12-18内に例示的なコンテンツが散在した状態の図１のウェブページ10の描写である。ヘッダ14は、バナー広告20、ウェブサイトタイトル22、及びウェブサイトリンクバー24を含むよう示されている。バナー広告20は、一般に別のウェブページへのリンクとして働くイメージを表すものである。ウェブサイトタイトル22は、ウェブサイトを識別するテキスト及びイメージ等のコンテンツを表すものである。ウェブサイトリンクバー24は、識別されたウェブサイトへとナビゲートするための一群のリンクを表すものである。典型的には、コンテンツ20,22,24の何れも、セクション12の記事コンテンツの主題とは直接関係のないものとなる。
【０００７】
記事セクション12は、タイトル26、テキスト28、イメージ30、インライン広告32、テキスト34、インライン広告36、テキスト38、及び場合によっては続きリンク40を含むよう示されている。タイトル26は、記事コンテンツのタイトルを表している。テキスト28,34,38は、記事コンテンツの本文を表している。イメージ30は、記事コンテンツの一部である写真その他のグラフィカルコンテンツを表している。インライン広告32,36は、他のウェブサイトへのリンクを表し、タイトル26、テキスト28,24,38、及びイメージ30に必ずしも関連するものではなく、記事コンテンツの周辺に存在するものである。記事コンテンツは、１または２頁以上の更なるウェブページにまたがることが可能である。かかる場合には、続きリンク40が含まれる。続きリンク40は、更なる記事コンテンツを含む後続のウェブページへのリンクを表すものであり、記事セクション12の最後に現れることが多く、「次」又は「１」及び「２」等の単語を含むものである。該更なるウェブページは、更に別のウェブページへの別の続きリンクを含むことも含まないことも可能である。
【０００８】
カラムセクション16は、カラム広告44、関連リンク46、及びカラム広告48を含むよう示されている。カラム広告44,48は、別のウェブサイトへのリンクを表し、該ウェブサイトは前記記事コンテンツの主題に関連するもの又は関連しないものとすることが可能である。関連リンク46は、ウェブページ10の記事コンテンツに関連する他の記事コンテンツを含むウェブサイトの他のウェブページへのリンクを表すものである。フッタ18は、バナー広告50及びウェブサイトリンクバー52を含むよう示されている。バナー広告50は一般に、別のウェブページへのリンクとして働くイメージを表すものである。ウェブサイトリンクバー52は、ウェブサイトへナビゲートするための１グループのリンクを表すものである。典型的には、コンテンツ44-52は何れも、セクション12の記事コンテンツの主題とは直接関係のないものとなる。
コンテンツ抽出：
図２のウェブページ10を一例として用いた場合、図３ないし図８に関して後述する様々な実施形態は、セクション12の記事コンテンツを自動的に抽出するよう動作する。セクション14-18からのコンテンツが除外される。次いで、該抽出されたコンテンツは、印刷、保管、電子メール等といった様々な態様で生成することができる。勿論、ウェブページ10は、単なる一例として使用されるものである。後述する手順は、様々なウェブページフォーマットについて実施可能なものである。
【０００９】
図３から開始して、対象となるウェブページの階層構造52が識別される。ここで、該対象となるウェブページは、図２のウェブページ10である。かかる階層構造は、図３に示し図４及び図５で展開するようなウェブページのDOM（Document Object Model）とすることが可能である。構造52は、階層的に編成された複数のノードを含む。ノード54は、ルートノードであり、この例では、ウェブページ言語をHTML（Hyper-Text Mark-up Language）として識別するものである。ノード54が開始タグ<HTML>及び終了タグ</HTML>を含むことに留意されたい。図面の参照を効率化するために、該２つのタグを単一のノード54と称することとする。文脈によっては、各タグを構造52上の別個のノードとして識別する場合がある。
【００１０】
ルートノード54は、子ノード56,58を含み又は取り囲む。互いに対して、ノード56,58は、構造52内の同じ階層レベルにおける兄弟である。ノード56は、HTMLコードのヘッドタグに対応し、ヘッドコンテンツ60として識別される１つ又は２つ以上の子ノードを含む。該ヘッドコンテンツ60は、ウェブページの閲覧者には直接見えない内容を含む１つ又は２つ以上の子ノードを表している。ヘッドコンテンツ60は、スタイルシート及びJavaScriptプログラム等のアイテムへの外部リンクを含むことが可能である。ヘッドコンテンツ60はまた、閲覧者のブラウザの上部バー内に現れるウェブページのタイトルを含む。他の要素は、ページ記述及びキーワードを含むことが可能である。
【００１１】
ノード58は、HTMLコードのボディタグに対応し、この例ではウェブページ10のセクション12-18に対応するコンテンツ62-68を含み又は取り囲む。換言すれば、ボディコンテンツ62-68は、ウェブページが閲覧される際に見ることができるコンテンツを規定する様々な子ノードを表すものである。ヘッダコンテンツ62は、ウェブページ10のヘッダセクション14の内容を定義する様々なノードを表している。記事コンテンツ64は、図４で展開されたものであり、ウェブページ10の記事セクション12の内容を定義する様々なノードを表している。カラムコンテンツ66は、図５で展開されたものであり、ウェブページ10のカラムセクション16の内容を定義する様々なノードを表している。フッタコンテンツ68は、ウェブページ10のフッタセクション18の内容を定義する様々なノードを表している。
【００１２】
図４を参照すると、記事コンテンツ64は、ウェブページ10の記事セクション12に対応する開始及び終了タグを表すノード70を含んでいる。例示的なタグとして、<div>、<p>、及び<br>が挙げられるが、それらに限定されるものではない。タグ70は子ノード72-86を含み又は取り囲む。図２に関し、
・ノード72は、タイトル26のためのタグ及びコンテンツ72aに対応し、
・ノード74は、テキスト28のためのタグ及びコンテンツ74aに対応し、
・ノード76は、イメージ30のためのタグ及びコンテンツ76aに対応し、
・ノード78は、インライン広告32のためのタグ及びコンテンツ78aに対応し、
・ノード80は、テキスト34のためのタグ及びコンテンツ80aに対応し、
・ノード82は、インライン広告36のためのタグ及びコンテンツ82aに対応し、
・ノード84は、テキスト38のためのタグ及びコンテンツ84aに対応し、
・ノード86は、リンク40のためのタグ及びコンテンツ86aに対応する。
【００１３】
図５を参照すると、カラムコンテンツ66は、ウェブページ10のカラムセクション16に対応する開始及び終了タグを表すノード88を含んでいる。例示的なタグとして、<div>、<p>、及び<br>が挙げられるが、それらに限定されるものではない。タグ88は子ノード90-94を含み又は取り囲む。図５に関し、
・ノード90は、カラム広告44のためのタグ及びコンテンツ90aに対応し、
・ノード92は、関連リンク46のためのタグ及びコンテンツ92aに対応し、
・ノード94は、カラム広告48のためのタグ及びコンテンツ94aに対応する。
【００１４】
上述したように、目的は、記事セクション12からのコンテンツを、該記事セクション12以外のセクション14-18からのコンテンツを除外して抽出し及び発行することにある。別の目的は、抽出された記事コンテンツから、それが発行される前に、広告その他の周辺情報を更に削除することにある。これを行うために、図３ないし図５に示す構造52を調査して潜在的な記事ノードを識別する。記事ノードは、図１ないし図５の例では、記事セクション12の一部をなすコンテンツを含むノードである。潜在的な記事ノードとは、ウェブページの主題に直接関係するコンテンツを含んでいる可能性を示す特徴を有するノードである。一実施携帯では、潜在的な記事ノードは、所定のしきい値を越える量のテキストを含むノードである。該しきい値は、特定の文字数又は単語数を定義し得るものである。識別された複数の潜在的な記事ノードのうち、前記構造内で最初に現れるノードが記事ノードとして識別される。該記事ノード及び兄弟ノードからコンテンツが抽出され、マージされ、及び生成される。場合によっては、広告等のコンテンツは除外される。
【００１５】
図６を参照する一方、図３ないし図５を再び参照すると、ノード74のテキスト74a、ノード84のテキスト84a、及びノード92の関連リンク92aが、それぞれ、前記しきい値を越える量のテキストを含むものと仮定する。このため、該ノード74,84,92の各々は、潜在的な記事ノードとして識別されることになる。構造52内で、ノード74は、最初に現れ、それ故、識別された潜在的な記事ノードのうち最もランクの高いものとなる。その結果として、ノード74は、この例では、記事ノードとして識別される。ノード72,76-86は、ノード74の兄弟ノードである。換言すれば、ノード72,76-86は、構造52内でノード74と同じ階層レベルにある。
【００１６】
識別された記事ノード74及び兄弟ノード72,76-86からのコンテンツは、抽出され、図６の例示的なコンテンツ構造96に示すようにマージされる。構造96のコンテンツを生成する前に、識別された記事ノード74のテキストの周辺コンテンツが識別され除外されて、図７の例示的なコンテンツ構造98に示すようになる。周辺コンテンツは、多数の態様で識別することができる。例えば、周辺コンテンツは、テキスト「広告」を有するリンク又はイメージを含むことが可能である。周辺コンテンツは、しきい値未満の量のテキストを有するリンクとすることが可能である。例えば、関連ページへの続きリンクは、単純に、単語「次」又は「続き」又は「１」及び「２」を含む可能性がある。このため、図７では、コンテンツ78a,82a,86aは、図７の構造98から除外されている。
【００１７】
次いで、コンテンツ構造98のコンテンツ72a,74a,76a,80a,84aを、図８の生成されたコンテンツ100に示すように生成することができる。上述のように、抽出されたコンテンツは、印刷、モニタ上への表示、電子メール又はウェブページを介した通信、及びファイル内への電子的な格納を含む、多数の態様で生成することが可能である。図８の例では、生成されたコンテンツ100は、ウェブページ10の主たる話題、すなわち、記事セクション12の主題に直接関係するコンテンツを含む。生成されたコンテンツ100から除外されたコンテンツは、セクション14-18のコンテンツとセクション12の周辺コンテンツである。
抽出システム：
図９及び図１０は、ウェブコンテンツを選択的に抽出するための本発明によるシステム102として機能する様々な物理的及び論理的な構成要素を示している。システム102は、構造エンジン104、記事エンジン106、及び生成エンジン108を含むよう示されている。構造エンジン104は、複数のノードを含む階層構造をウェブページ内で検知することができるハードウェア及びプログラムの任意の組み合わせを概略的に表している。既述のように、かかる階層構造は、DOM（Document Object Model）を含むことが可能である。
【００１８】
記事エンジン106は、前記仮想構造の複数のノードから潜在的な記事ノードを識別することができるハードウェア及びプログラムの任意の組み合わせを概略的に示している。記事エンジン106は、そのタスクを、単語数または文字数といった所与のしきい値を越える量のテキストを含むノードを識別することにより行うことが可能である。記事エンジン106は次いで、階層構造内でランクが最も高い潜在的な記事ノードを記事ノードとして識別する。記事エンジン106は、該識別された記事ノードからコンテンツを抽出する。該識別された記事ノードが兄弟ノード（すなわち同じ階層レベルにあるノード）を有する場合には、記事エンジン106は、それら兄弟ノードからコンテンツを抽出し、該抽出したコンテンツをマージする。記事エンジン106はまた、複数の該兄弟ノードのうちの１つ又は２つ以上からのコンテンツを前記マージされるコンテンツから除外する責務を負うことが可能である。抽出されたコンテンツを調査して、記事エンジン106は、イメージに関連して単語「広告」又は「ad」を含む兄弟ノードからのコンテンツを除外することが可能である。記事エンジン106はまた、所与のしきい値を下回る量のテキストを含む兄弟ノードからのコンテンツを除外することが可能である。
【００１９】
記事エンジン106はまた、識別された記事ノードに対する兄弟ノードが、関連する後続のウェブページの存在を示すコンテンツを含むか否かを判定する責務を負うことが可能である。関連する後続のウェブページとは、現在のウェブページの抽出されたコンテンツの続きであるコンテンツを有する記事ノードを有するウェブページである。図４に示すように、ノード86等の兄弟ノードは、単語「次」又はその他の（抽出されたコンテンツに関連するコンテンツを後続のウェブページが含むことの）指示子を有するリンクを含む可能性がある。このため、記事エンジン106は、リンク及び単語「次」又は「１」及び「２」又は「続き」を含むコンテンツについて兄弟ノードを調査する。かかるコンテンツの検出時に、構造エンジン104は、そのリンクにより参照されるウェブページ内で、複数のノードを含む階層構造を検出する。該新しい複数のノードを調査して、記事エンジン106は、上述した態様でコンテンツを抽出し、該新たに抽出されたコンテンツを以前に抽出されたコンテンツに追加する。このプロセスは、記事エンジン106が関連する後続のウェブページの指示を見いださなくなるまで繰り返すことが可能である。
【００２０】
生成エンジン108は、抽出されマージされたコンテンツを生成することができるハードウェア及びプログラムのあらゆる組み合わせを概略的に表すものである。上述したように、抽出されたコンテンツは、印刷、モニタ上への表示、電子メール又はウェブページを介した通信、及びファイルへの電子的な格納を含む、多数の態様で生成することが可能である。
【００２１】
図９のシステム102は、図１０の環境110等の多数の環境で実施することが可能である。環境110は、クライアント装置112、サーバ装置114,116、プリンタ118、データリポジトリ120、及び表示装置122を含む。クライアント装置は、ウェブコンテンツを取得し処理することができるあらゆるコンピューティング装置を概略的に表すものである。例えば、クライアント装置112は、デスクトップコンピュータ、ラップトップコンピュータ、スマートフォンとすることが可能である。サーバ装置114は、クライアント装置112へウェブページを提供することができる１つ又は２つ以上のあらゆる装置を概略的に表すものである。サーバ装置116は、クライアント装置112へリモートアプリケーションを提供することができる１つ又は２つ以上のあらゆる装置を概略的に表すものである。プリンタ118は、印刷されたイメージを生成することができるあらゆるイメージ形成装置を概略的に表すものである。データリポジトリ120は、後の読み出し及び使用のために電子的なデータを格納することができるあらゆるサービスを概略的に表すものである。表示装置122は、所望のイメージを表示することができるコンピュータ用モニタ又はテレビ等のあらゆる装置を概略的に表すものである。
【００２２】
リンク124は、クライアント装置112を装置114-122に対して相互接続する。リンク124は、遠隔通信リンク、赤外線リンク、無線リンク、又は電子的な通信を提供する他のあらゆる接続手段又はシステムを介した、ケーブル、無線、光ファイバ、又はリモート接続のうちの１つ又は２つ以上を概略的に表すものである。リンク124は、イントラネット、インターネット、又はそれらの組み合わせを表し得るものである。図１０に示すクライアント装置112と装置114-122との間でリンク124が辿る経路は、それら装置間の論理的な通信経路を表すものであり、必ずしもそれら装置間の物理的な経路ではない。
【００２３】
図１０の例では、クライアント装置112は、プロセッサ126及びメモリ128を含む。プロセッサ126は、メモリ128内に格納されたプログラム命令を実行することができるあらゆる装置を概略的に表すものである。メモリ128は、プログラム命令を格納するよう構成されたあらゆるメモリを概略的に表すものであり、該プログラム命令は、その実行時に、プロセッサ126にウェブページからウェブコンテンツを選択的に抽出させ、又は、サーバ装置116が実行しているリモートアプリケーションが該抽出を行うことをプロセッサ126に要求させるものである。
【００２４】
メモリ128は、ＯＳ（Operating System）130、ドライバ132、及びブラウザ134を含むよう示されている。ＯＳ130は、あらゆるソフトウェアプラットフォームを概略的に表すものであり、該ソフトウェアプラットフォーム上でドライバ132及びブラウザ134等の他のプログラム又はアプリケーションが実行される。一例として、Linux（登録商標）及びMicrosoft Windows（登録商標）が挙げられる。ドライバ132は、その実行時に、プリンタ118、データリポジトリ120、及び表示装置122の動作を制御するあらゆるプログラム命令を概略的に表すものである。特に、ドライバ132は、ＯＳ130及びブラウザ134の翻訳を行うものとして機能する。ドライバ132は、ＯＳ130及びブラウザ134から受信した汎用的なコマンドを、周辺装置118,120,122により使用することができる装置固有のコマンドへと翻訳する。ブラウザ134は、その実行時に、ドライバ132の使用を介してサーバ装置114からウェブページを読み出し、該ウェブページを表示させ、及び該ウェブページをプリントさせるよう動作する、あらゆるプログラム命令を概略的に表すものである。
【００２５】
上述のように、図９のシステム102の様々な構成要素は、ハードウェア及びプログラムの組み合わせを含むものである。図１０に関し、ハードウェア要素は、プロセッサ126及び／又はサーバ装置116により実施することが可能である。プログラム要素は、ＯＳ130、ドライバ132、ブラウザ134、及び／又はサーバ装置116により実行されるプログラムの一部として実施することが可能である。
動作：
図１１及び図１２は、様々な実施形態を実施するために実行される各ステップの例示的なフローチャートである。図１１及び図１２について議論する際に、図２ないし図１０を参照して、文脈に即した例を提供する。しかし、実施形態は、それらの例に限定されるものではない。図１１から開始して、ウェブページ内の階層構造が検出される（ステップ136）。該構造は、階層的に編成された複数のノードを含む。所与の実施形態では、該構造は、図３ないし図５の例で示したようなDOM（Document Object Model）である。図９の例では、構造エンジン104がステップ136を実行する責務を負うものとなる。図１０を参照すると、構造エンジン104は、少なくとも部分的に、ＯＳ130、ドライバ132、ブラウザ134、又はサーバ装置116により実行されているプログラムさえも介して、実施することが可能である。
【００２６】
潜在的な記事ノードは、ステップ136で検出された構造の複数のノードから識別される（ステップ138）。この際に、該複数のノードを調査して、ウェブページの主題に直接関係するコンテンツをノードが含んでいる可能性を示す特徴を有するノードを識別する。かかる特徴は、単語数又は文字数のしきい値を越える量のテキストを含むことが可能である。前記構造内で最高ランクを有する潜在的な記事ノード、すなわち、最初に現れる潜在的な記事ノードが、記事ノードとして選択される（ステップ140）。図９を参照すると、記事エンジン106は、ステップ138,140の実行を責務とするものである。図１０を参照すると、記事エンジン106は、少なくとも部分的に、ＯＳ130、ドライバ132、ブラウザ134、又はサーバ装置116により実行されているプログラムさえも介して、実施することが可能である。
【００２７】
該選択された記事ノードからのコンテンツが生成される（ステップ142）。該生成は、印刷、表示、電子メッセージを介した通信、ウェブへの投稿、及びファイルへの保存を含むことが可能である。図９を参照すると、生成エンジン108は、ステップ138,140の実行を責務とするものである。図１０を参照すると、生成エンジン108は、少なくとも部分的に、ＯＳ130、ドライバ132、ブラウザ134、又はサーバ装置116により実行されているプログラムさえも介して、実施することが可能である。
【００２８】
ステップ140で選択された記事ノードは、全ての記事コンテンツを含まない可能性がある。かかる場合には、該選択された記事ノードに対する兄弟ノードが識別される。該選択された記事ノードからのコンテンツが、かかる兄弟ノードから抽出されたコンテンツとマージされ、該マージされたコンテンツがステップ142で生成される。しかし、該兄弟ノードのうちの幾つかは、該記事コンテンツの主題にとって重要でない広告及びリンクといったコンテンツを含んでいる可能性がある。マージされたコンテンツを生成する前に、１つ又は２つ以上の広告コンテンツ及びしきい値未満の量のテキストコンテンツを含む兄弟ノードを識別する。広告コンテンツを含む兄弟ノードは、例えば、単語「広告」又は「ad」又はそれらの変形例（及び希ではあるがその他のテキスト）を含む記述を探索することにより、識別することが可能である。かかる識別された１つ又は２つ以上の兄弟ノードからのコンテンツは、マージされるコンテンツから除外される。
【００２９】
図１２を参照すると、取得したウェブページ内の階層構造を検出する（ステップ
144）。該構造は、階層的に編成された複数のノードを含む。所与の実施形態では、該構造は、図３ないし図５の例で示したようなDOM（Document Object Model）である。図９の例では、構造エンジン104がステップ144を実行する責務を負うものとなる。図１０を参照すると、構造エンジン104は、少なくとも部分的に、ＯＳ130、ドライバ132、ブラウザ134、又はサーバ装置116により実行されているプログラムさえも介して、実施することが可能である。
【００３０】
潜在的な記事ノードは、ステップ144で検出された構造の複数のノードから識別される（ステップ146）。この際に、該複数のノードを調査して、ウェブページの主題に直接関係するコンテンツをノードが含んでいる可能性を示す特徴を有するノードを識別する。かかる特徴は、単語数又は文字数のしきい値を越える量のテキストを含むことが可能である。前記ステップ144で検出された前記構造内で最高ランクを有する潜在的な記事ノード、すなわち、最初に現れる潜在的な記事ノードが、記事ノードとして選択される（ステップ148）。該選択された記事ノードからコンテンツが抽出される（ステップ150）。
【００３１】
関連する後続のウェブページが存在するか否かが判定される（ステップ152）。かかるウェブページは、前記選択された記事ノードのコンテンツの続きであるコンテンツを含む。兄弟ノードは、単語「次」又はその他の（後続のウェブページが前記選択された記事ノードのコンテンツに関連するコンテンツを含むことの）指示子を有するリンクを含む可能性がある。このため、記事エンジン106は、ステップ152で、該選択された記事ノードの兄弟ノードを調査して、リンク及び単語「次」又は「続き」又は「１」及び「２」を含むコンテンツの有無を判定する。該ステップ152で肯定的な判定が行われた場合には、後続のウェブページを取得して（ステップ154）、該プロセスはステップ144に戻る。かかる場合には、ステップ150が繰り返される度に、選択された記事ノードからコンテンツを抽出することが可能である。前記ステップ152で否定的な判定が行われた場合には、該プロセスはステップ156へと進み、ステップ148で選択された１つ又は２つ以上の記事ノードからステップ150で抽出されたコンテンツがマージされる。図９を参照すると、記事エンジン106は、ステップ146-156の実行を責務とするものとなる。図１０を参照すると、記事エンジン106は、少なくとも部分的に、ＯＳ130、ドライバ132、ブラウザ134、又はサーバ装置116により実行されているプログラムさえも介して、実施することが可能である。
【００３２】
次いでマージされたコンテンツが生成される（ステップ142）。生成は、印刷、表示、電子メッセージを介した通信、ウェブサイトへの投稿、及びファイルへの保存を含むことができる。図９を参照すると、生成エンジン108は、ステップ138,140の実行を責務とするものとなる。図１０を参照すると、生成エンジン108は、少なくとも部分的に、ＯＳ130、ドライバ132、ブラウザ134、又はサーバ装置116により実行されているプログラムさえも介して、実施することが可能である。
【００３３】
ステップ140で選択された１つ又は２つ以上の記事ノードは、全ての記事コンテンツを含まない場合がある。かかる場合には、該選択された記事ノードに対する兄弟ノードが識別される。それら兄弟ノードからのコンテンツが、ステップ150で抽出され、ステップ156でマージされる。しかし、兄弟ノードによっては、該記事コンテンツの主題にとって重要でない広告やリンク等のコンテンツを含んでいる可能性がある。マージされたコンテンツを生成する前に、１つ又は２つ以上の広告コンテンツやしきい値未満の量のテキストコンテンツを含む兄弟ノードを識別する。広告コンテンツを含む兄弟ノードは、例えば、単語「広告」又はその変形例（及び希ではあるがその他のテキスト）を含む記述を探索することにより、識別することが可能である。かかる識別された１つ又は２つ以上の兄弟ノードからのコンテンツは、ステップ156のマージされるコンテンツから除外される。
結論：
図１ないし図８は、例示的なウェブページに関する選択的なコンテンツ抽出を示すために使用したものである。しかし、その実施形態には限定されない。図９及び図１０は、様々な実施形態のアーキテクチャ、機能、及び動作を示したものである。図９及び図１０に示す様々な構成要素は、少なくとも部分的にプログラムとして定義されるものである。かかる各構成要素、その一部、又はそれらの様々な組み合わせは、全体的又は部分的に、任意の１つ又は２つ以上の特定の論理的な機能を実施するための１つ又は２つ以上の実行可能命令からなるモジュール、セグメント、又はそのコードの一部を表すことが可能なものである。各構成要素又はその様々な組み合わせは、該１つ又は２つ以上の特定の論理的な機能を実施するための１つの回路又は相互接続された多数の回路を表すことが可能なものである。
【００３４】
また、本発明は、命令実行システム（コンピュータ読み取り可能媒体からロジックをフェッチし又は取得して該ロジックに含まれる命令を実行することができるコンピュータ／プロセッサベースのシステム又はASIC（特定用途向け集積回路）又はその他のシステムなど）により使用し又は該システムと連携して使用するための任意のコンピュータ読み取り可能媒体で実施することが可能である。「コンピュータ読み取り可能媒体」とは、かかる命令実行システムにより使用し又は該システムと連携して使用するためのプログラム又はデータを収容し、格納し、又は維持することができる、あらゆる媒体とすることが可能なものである。コンピュータ読み取り可能媒体は、例えば、電子的な媒体、磁気的な媒体、光学的な媒体、電磁的な媒体、又は半導体による媒体といった多数の物理的な媒体のうちの何れとすることも可能である。適当なコンピュータ読み取り可能媒体の更に特定の例として、フロッピィディスク又はハードディスク等のコンピュータ用ポータブル磁気ディスク、ランダムアクセスメモリ（RAM）、リードオンリーメモリ（ROM）、EPROM（Erasable Programmable Read-Only Memory）、又はポータブルコンパクトディスクが挙げられるが、これには限定されない。
【００３５】
図１１及び図１２のフローチャートは、特定の実行順を示しているが、その実行順は、図示のものとは異ならせることが可能である。例えば、２つ又は３つ以上のブロックの実行順を図示とは異なる順序に入れ替えることが可能である。また、図示の連続する２つ又は３つ以上のブロックを、同時に又は部分的に同時に実行することが可能である。かかる変形例の全ては、本発明の範囲内のものである。
【００３６】
上記の例示的な実施形態に関して本発明を図示及び説明した。しかし、特許請求の範囲に記載する本発明の思想及び範囲から逸脱することなく、他の形態、細部、及び実施形態を実施することが可能である、ということが理解されよう。
【図１】
0005469244.tif 000002
【図２】
0005469244.tif 000003
【図３】
0005469244.tif 000004
【図４】
0005469244.tif 000005
【図５】
0005469244.tif 000006
【図６】
0005469244.tif 000007
【図７】
0005469244.tif 000008
【図８】
0005469244.tif 000009
【図９】
0005469244.tif 000010
【図１０】
0005469244.tif 000011
【図１１】
0005469244.tif 000012
【図１２】
0005469244.tif 000013