ウィキペディアページ間の接続を視覚化するためのWebアプリ。 wikipedia.luk.keでお試しください。

テキストボックス、たとえばCATSにトピックを入力することから始めます。単一の「ノード」が生成され、グラフ上の円として表示されるCATとラベル付けされます。このノードをクリックして展開します。
ノードを展開すると、クリックした記事の最初の段落にリンクされた各ウィキペディア記事の新しいノードが作成されます。これらの新しいノードは、拡張されたノードに接続されます。たとえば、 CATを拡張すると、毛皮、哺乳類、肉食動物、家畜を含む8つのノードが作成され、それぞれがCATに接続されます。これらの新しいノードも同じ方法で拡張できます。ノードを拡張し続けることにより、関連するトピックの複雑なWebを構築できます。
また、複数の記事を入力して、コンマ、タブを押したり、入力した後に入力して「比較」することもできます。
クリックしてノードを展開すると、ウィキペディアAPIにリクエストが行われ、そのノードに対応するウィキペディア記事の完全なコンテンツをダウンロードします。 Wikipedia Mapは、このデータを使用して、記事の最初の段落でリンクを見つけます。
wikipedia_parse.js 、 DOMParser APIを使用して、Wikipedia PagesのHTML(WikipediaのAPIへの通話から取得)を解析します。パーサーは、記事の最初の段落に対応する<p>タグを探し、この段落内のすべての<a>タグリンクを抽出します。次に、リンクをフィルタリングして、他のウィキペディアの記事にリンクするリンクのみを含みます。
これをブラウザのコンソールで自分で動作していることがわかります。 Wikipediaマップを開いている場合は、ブラウザの開発者ツールを開き、 await getSubPages('Cat') 。 1秒後、他の関連記事の名前が付いた配列が表示されます。
フロントエンドでは、 vis.jsを使用してグラフを表示します。ノードがクリックされるたびに、アプリはnode.jsサーバーにXMLHttpRequestを作成します。結果のリンクは、中央ノードからの距離に応じて色付けされた新しいノードとして追加されます(上記のように)。
アプリをローカルに使用するには、簡単に使用します
git clone https://github.com/controversial/wikipedia-map/ Webブラウザでindex.htmlを開きます。フロントエンドを実行するためにコンピレーションやサーバーは必要ありません。
ノードを展開すると、展開するノードの記事の最初の段落にリンクされた各記事のノードが作成されます。 2つの理由で、記事の最初の段落からのみリンクを使用することを選択しました。
ノードは、中央ノードから遠く離れている場合、色が明るくなります。ペンギンから古代ギリシャ語に到達するために5つのステップを要した場合、バードウォッチングのようなノードよりも軽い色になり、到達するのに2つのステップしかかかりませんでした。したがって、ノードの色は、記事が中心的なトピックにどれだけ密接に関連しているかを示します。
ノードの上にマウスをホバリングすると、中央ノードに戻るパスを強調表示します。
これは必ずしも最短のパスではありません。それはあなたがノードに到達するために取った道です。
.gitignoreライブラリディレクトリを確認してください。私がそのようなものを書かなかったときにここにある理由はありませんこのプロジェクトはウィキペディアを搭載しており、その豊富な情報がこのプロジェクトを可能にしています。
グラフのプレゼンテーションは、 vis.jsを搭載しています。