InfoQ

InfoQ

News

マイブックマーク

ブックマークするためにログイン または 会員登録 する

ブックマークされました!

ブックマークがエラーになりました。もう一度お願いします。

Wolfram|Alpha、菱形六十面体の裏側にあるもの

作者 Abel Avram , 翻訳者 笹井 崇司 投稿日 2009年6月1日

セクション
運用/インフラ,
設計/アーキテクチャ,
プロセス/プラクティス,
デベロップメント,
エンタープライズ・アーキテクチャ
トピック
Architecture ,
方法論 ,
リサーチ ,
アナウンス

原文(投稿日:2009/5/20)へのリンク

Wolfram|Alphaとは、記号計算により世界の系統的な知識を計算可能にしようとするものだ。特別な公式を使わずに、言語入力を受け付けることでこれを実現する。このシステムは、データキュレーションパイプライン、アルゴリズム計算システム、言語処理システム、自動プレゼンテーションシステムといった主要コンポーネントから構成されている。

Wolfram|Alphaは既に存在するWebページへのリンクを提供する検索エンジンではないし、「人気のある」物語風の知識の海を提供するWikipediaの後追いでもない。これは、事実をリアルタイムに計算することによって、質問に答えようとするものだ。

Wolfram|Alphaは結果を得るためにWeb検索をしないし、情報源となるデータをWebから持って来るわけでもない。Walfram|Alphaには収集された監査済みの内部データがあり、その多くは体系的な一次情報源からもたらされている。リアルタイムデータ(天候、株価、地震)も収集されており、有効なデータと比較される。もし狂いが見つかれば、その結果は違った形で(例えば、破線を付けて)表示される。

Wolfram|Alphaは「10兆以上ものデータ、5万以上ものアルゴリズムやモデル、千以上のドメインでの言語能力」を備えている。そのエンジンは、1986年以来ずっと開発が続けられているMathematicaのエンジン上に構築されており、現在のところ、5百万行の記号コードが、1日に1億7千5百万リクエストを処理可能な、世界で66番目に高速なスーパーコンピュータで実行されている。サービスはR Systemsによって提供されており、1秒間に39兆6千億件もの演算を処理できる。詳細情報

このシステムはR Smarrと呼ばれており、Top500サイトとDellのケーススタディ(PDF) によると、クアッドコア「Harpertown」を搭載したXeonマシンを576台使った4,608個のプロセッサコア、65,536GBのメモリ、高速InfiniBandによるデータ転送コネクションを備えています。またDellの資料によると、OSとしてRed Hat Enterprise LinuxとMicrosoft Windows HPC Serverを利用しているそうです。

Alphaへのリクエストは5箇所にあるコロケーション設備で対処する、とWalfram Researchは話しています。実際に、このプロジェクトには2つのスーパーコンピュータがあり、全部で1万個近くのプロセッサコアと数百テラバイトものハードディスクを備えています。

データはMathematica式として取得することができる。これはS式であり、ロードオンデマンド機能と一貫したMathematica言語インターフェイスを介して提供される。そこには様々な分野「数学、物理学、化学、天文学、地理学、言語学、財務」に関する大量のデータがある。この2つの技術には次のような違いがある、と彼らは言う。

Wolfram|Alphaは小さな一度限りの結果を素早くWeb上に表示するものです。これに対して、Mathematicaは広大で深淵な計算環境であり、複雑な問題を適宜処理してくれます。Wolfram|AlphaとMathematicaをともに拡張することで、2つの絆を強めているのです。

現在のところ入力できる言語は英語だけだが、将来は他の言語をサポートすることも計画している。あいまいな質問は、次のようにして解決する。

可能な解釈をランク付けして、一番もっともらしいと思われるものに対する結果を提供します。また、クリックすると他の結果が得られるようなリンクも提供します。解釈をランク付けするときには、あなたの居場所を利用することもよくあります。例えば、あなたの近くにある町を優先します。

IPアドレスに基づいたユーザの場所を考慮して、回答することもある。これはGeoIPによって5マイルの精度で取得可能だ。

