Wolfram AlphaのWEB APIを紹介します。最先端の計算エンジンをアプリケーションに統合するためのAPIになっています。
簡単な計算から、英語の質問への回答といった人工知能的な機能まで揃っています。利用するためにはWolfram Alpha Developper Portalに登録する必要がありますが、無料で月2000回までのAPIコールが可能です。登録はこちらから。利用するのであれば、まずappidを取得します。APIとして使う必要がなければ、ブラウザで計算を試すことも可能です(Wolfram|Alpha)。
詳細なAPIドキュメントはこちらに用意されています。
円の面積の計算
例えば、半径4の円の面積を知りたいとして、4*4*πを計算してみます。πはpiと書けば、Wolfram Alphaは理解します。
http://api.wolframalpha.com/v2/query?input=4*4*pi&appid=XXXXXX-XXXXXXXXXX&format=plaintext
このWEB APIを実行して返ってくるレスポンスの一部は以下のようになります。
<pod title="Input" scanner="Identity" id="Input" position="100" error="false" numsubpods="1">
<subpod title="">
<plaintext>4×4 π</plaintext>
</subpod>
</pod>
<pod title="Result" scanner="Simplification" id="Result" position="200" error="false" numsubpods="1" primary="true">
<subpod title="">
<plaintext>16 π</plaintext>
</subpod>
<states count="2">
<state name="Approximate form" input="Result__Approximate form"/>
<state name="Step-by-step solution" input="Result__Step-by-step solution" stepbystep="true"/>
</states>
</pod>
<pod title="Decimal approximation" scanner="Numeric" id="DecimalApproximation" position="300" error="false" numsubpods="1" primary="true">
<subpod title="">
<plaintext>
50.26548245743669181540229413247204614715471039000169313559...
</plaintext>
</subpod>
<states count="1">
<state name="More digits" input="DecimalApproximation__More digits"/>
</states>
</pod>
まとまりごとにpodという名前のタグで囲まれたxml形式で結果が得られます。title=”Input”の部分では入力が4×4 πであること、title=”Result”の部分では結果が16 πであること、title=”Decimal approximation”の部分では結果の浮動小数点数表記が50.26548245743669181540229413247204614715471039000169313559...であることを示してくれています。
積分計算
∮ 4*x^3 dxを計算します。積分記号はIntegrateに置き換え、スペースは+に置き換えます。すなわち、Integrate+4*x^3+dxをinputに渡します。
http://api.wolframalpha.com/v2/query?input=Integrate+4*x^3+dx&appid=XXXXXX-XXXXXXXXXX&format=plaintext
その結果の一部は以下のようになります。
<pod title="Indefinite integral" scanner="Integral" id="IndefiniteIntegral" position="100" error="false" numsubpods="1" primary="true">
<subpod title="">
<plaintext>integral4 x^3 dx = x^4 + constant</plaintext>
</subpod>
<states count="1">
<state name="Step-by-step solution" input="IndefiniteIntegral__Step-by-step solution" stepbystep="true"/>
</states>
</pod>
integral4 x^3 dx = x^4 + constantという結果が得られていることが分かります。Wolfram Alphaはこれよりももっと複雑な数学計算も可能なのでいろいろ試すと面白いと思います。
天気も聞ける
inputに、weather+of+tokyoを渡して東京の天気を聞いてみます。
http://api.wolframalpha.com/v2/query?input=weather+of+tokyo&appid=XXXXXX-XXXXXXXXXX&format=plaintext
返ってくるのは…
<pod title="Input interpretation" scanner="Identity" id="Input" position="100" error="false" numsubpods="1">
<subpod title="">
<plaintext>weather | Tokyo</plaintext>
</subpod>
</pod>
<pod title="Latest recorded weather for Tokyo" scanner="Data" id="InstantaneousWeather:WeatherData" position="200" error="false" numsubpods="1" primary="true">
<subpod title="">
<plaintext>
temperature | 16 °C conditions | few clouds relative humidity | 82% (dew point: 13 °C) wind speed | 3 m/s (55 minutes ago)
</plaintext>
</subpod>
<states count="2">
<state name="Show non‐metric" input="InstantaneousWeather:WeatherData__Show non‐metric"/>
<state name="More" input="InstantaneousWeather:WeatherData__More"/>
</states>
</pod>
<pod title="Weather forecast for Tokyo" scanner="Data" id="WeatherForecast:WeatherData" position="300" error="false" numsubpods="2" primary="true">
<subpod title="Tonight">
<plaintext>between 14 °C and 18 °C clear (all night)</plaintext>
</subpod>
<subpod title="Tomorrow">
<plaintext>between 14 °C and 19 °C clear (all day)</plaintext>
</subpod>
</pod>
今の天気がtemperature | 16 °C conditions | few clouds relative humidity | 82% (dew point: 13 °C) wind speed | 3 m/s (55 minutes ago)であることだけでなく、天気予報までしてくれています。
おわりに
いろいろ試して見るとわかるのですが、答えがあるものであれば割となんでも答えてくれます。面白いAPIなので、ぜひ試して遊んでみてください!



