Webページから意味を抽出するJSフレームワーク「Fathom」

 MozillaがWebページの構成要素を識別し、意味を抽出するJavaScriptフレームワーク「Fathom」を開発している。MozillaでFathom開発を進めるErik Rose氏がブログで明らかにした。現在GitHubでそのソースコードが公開されている。

 すでにページ内の要素をブラウザが理解する手がかりとしてマイクロフォーマットやセマンティックタグ、RDF、link/relヘッダなどが使われているが、これらは普及に至らなかったとし、その反省からFathomの開発に至ったようだ。実際、これら機能を活用するSafariとFirefoxのリーダーモードの土台であるReadabilityは先に閉鎖されている。

 Fathomはセマンティックな抽出を作成するための「ミニ言語」で、DOMのノードを測定して設定した条件を基に抽出する。これにより、Webページにある「前へ戻る」「次に進む」などのコンポーネントやアドレスフォームなどのパーツを識別することができる。これは新規タブページで履歴を表示するFirefoxのテスト機能「Activity Stream」で利用されているとのこと。

 プログラムを構成するルールのセットはJavaScriptで組み込まれており、プライバシ設定に合わせてクライアントでもサーバーサイドでも利用できるという。このほかのメリットとしては、Prologのようなデータフロー言語として使うことができ、適用できるルールがあればデータが表示される。依存性情報をベースに実行を決定するため、クエリに必要なものだけを動かし、結果をキャッシュするという。

 また、ルールセットをデータとして扱うことができるのも特徴。JavaScriptの関数呼び出しのように見えるが、呼び出しはアノテーションを加えているだけであり、マシンで管理できるという。

 FathomはプロジェクトのWebサイトより入手できる。ライセンスはMPL(Mozilla Public License)。

Fathom
https://github.com/mozilla/fathom