JP2023067815A - 外部リンクによって参照される外部コンテンツに対する変更を検出するための方法、システム、およびコンピュータプログラム製品(コンテンツ管理システム) - Google Patents
外部リンクによって参照される外部コンテンツに対する変更を検出するための方法、システム、およびコンピュータプログラム製品(コンテンツ管理システム) Download PDFInfo
- Publication number
- JP2023067815A JP2023067815A JP2022171467A JP2022171467A JP2023067815A JP 2023067815 A JP2023067815 A JP 2023067815A JP 2022171467 A JP2022171467 A JP 2022171467A JP 2022171467 A JP2022171467 A JP 2022171467A JP 2023067815 A JP2023067815 A JP 2023067815A
- Authority
- JP
- Japan
- Prior art keywords
- external
- content
- external content
- keyword
- keywords
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/02—Standardisation; Integration
- H04L41/0246—Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/134—Hyperlinking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9558—Details of hyperlinks; Management of linked annotations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/194—Calculation of difference between files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/237—Lexical tools
- G06F40/247—Thesauruses; Synonyms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/16—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
【課題】外部リンクによって参照される外部コンテンツに対する変更を検出するための方法、システム及びプログラムを提供する。
【解決手段】コンテンツ管理システム510内のリンクを維持するための方法であって、第1の時間に、電子文書に埋め込まれた外部リンクによって参照される外部コンテンツに関連するキーワードを登録することと、ユーザが電子文書にアクセスしたことに応じて、第1の時間より後の第2の時間に外部コンテンツを取得することと、を含む。外部コンテンツは、外部コンテンツを特定する外部リンクに位置するリソースをスクレイピングすることによって取得される。方法はさらに、取得した外部コンテンツおよび登録したキーワードを用いて、外部コンテンツが変更されたか否かを判断することを含む。
【選択図】図5
【解決手段】コンテンツ管理システム510内のリンクを維持するための方法であって、第1の時間に、電子文書に埋め込まれた外部リンクによって参照される外部コンテンツに関連するキーワードを登録することと、ユーザが電子文書にアクセスしたことに応じて、第1の時間より後の第2の時間に外部コンテンツを取得することと、を含む。外部コンテンツは、外部コンテンツを特定する外部リンクに位置するリソースをスクレイピングすることによって取得される。方法はさらに、取得した外部コンテンツおよび登録したキーワードを用いて、外部コンテンツが変更されたか否かを判断することを含む。
【選択図】図5
Description
本開示は、一般に、コンピューティングシステムの分野に関し、より詳細には、コンテンツ管理システムにおけるコンテンツの整合性および正確性を維持することに関する。
コンテンツ管理システム(CMS:Content Management System)とは、デジタルコンテンツの作成と変更を管理(コンテンツ管理)するためのコンピュータシステム(例えば、コンピュータ上で動作するソフトウェア)である。CMSは通常、企業コンテンツ管理およびウェブコンテンツ管理に用いられる。ウェブコンテンツ管理に用いられる場合、CMSは、コンテンツを表示しユーザとのインタラクションを行うテキストおよび埋め込みグラフィックス、写真、ビデオ、オーディオ、地図、ならびにプログラムコードを含むウェブサイトを管理してもよい。
本開示は、外部リンクによって参照される外部コンテンツに対する変更を検出するための方法等を提供することを目的とする。
本開示の実施形態は、コンテンツ管理システムにおいてリンクを維持するための方法、コンピュータプログラム製品、およびシステムを含む。方法は、第1の時間に、電子文書に埋め込まれた外部リンクによって参照される外部コンテンツに関連するキーワードを登録することを含む。方法は、ユーザが電子文書にアクセスしたことに応じて、第1の時間より後の第2の時間に、外部コンテンツを取得することをさらに含む。外部コンテンツは、外部コンテンツを特定する外部リンクに位置するリソースをスクレイピングすることによって取得されてもよい。方法は、取得した外部コンテンツと登録したキーワードとを用いて、外部コンテンツが変更されたか否かを判断する検証工程を行うことをさらに含む。
上記の概要は、図示の各実施形態または本開示のすべての実装例を説明することを意図していない。
本開示に含まれる図面は、本明細書に組み込まれ、本明細書の一部を構成する。これらの図面は本開示の実施形態を示し、明細書の記載と併せて、本開示の原理を説明するものである。なお、これらの図面は典型的な実施形態を例示するに過ぎず、本開示を限定するものではない。
本明細書に記載の実施形態は、種々の変形および代替形態が可能であるが、実施形態の詳細を一例として図面に示すとともに、以下で詳述する。ただし、本明細書に記載する特定の実施形態は、限定的な意味に解釈されるべきではない。むしろ、本開示の主旨および範囲に含まれるすべての変形、均等物、および代替形態を包含することが意図される。
本開示の態様は、一般に、コンピューティングシステムの分野に関し、より詳細には、コンテンツ管理システムにおけるコンテンツの整合性および正確性を維持することに関する。本開示は必ずしもそのような用途に限定されないが、これに関連する各種例の説明から、本開示の種々の態様が理解可能である。
本明細書において、「コンテンツ作成者(content creator)」とは、コンテンツ管理システムにおいて確認されるコンテンツを管理、所有、公開、生成、作成、またはその他の形で責任を負うユーザである。一方、「読者(reader)」とは、コンテンツ管理システムにおいてコンテンツを消費する(例えば、読む、アクセスする、または他の形で閲覧する)が、コンテンツの作成は行わないユーザである。例えば、コンテンツ作成者は、コンテンツもしくはウェブページまたはその両方を作成し、読者は、そのコンテンツもしくはウェブページまたはその両方を読むことができる。
コンテンツ管理システムは、ウェブサイトの管理に用いられることが多い。例えば、コンテンツ管理システムをウェブサーバに配備して、ウェブサイトとその関連データ(例えば、コンテンツを表示しユーザとのインタラクションを行うテキストおよび埋め込みグラフィックス、写真、ビデオ、オーディオ、マップ、ならびにプログラムコード)をホストする場合がある。ウェブサーバによってホストされているウェブサイトは、外部コンテンツ(例えば、別のシステムによってホストされているウェブサイトなど、外部のウェブサイトからのデータ)、またはウェブサイトに埋め込まれた当該外部コンテンツへのリンクを含んでいることが多い。これは、異なるソースからのコンテンツを単一のウェブサイトにリンクして利便性を高めるために重要な場合がある。例えば、ウェブサイトは、金融サイトからのデータとスポーツサイトからのデータを同じビュー内に埋め込み、これらのデータをユーザに提供してもよい。このようにすることで、エンドユーザは複数のウェブサイトにアクセスすることなく、ユーザにとって重要なデータを見ることができる。さらに、埋め込み外部コンテンツを用いるということは、外部ウェブサイトが更新されると、ウェブサイトが自動的に更新されることを意味する。同様に、外部ハイパーリンクも、ユーザが探している情報に応じて、ユーザを異なるウェブサイトに誘導するのに役立つことができる。
このように、コンテンツ管理システム(CMS)を利用するコンテンツ作成者は、コンテンツ作成者が作成したコンテンツを補完するために、外部リンクを指定する。ここで、外部リンク先のコンテンツの詳細が、コンテンツ作成者の意図通りに維持されていることが望ましい。例えば、コンテンツ作成者が、特定の目的(例えば、あるプログラミング言語のコーディング方法に関する追加情報の提供など)のためにあるウェブサイトへのリンクを貼っている場合、当該ウェブサイトが他の内容(例えば、スポーツのハイライト映像など)に変更された場合、コンテンツ作成者は当該リンクの継続を望まないことが考えられる。しかし、外部ソースへのリンクとなることから、コンテンツ作成者は当該外部ソースでの表示内容を制御できない場合がある。そのため、外部コンテンツがコンテンツ作成者の提供するコンテンツと関連性がなくなってしまったり、コンテンツ作成者が容認しないコンテンツ(例えば、情報サイトではなく広告サイトになるなど)になってしまったりする状況が起こり得る。いずれの場合も、外部データ/コンテンツの変更が検出されないことで、ユーザ体験が悪化する可能性がある。さらに、以前は安全だったリンク先のウェブサイトがスパイウェアやその他のセキュリティ脅威の媒介物となった場合、外部データ/コンテンツの変更が検出されないことで、セキュリティリスクを生じさせる可能性がある。
外部リンクに関連するリスクを最小化するために、コンテンツ作成者は、外部リンク先のコンテンツを定期的に確認し、適宜自身のウェブサイトを更新することが可能である。しかし、CMSで指定した外部リンク先のコンテンツが変更されたり、代替コンテンツが使用されたりしていることを直ちに検知することは困難な場合が多い。その場合、コンテンツ作成者がリンク先のコンテンツを確認するか、外部リンク先のコンテンツが変更されたことを読者から知らせてもらう以外に検知する方法がない。そのため、次回の定期的な見直しが行われるか、ユーザがたまたまコンテンツ作成者に注意喚起するまで、外部コンテンツに対する変更が検知されないという脆弱性が発生する。この変更が行われてから、定期的な確認またはユーザによる注意喚起によって変更を検知するまでの間に、コンテンツ作成者が確認または容認していないデータを含む外部ウェブサイトに読者が誘導されることで、ユーザ体験が悪化したり、サイバーセキュリティ上のリスクが発生したりする可能性がある。
本開示の実施形態は、例えばキーワードまたは他の自然言語処理技術を用いて外部リンク先のコンテンツを自動的に検証(verify)することにより、上記および他の問題に対処可能である。いくつかの実施形態において、外部リンクを有するウェブサイトをホストするCMSシステムは、作成時に、各リンク先の外部コンテンツに関するキーワードもしくは他の検証データまたはその両方を登録してもよい。読者が、外部ハイパーリンクをクリックしたり、アプレットに表示する外部コンテンツを選択したりすることなどによって、外部コンテンツにアクセスしようとする際、コンテンツ管理システムは、データ抽出(例えば、キーワード検出)を実行して、読者に提供されることになる外部コンテンツが何であるかを判断してもよい。そして、コンテンツ管理システムは、抽出したデータと登録済みデータとを比較し、外部コンテンツが大幅に変更されているか否かを判断してもよい。本明細書では、外部ソースのコンテンツを検出する行為と、外部コンテンツが変更されたか否かを判断する行為とを総称して、外部リンクの検証と称する。コンテンツ管理システムは、比較に基づいて、外部コンテンツが変更された可能性があることをコンテンツ作成者に注意喚起するか否かを判断する。さらに、コンテンツ管理システムは、比較結果に基づいて、外部コンテンツが変更されたことを読者に注意喚起するか否かを判断してもよい。
読者が外部コンテンツにアクセスしようとする際に、自動的にその外部コンテンツを検証することにより、コンテンツ管理システムは、変更された外部コンテンツに触れてしまう読者の数を減らすかまたは無くすことができ、これにより、読者にとってより良いユーザ体験を提供することができる。さらに、本明細書に開示するコンテンツ管理システムは、コンテンツ作成者に変更を通知することにより、変更された外部コンテンツに対してコンテンツ作成者がより迅速に対応できるようにすることができる。
いくつかの実施形態において、ウェブページ上のすべての外部リンクは、ユーザが当該ウェブページにアクセスするたびに検証されてもよい。ユーザが外部リンクにアクセスしようとする前に外部リンクを検証することにより、コンテンツ管理システムは、ユーザによる当該ウェブページの使用を妨げることなく、当該ウェブページ上の外部コンテンツに変更が加えられたことの注意喚起(例えば、アイコン)を提示することができる。
いくつかの実施形態において、外部コンテンツは、所定数の読者が当該外部コンテンツにアクセスしようとした後にのみ検証されてもよい。これは、ユーザがリンクにアクセスするたびにチェックを行うと計算コストが高くなる、大きなウェブトラフィックを有するウェブサイトの場合に特に有利となり得る。これらの実施形態はさらに、検証日/時間のチェックを含んでもよい。すなわち、読者数が外部リンクの再検証を必要とする閾値より低い場合であっても、前回の検証からの時間量が閾値を超えた場合(例えば、前回の検証の有効期間が過ぎた場合)、外部リンクの再検証を必要としてもよい。
いくつかの実施形態において、外部コンテンツが変更されたか否かを判断することは、自然言語処理または他の公知の技術によって外部コンテンツからキーワードを生成することを利用してもよい。次に、検出されたキーワードを登録済みキーワードと比較して、変更スコア(change score)を決定してもよい。変更スコアは、(例えば、2値のイエスもしくはノーとして示される)外部コンテンツに対する変更の有無、もしくは(例えば、検出されたキーワードと登録済みキーワードとの重複量を検出することによる)変更量、またはその両方を示してもよい。次に、変更スコアを用いて、(例えば、変更スコアを1つ以上の閾値と比較するなどして)、コンテンツ作成者もしくは読者またはその両方に変更の注意喚起を行うか否か、および注意喚起の方法を決定してもよい。例えば、変更スコアが小さな変更を示している場合、通知を必要としなくてもよい。一方、変更スコアが非常に大きな変更を示している場合、コンテンツ作成者もしくは読者またはその両方への即時の通知を必要としてもよい。
いくつかの実施形態において、外部リンク先のコンテンツを検証した後、コンテンツ管理システムは、検証日/時間を更新してもよい。本明細書で説明するように、外部リンクの再検証が必要か否かを判断する際に検証日/時間を用いてもよい。このように、外部コンテンツに変更が加えられていないと判断した場合に検証日/時間を更新することにより、外部コンテンツの再検証までのタイマーをリセットすることができる。
いくつかの実施形態において、コンテンツ管理システムは、複数の方法で読者に変更の注意喚起を行うように構成されてもよい。例えば、コンテンツ管理システムは、外部リンクに警告アイコンを追加してもよい。警告アイコンはユーザに対して、外部コンテンツが最後の検証時から変更されている可能性があることを通知してもよい。これに代えて、またはこれに加えて、コンテンツ管理システムは、外部リンクに関する警告ダイアログを表示してもよい。警告ダイアログは、外部リンク自体を含むウェブページに表示されてもよいし、ユーザが外部リンクを選択した場合にポップアップで提示されてもよい。さらに、コンテンツ管理システムは、外部リンクに関連付けられた外部コンテンツが変更されたと判断した場合、外部リンクを完全に非表示にしてもよい。
いくつかの実施形態において、具体的な通知/注意喚起方法は、変更スコアに基づいてもよい。例えば、コンテンツ管理システムは、変更スコアが外部コンテンツに対する少量の変更を示している場合(例えば、変更スコアが第1の閾値未満であるが、全く変更がないことを示すスコアよりも大きい場合)、警告アイコンを追加してもよい。一方、コンテンツ管理システムは、変更スコアが外部コンテンツに対する中程度の変更量を示している場合(例えば、変更スコアが第1の閾値よりも大きく、第2の閾値未満である場合)、警告ダイアログを追加してもよい。そして、コンテンツ管理システムは、変更スコアが外部コンテンツに対する大きな変更を示している場合(例えば、変更スコアが第2の閾値よりも大きい場合)、外部リンクを完全に削除してもよい。
なお、上述した効果は一例であり、本開示を限定するものと解釈されるべきではない。本開示の実施形態は、本開示の主旨および範囲内で、上述した効果のすべてまたは一部を含んでもよいし、いずれも含まなくてもよい。
次に図面を参照すると、図1は、本開示の例示的な実施形態を実施可能な一例としてのコンピューティング環境100のブロック図である。いくつかの実施形態において、コンピューティング環境100は、2つのリモートデバイス102および112と、ホストデバイス122と、2つの外部データソース160とを含んでもよい。
各種の実施形態に合致して、ホストデバイス122ならびにリモートデバイス102および112は、コンピュータシステムであってもよい。リモートデバイス102および112ならびにホストデバイス122は、それぞれ、1つ以上のプロセッサ106、116、および126、ならびに1つ以上のメモリ108、118、および128を含んでもよい。リモートデバイス102および112ならびにホストデバイス122は、内部または外部ネットワークインタフェース104、114、および124を介して互いに通信するように構成されてもよい。ネットワークインタフェース104、114、および124は、例えば、モデムまたはネットワークインタフェースカードであってもよい。リモートデバイス102および112もしくはホストデバイス122またはその両方は、ディスプレイまたはモニタを備えてもよい。さらに、リモートデバイス102および112もしくはホストデバイス122またはその両方は、任意の構成としての入力デバイス(例えば、キーボード、マウス、スキャナ、もしくは他の入力デバイス)、もしくは、市販あるいはカスタムソフトウェア(例えば、ブラウザソフト、通信ソフトウェア、サーバソフトウェア、自然言語処理ソフトウェア、検索エンジンもしくはウェブクローリングソフトウェアまたはその両方、事前定義済みのパラメータに基づいてコンテンツをフィルタリングするフィルタモジュールなど)、またはその両方を含んでもよい。いくつかの実施形態において、リモートデバイス102および112もしくはホストデバイス122またはその両方は、サーバ、デスクトップ、ラップトップ、またはスマートフォンやタブレットなどの携帯デバイスであってもよい。
リモートデバイス102および112ならびにホストデバイス122は、互いに遠隔に設置され、ネットワーク150を介して通信してもよい。いくつかの実施形態において、ホストデバイス122は、クライアントサーバネットワークモデルのように、リモートデバイス102および112が通信接続を確立可能な中央ハブであってもよい。あるいは、ホストデバイス122ならびにリモートデバイス102および112は、任意の他の適切なネットワーク関係(例えば、ピアツーピア構成や、任意の他のネットワークトポロジーによる構成)で構成されてもよい。
いくつかの実施形態において、ネットワーク150は、任意の適切な通信媒体を任意の数だけ用いて実装してもよい。例えば、ネットワーク150は、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、インターネット、またはイントラネットであってもよい。一部の実施形態において、リモートデバイス102および112ならびにホストデバイス122は、互いにローカルであり、任意の適切なローカル通信媒体を介して通信してもよい。例えば、リモートデバイス102および112ならびにホストデバイス122は、ローカルエリアネットワーク(LAN)、1つ以上の有線接続、無線リンクもしくはルータ、またはイントラネットを用いて通信してもよい。いくつかの実施形態において、リモートデバイス102および112ならびにホストデバイス122は、1つ以上のネットワークもしくは1つ以上のローカル接続またはその両方の組み合わせを用いて通信可能に結合されてもよい。例えば、第1のリモートデバイス102がホストデバイス122に有線接続(例えば、イーサネットケーブル接続)され、第2のリモートデバイス112がネットワーク150を用いて(例えば、インターネット上で)ホストデバイスと通信してもよい。
いくつかの実施形態において、ネットワーク150は、クラウドコンピューティング環境内に、または1つ以上のクラウドコンピューティングサービスを使用して実装することができる。各種の実施形態に合致して、クラウドコンピューティング環境は、1つ以上のクラウドコンピューティングサービスを提供する、ネットワークベースの分散データ処理システムを含んでもよい。さらに、クラウドコンピューティング環境は、1つ以上のデータセンタ内に配置され、ネットワーク150を介してリソースを共有するように構成された多数のコンピュータ(例えば、数百または数千以上のコンピュータ)を含んでもよい。
いくつかの実施形態において、リモートデバイス102および112を用いて、ユーザのためにホストデバイスに格納された操作データにアクセスしてもよい。例えば、リモートデバイス102および112は、メモリ128内のウェブサーバ130に格納されたデータ(例えば、ウェブページ132)にアクセスするユーザインタフェース(UI)および1つ以上のアプリケーション(不図示)を含んでもよい。データアクセス用アプリケーションは、ウェブブラウザまたは他の任意の適切なソフトウェアモジュールの形態であってもよい。UIは、任意の種類のインタフェース(例えば、コマンドラインプロンプト、メニュー画面、グラフィカルユーザインタフェース)であってもよい。UIは、ユーザがリモートデバイス102および112とのインタラクションを行い、ホストデバイス122が格納したデータを取得することを可能にしてもよい。読者ではなくコンテンツ作成者の場合、UIは、ユーザがウェブページ132を作成、修正、保存、または他の方法で公開することを可能にしてもよい。
いくつかの実施形態において、ホストデバイス122は、メモリ128に格納されたウェブサーバ130およびコンテンツ管理システム136を含んでもよい。ウェブサーバ130は、ホストデバイス122が1つ以上のウェブページ132をホストすることを可能にするソフトウェアであってもよい。ウェブページ132は、外部リンク134をさらに含んでもよい。外部リンク134は、例えば、ホストデバイス122の外部(例えば、外部データソース160)に格納された他のウェブページまたはウェブリソース(例えば、文書)へのハイパーリンクであってもよい。ウェブページ132および関連する外部リンク134は、リモートデバイスを用いてホストデバイス122にアクセスするコンテンツ作成者によって生成および維持されてもよい。
コンテンツ管理システム136は、ウェブページ132を維持するソフトウェアであってもよい。したがって、図1ではそのように図示していないが、コンテンツ管理システム136は、ウェブサーバ130の構成要素であってもよい。コンテンツ管理システム136は、外部リンク134によって参照される外部コンテンツを分析および検証(例えば、正当性を確認)するように構成されてもよい。いくつかの実施形態において、コンテンツ管理システム136は、読者がウェブページ132にアクセスしたとき、または外部コンテンツに関連付けられた外部リンク134をクリックしたときに、外部コンテンツを検証するように構成されてもよい。例えば、コンテンツ管理システム136は、読者が(例えば、リモートデバイスを用いて)外部リンク134を選択(例えば、クリック)し、それによって外部データソース160のうちの1つから外部コンテンツを要求したことを判断してもよい。これに応答して、コンテンツ管理システム136は、データ分析部138を用いて外部コンテンツを分析してもよい。外部コンテンツを分析することは、例えばウェブサイトスクレイピングよって外部コンテンツを抽出し、抽出した外部コンテンツ内のキーワードを特定することを含んでもよい。キーワードの特定は、自然言語処理など、データ分析によりキーワードを抽出する公知の方法のいずれを用いてもよい。
次に、コンテンツ管理システム136は、検証部140(本明細書において検証エンジンとも称する)を用いて外部コンテンツを検証(例えば、外部コンテンツが変更されたか否かを判断)してもよい。いくつかの実施形態において、検証部140は、データ分析部138によって特定されたキーワードを登録済みキーワード142と比較して、外部コンテンツが変更されたか否かを判断してもよい。例えば、コンテンツ作成者によって登録されたか、または外部コンテンツが許容可能であると分かったときに自動的に生成された登録済みキーワード142がデータ分析部138によって特定された場合、検証部140は、外部コンテンツが変更されていないと判断してもよい。いくつかの実施形態において、検証部140は、登録済みキーワード142および特定されたキーワードを用いて、外部コンテンツの変更度または変更量を示す変更スコアを生成してもよい。
検証プロセスを実行した場合に、コンテンツ管理システム136は、コンテンツ作成者もしくは読者またはその両方に注意喚起を行うか否かを判断してもよい。外部コンテンツが変更された(または、いくつかの実施形態では、実質的に(substantially)変更された)とコンテンツ管理システム136が判断した場合、コンテンツ管理システム136は、コンテンツ作成者に注意喚起を行ってもよい。これにより、コンテンツ作成者は、希望に応じてウェブページ132を更新することができる。また、コンテンツ作成者は、外部コンテンツを確認して、変更が許容可能であると判断し、外部コンテンツを再検証してもよい。同様に、コンテンツ管理システム136は、読者に対して外部コンテンツが変更されたことの注意喚起を行ってもよい。読者に注意喚起を行うための具体的な実施形態は本明細書で説明するが、変更を明らかにするアイコンまたはダイアログボックスを外部リンク134に追加することが含まれる(ただし、これに限られない)。
図1では、1つのホストデバイス122と2つのリモートデバイス102および112とを有するコンピューティング環境100を図示しているが、本開示の実施形態を実装するための適切なコンピューティング環境には、任意の数のリモートデバイスおよびホストデバイスが含まれてもよい。図1に例示した各種のモデル、モジュール、システム、および構成要素は、存在する場合、複数のホストデバイスおよびリモートデバイスにわたって存在してもよい。例えば、いくつかの実施形態では、2つのホストデバイスが含まれてもよい。これらの2つのホストデバイスは、任意の適切な通信接続(例えば、WAN、LAN、有線接続、イントラネット、またはインターネット)を用いて通信可能に結合されてもよい。例えば、これらのホストデバイス122は、コンテンツ配信ネットワーク(CDN)の一部であってもよい。そして、これらのホストデバイス122は、同じデータ(例えば、ウェブページ)の複製を含んでもよい。
なお、図1は、一例としてのコンピューティング環境100の代表的な主要構成要素を図示することを意図している。ただし、いくつかの実施形態において、個々の構成要素は、図1に示したものよりも複雑であってもよいし、単純であってもよい。また、図1に示したもの以外の構成要素が存在してもよいし、図1に示したものに加えて他の構成要素が存在してもよい。そのような構成要素の数、種類、および構成は異なってもよい。
次に、図2は、本開示の実施形態に係る、コンテンツ管理システムにおいてコンテンツに埋め込まれた外部リンクのキーワードを登録する一例としての方法200のフローチャートである。方法200は、ハードウェア、ファームウェア、プロセッサ上で実行されるソフトウェア、またはこれらの任意の組み合わせによって実行することができる。例えば、方法200は、(例えば、ホストデバイス122内の)プロセッサによって実行することができる。方法200はまず、工程202を行ってもよい。工程202にて、外部リンクがウェブページに追加される。
本明細書に記載するように、ウェブページは、コンテンツ管理システムによってホストされるか、または他の方法で管理することができる。外部リンクは、アンカーテキストに追加されてもよい。そして、外部リンクは、コンテンツ管理システムの外部にあるリソース(同一のシステム(もしくはシステムのクラスタ)上に存在するかまたは別のシステム上に存在するかにかかわらず)を指し示すリンクであってもよい。外部リンクによって参照されるリソースは、例えば、別のウェブページ、文書(PDF文書など)、データオブジェクトなど、いずれのリソースであってもよい。外部リンクは、ウェブページの所有者(例えば、コンテンツ作成者、またはその他の形でコンテンツの管理権を有する者)によってウェブページに追加することができる。例えば、コンテンツ作成者は、コンテンツ管理システムによって管理されるウェブページを作成または更新することができ、その過程で、外部リンクをウェブページに追加するかまたはその他の方法で埋め込むことができる。
判断ブロック204にて、コンテンツ管理システムは、キーワード登録を自動で行うか、手動で行うかを判断する。いくつかの実施形態において、アンカーテキストをさらに登録してもよい。コンテンツ管理システムは、(例えば、工程202に応じて)外部リンクがウェブページに追加されたとき、コンテンツ作成者がキーワード登録を行うことを決定したとき、または他の任意の適切なタイミングで、キーワード登録を自動で行うか、手動で行うかを判断してもよい。
本明細書において、キーワードの手動登録は、コンテンツ作成者(または他の何らかのユーザ)が、外部リンクによって参照される外部コンテンツに関するキーワード(例えば、1つ以上)のリストをシステムに送信するか、または他の形でシステムに入力することを含む。キーワードのリストは、外部コンテンツに含まれる言葉(words)、または他の形で外部コンテンツを説明する言葉である。これに対して、キーワードの自動登録は、本明細書に記載するように、システムがキーワードを自動的に特定することを含む。これは、ユーザ入力の有無にかかわらず行ってもよい。例えば、コンテンツ管理システムは、キーワードの候補を生成し、コンテンツ作成者に提示して選択させてもよい。候補はコンテンツ管理システムによって決定されるので、これも本明細書における自動登録であると考えられる。
キーワード登録を手動で行うか自動で行うかの判断は、ユーザ入力を用いて行ってもよい。例えば、コンテンツ管理システムは、コンテンツ管理システムが管理するウェブページに1つ以上の新しい外部リンクが含まれることを検出してもよい。これに応じて、コンテンツ管理システムは、キーワードの自動登録もしくは手動登録を行うか否か(または、いくつかの実施形態では、外部リンクに関するいかなるキーワードも登録しないか否か)についてユーザにプロンプトを提示するか、またはユーザに問い合わせることができる。例えば、プロンプトは、ユーザ側から外部リンクに関するキーワードリストを提供するのか、またはコンテンツ管理システム側でキーワードを自動生成するのかを尋ねてもよい。キーワードの登録を行わないこと、もしくはキーワードの手動登録を行うことがユーザから示された場合、またはユーザからキーワードリストが提供される場合、コンテンツ管理システムは、キーワードの自動登録を行わないと判断してもよい(判断ブロック204にてNo)。そうでない場合、コンテンツ管理システムは、キーワードの自動登録を行うと判断してもよい(判断ブロック204にてYes)。
自動登録が行われないとコンテンツ管理システムが判断した場合(判断ブロック204にてNo)、コンテンツ管理システムは、判断ブロック210にて、ユーザから提供されたキーワードを検証するか否かを判断してもよい。言い換えれば、判断ブロック210にて、コンテンツ管理システムは、手動で提供されたキーワードを検証する。コンテンツ作成者からキーワードが提供されない場合、または提供されたキーワードを検証できない場合(たとえば、外部コンテンツの分析を通じて発見されたキーワードと一致しない場合)、方法200は工程202に戻る。
一方、判断ブロック210にて、コンテンツ管理システムが手動で提供されたキーワードを検証可能な場合、工程212にて、検証済みのキーワードをウェブページ用のウェブキャッシュに(例えば、当該ウェブサイト用のキーワードリストに)登録し、外部リンクの検証日/時間を更新する。ウェブキャッシュの登録は、検証済みキーワードを登録することと、検証済みキーワードを外部リンクに関連付ける(例えば、関係テーブルやデータベースの形式で)こととを含む。例えば、ウェブページは複数の外部リンクを有する場合があり、各外部リンクは、コンテンツ管理システムにおいてそれ自身の検証済みキーワードのセットまたはリストを含んでもよい。工程212にてウェブキャッシュを登録後、方法200を終了してもよい。
判断ブロック204に戻り、キーワードの自動登録を行うとコンテンツ管理システムが判断した場合(判断ブロック204にてYes)、コンテンツ管理システムは、工程206にてキーワード候補を自動的に生成してもよい。キーワード候補は、人工知能(AI)、自然言語処理、もしくはコンテンツからキーワードを生成するための任意の他の公知の技術(例えば、画像または動画内のオブジェクトを検出するための画像分析技術など)、またはこれらのすべてを用いて外部コンテンツを分析することによって生成することができる。
例えば、いくつかの実施形態において、コンテンツ管理システムはウェブサイトスクレイピングを行って、外部リンクに関連付けられたウェブサイトからデータを抽出することができる。次に、抽出したデータを任意の適切な技術(例えば、AI技術)を用いて分析し、キーワード候補を特定してもよい。工程206にてキーワード候補が特定されると、工程208にて、キーワードが選択される。
いくつかの実施形態において、キーワードを選択することは、コンテンツ作成者にキーワード候補のリストを提示することと、1つ以上のキーワードの選択を受け付けることとを含む。他の実施形態において、キーワードは、コンテンツ管理システムによって自動的に選択されてもよい。例えば、工程206にて生成されたキーワード候補は、外部コンテンツを別個に(すなわち、コンテンツ作成者が作成したウェブページなどの内部コンテンツを考慮せずに)説明するものである場合がある。したがって、工程208にてキーワードを選択することは、キーワード候補をウェブページの内部コンテンツと比較して、どのキーワード候補が外部コンテンツと内部コンテンツの両方に当てはまるかを決定することを含んでもよい。例えば、コンテンツ管理システムは、ウェブページに関連するキーワード群を決定し、次に、当該キーワード群をキーワード候補と比較してもよい。一致するキーワード候補を、工程208にて選択してもよい。いくつかの実施形態において、厳密なマッチングの代わりに、またはそれに加えて、ファジーマッチング(例えば、同義語または異なる時制など、類似キーワードのマッチング)が用いられてもよい。
工程208にてキーワードを選択後、工程212にてキーワードを登録し、方法200を終了してもよい。
いくつかの実施形態において、キーワードが任意(optional)であるか必須(essential)であるかに基づいて、キーワードを重み付けしてもよい。例えば、ユーザは手動登録時に、キーワードのリストと、それらに関連付けられた重みとをコンテンツ管理システムに提供してもよい。同様に、コンテンツ管理システムは、キーワード候補の生成段階において、キーワードの認識される重要度に基づいて、特定のキーワードの重みを自動的に決定してもよい。これに代えて、またはこれに加えて、ユーザは、例えば選択工程208において、コンテンツ管理システムが生成したキーワードに重みを付与してもよい。
重みは、2値(例えば、任意か必須か)、3値、2つの端点間のスコア(例えば、1~100)、または他の任意の適切な形式とすることができる。重みは、方法200におけるキーワードの登録時、および(例えば、図3を参照して後述する方法300において)ユーザがウェブページにアクセスした際に外部コンテンツが変更されていない(または実質的に変更されていない)ことを検証するときの両方において、キーワードを検証する際に用いることができる。キーワード重みはさらに、外部コンテンツに変更があったときに、どの通知(もしあれば)が必要であるかを判断するために用いることができる。キーワード重みは、以下で詳述するように、キーワードリスト内のキーワードについての通知属性として保存することができる。
次に、図3は、本開示の実施形態に係る、外部リンクによって参照されるデータに対する変更を検出および検証するための一例としての方法300のフローチャートである。方法300は、ハードウェア、ファームウェア、プロセッサ上で実行されるソフトウェア、またはこれらの任意の組み合わせによって実行することができる。例えば、方法300は、(例えば、ホストデバイス122内の)プロセッサによって実行することができる。方法300は、読者がウェブページにアクセスするたびに、またはコンテンツ作成者が内部コンテンツを作成もしくは編集するたびに実行されてもよい。
方法300はまず、工程302を行ってもよい。工程302にて、コンテンツ管理システムによって管理されるコンテンツが読み取られる。本明細書で説明するように、コンテンツ管理システムによって管理されるコンテンツ(内部コンテンツとも呼ばれる)は、コンテンツ管理システムを用いてコンテンツ作成者によって作成することができる。
判断ブロック304にて、コンテンツ管理システムは、コンテンツが外部リンクを含んでいるか否かを判断する。コンテンツが外部リンクを含んでいない場合、方法300は工程324に進み、コンテンツが作成される(例えば、公開される)。工程324にてコンテンツを作成後、方法300を終了してもよい。
コンテンツが外部リンクを含んでいる場合、コンテンツ管理システムは、判断ブロック306にて、リンク検証が有効(valid)であるか否かを判断する。リンクが最近検証されていた場合、外部リンク検証が有効であるとしてもよい。したがって、外部リンクについてのリンク検証日/時間をルール(例えば、有効期間を設定)と比較して、検証がまだ有効であるか否かを判断してもよい。リンク検証が有効である場合、方法300は、判断ブロック318に進む。判断ブロック318については、より詳細に後述する。
リンク検証が有効でない場合、コンテンツ管理システムは、工程308にて、外部リンクの詳細を取得する。本明細書で説明するように、外部リンクの詳細は、例えばウェブキャッシュデータを用いて外部リンクを分析することによって取得してもよい。例えば、コンテンツ管理システムは、If-Modified-Sinceクエリもしくはエンティティタグ(ETag)クエリまたはその両方などの変更クエリを有するHTTPリクエストを送信することによって、詳細を取得してもよい。キャッシュ情報は、ウェブキャッシュHTTPリクエストに埋め込まれてもよい。
判断ブロック310にて、コンテンツ管理システムは、外部リンクがウェブキャッシュとして存在するか(すなわち、キャッシュされているか)否かを判断する。リンクがウェブキャッシュとして存在するとコンテンツ管理システムが判断した場合、つまり、本明細書で説明するように、If-Modified-Sinceクエリもしくはエンティティタグ(ETag)クエリまたはその両方に応答して変更がないことを確認した場合、方法は、後述の判断ブロック318に進む。
リンクがウェブキャッシュとして存在しない場合、コンテンツ管理システムは、外部リンク先の外部コンテンツが変更されたことを検出し、外部コンテンツを(例えば、スクレイピングによって)取得し、判断ブロック312にて、リンクに関するキーワードが存在するか否かを判断する。これは、外部コンテンツから抽出したキーワードを、外部リンクに関するキーワードリストに含まれるキーワードと比較することによって行ってもよい。キーワードが一致する場合、コンテンツ管理システムは、キーワード(すなわち、キーワードリストに含まれるキーワード)が外部コンテンツ内に存在すると判断してもよい。キーワードが存在するとコンテンツ管理システムが判断した場合、方法300は、後述の工程316に進む。
キーワードが存在しないと判断した場合、コンテンツ管理システムは、工程314にて同義語処理を行ってもよい。これにより、外部コンテンツがわずかに変更されたが依然として類似のキーワードを含んでおり、したがって、依然として同じコンセプトを説明している可能性が高いか否かを判断してもよい。同義語処理は、公知のAIまたは自然言語処理技術などの公知の技術を用いて行ってもよい。
工程316にて、コンテンツ管理システムは、キーワードの有無の結果および検証日/時間を更新する。すなわち、コンテンツ管理システムは、外部リンクの再検証を行う(たとえば、キーワードまたはその同義語が外部コンテンツに存在する場合)か、または外部リンクの再検証を行わない(たとえば、キーワードまたはその同義語が外部コンテンツに存在しない場合)かを判断してもよい。また、コンテンツ管理システムは、外部コンテンツの再検証が行われたか否か、およびいつ行われたかを示すために、検証日/時間を更新してもよい。
判断ブロック318にて、コンテンツ管理システムは、工程316で説明した結果をコンテンツ作成者もしくは読者またはその両方に通知する必要があるか否かを判断する。本明細書で説明するように、外部コンテンツが変更された場合、または一部のケースでは実質的に変更された場合、コンテンツ作成者もしくは読者またはその両方に対して通知が行われてもよい。コンテンツ作成者および読者に通知を行うか否か、および通知方法は、例えば、キーワードが外部コンテンツ内に存在するか否か、同義語が外部コンテンツ内に存在するか否か、外部コンテンツ内に存在するキーワードの数または割合、キーワードの属性(例えば、重要度重み)などに基づいて決定してもよい。
結果に関する通知が不要な場合、コンテンツ管理システムは、工程320にて、登録された外部リンクを埋め込み(fill)、工程324にて、埋め込まれた外部リンクを用いてコンテンツを作成する。そして、方法300は終了する。
結果に関する通知が必要な場合、コンテンツ管理システムは、工程322にて、通知処理を実行し、工程324にて、埋め込まれた外部リンクを用いてコンテンツを作成する。そして、方法300は終了する。図4を参照して説明する方法400は、通知処理の一例を示すものである。
次に、図4は、外部リンクによって参照されるデータに対する変更を読者およびコンテンツ作成者に通知する一例としての方法400のフローチャートである。方法400は、ハードウェア、ファームウェア、プロセッサ上で実行されるソフトウェア、またはこれらの任意の組み合わせによって実行することができる。例えば、方法400は、(例えば、ホストデバイス122内の)プロセッサによって実行することができる。方法400は、外部リンクによって参照される外部コンテンツの変更を(たとえば、方法300の工程312~316の実行中に)検出した場合に、図3に示す方法300の工程322の一部として実行することができる。
方法400はまず、工程402を行ってもよい。工程402にて、コンテンツ管理システムは、コンテンツ作成者に変更を通知する。コンテンツ管理システムは、1つ以上の通知属性に基づいて、コンテンツ作成者に変更を通知してもよい。通知属性は、例えば、キーワードの重要度、外部リンクの検証日/時間、通知を必要とする変更スコアの上限/下限閾値などを含んでもよい。これらの属性を用いて、コンテンツ作成者に通知を行うか否かの判断を行ってもよい。
例えば、コンテンツ管理システムが、必須キーワード(すなわち、必須であることを示す通知属性を有するキーワード)が外部コンテンツ内に見つからないと判断した場合、コンテンツ作成者に変更を通知してもよい。一方、すべての必須キーワードが外部コンテンツ内に見つかったが、任意キーワードが見つからない場合、工程402にてコンテンツ作成者への通知を行わなくてもよい。他の実施形態において、キーワードが存在するか否か(もしくは、同義語が存在するか否か、またはその両方)を用いて変更スコアを生成してもよい。そして、変更スコアが閾値を満たすか否かに基づいて通知を行ってもよい。
判断ブロック404にて、コンテンツ管理システムは、読者への通知方法を決定する。図4に示す例では、コンテンツ管理システムは、3つのオプション405、407、409の中から選択する。さらに、コンテンツ管理システムは、閾値セットを用いてこの判断を行う。ただし、これは例示に過ぎず、これより多いもしくは少ない数のオプションを用い、もしくはオプション選択において異なるトリガーを用い、またはこの両方を行う実施形態も考えられる。
コンテンツ管理システムが、外部コンテンツが変更されたが変更スコアが下側の閾値(lower threshold)以下である(例えば、1つ以上の任意キーワードを含んでいない)と判断した場合、コンテンツ管理システムは第1のパス405を選択し、工程406にて、ウェブページ上の登録済み外部リンクの横に警告アイコンを配置する。このオプションは、外部コンテンツにまだ問題がない可能性が高く、比較的控えめな警告アイコンを含めることで十分であるため、小さな変更に対して好ましい場合がある。
コンテンツ管理システムが、変更スコアが下側の閾値よりも大きいが上側の閾値(upper threshold)よりも小さい(例えば、必須キーワードが同義語としてのみ存在する)と判断した場合、コンテンツ管理システムは第2のパス407を選択し、工程408にて、ウェブページ上の登録済み外部リンクに関する警告ダイアログを生成する。このオプションは、外部コンテンツが依然として許容可能かどうかが不明確であるため、中程度の変更に対して好ましい場合がある。警告ダイアログは、外部リンクの横に表示されてもよいし、いくつかの実施形態では、ユーザが外部リンクをクリックしたときにポップアップとして動作してもよい。
コンテンツ管理システムが、変更スコアが上側の閾値よりも大きいと判断した場合(例えば、必須キーワードがまったく存在しない)、コンテンツ管理システムは第3のパス409を選択し、工程410にて、外部リンクを非表示にする。このオプションは、外部コンテンツがもはや信頼できず、読者に危険をもたらす可能性がある大きな変更に対して好ましい場合がある。外部リンクを非表示にすることで、読者がウェブページから外部コンテンツを取得したり、閲覧したりすることができなくなる。
工程406~410のうちの1つを実行後、方法400を終了してもよい。方法400が方法300のサブ工程として実行される場合、方法400は、例えば、図3に示す方法300の工程324に進むことによって終了してもよい。
次に、図5は、本開示の実施形態に係る、埋め込みリンクによって参照される外部コンテンツを検証するように構成されたコンテンツ管理システム510を有するコンピューティング環境500の一例を示す図である。コンピューティング環境500は、外部リンクによって参照される外部データソース518、520、522をさらに含んでもよい。
コンテンツ作成者502は、コンテンツ管理システム510内にウェブページ512を作成することができる。これを矢印550で示す。また、コンテンツ作成者502は、ウェブページ512内の各外部リンクについて、キーワードリスト514および関連属性(図中のAttr.)を登録することができる。これを矢印552で示す。例えば、外部リンク1に、第1の属性セットを有するキーワードリスト1を関連付けるとともに、外部リンク2に、第2の属性セットを有するキーワードリスト2を関連付けることができる。
読者504および506は、ウェブページ512にアクセスすることができる。これを矢印554で示す。読者がウェブページにアクセスしたことに応じて、検証エンジン516は、外部リンクについてのキーワードリスト514を取得してもよい。これを矢印556で示す。また、検証エンジン516は、外部リンクに関連付けられた外部コンテンツ518~522をスクレイピングしてもよい。これを矢印558で示す。
検証エンジン516が第1の外部コンテンツ518に対する変更を検出した場合、検証エンジン516は、外部リンク1に関連付けられた外部コンテンツ518が変更されたことを示す通知をウェブページに追加する。これを矢印560で示す。図5に示す例では、この通知は、読者504~506がウェブページ512にアクセスした際に目にする警告アイコンの形をしている。具体的な通知内容は、本明細書で説明するように、外部リンク1に関連付けられたキーワードリスト1の属性を用いて決定することができる。さらに、検証エンジン516は、コンテンツ作成者502に対して、第1の外部コンテンツ518が変更されたことを通知する。これを矢印562で示す。
次に、図6は、本開示の実施形態に係る、外部コンテンツに対する変更の特定および通知方法を示す一例としてのシステムフロー図600である。フロー図600は、本開示の実施形態における主な主体、構成要素、およびフローを示している。例えば、フロー図600は、コンテンツ作成者602、読者604、606、コンテンツ管理システム608、および外部データソース(例えば、外部サーバ610)によって行われる動作を示している。フロー図600は、これらの動作を経時的に示しており、フロー図600の左から右に時間が進む。
まず、コンテンツ作成者602は、工程620にて、ウェブページなどのコンテンツ650を作成する。コンテンツ650は、外部サーバ610がホストしている外部コンテンツ624への1つ以上の外部リンクを含む。作成されたコンテンツ650は、ステップ1にて、コンテンツ管理システム608に格納される。コンテンツ650がコンテンツ管理システム608に格納されると、コンテンツ管理システム608の検証エンジン622は、ステップ2にて、コンテンツ650内の外部リンクを検出する。そして、検証エンジン622は、ステップ3にて外部コンテンツ624をスクレイピングし、キーワードの検証、外部リンクの登録を行い、ステップ4にて外部リンクの追加を行う。
コンテンツ650が公開されてからある時間の経過後に、第1の読者604が、工程626にてコンテンツ650を閲覧する。これは、ステップ5にて第1の読者604がコンテンツ650にアクセスすることを含む。これがトリガーとなり、ステップ6にて検証エンジン622が動作する。検証エンジン622は、外部コンテンツ624をスクレイピングし、ステップ7にて、外部コンテンツ624が変更されていないと判断する。任意でのステップ8にて、検証エンジン622は、外部コンテンツが変更された旨の通知を第1の読者604に返す。この例では、外部コンテンツ624は変更されていないので、ステップ8にてユーザに通知を返すことはない。代わりに、ユーザは、ステップ9にて外部コンテンツ624にアクセスする。
第1の読者604は、工程628にてコンテンツ650を再閲覧する。これは、ステップ10にて第1の読者604がコンテンツ650にアクセスすることを含む。これがトリガーとなり、ステップ11にて検証エンジン622が動作する。検証エンジン622は、ステップ12にて、外部サーバ610上のコンテンツを再びスクレイピングする。ただし、このとき、検証エンジン622は、元の外部コンテンツ624の代わりに、部分的に変更されたコンテンツ630を発見する。この場合、コンテンツが部分的に変更されているため、検証エンジン622は、ステップ13にて、第1の読者604に通知を返す。この通知は、ウェブページがリンクしている外部コンテンツが変更されたことを示すものである。しかし、外部コンテンツは部分的にしか変更されていないので、第1の読者604は、ステップ14にて、部分的に変更されたコンテンツ630にまだアクセスすることができる。
その後、第2の読者606が、工程632にてコンテンツ650を閲覧する。これは、ステップ15にて第2の読者606がコンテンツ650にアクセスすることを含む。これがトリガーとなり、ステップ16にて検証エンジン622が動作する。これまでと同様に、検証エンジン622は、ステップ17にて外部サーバ610上のコンテンツをスクレイピングする。ただし、このとき、検証エンジンは、外部コンテンツが完全に変更され、外部リンクが代替コンテンツ634を現在参照していると判断する。したがって、検証エンジン622は、ステップ18にて、コンテンツが変更された旨を第2の読者606に通知する。いくつかの実施形態において、この通知は、第2の読者606に対して外部リンクを非表示にすることを含み、これにより、第2の読者606が代替コンテンツ634にアクセスできないようにする。
さらに、検証エンジン622は、ステップ19にて、コンテンツ作成者602に対してコンテンツが実質的に変更された旨を通知する。コンテンツ作成者602は、工程636にて通知を受け取り、工程638にて、外部リンクを削除することによってコンテンツ650を更新する。そして、更新されたコンテンツは、ステップ20にて、コンテンツ650として格納される。
本明細書で説明するように、いくつかの実施形態において、コンテンツ管理システムに外部リンクを登録する際に、ウェブページに含まれるキーワードが登録される(アンカーテキストも登録することができる)。そして、コンテンツ管理システムは、ブラウザの代わりに(例えば、クローラー等を用いて)1つ以上の外部リンクのスクレイピングを行い、キーワードが外部コンテンツに含まれているか否かを検証する。スクレイピングの結果、キーワードが外部コンテンツに含まれていないと判断された場合、コンテンツ管理システムは、コンテンツ作成者にその旨を通知し、新たなキーワードが再び登録される。
そして、登録済みキーワードを用いて、外部コンテンツに対する変更を検出することができる。CMSに保持されているコンテンツが、(例えば、読者がウェブページにアクセスしたときに)アクセスされる。コンテンツに外部リンクが含まれている場合、スクレイピングにより外部リンクにアクセスし、キーワードが検証される。外部コンテンツに登録済みキーワードが含まれていない場合、所望の情報が外部リンクに含まれていない可能性があることが、ユーザに通知される。さらに、外部リンク先の外部コンテンツが登録済みキーワードと一致しないことが、コンテンツ作成者に通知される。これは、外部コンテンツが変更されたことを示している場合がある。
このプロセスにより、外部リンク先における変更を初期段階で(例えば、いずれかの読者がアクセスする前に)検出することが可能になるという利点がある。これにより、コンテンツの継続的な信頼性が高まる。さらに、本開示の実施形態は、テキスト(PDFやDOCXなど)が埋め込まれたコンテンツを扱うことができる。これにより、外部リンクが単なる外部ウェブページではなく、文書を参照するものである場合にも本開示を使用することができる。さらに、これらの実施形態は、リンク先(例えば、外部リンクによって参照されるリソース)が安全であることの確認に役立つ。
次に、図7は、本開示の実施形態に係る、本明細書に記載の方法、ツール、モジュール、およびいずれかの関連する機能の1つ以上を(例えば、1つ以上のプロセッサ回路またはコンピュータのコンピュータプロセッサを用いて)実装する際に使用可能な一例としてのコンピュータシステム701の概略ブロック図である。いくつかの実施形態において、コンピュータシステム701の主要構成要素は、1つ以上のCPU702、メモリサブシステム704、端末インタフェース712、ストレージインタフェース716、I/O(Input/Output)デバイスインタフェース714、およびネットワークインタフェース718を含むことができる。これらはすべて、メモリバス703、I/Oバス708、およびI/Oバスインタフェースユニット710を介した構成要素間の通信用に直接的または間接的に結合することができる。
コンピュータシステム701は、1つ以上の汎用プログラマブル中央処理装置(CPU)702A、702B、702C、および702D(ここではCPU702と総称する)を含むことができる。いくつかの実施形態において、コンピュータシステム701は、比較的大型のシステムでよく見られるように複数のプロセッサを含んでもよいが、他の実施形態ではそれに代えて、コンピュータシステム701は単一のCPUを用いたシステムであってもよい。各CPU702は、メモリサブシステム704に記憶された命令を実行することができる。また、各CPU702は、1つ以上のレベルのオンボードキャッシュを含むことができる。
システムメモリ704は、ランダムアクセスメモリ(RAM)722やキャッシュメモリ724などの揮発性メモリとしてのコンピュータシステム読取可能媒体を含むことができる。コンピュータシステム701は、他の取り外し可能/取り外し不可能な揮発性/不揮発性のコンピュータシステム記憶媒体をさらに含むことができる。あくまでも例示として、ストレージシステム726は、「ハードドライブ」などの取り外し不可能な不揮発性の磁気媒体への読み書きのために設けることができる。図示は省略するが、取り外し可能な不揮発性磁気ディスク(例えば、フロッピーディスク)への読み書きのための磁気ディスクドライブ、および取り外し可能な不揮発性光学ディスク(CD-ROM、DVD-ROMや他の光学媒体など)への読み書きのための光学ディスクドライブを設けることができる。さらに、メモリ704は、フラッシュメモリ(例えば、フラッシュメモリスティックドライブまたはフラッシュドライブ)を含むことができる。メモリデバイスは、1つ以上のデータ媒体インタフェースによってメモリバス703に接続することができる。メモリ704は、各種の実施形態の機能を実行するように構成されたプログラムモジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含むことができる。
各々が少なくとも1セットのプログラムモジュール730を有する1つ以上のプログラム/ユーティリティ728は、メモリ704に記憶することができる。プログラム/ユーティリティ728は、ハイパーバイザー(仮想マシンモニタとも呼ばれる)、1つ以上のオペレーティングシステム、1つ以上のアプリケーションプログラム、他のプログラムモジュール、およびプログラムデータを含むことができる。オペレーティングシステム、1つ以上のアプリケーションプログラム、他のプログラムモジュール、およびプログラムデータの各々、またはこれらの何らかの組み合わせは、ネットワーク環境の実装形態を含むことができる。プログラムモジュール730は一般に、各種の実施形態の機能または方法を実行する。
メモリバス703は、図7では、CPU702、メモリサブシステム704、およびI/Oバスインタフェース710間の直接的な通信経路を提供する単一のバス構造として図示されているが、メモリバス703は、いくつかの実施形態において、複数の異なるバスまたは通信経路を含むことができる。これらのバスまたは通信経路は、階層的なスター型もしくはウェブ型構成のポイントツーポイントリンク、複数の階層的バス、並列および冗長経路、またはいずれかの他の適切な種類の構成など、各種形態のうちのいずれかで配置することができる。さらに、I/Oバスインタフェース710およびI/Oバス708は、それぞれ単一のユニットとして図示されているが、コンピュータシステム701は、いくつかの実施形態において、複数のI/Oバスインタフェースユニット710、複数のI/Oバス708、またはその両方を含むことができる。さらに、複数のI/Oインタフェースユニットが図示されており、これらが、各種のI/Oデバイスにつながる各種の通信経路からI/Oバス708を分離しているが、他の実施形態において、I/Oデバイスの一部または全部が、1つ以上のシステムI/Oバスに直接接続されてもよい。
いくつかの実施形態において、コンピュータシステム701は、マルチユーザメインフレームコンピュータシステム、シングルユーザシステム、または、直接のユーザインタフェースをほとんどもしくは全く有さないが、他のコンピュータシステム(クライアント)から要求を受け取るサーバコンピュータもしくは類似の装置とすることができる。さらに、いくつかの実施形態において、コンピュータシステム701は、デスクトップコンピュータ、ポータブルコンピュータ、ラップトップもしくはノートブックコンピュータ、タブレットコンピュータ、ポケットコンピュータ、電話、スマートフォン、ネットワークスイッチもしくはルータ、または任意の他の適切な種類の電子デバイスとして実現することができる。
なお、図7は、一例としてのコンピュータシステム701における代表的な主要構成要素を図示することを意図している。いくつかの実施形態において、個々の構成要素は、図7に示したものよりも複雑であってもよいし、単純であってもよい。また、図7に示したもの以外の構成要素が存在してもよいし、図7に示したものに加えて他の構成要素が存在してもよい。そのような構成要素の数、種類、および構成は異なってもよい。さらに、上記のモジュールは、一実施形態に従って例示的に列挙および説明されたものであり、特定のモジュールの必要性や、他の潜在的なモジュール(または特定のモジュールに適用されるような機能/目的)の排他性を示すことを意図したものではない。
本開示は、クラウドコンピューティングに関する詳細な説明を含むが、本明細書に記載された教示の実装形態は、クラウドコンピューティング環境に限定されないことを理解されたい。むしろ、本発明の実施形態は、現在知られている又は後に開発される任意の他のタイプのコンピューティング環境と組み合わせて実施することが可能である。
クラウドコンピューティングは、設定可能なコンピューティングリソースの共有プール(例えばネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、記憶装置、アプリケーション、仮想マシンおよびサービス)へ、簡便かつオンデマンドのネットワークアクセスを可能にするためのサービス提供のモデルであり、リソースは、最小限の管理労力または最小限のサービスプロバイダとのやり取りによって速やかに準備(provision)およびリリースできるものである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、および少なくとも4つの展開モデルを含むことがある。
特性は以下の通りである。
オンデマンド・セルフサービス:クラウドの消費者は、サービスプロバイダとの人的な対話を必要することなく、必要に応じて自動的に、サーバ時間やネットワークストレージなどのコンピューティング能力を一方的に準備することができる。
ブロード・ネットワークアクセス:コンピューティング能力はネットワーク経由で利用可能であり、また、標準的なメカニズムを介してアクセスできる。それにより、異種のシンまたはシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、PDA)による利用が促進される。
リソースプーリング:プロバイダのコンピューティングリソースはプールされ、マルチテナントモデルを利用して複数の消費者に提供される。様々な物理リソースおよび仮想リソースが、需要に応じて動的に割り当ておよび再割り当てされる。一般に消費者は、提供されたリソースの正確な位置を管理または把握していないため、位置非依存(location independence)の感覚がある。ただし消費者は、より高い抽象レベル(例えば、国、州、データセンタ)では場所を特定可能な場合がある。
迅速な柔軟性(elasticity):コンピューティング能力は、迅速かつ柔軟に準備することができるため、場合によっては自動的に、直ちにスケールアウトし、また、速やかにリリースされて直ちにスケールインすることができる。消費者にとって、準備に利用可能なコンピューティング能力は無制限に見える場合が多く、任意の時間に任意の数量で購入することができる。
測定されるサービス:クラウドシステムは、サービスの種類(例えば、ストレージ、処理、帯域幅、アクティブユーザアカウント)に適したある程度の抽象化レベルでの測定機能を活用して、リソースの使用を自動的に制御し最適化する。リソース使用量を監視、制御、および報告して、利用されるサービスのプロバイダおよび消費者の両方に透明性を提供することができる。
サービスモデルは以下の通りである。
サービスとしてのソフトウェア(SaaS):消費者に提供される機能は、クラウドインフラストラクチャ上で動作するプロバイダのアプリケーションを利用できることである。当該そのアプリケーションは、ウェブブラウザ(例えばウェブメール)などのシンクライアントインタフェースを介して、各種のクライアント装置からアクセスできる。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージや、個別のアプリケーション機能さえも含めて、基礎となるクラウドインフラストラクチャの管理や制御は行わない。ただし、ユーザ固有の限られたアプリケーション構成の設定はその限りではない。
サービスとしてのプラットフォーム(PaaS):消費者に提供される機能は、プロバイダによってサポートされるプログラム言語およびツールを用いて、消費者が作成または取得したアプリケーションを、クラウドインフラストラクチャに展開(deploy)することである。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージを含む、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、展開されたアプリケーションを制御でき、かつ場合によってはそのホスティング環境の構成も制御できる。
サービスとしてのインフラストラクチャ(IaaS):消費者に提供される機能は、オペレーティングシステムやアプリケーションを含む任意のソフトウェアを消費者が展開および実行可能な、プロセッサ、ストレージ、ネットワーク、および他の基本的なコンピューティングリソースを準備することである。消費者は、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、オペレーティングシステム、ストレージ、および展開されたアプリケーションを制御でき、かつ場合によっては一部のネットワークコンポーネント(例えばホストファイアウォール)を部分的に制御できる。
展開モデルは以下の通りである。
プライベートクラウド:このクラウドインフラストラクチャは、特定の組織専用で運用される。このクラウドインフラストラクチャは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
コミュニティクラウド:このクラウドインフラストラクチャは、複数の組織によって共有され、共通の関心事(例えば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンス)を持つ特定のコミュニティをサポートする。このクラウドインフラストラクチャは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
パブリッククラウド:このクラウドインフラストラクチャは、不特定多数の人々や大規模な業界団体に提供され、クラウドサービスを販売する組織によって所有される。
ハイブリッドクラウド:このクラウドインフラストラクチャは、2つ以上のクラウドモデル(プライベート、コミュニティまたはパブリック)を組み合わせたものとなる。それぞれのモデル固有の実体は保持するが、標準または個別の技術によってバインドされ、データとアプリケーションの可搬性(例えば、クラウド間の負荷分散のためのクラウドバースティング)を実現する。
クラウドコンピューティング環境は、ステートレス性(statelessness)、低結合性(low coupling)、モジュール性(modularity)および意味論的相互運用性(semantic interoperability)に重点を置いたサービス指向型環境である。クラウドコンピューティングの中核にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
ここで、図8に例示的なクラウドコンピューティング環境850を示す。図示するように、クラウドコンピューティング環境850は1つ以上のクラウドコンピューティングノード810を含む。これらに対して、クラウド消費者が使用するローカルコンピュータ装置(例えば、PDAもしくは携帯電話854A、デスクトップコンピュータ854B、ラップトップコンピュータ854C、もしくは自動車コンピュータシステム854Nまたはこれらの組み合わせなど)は通信を行うことができる。ノード810は互いに通信することができる。ノード810は、例えば、上述のプライベート、コミュニティ、パブリックもしくはハイブリッドクラウドまたはこれらの組み合わせなど、1つ以上のネットワークにおいて、物理的または仮想的にグループ化(不図示)することができる。これにより、クラウドコンピューティング環境850は、サービスとしてのインフラストラクチャ、プラットフォームもしくはソフトウェアまたはこれらの組み合わせを提供することができ、クラウド消費者はこれらについて、ローカルコンピュータ装置上にリソースを維持する必要がない。なお、図8に示すコンピュータ装置854A~Nの種類は例示に過ぎず、コンピューティングノード810およびクラウドコンピューティング環境850は、任意の種類のネットワークもしくはネットワークアドレス指定可能接続(例えば、ウェブブラウザの使用)またはその両方を介して、任意の種類の電子装置と通信可能であることを理解されたい。
ここで、クラウドコンピューティング環境850(図8)によって提供される機能的抽象化レイヤのセットを図9に示す。なお、図9に示すコンポーネント、レイヤおよび機能は例示に過ぎず、本発明の実施形態はこれらに限定されないことをあらかじめ理解されたい。図示するように、以下のレイヤおよび対応する機能が提供される。
ハードウェアおよびソフトウェアレイヤ60は、ハードウェアコンポーネントおよびソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例には、メインフレーム61、縮小命令セットコンピュータ(RISC)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、記憶装置65、ならびにネットワークおよびネットワークコンポーネント66が含まれる。いくつかの実施形態において、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア67およびデータベースソフトウェア68を含む。
仮想化レイヤ70は、抽象化レイヤを提供する。当該レイヤから、例えば、仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティングシステム74、ならびに仮想クライアント75などの仮想エンティティを提供することができる。
一例として、管理レイヤ80は以下の機能を提供することができる。リソース準備81は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソースおよび他のリソースの動的な調達を可能にする。計量および価格設定82は、クラウドコンピューティング環境内でリソースが利用される際のコスト追跡、およびこれらのリソースの消費に対する請求またはインボイス送付を可能にする。一例として、これらのリソースはアプリケーションソフトウェアのライセンスを含んでよい。セキュリティは、データおよび他のリソースに対する保護のみならず、クラウド消費者およびタスクの識別確認を可能にする。ユーザポータル83は、消費者およびシステム管理者にクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、要求されたサービスレベルが満たされるように、クラウドコンピューティングリソースの割り当ておよび管理を可能にする。サービス品質保証(SLA)の計画および履行85は、SLAに従って将来必要になると予想されるクラウドコンピューティングリソースの事前手配および調達を可能にする。
ワークロードレイヤ90は、クラウドコンピューティング環境の利用が可能な機能の例を提供する。このレイヤから提供可能なワークロードおよび機能の例には、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育の配信93、データ分析処理94、取引処理95、リンク検証96が含まれる。
本発明は、システム、方法もしくはコンピュータプログラム製品またはそれらの組み合せとすることができる。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を記憶したコンピュータ可読記憶媒体を含んでよい。
コンピュータ可読記憶媒体は、命令実行装置によって使用される命令を保持し、記憶することができる有形の装置とすることができる。コンピュータ可読記憶媒体は、一例として、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置またはこれらの適切な組み合わせであってよい。コンピュータ可読記憶媒体のより具体的な一例としては、ポータブルコンピュータディスケット、ハードディスク、RAM、ROM、EPROM(またはフラッシュメモリ)、SRAM、CD-ROM、DVD、メモリスティック、フロッピーディスク、パンチカードまたは溝内の隆起構造などに命令を記録した機械的に符号化された装置、およびこれらの適切な組み合せが挙げられる。本明細書で使用されるコンピュータ可読記憶装置は、電波もしくは他の自由に伝播する電磁波、導波管もしくは他の伝送媒体を介して伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、またはワイヤを介して送信される電気信号のような、一過性の信号それ自体として解釈されるべきではない。
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピュータ装置/処理装置へダウンロード可能である。あるいは、ネットワーク(例えばインターネット、LAN、WANもしくはワイヤレスネットワークまたはこれらの組み合わせ)を介して、外部コンピュータまたは外部記憶装置へダウンロード可能である。ネットワークは、銅製伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータもしくはエッジサーバまたはこれらの組み合わせを備えることができる。各コンピュータ装置/処理装置内のネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、当該コンピュータ可読プログラム命令を、各々のコンピュータ装置/処理装置におけるコンピュータ可読記憶媒体に記憶するために転送する。
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、スモールトークやC++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語や類似のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで記述されたソースコードもしくはオブジェクトコードのいずれかとすることができる。コンピュータ可読プログラム命令は、スタンドアロン型ソフトウェアパッケージとして完全にユーザのコンピュータ上で、または部分的にユーザのコンピュータ上で実行可能である。あるいは、部分的にユーザのコンピュータ上でかつ部分的にリモートコンピュータ上で、または、完全にリモートコンピュータもしくはサーバ上で実行可能である。後者の場合、リモートコンピュータは、LANやWANを含む任意の種類のネットワークを介してユーザのコンピュータに接続してもよいし、外部コンピュータに(例えば、インターネットサービスプロバイダを使用してインターネットを介して)接続してもよい。いくつかの実施形態において、例えばプログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理アレイ(PLA)を含む電子回路は、本発明の態様を実行する目的で当該電子回路をカスタマイズするために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行することができる。
本発明の実施形態は、本明細書において、本発明の実施形態に係る方法、装置(システム)、およびコンピュータプログラム製品のフローチャートもしくはブロック図またはその両方を参照して説明されている。フローチャートもしくはブロック図またはその両方における各ブロック、および、フローチャートもしくはブロック図またはその両方における複数のブロックの組み合わせは、コンピュータ可読プログラム命令によって実行可能である。
上記のコンピュータ可読プログラム命令は、機械を生産するために、汎用コンピュータ、専用コンピュータ、または他のプログラマブルデータ処理装置のプロセッサに提供することができる。これにより、かかるコンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作を実行するための手段を創出する。上記のコンピュータ可読プログラム命令はさらに、コンピュータ、プログラマブルデータ処理装置もしくは他の装置またはこれらの組み合わせに対して特定の態様で機能するよう命令可能なコンピュータ可読記憶媒体に記憶することができる。これにより、命令が記憶された当該コンピュータ可読記憶媒体は、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作の態様を実行するための命令を含む製品を構成する。
また、コンピュータ可読プログラム命令を、コンピュータ、他のプログラマブル装置、または他の装置にロードし、一連の動作ステップを当該コンピュータ、他のプログラマブル装置、または他の装置上で実行させることにより、コンピュータ実行プロセスを生成してもよい。これにより、当該コンピュータ、他のプログラマブル装置、または他の装置上で実行される命令が、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作を実行する。
本開示の図面におけるフローチャートおよびブロック図は、本発明の種々の実施形態に係るシステム、方法およびコンピュータプログラム製品の可能な実装形態のアーキテクチャ、機能性、および動作を示している。この点に関して、フローチャートまたはブロック図における各ブロックは、特定の論理機能を実行するための1つ以上の実行可能な命令を含む、命令のモジュール、セグメント、または部分を表すことができる。他の一部の実装形態において、ブロック内に示した機能は、各図に示す順序とは異なる順序で実行してもよい。例えば、連続して示される2つのブロックは、実際には、関係する機能に応じて、1つの工程として達成してもよいし、同時もしくは略同時に実行してもよいし、部分的もしくは全体的に時間的に重複した態様で実行してもよいし、場合により逆順で実行してもよい。なお、ブロック図もしくはフローチャートまたはその両方における各ブロック、および、ブロック図もしくはフローチャートまたはその両方における複数のブロックの組み合わせは、特定の機能もしくは動作を行う、または専用ハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェアベースのシステムによって実行可能である。
本明細書で使用される用語は、特定の実施形態を説明することのみを目的としており、種々の実施形態を限定することを意図するものではない。本明細書において、単数形「ある(a)」、「ある(an)」および「その(the)」は、文脈上そうではないことが明らかでない限り、複数形も含むことを意図している。さらに、本明細書において、「含む(includes)」もしくは「含んでいる(including)」またはその両方の用語は、記載された特徴、整数、ステップ、操作、要素、もしくは構成要素またはその組み合わせが存在することを規定するが、1つ以上の他の特徴、整数、ステップ、操作、要素、構成要素、もしくはそれらのグループまたはその組み合わせが存在すること、または追加されることを排除しない。各種の実施形態の例示的な実施形態についての上述の詳細な説明において、添付図面(同様の符号は同様の要素を表す)を参照した。添付図面は本明細書の一部を構成するものであり、各種の実施形態を実施可能な特定の実施形態例を例示している。これらの実施形態は、当業者が実施形態を実施できるように十分詳細に説明されたが、他の実施形態を用いてもよく、各種の実施形態の範囲から逸脱することなく、論理的、機械的、電気的、および他の形式の変更が行われてもよい。上述の説明において、各種の実施形態の完全な理解に供するために、多数の具体的な詳細を示した。ただし、各種の実施形態は、これらの具体的な詳細を有さずに実施してもよい。他の例では、本実施形態が不明瞭になることを避けるために、周知の回路、構造、および技術については詳細な説明を省略している。
本明細書において、項目に関して「ある数の(a number of)」という場合、1つ以上の項目を意味する。例えば、「ある数の異なる種類のネットワーク」は、1つ以上の異なる種類のネットワークである。
異なる参照番号が、共通の番号とそれに続く異なる文字(例えば、100a、100b、100c)、または共通の番号とそれに続く句読点とそれに続く異なる番号(例えば、100-1、100-2、もしくは100.1、100.2)で構成される場合、これらの文字または後続番号を含まずに参照符号のみ(例えば、100)を用いた場合、要素グループ全体、当該グループ内のいずれかのサブセット、または当該グループ内の例示的な標本を指す場合がある。
さらに、項目のリストと共に「少なくとも1つの(at least one of)」という表現が使用される場合、リストされた1つ以上の項目の異なる組み合わせが使用可能であることを意味し、リスト内の各項目が1つのみ必要であってもよい。言い換えれば、「少なくとも1つの」は、リスト内の項目を任意の組み合わせおよび任意の数で使用可能であり、リスト内のすべての項目が必要なわけではないことを意味する。項目は、特定の対象、物、またはカテゴリとすることができる。
例えば、「項目A、項目B、または項目Cのうちの少なくとも1つ」は、限定するものではないが、「項目A」、「項目Aと項目B」、または、「項目B」を含むことができる。この例ではさらに、「項目Aと項目Bと項目C」、または、「項目Bと項目C」を含むことができる。もちろん、これらの項目のあらゆる組み合わせが存在する。いくつか例示すると、「少なくとも1つの」は、例えば、限定するものではないが、「2個の項目Aと1個の項目Bと10個の項目C」、「4個の項目Bと7個の項目C」、または、他の適切な組み合わせとすることができる。
上述の説明において、各種の実施形態を参照した。ただし、本開示は、具体的に説明された実施形態に限定されない。異なる実施形態に関連しているか否かにかかわらず、記載された特徴および要素の任意の組み合わせが、本開示を実装および実施する上で考えられる。記載した実施形態の範囲および主旨から逸脱しない範囲で、多くの修正、変更、および変形が当業者にとって明らかな場合がある。さらに、本開示の実施形態は、他の可能な解決手段または先行技術に対して利点を達成することができるが、特定の利点が所与の実施形態によって達成されるか否かは、本開示を限定するものではない。したがって、記載した態様、特徴、実施形態、および利点はあくまでも例示であり、特許請求の範囲に明示的に記載されている場合を除き、添付の特許請求の範囲の要素または限定事項とは見なされない。さらに、以下の特許請求の範囲は、本発明の真の主旨および範囲に属するすべてのかかる変更および変形を包含するものと解釈されることが意図される。
Claims (20)
- 外部リンクによって参照される外部コンテンツに対する変更を検出するための方法であって、
第1の時間に、電子文書に埋め込まれた外部リンクによって参照される外部コンテンツに関連するキーワードを登録することと、
ユーザが前記電子文書にアクセスしたことに応じて、第1の時間より後の第2の時間に、前記外部コンテンツを特定する前記外部リンクに位置するリソースをスクレイピングすることによって当該外部コンテンツを取得することと、
取得した前記外部コンテンツおよび登録した前記キーワードを用いて、当該外部コンテンツが変更されたか否かを判断する検証工程を行うことと、
を含む、方法。 - 前記キーワードを登録することは、
前記電子文書の所有者から、前記外部リンクについてのキーワードリストを受け取ることと、
前記外部コンテンツを特定する前記外部リンクに位置する前記リソースをスクレイピングすることと、
前記キーワードリストに含まれるキーワードが前記外部コンテンツ内に存在すると判断することと、
前記電子文書を管理するコンテンツ管理システムのデータリポジトリに前記キーワードリストを格納することと、を含む、
請求項1に記載の方法。 - 前記キーワードを登録することは、
前記外部コンテンツを特定する前記外部リンクに位置する前記リソースをスクレイピングすることと、
人工知能を用いて前記外部コンテンツを分析し、当該外部コンテンツからキーワード候補を抽出することと、
前記キーワード候補を前記電子文書の所有者に提示することと、
前記電子文書の所有者から、前記外部コンテンツについての前記キーワードとして1つ以上のキーワード候補の選択を受け付けることと、
前記電子文書を管理するコンテンツ管理システムのデータリポジトリに前記キーワードを格納することと、を含む、
請求項1に記載の方法。 - 前記検証工程を行うことは、取得した前記外部コンテンツと登録した前記キーワードとを比較し、登録した当該キーワードが当該外部コンテンツ内に依然として存在するか否かを判断することを含む、
請求項1に記載の方法。 - 登録した前記キーワードは、任意キーワードと必須キーワードとを含み、
前記検証工程は、
前記必須キーワードおよび前記任意キーワードが前記外部コンテンツ内に存在する場合に、当該外部コンテンツが変更されていないと判断することと、
前記必須キーワードが前記外部コンテンツ内に存在し、前記任意キーワードが当該外部コンテンツ内に存在しない場合に、当該外部コンテンツが部分的に変更されたと判断することと、
前記必須キーワードおよび前記任意キーワードが前記外部コンテンツ内に存在しない場合に、当該外部コンテンツが実質的に変更されたと判断することと、をさらに含む、
請求項4に記載の方法。 - 前記検証工程に基づいて、前記外部コンテンツが変更されたと判断することと、
前記外部コンテンツが変更されたことを前記電子文書の所有者に通知することと、
前記外部コンテンツが変更されたことを前記ユーザに通知することと、をさらに含む、
請求項1に記載の方法。 - 前記外部コンテンツが変更されたことを前記ユーザに通知することは、
前記電子文書における前記外部リンクの隣に注意喚起アイコンを追加することと、
前記ユーザが前記外部リンクを選択しようとしたことに応じて生成されるポップアップとして構成されるダイアログボックスを、前記電子文書に追加することと、
前記外部リンクを前記ユーザに対して非表示にすることと、
からなる群から選択される1つ以上の動作を含む、
請求項6に記載の方法。 - メモリと、
前記メモリに通信可能に結合されたプロセッサと、を含むシステムであって、
前記プロセッサは、
第1の時間に、ウェブページに埋め込まれた外部リンクによって参照される外部コンテンツに関連するキーワードを登録することと、
ユーザが前記ウェブページにアクセスしたことに応じて、第1の時間より後の第2の時間に、前記外部コンテンツを特定する前記外部リンクに位置するリソースをスクレイピングすることによって当該外部コンテンツを取得することと、
取得した前記外部コンテンツおよび登録した前記キーワードを用いて、当該外部コンテンツが変更されたか否かを判断する検証工程を行うことと、
を含む方法を実行するように構成されている、
システム。 - 前記キーワードを登録することは、
前記ウェブページの所有者から、前記外部リンクについてのキーワードリストを受け取ることと、
前記外部コンテンツを特定する前記外部リンクに位置する前記リソースをスクレイピングすることと、
前記キーワードリストに含まれるキーワードが前記外部コンテンツ内に存在すると判断することと、
前記ウェブページを管理するコンテンツ管理システムのデータリポジトリに前記キーワードリストを格納することと、を含む、
請求項8に記載のシステム。 - 前記キーワードを登録することは、
前記外部コンテンツを特定する前記外部リンクに位置する前記リソースをスクレイピングすることと、
人工知能を用いて前記外部コンテンツを分析し、当該外部コンテンツからキーワード候補を抽出することと、
前記キーワード候補を前記ウェブページの所有者に提示することと、
前記ウェブページの所有者から、前記外部コンテンツについての前記キーワードとして1つ以上のキーワード候補の選択を受け付けることと、
前記ウェブページを管理するコンテンツ管理システムのデータリポジトリに前記キーワードを格納することと、を含む、
請求項8に記載のシステム。 - 前記検証工程を行うことは、取得した前記外部コンテンツと登録した前記キーワードとを比較し、登録した当該キーワードが当該外部コンテンツ内に依然として存在するか否かを判断することを含む、
請求項8に記載のシステム。 - 登録した前記キーワードは、任意キーワードと必須キーワードとを含み、
前記検証工程は、
前記必須キーワードおよび前記任意キーワードが前記外部コンテンツ内に存在する場合に、当該外部コンテンツが変更されていないと判断することと、
前記必須キーワードが前記外部コンテンツ内に存在し、前記任意キーワードが当該外部コンテンツ内に存在しない場合に、当該外部コンテンツが部分的に変更されたと判断することと、
前記必須キーワードおよび前記任意キーワードが前記外部コンテンツ内に存在しない場合に、当該外部コンテンツが実質的に変更されたと判断することと、をさらに含む、
請求項11に記載のシステム。 - 前記検証工程に基づいて、前記外部コンテンツが変更されたと判断することと、
前記外部コンテンツが変更されたことを前記ウェブページの所有者に通知することと、
前記外部コンテンツが変更されたことを前記ユーザに通知することと、をさらに含む、
請求項8に記載のシステム。 - 前記外部コンテンツが変更されたことを前記ユーザに通知することは、
前記ウェブページにおける前記外部リンクの隣に注意喚起アイコンを追加することと、
前記ユーザが前記外部リンクを選択しようとしたことに応じて生成されるポップアップとして構成されるダイアログボックスを、前記ウェブページに追加することと、
前記外部リンクを前記ユーザに対して非表示にすることと、
からなる群から選択される1つ以上の動作を含む、
請求項13に記載のシステム。 - プログラム命令が実装されたコンピュータ可読記憶媒体を含むコンピュータプログラム製品であって、当該プログラム命令は、方法を実行するためにコンピュータによって実行可能であり、当該方法は、
第1の時間に、ウェブページに埋め込まれた外部リンクによって参照される外部コンテンツに関連するキーワードを登録することと、
ユーザが前記ウェブページにアクセスしたことに応じて、第1の時間より後の第2の時間に、前記外部コンテンツを特定する前記外部リンクに位置するリソースをスクレイピングすることによって当該外部コンテンツを取得することと、
取得した前記外部コンテンツおよび登録した前記キーワードを用いて、当該外部コンテンツが変更されたか否かを判断する検証工程を行うことと、
を含む、コンピュータプログラム製品。 - 前記キーワードを登録することは、
前記ウェブページの所有者から、前記外部リンクについてのキーワードリストを受け取ることと、
前記外部コンテンツを特定する前記外部リンクに位置する前記リソースをスクレイピングすることと、
前記キーワードリストに含まれるキーワードが前記外部コンテンツ内に存在すると判断することと、
前記ウェブページを管理するコンテンツ管理システムのデータリポジトリに前記キーワードリストを格納することと、を含む、
請求項15に記載のコンピュータプログラム製品。 - 前記キーワードを登録することは、
前記外部コンテンツを特定する前記外部リンクに位置する前記リソースをスクレイピングすることと、
人工知能を用いて前記外部コンテンツを分析し、当該外部コンテンツからキーワード候補を抽出することと、
前記キーワード候補を前記ウェブページの所有者に提示することと、
前記ウェブページの所有者から、前記外部コンテンツについての前記キーワードとして1つ以上のキーワード候補の選択を受け付けることと、
前記ウェブページを管理するコンテンツ管理システムのデータリポジトリに前記キーワードを格納することと、を含む、
請求項15に記載のコンピュータプログラム製品。 - 前記検証工程を行うことは、取得した前記外部コンテンツと登録した前記キーワードとを比較し、登録した当該キーワードが当該外部コンテンツ内に依然として存在するか否かを判断することを含む、
請求項15に記載のコンピュータプログラム製品。 - 登録した前記キーワードは、任意キーワードと必須キーワードとを含み、
前記検証工程は、
前記必須キーワードおよび前記任意キーワードが前記外部コンテンツ内に存在する場合に、当該外部コンテンツが変更されていないと判断することと、
前記必須キーワードが前記外部コンテンツ内に存在し、前記任意キーワードが当該外部コンテンツ内に存在しない場合に、当該外部コンテンツが部分的に変更されたと判断することと、
前記必須キーワードおよび前記任意キーワードが前記外部コンテンツ内に存在しない場合に、当該外部コンテンツが実質的に変更されたと判断することと、をさらに含む、
請求項18に記載のコンピュータプログラム製品。 - 前記方法は、
前記検証工程に基づいて、前記外部コンテンツが変更されたと判断することと、
前記外部コンテンツが変更されたことを前記ウェブページの所有者に通知することと、
前記外部コンテンツが変更されたことを前記ユーザに通知することと、をさらに含み、
前記外部コンテンツが変更されたことを前記ユーザに通知することは、
前記ウェブページにおける前記外部リンクの隣に注意喚起アイコンを追加することと、
前記ユーザが前記外部リンクを選択しようとしたことに応じて生成されるポップアップとして構成されるダイアログボックスを、前記ウェブページに追加することと、
前記外部リンクを前記ユーザに対して非表示にすることと、
からなる群から選択される1つ以上の動作を含む、
請求項15に記載のコンピュータプログラム製品。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/452,793 US20230136265A1 (en) | 2021-10-29 | 2021-10-29 | Content management system |
US17/452,793 | 2021-10-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023067815A true JP2023067815A (ja) | 2023-05-16 |
Family
ID=86145128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022171467A Pending JP2023067815A (ja) | 2021-10-29 | 2022-10-26 | 外部リンクによって参照される外部コンテンツに対する変更を検出するための方法、システム、およびコンピュータプログラム製品(コンテンツ管理システム) |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230136265A1 (ja) |
JP (1) | JP2023067815A (ja) |
CN (1) | CN116074376A (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2024046474A (ja) * | 2022-09-22 | 2024-04-03 | 富士通株式会社 | 情報管理プログラム、情報処理システム及び情報管理方法 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7418657B2 (en) * | 2000-12-12 | 2008-08-26 | Ebay, Inc. | Automatically inserting relevant hyperlinks into a webpage |
US20050034134A1 (en) * | 2003-07-11 | 2005-02-10 | Jason Lieblich | Distributed computer monitoring system and methods for autonomous computer management |
US7543244B2 (en) * | 2005-03-22 | 2009-06-02 | Microsoft Corporation | Determining and displaying a list of most commonly used items |
US20080005685A1 (en) * | 2006-06-30 | 2008-01-03 | Clemens Drews | Interface mechanism for quickly accessing recently used artifacts in a computer desktop environment |
US9946722B2 (en) * | 2007-11-30 | 2018-04-17 | Red Hat, Inc. | Generating file usage information |
US9710443B2 (en) * | 2008-07-21 | 2017-07-18 | Oracle International Corporation | Simplifying access to documents accessed recently in a remote system |
JP5238418B2 (ja) * | 2008-09-09 | 2013-07-17 | 株式会社東芝 | 情報推薦装置および情報推薦方法 |
US8661327B1 (en) * | 2011-01-06 | 2014-02-25 | Intuit Inc. | Method and system for automated insertion of relevant hyperlinks into social media-based communications |
US9483557B2 (en) * | 2011-03-04 | 2016-11-01 | Microsoft Technology Licensing Llc | Keyword generation for media content |
AU2013201494B1 (en) * | 2012-12-12 | 2013-07-11 | Rokt Pte Ltd | A Digital Advertising System and Method |
GB2530507A (en) * | 2014-09-24 | 2016-03-30 | Ibm | Checking links |
US10133613B2 (en) * | 2015-05-14 | 2018-11-20 | Microsoft Technology Licensing, Llc | Digital assistant extensibility to third party applications |
US9882858B2 (en) * | 2015-06-02 | 2018-01-30 | International Business Machines Corporation | Validating E-mails using message posting services |
WO2017015100A1 (en) * | 2015-07-17 | 2017-01-26 | Tribune Broadcasting Company, Llc | Video-production system with social-media features |
US10257314B2 (en) * | 2016-06-22 | 2019-04-09 | Microsoft Technology Licensing, Llc | End-to-end user experiences with a digital assistant |
US10521481B2 (en) * | 2016-07-15 | 2019-12-31 | Tribune Broadcasting Company, Llc | Video-production system with social-media features |
US11941344B2 (en) * | 2016-09-29 | 2024-03-26 | Dropbox, Inc. | Document differences analysis and presentation |
US10684849B2 (en) * | 2017-09-08 | 2020-06-16 | Devfactory Innovations Fz-Llc | Automating generation of library suggestion engine models |
US10635703B2 (en) * | 2017-10-19 | 2020-04-28 | International Business Machines Corporation | Data clustering |
US10740367B2 (en) * | 2018-01-14 | 2020-08-11 | Microsoft Technology Licensing, Llc | Displaying an indication of changes made to content at a source |
US11151174B2 (en) * | 2018-09-14 | 2021-10-19 | International Business Machines Corporation | Comparing keywords to determine the relevance of a link in text |
US11341204B2 (en) * | 2019-05-22 | 2022-05-24 | Adobe Inc. | Identifying and presenting misalignments between digital messages and external digital content |
US20220309055A1 (en) * | 2021-03-23 | 2022-09-29 | Microsoft Technology Licensing, Llc | Intelligent assistant for a browser using content and structured data |
US20220342962A1 (en) * | 2021-04-21 | 2022-10-27 | Authidote LLC | System and Methods For Protecting, Monitoring, and Reporting Use Of Content |
-
2021
- 2021-10-29 US US17/452,793 patent/US20230136265A1/en active Pending
-
2022
- 2022-10-26 JP JP2022171467A patent/JP2023067815A/ja active Pending
- 2022-10-28 CN CN202211336089.XA patent/CN116074376A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
CN116074376A (zh) | 2023-05-05 |
US20230136265A1 (en) | 2023-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210081567A1 (en) | Monitoring data sharing and privacy policy compliance | |
CN107408064B (zh) | 在虚拟机实例内执行命令的方法和用于实施该方法的系统 | |
US10223329B2 (en) | Policy based data collection, processing, and negotiation for analytics | |
US20140081615A1 (en) | Virtual systems testing | |
US10552306B2 (en) | Automated test generation for multi-interface and multi-platform enterprise virtualization management environment | |
US10467717B2 (en) | Automatic update detection for regulation compliance | |
US9225662B2 (en) | Command management in a networked computing environment | |
US10691516B2 (en) | Measurement and visualization of resiliency in a hybrid IT infrastructure environment | |
JP2023067815A (ja) | 外部リンクによって参照される外部コンテンツに対する変更を検出するための方法、システム、およびコンピュータプログラム製品(コンテンツ管理システム) | |
US10693939B2 (en) | Providing modified protocol responses | |
US20190138646A1 (en) | Systematic Browsing of Automated Conversation Exchange Program Knowledge Bases | |
US20230289471A1 (en) | Image storage across distributed computing systems | |
US10554770B2 (en) | Dynamic cognitive optimization of web applications | |
US11900480B2 (en) | Mediating between social networks and payed curated content producers in misinformative content mitigation | |
US11361055B1 (en) | Protection of a content repository using dynamic watermarking | |
US10282732B2 (en) | Analysis of customer feedback for applications executing on distributed computational systems | |
US10796264B2 (en) | Risk assessment in online collaborative environments | |
US10599783B2 (en) | Automatically suggesting a temporal opportunity for and assisting a writer in writing one or more sequel articles via artificial intelligence | |
US20170329665A1 (en) | Community content identification | |
US11947558B2 (en) | Built-in analytics for database management | |
US11669676B2 (en) | Comparing similar applications with redirection to a new web page |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD16 | Notification of change of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7436 Effective date: 20221222 |