インターネットから大量に流入する情報に圧倒されてしまうこともあります。しかし、その洪水を、知りたい情報に焦点を絞った、より扱いやすい流れに変えることができます。Yahoo! Pipesは、RSSフィード、Webページ、その他のソースをグラフィカルに組み合わせ、結果をフィルタリングすることで、カスタムニュースソースを構築できるサービスです。このサービスは、ドラッグ&ドロップという馴染みのある操作とフローチャートのメタファーを組み合わせ、結果を集約・処理します。
Pipes と出会ったのは、「Glenn フィード」を作りたいと思った時でした。私は多くの出版物に記事を書いているので、自分が関わっているすべてのメディアからの検索結果を一つの RSS フィードにまとめたいと思っていました。Yahoo Pipes を使えば、様々な RSS フィードや Web ページの検索結果を一つのニュースフィードにまとめ、それを自分の Web サイトで関心のある人に提供できます。(自分の記事が掲載されるタイミングも追跡できます。そう、今回の記事のように、自分が書いた記事が掲載されるタイミングが正確にわからないことがよくあるんです!)
Yahoo! Pipes を使って、著者ごとの RSS を提供していないサイトからカスタムフィードを抽出したこともあります。あるテクノロジーサイトでは、特定の著者の記事をよく読むのですが、Pipe を使えば、フィードをスキャンしてその著者の名前を検索し、記事を RSS にフィルタリングして、ニュースリーダーの NetNewsWire に集約することができます。
パイプという名前は、Unixの黎明期に取り入れられた注目すべきアイデアの一つに由来しています。パイプ(縦棒または|で表記)は、「あるプログラムの出力を次のプログラムに送る」という意味です。このプログラムのワークフローは、機械をつなぐパイプのようなものです。牛乳、砂糖、小麦粉をミキサーに入れ、生地が押し出し機に流れ込み、ワッフルメーカーに押し出されます。すると、アイスクリームコーンが出来上がります!
現実的なテストケースを使って、プロジェクトを一つずつ見ていきましょう。複数の主要ニュースサイトでハリケーンが言及されたらすぐに知りたいとします。Pipesにアクセスし、Yahoo!のログインアカウントをお持ちでない場合は作成してください。「Create A Pipe」リンクをクリックして開始します。Pipesは自動保存しないように見えますが、実際には自動保存されます。また、ブラウザのクラッシュによる作業内容の損失を防ぐため、大きな変更を加えた後は「Save」ボタンをクリックすることもできます。
まず、パイプにダンプする原材料(入力)を決定します。パイプは、RSS フィード、Web ページ内の HTML、XML 定義データ、さらには Yahoo 検索や Google Base データベースからの情報も処理できます。
RSSとHTMLを扱う可能性が高いため、このパイプではCNN、The New York Times、The Los Angeles Times、USA Todayのフィードを調べます。左側のカテゴリリストの「ソース」見出しで、「サイトフィードの取得」をメインウィンドウにドラッグするか、「ソース」リストの項目の右側にあるプラス記号をクリックします。最初のサイトのURLを最初のURLフィールドに貼り付けます。「URL」の横にあるプラス記号をクリックしてフィールドを追加し、各サイトのURLを順番にフィールドに貼り付けます。