ユーザに割り当てられる処理時間には制限がある。制限時間を過ぎてしまうと、リクエストは完全には処理されなくなる。この場合には、部分的な結果が返されることになる。Wolfram|Alpha プロフェッショナル版には、近い将来、計算時間を無制限にするといった特別な機能が含まれる予定だ。プロフェッショナル版には次のような機能がある。

  • 様々なフォーマットでダウンロードできる機能 (例えば、スプレッドシート、XML、3Dモデリング、TeXなど)

  • 分析データのアップロード (例えば、スプレッドシート、テキスト、画像、Webページなど)

  • 別の表示形式

  • 個人や企業の永続的プリファレンス

  • エンティティ定義を格納する機能

  • 動的インタラクティブ機能

  • セッション履歴

Wolframには、将来に向けた更なる計画がある。「開発者向けAPIs, プロフェッショナル版とコーポレート版内部データのためのカスタム版他のコンテンツ形式との結合成長しているモバイルやその他のプラットフォームへの展開

例えば、「Hurricane Katrina(ハリケーン・カトリーナ)」をリクエストしてみよう。結果は次のようになる。

wa

ラベル付けされたセクションはポッドと呼ばれる。それぞれのポッドはサブポッドを含んでもよい。レスポンスの最後には、情報源と結果をPDFとしてダウンロードするためのリンクがある。

Wolfram|Alphaのロゴは菱形六十面体だ。

役に立つリンク:Wolfram|Alpha Blog (最新情報はここにある)コミュニティサイト参加者向けサイト(参加したい人)

特集コンテンツ一覧

GAE開発の落とし穴

Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します

イベントレポート:「Coqチュートリアル#1」

去る1月12日、定理証明支援系ツールCoqの初心者向けチュートリアルが開催さ れた(http://kokucheese.com/event/index/23667/)。今後も2月2日 (http://kokucheese.com/event/index/23744/)、2月9日、2月16日と引き続き開 催されていく予定である。本記事では、開催の様子をレポートする。

Javaの未来についてのNeal Gafter氏とのディスカッション

Choosing Options

Neal Gafter氏はOracleによるJava買収の影響に関する議論、Javaにセグメンテッドスタックやメタオブジェクトプロトコルを追加することについての主張、そしてJavaとC#との比較について話をしてくれた。

Google Dartのエッセンス:アプリケーションの構築、スナップショット、Isolate

GoogleはVMをともなう新しい言語であり、JSコンパイラでもあるDartをプレビューした。 InfoQはDartのアプリの構築に貢献する文法の裏側を探った:スナップショット、Isolate、モジュール方式

CSPベースのモデル検査ツール「Process Analysis Toolkit」

本記事ではCSPベースの「マルチドメイン・モデル検査ツール」である、PAT(Process Analysis Toolkit)について紹介する。モデル検査は、形式手法(Formal Method)という方法論を基礎とする技術であり、複雑さが増大しながらも安全性を求められる、現在のソフトウェア開発の状況に対する処方箋の1つとして注目されている手法である。

Jenkinsによる継続的インテグレーションのススメ(4) ~CloudBeesでJenkinsをサービスとして使う~

前回まで、Jenkinsの幾つかの側面に注目して解説をしてきました。シリーズ最後の今回は、Jenkinsをサービスとして使う方法を紹介します。

書籍『抽象によるソフトウェア設計-Alloyではじめる形式手法-』の紹介

Alloyは、MITにて開発された仕様記述言語であり、ツールによる自動解析を使い、インクリメンタルに形式仕様が書けることが特長である。筆者らはAlloy開発者による、Alloyを使った形式手法入門書を翻訳、今夏にオーム社より刊行した。本記事では、Alloyの簡単な概要と、翻訳書『抽象によるソフトウェア設計』(「Alloy本」)を紹介する。

Windows デバイスで開発するタッチユーザーインターフェイス

スマートフォンを中心としたマルチデバイスにおけるタッチユーザーインターフェイスへの対応は、既に必須の項目となりつつある。本記事では、Windows デバイスにおける UX のベースとなっている「メトロ」というデザイン言語を掘り下げながら、既存環境を意識しつつもどのようにタッチユーザーインターフェイス開発に取り組んでいくべきであるかについて解説していく。