Pipes がサイトのメイン RSS フィードを正しく取得できた場合、各サイトのファビコン(通常はサイトのデザインに合わせてカスタマイズされた四角いウェブサイトアイコン)が各 URL の左側に自動的に表示されます。アイコンが表示されない場合は、疑問符が表示されます。yield マークが表示された場合は、URL を再確認してください。
フィードを追加するもう一つの方法は、「ソース」の「フィードを取得」オプションを使うことです。多くのフィードを持つサイトから特定のフィードを追加したい場合に、この機能を使用します。例えば、多くのニュースサイトでは、トピックごとにフィルタリングされたカスタマイズされたフィードを提供しています。これらのフィードには、メインのRSSフィードよりも多くの記事が含まれている場合があります。
「フィードの取得」項目では、フィードの特定のURLを見つける必要があります。サイトのホームページでRSSリンクを探すか、必要であればサイトの検索ツールを使用してRSSを検索してください。最終的に表示されるページが実際のRSSフィードであることを確認してください。(例えば、一部のサイトでは、最終的なURLにアクセスするために「XML」というボタンをクリックする必要があります。)URLをコピーしたら、「フィードの取得URL」フィールドに貼り付けます。フィールドを追加するには、プラス記号をクリックします。
結果をフィルタリングする
フィードのセットがキューに登録されたので、フィードのコンテンツをフィルタリングできます。Yahoo Pipesでは、左側の「演算子」リンクの下に様々な選択肢が用意されていますが、今回の目的には「フィルター」ツールで十分です。
「フィルター」をレイアウトにドラッグするか、フィルター名の横にあるプラス記号をクリックします。フィルターはフィード入力をすべて検査し、条件に一致する部分だけを通過させます。ハリケーンの例では、フィルターの「許可/ブロック」ポップアップメニューを「許可」に設定しました。(または、「ブロック」を選択して、読みたくない項目以外をすべて通過させることもできます。)「すべて/いずれか」メニューは「すべて」に設定しましたが、今回は条件を1つだけ追加するので、これはそれほど重要ではありません。

「ルール」の下のフィールドをクリックすると、RSSフィードで使用されるタグのメニューが表示されます。ここでは、注目したい説明情報(例えば、author、pubDate(アイテムがフィードまたは出版物に公開された日付)、titleなど)を選択できます。今回は広範囲に検索したいので、item.title、item.description、item.y:titleを選択します。(パイプで使用するフィードによっては、item.y:titleエントリが表示されない場合があります。これは、いずれかのフィードにおける特別な定義です。その他のアイテムエントリは、より一般的なRSSフィールド名です。)各フィールドの中央のオプションを「Contains」に設定し、その右側のテキストフィールドに「hurricane」と入力します。
パイプを接続してテストしてみましょう

これで、各パーツを接続できます。「フィードの取得」セレクターの下部にある円にマウスを移動し、「フィルター」項目の上部にある円までドラッグします。曲線が表示され、項目が接続されます。ページの下部に「パイプ出力」という項目が表示されていることに注目してください。これが、カスタムフィードを生成するチェーン内のパーツです。「フィルター」を「パイプ出力」に接続します。
ウィンドウ下部のデバッガーパネルを使って、フィルターの動作をテストできます。サイズ変更バー(区切り線の中央)を上にドラッグして、ウィンドウを大きくしてください。
レイアウト内の任意の項目をクリックするか、「デバッガー」ラベルにマウスを移動して表示されるポップアップメニューから項目を選択してください。デバッガーが実行され、その段階に到達した出力が表示されます。これは問題のトラブルシューティングに役立ちます。
最後に「保存」をクリックし、カスタムフィードに名前を付けます。画面上部中央に「パイプを実行」(出力を生成する)オプションが表示されます。そのリンクをクリックすると、Yahoo!が新しいウィンドウを開き、結果が表示されます。
カスタムフィードを使用する
Yahoo Pipesの出力ウィンドウでは、カスタムフィードをRSSフィードとして表示するか、結果をメールで受け取るかを選択できます(メールやその他のオプションについては、「その他のオプション」リンクをクリックしてください)。「バッジとして取得」リンクをクリックすると、ブログツールやウェブサイトにフィードの最新の結果を埋め込むためのコードがPipesから提供されます。
故テッド・スティーブンス上院議員は、インターネットをパイプの連なりに例えて広く嘲笑されましたが、多くの点でこれは不正確な表現ではありませんでした。Yahoo!はこの比喩を新たな次元へと押し上げました。このツールを使えば、インターネットをフィルター処理されたパイプの連なりに変え、大量の情報をフィルタリングして、必要な情報だけを提供することができます。
Glenn Fleishmanは、ファイル共有、リモートアクセス、Wi-Fiに関するTake Controlシリーズの電子書籍を複数執筆しています。Macworldにも定期的に寄稿しています。