Documentation9. 付録

 

Mathematica 関数のリファレンス

MSP Tablibのタグを使うJSPには,たくさんのMathematica コマンドを挿入することができます.このセクションでは各コマンドの説明をします.インタラクティブなMathematica セッションでこれらのコマンドを使い,テストしてみることもできます.もちろん,これらのコマンドはWebページの処理中に使われるように設計されているのですが,Mathematica セッションでどのように動くかを知ることも有益です.

MSPBlock

これはHTTPリクエストからの変数を使う最も重要な方法のひとつです.MSPBlockは各変数を取り,これを解釈し,body 内にある場合は解釈した値で置き換えます.値を持たない変数があると空の文字列が返されます.値の解釈中にセキュリティやパースのエラーがあると,MSPExceptionが投げられます.

パッケージをロードし,セキュリティの内容を設定して,この関数がどのように働くのかのシミュレーションをすることができます.

Needs["MSP`"];

SetSecurity[];

変数$$varに値"5+7"を割り当てます.値が文字列であることにご注意ください.

$$var="5+7";

MSPBlockを評価すると$$varはすべて解釈された値で置き換えられます.

MSPBlock[ {$$var}, {Hold[ $$var], $$var}]

{Hold[5+7], 12}

入力値が解釈できない場合はMSPExceptionが投げられます.

$$var="Sin[";

Catch[ MSPBlock[ {$$var}, {Hold[ $$var], $$var}], _MSPException, List]

{{$$var, "Sin["}, MSPException["ParseError"]}

入力値がセキュリティテストを通らなければ,MSPExceptionが投げられます.

$$var="ReadList[\"/etc/passwd\"]";

Catch[ MSPBlock[ {$$var}, $$var], _MSPException, List]

{{$$var, "ReadList[\"/etc/passwd\"]"}, MSPException["SecurityError"]}

入力はMathMLでも与えられます.

$$e = "<math><mrow><mi>sin</mi><mo>&af;</mo><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow></mrow>
</math>";

MSPBlock[ {$$e}, $$e]

Sin[x]

例外

MSPBlockは以下の例外を投げることがあります.

MSPException["ParseError"] Mathematica が値を解釈できない場合.

MSPException["SecurityError"] 値がセキュリティテストを通らない場合.

MSPException["ValueError"] 値が文字列ではない場合.これはページの作者によるプログラム上のエラーを示唆しています.

MSPException["VariableError"] 変数がMathematica のシンボルではない場合.これはページの作者によるプログラム上のエラーを示唆しています.

MSPException

エラーの際にMSPExceptionを投げるMSPコマンドはたくさんあります.これはページの処理コードで受けられますが,ページの作者がこれを受けて何らかの中間処理を施すことも可能です.

Needs["MSP`"];

変数が解釈できないとParseErrorの例外が投げられます.値はクライアントから入力されることもあるので,これは必ずしもページの作者側のエラーとはいえません.

Catch[ MSPToExpression["f["], _MSPException, List]

{{"f[", "f["}, MSPException["ParseError"]}

解釈の結果がセキュリティチェックを通過しないとSecurityErrorの例外が投げられます.値はクライアントから入力されることもあるので,これは必ずしも作者側のエラーとはいえません.

Catch[ MSPToExpression["ReadList[\"/etc/passwd\"]"], _MSPException, List]

{{"ReadList[\"/etc/passwd\"]", "ReadList[\"/etc/passwd\"]"}, MSPException["SecurityError"]}

Mathematica のシンボルではない変数があるとVariableErrorの例外が投げられます.通常これはページの作者のエラーを意味します.

Catch[ MSPValue[x[1]], _MSPException, List]

{x[1], MSPException["VariableError"]}

Mathematica の文字列ではない値があるとValueErrorの例外が投げられます.通常これはページの作者のエラーを意味します.

$$var=Sin[1]

Sin[1]

Catch[ MSPToExpression[$$var], _MSPException, List]

{{$$var, Sin[1]}, MSPException["ValueError"]}

MSPExportImage

MSPExportImageMathematica のコマンドExportを使って画像を保存するときに使われます.第1引数がグラフィックスオブジェクトまたはCellあるいはBoxDataオブジェクトの場合は直接表示されます.一般的な式の場合はTraditionalFormを使ってフォーマットされます.数式やグラフィックスのフォーマットについては「数式やグラフィックスの表示」のセクションに詳しい説明があります.

Needs["MSP`"];

MSPExportImage[ Graphics[ Line[ {{0, 0}, {1, 1}}]]]

" <img src=\"/webMathematica/MSP?MSPStoreID=FileNameBase_245528838&MSPStoreType=image/gif\" alt=\"Created by webMathematica\" /> "

ここではMSPExportImageがボックス式を受け取りこれを画像として描画します.

MSPExportImage[ BoxData[ToBoxes[ x+y^2, TraditionalForm]]]

" <img src=\"/webMathematica/MSP?MSPStoreID=FileNameBase_574601872&MSPStoreType=image/gif\" alt=\"Created by webMathematica\" /> "

この例ではMSPExportImageが引数をTraditionalFormでフォーマットしてから画像として描画します.

MSPExportImage[ x+Sin[x]]

" <img src=\"/webMathematica/MSP?MSPStoreID=FileNameBase_932131661&MSPStoreType=image/gif\" alt=\"Created by webMathematica\" /> "

ここではMSPExportImageが第2引数を使って画像のフォーマットタイプを指定しています.

MSPExportImage[ x+Sin[x], "JPEG"]

" <img src=\"/webMathematica/MSP?MSPStoreID=FileNameBase_665363422&MSPStoreType=image/jpeg\" alt=\"Created by webMathematica\" /> "

これはExportを使うので,変換オプションを使って画像生成の方法をコントロールすることも可能です.実際のオプションの設定については Mathematica ヘルプブラウザのExportでAdditional Information(追加情報)をご覧ください.次の例では,白が透過色となるGIF画像が生成されます.

MSPExportImage[ BoxData[ToBoxes[ x+y^2]], "Transparency" -> GrayLevel[1]]

" <img src=\"/webMathematica/MSP?MSPStoreID=FileNameBase_787204206&MSPStoreType=image/gif\" alt=\"Created by webMathematica\" /> "

これらのオプションのデフォルト値は変数$ExportImageOptionsを使って設定することができます.例えば,以下の設定では,すべての画像の白色が透過色となります.

$ExportImageOptions="Transparency" -> GrayLevel[1]

"Transparency" -> GrayLevel[1]

MSPFormat

これはMathematica からの結果をフォーマットする重要な方法のひとつです.出力に関するより一般的な説明は「評価のフォーマット」のセクションでご覧ください.数式やグラフィックスのフォーマットについては「数式やグラフィックスの表示」をご覧ください.

フォーマットされた結果は,Mathematica が出力用に提供する異なった形式のOutputFormInputFormStandardFormTraditionalFormMathMLForm等を取ることができます.これに加え,結果はHTML,画像形式,MathMLとしても返すことができます.Mathematica におけるフォーマットについてはMathematica ブックもご参照ください.MSPFormatの第2引数はMathematica のフォーマットタイプを選ぶシンボルで第3引数は結果に使われる実際のコンテントタイプを設定する文字列です.

Mathletの結果で文字列でないものはどれもMSPFormatでフォーマットされます.ご自分の出力を準備なさりたい場合は,ご自分で文字列を生成しMSPFormatは起動しないようにするとよいでしょう.

下記の例題が動くためにはMSPアプリケーションがロードされていなければなりません.

Needs["MSP`"]

HTMLのフォーマット

MSPFormatはHTMLの内容をOutputFormInputFormで返します.これらは文字列ベースのフォーマットタイプです.結果は正確に拡張されてWebページで使うことができる有効なHTMLになっています.結果は複数行の出力で列がきちんと揃うように固定幅のフォントで表示されなければなりません.

MSPFormat[ x +y^2, OutputForm]

"<p> <pre> \n&#160;&#160;&#160;&#160;&#160;2\nx&#160;+&#160;y\n</pre></p>  \n"

式は変数$PageWidthで設定されたページ幅でフォーマットされます.式をHTML形式でフォーマットするこの他の方法については「HTML関数」をご覧ください.

画像のフォーマット

MSPFormatStandardFormTraditionalForm用に画像の内容を使います.画像はサーバ上のファイルに作られ,保存されます.そして,サーバから画像を取り出すときに使うimgタグが結果として返されます.

MSPFormat[ x +y, StandardForm]

" <img src=\"/webMathematica/MSP?MSPStoreID=FileNameBase_874538807&MSPStoreType=image/gif\" alt=\"Created by webMathematica\" /> "

デフォルトでは画像はGIF形式になります.第3引数で別の形式を指定することもできます.ここではJPEG形式を使って画像を保存しています.

MSPFormat[ x +y, StandardForm, "JPEG"]

" <img src=\"/webMathematica/MSP?MSPStoreID=FileNameBase_1065528536&MSPStoreType=image/jpeg\" alt=\"Created by webMathematica\" /> "

少々変わっていますが,OutputFormのようなテキストベースのフォーマットタイプを画像として描画することもできます.

MSPFormat[ x +y, OutputForm, "GIF"]

" <img src=\"/webMathematica/MSP?MSPStoreID=FileNameBase_1061883558&MSPStoreType=image/gif\" alt=\"Created by webMathematica\" /> "

画像をタイプセットするときに使う幅は変数$TypesetImageWidthを使って設定します.

これとは別の画像生成の方法に関数MSPExportImageを使うものがあります.画像生成についてのさらに詳しい情報は,「数式やグラフィックスの表示」をご覧ください.

MathML

フォーマットがMathMLFormに設定されていたら,システムは式をMathMLにフォーマットします.

MSPFormat[ Sin[x]^2, MathMLForm]

"<math>\n<mrow>\n  <msup>\n    <mi>sin</mi>\n    <mn>2</mn>\n  </msup>\n  <mo>&af;</mo>\n  <mrow>\n    <mo>(</mo>\n    <mi>x</mi>\n    <mo>)</mo>\n  </mrow>\n</mrow>\n</math>"

さらに,RawMathMLのコンテントタイプを指定することもできます.これは式をStandardFormで描画するためのMathMLを得るのに便利です.この出力はMathMLの起動のために必要なプラグイン,アプレット,あるいは特別なブラウザへの参照を使わないという意味で「生」なのです.

MSPFormat[ Sin[x]^2, StandardForm, "RawMathML"]

"<math>\n<msup>\n  <mrow>\n    <mi>Sin</mi>\n    <mo>&af;</mo>\n    <mrow>\n      <mo>[</mo>\n      <mi>x</mi>\n      <mo>]</mo>\n    </mrow>\n  </mrow>\n  <mn>2</mn>\n</msup>\n</math>"

MathMLの使い方に関する詳細は「アプリケーション」の「MathML」のセクションをご覧ください.

MSPGetMessages

MSPGetMessagesは現行カーネルの評価によって生成されたメッセージを得る手段を提供します.この関数は文字列のリストを返します.各文字列にはフォーマットされたメッセージの内容が含まれます.

この関数は通常の評価では例証できません.むしろこれはサーバ実行の一部でなければなりません.例題Messages.jspMSPGetMessagesの使用方法が例証されています.

MSPGetPrintOutput

MSPGetPrintOutputは現行カーネルで処理されたすべてのプリント文の出力を返す手段を提供します.この関数は文字列を返します.各文字列にはメッセージの内容がフォーマットされて含まれています.

この関数は通常の評価では例証できません.むしろこれはサーバ実行の一部でなければなりません.例題Messages.jspMSPGetPrintOutputの使用方法が例証されています.

MSPGetUploadFile

これはマルチパート/フォームデータ送信を使ってクライアントからサーバへファイルをアップロードする,便利なユーティリティ関数を提供します.ファイルの内容はサーバ上の新しいファイルに保存され,このファイルの名前が返されます.サーバ上のファイルは,画像や一時的ファイルの消去と同じ要領でいずれ消去されます.MSPGetUploadFileの結果はサーバ上でのファイル名とクライアントでのもとのファイル名,それにコンテントタイプを示す規則のリストです.

この関数は,クライアントから送られた適切な情報を含む実際のHTTPトランザクションの一部でなければならないので,例証することはできません.次の例題は,この関数のMathematica プログラミングでの使い方のシミュレーションに過ぎません.例題セクションにはMSPGetUploadFileの使い方の例も含まれています.

Needs["MSP`"]

MSPGetUploadFile[]

{"FileName"  ->  "MSPStore2349287_0_1",  "OriginalFileName"->"C:\\last.dat",  "ContentType"->"text/plain"}

ファイル名は,規則とともに使う典型的なMathematicaコマンドで抽出することができます.

"FileName"/.%

MSPStore2349287_0_1

HTTPのヘッダに現れるパラメータはMSPGetUploadFileMSPGetUploadFileListを使った後で,$$変数で入手できます.その後,これは通常の方法で使えます.

MSPGetUploadFileでアップロードできる最大ファイルサイズは,デフォルトで4MBになっています.このサイズを変更したい場合はオプションSizeLimitを使ってください.

例外

MSPGetUploadFileは次の例外を投げることがあります.

MSPException["FileUploadError"]例えば,アップロードするファイルがひとつもなかったり,HTTPのヘッダが何らかの理由で正しい構造ではないような場合.

MSPGetUploadFileList

MSPGetUploadFileListMSPGetUploadFileと大変よく似ています.相違点はこちらの関数が複数のファイルでも使える点です.

この関数は,クライアントから送られた適切な情報を含む実際のHTTPトランザクションの一部でなければならないので,例証することはできません.次の例題は,この関数のMathematica プログラミングでの使い方のシミュレーションに過ぎません.

Needs["MSP`"]

MSPGetUploadFileList[]

{{"FileName"  ->  "MSPStore2349287_0_1",  "OriginalFileName"->"C:\\last1.dat",  "ContentType"->"text/plain"}, {"FileName"  ->  "MSPStore2349287_0_2",  "OriginalFileName"->"C:\\last2.dat",  "ContentType"->"text/plain"}}

HTTPのヘッダに現れるパラメータはMSPGetUploadFileMSPGetUploadFileListを使った後で,$$変数で入手できます.その後,これは通常の方法で使えます.

MSPGetUploadFileでアップロードできる最大ファイルサイズは,デフォルトで4MBになっています.このサイズを変更したい場合はオプションSizeLimitを使ってください.

例外

MSPGetUploadFileListは次の例外を投げることがあります.

MSPException["FileUploadError"] 例えば,アップロードするファイルがひとつもなかったり,HTTPのヘッダが何らかの理由で正しい構造ではないような場合.

MSPInclude

MSPIncludeを使うと,あるページに他のページを処理した結果を含めることができます.この関数はwebMathematica のJSPバージョンではサポートされていないので,これを使用することはあまりお勧めできません.jsp:includeを使うとこれと同じような機能が得られます.

例外

MSPIncludeは次の例外を投げることがあります.

MSPException["MSPInclude"] 関数がJSPの内部から呼ばれた場合.

MSPLive3D

MSPLive3DLiveGraphics3Dグラフィックスアプレットを使う便利な方法です.このアプレットはMathematica の3Dグラフィックスを表示し,インタラクティブな回転やサイズ調整等の機能をサポートします.詳しくは「LiveGraphics3D」のセクションをご覧ください.

Needs["MSP`"]

MSPLive3Dの引数はPlot3Dコマンドのように,評価すると3Dのグラフィックスオブジェクトになるものでなければなりません.

MSPLive3D[ Graphics3D[ Line[ {{0, 0, 0}, {1, 1, 1}}]]]

"<applet archive=\"/webMathematica/Resources/applets/live.jar\" code=\"Live.class\" \nwidth=\"400\" height=\"400\" align=\"top\">\n<param name=\"input\" value= \"Graphics3D[Line[{{0.,  0.,  0.},  {1.,  1.,  1.}}],  {}]\n\"/>\n</applet>\n"

MSPPageDirectory

MSPPageDirectoryは現行ページが処理されているディレクトリへの完全パスを与えます.

Needs["MSP`"]

MSPPageDirectory[]

"C:\\Program Files\\jakarta-tomcat\\webapps\\webMathematica\\Examples"

MSPPageDirectoryは,現行スクリプトと同じディレクトリ内にあるデータファイルのロードに使うことができます.スクリプトディレクトリ内のファイルを見付けるということは,そのファイルがHTTPのリクエストにビジブルになることを意味することもあるのでご注意ください.データファイルをロードするMSPPageDirectoryの使い方は「ファイルのI/O」で説明してあります.

MSPPageOptions

MSPPageOptionsは現行ページに関する大域オプションを設定します.ContentTypeオプションは返されるコンテントタイプを設定します.デフォルトはtext/htmlです.MinimumVersionオプションはページに使うwebMathematica テクノロジーのバージョンの下限を設定します.

ContentType

この例では,ContentTypeオプションがMathMLを返すように設定されています.ブラウザの設定が正しければ,これで適切なMathMLのヘルパーアプリケーションが起動されます.

<msp:evaluate>
   MSPPageOptions[ ContentType -> "text/mathml"]
</msp:evaluate>

<msp:evaluate>
   MSPFormat[ Integrate[ 1/(1-x^3), x], StandardForm, RawMathML]
</msp:evaluate>

ContentTypeオプションはMSPReturnと同じような機能を提供します.違いは,こちらがページ全体を返すのに対し,MSPReturnは第1引数だけを返す点です.これについては「一般的な内容を返す」のセクションもご覧ください.

MinimumVersion

この例では,MinimumVersionオプションがページの起動にwebMathematica バージョン 2.0以上を使うように指定しています.これ以外が使われた場合はMSPExceptionが投げられます.

<msp:evaluate>
   MSPPageOptions[ MinimumVersion -> 2.0]
</msp:evaluate>

このオプションはwebMathematica の将来的なバージョンで使われることを意図しています.

MSPReturn

MSPReturnはページがHTMLの結果ではないものを返すことを許可するコマンドです.例えば,ページは直接Mathematica のノートブックを返すことができます.

<msp:evaluate>
   MSPReturn[ Notebook[ Cell[ "Hello", "Title"]], "application/mathematica"]
</msp:evaluate>

3つの引数を持つMSPReturnは,応答に関連するファイル名を設定するのに便利です.

<msp:evaluate>
   MSPReturn[ Notebook[ Cell[ "Hello", "Title"]],
         "application/mathematica", "mynotebook.nb"]
</msp:evaluate>

この場合,クライアントはmynotebook.nbというようなファイル名を使う可能性があります.Internet Explorerのように,ファイル名のヘッダを設定すると2つのOpenあるいはSaveダイアログボックスを開いてしまうクライアントもあります.この件に関しては「一般的な内容を返す」で詳しく説明してあります.

MSPRootDirectory

MSPRootDirectoryは,webMathematica Webアプリケーションのルートディレクトリの完全パスを返します.

Needs["MSP`"]

Integrate[1];

MSPRootDirectory[]

"C:\\Program Files\\jakarta-tomcat\\webapps\\webMathematica"

MSPSetDefault

これは変数のデフォルト値を設定するユーティリティ関数です.

Needs["MSP`"]

ここでは$$varに値があるので変更は加えられません.

$$var="5.6";MSPSetDefault[ $$var, "foo"];$$var

"5.6"

$$varに値がなければMSPSetDefaultが値を設定します.

Clear[$$var];MSPSetDefault[ $$var, "foo"];$$var

"foo"

例外

MSPSetDefaultは以下の例外を投げることがあります.

MSPException["ParseError"] Mathematica が値を解釈できない場合.

MSPException["SecurityError"] 値がセキュリティテストを通らない場合.

MSPException["ValueError"] 値が文字列ではない場合.これはページの作者によるプログラム上のエラーを示唆しています.

MSPException["VariableError"] 変数がMathematica のシンボルではない場合.これはページの作者によるプログラム上のエラーを示唆しています.

MSPSessionVariable

これは変数がセッション変数であると宣言するスコープコンストラクトです.セッション変数の値はサーブレットコンテナが管理するセッションに保存されます.このようなセッションは最新のWebサーバ/ブラウザの標準機能で,サーバの状態を保持するのに使われます.つまり,値がサーバへのひとつのコールから次のコールまで残ります.変数のセッションスコープの使い方はに説明しました.この例はSession.jspをご覧ください.

MSPShow

MSPShowMathematica からのグラフィカルな結果をHTMLページに取り込む主な方法です.数式やグラフィックスのフォーマットに関しては「数式やグラフィックスの表示」に詳しい説明があります.

Needs["MSP`"]

MSPShowの引数は,Plotコマンドのように評価するとグラフィックスオブジェクトになるものでも構いません.この段階では,DisplayFunctionが実際のグラフィカルな出力を隠すように修正されている点にご注意ください.

MSPShow[ Plot[ Sin[x], {x, 0, 2}]]

" <img src=\"/webMathematica/MSP?MSPStoreID=FileNameBase_448181998&MSPStoreType=image/gif\" alt=\"Created by webMathematica\" /> "

MSPShow[ Graphics[ Line[ {{0, 0}, {1, 1}}]]]

" <img src=\"/webMathematica/MSP?MSPStoreID=FileNameBase_490423745&MSPStoreType=image/gif\" alt=\"Created by webMathematica\" /> "

MSPExportImageは画像出力を生成するこの他の方法を提供します.画像生成に関しての詳しい情報は「数式やグラフィックスの表示」でもご覧いただけます.「 SVG」を使うと,画像を含まないグラフィックスを描画することができます.

MSPShowAnimation

MSPShowAnimationはGIF画像のアニメーションを生成する便利な方法です.引数は評価するとグラフィックスオブジェクトのリストになるものでなければなりません. 数式やグラフィックスのフォーマットに関しては「数式やグラフィックスの表示」に詳しい説明があります.

Needs["MSP`"]

MSPShowAnimation[ Table[ Plot[Sin[x+i], {x, 0, 4Pi}], {i, 0., 2Pi-Pi/4, Pi/4}]]

" <img src=\"/webMathematica/MSP?MSPStoreID=FileNameBase_726239281&MSPStoreType=image/gif\" alt=\"Created by webMathematica\" /> "

GIFアニメーションの生成には時間がかかるので,KernelTimeLimitパラメータを修正する必要がある場合もあります.

MSPShowAnimationMathematicaExportコマンドを使います.このコマンドはたくさんのオプションで変更を加えることができます.これについてはオンラインヘルプでExportAdditional Information(追加情報)をご覧ください.変数$ShowAnimationOptionsMSPShowAnimationのオプションを保持します.例えば次の例ではMSPShowAnimationが各フレームを2秒で巡回するアニメーションを作成します.

$ShowAnimationOptions={"Loop" -> True, "AnimationDisplayTime" -> 2}

{"Loop" -> True, "AnimationDisplayTime" -> 2}

SVG」はグラフィックスをアニメーションにするこの他の方法を提供します.

MSPToExpression

MSPToExpressionToExpressionのwebMathematica バージョンで,文字列をMathematicaの入力にする機能を提供します.また,これに加えていくつかの付加的な機能も提供します.中でも最も重要な機能は入力のセキュリティチェックを行うことでしょう.「セキュリティ」のセクションで説明したようにwebMathematicaには完全に設定可能なセキュリティシステムがあります.これはセキュリティを危険に晒すようなコマンドを阻止するためのものです.引数が解釈できなかったり文字列でなかったりするとMSPToExpressionは例外を投げますが,この点もToExpressionとの相違点です.

MSPToExpressionはより厳重なセキュリティを提供するので,コードでは常にMSPToExpressionを使ってToExpressionは使わないでください.

Needs["MSP`"]

SetSecurity[];

変数$$varに値"5+7"が割り当てられます.値が文字列である点にご注目ください.

$$var="5+7";

MSPToExpressionを評価すると$$varの値が解釈されて返されます.

MSPToExpression[ $$var]

12

変数に値がないとMSPExceptionが投げられます.

Clear[ $$var];MSPToExpression[ $$var]

Hold[Throw[$$var, MSPException["NoValueError"]]]

ToExpressionのようにMSPToExpressionも解釈用にフォーマットタイプを取ることができます.

$$var="sin(x)";MSPToExpression[ $$var, TraditionalForm]

Sin[x]

入力値が解釈できないとMSPExceptionが投げられます.

$$var="Sin[";Catch[ MSPToExpression[ $$var], _MSPException, List]

{{$$var, "Sin["}, MSPException["ParseError"]}

入力値がセキュリティテストを通らないと,MSPExceptionが投げられます.

$$var="ReadList[\"/etc/passwd\"]";Catch[ MSPToExpression[ $$var], _MSPException, List]

{{$$var, "ReadList[\"/etc/passwd\"]"}, MSPException["SecurityError"]}

入力はMathMLでも与えることができます.

$$e = "<math><msqrt><mfrac><mi>x</mi><mi>y</mi></mfrac></msqrt></math>";

MSPToExpression[ $$e]

xy

MSPToExpressionは入力から計算される文字列にも使うことができます.

$$e="a, b, c";MSPToExpression["{"<>$$e<>"}"]

{a, b, c}

例外

MSPToExpressionは次の例外を投げることがあります.

MSPException["NoValueError"] 変数に値がない場合.これはページの作者によるプログラム上のエラーを示唆しています.

MSPException["ParseError"] Mathematica が値を解釈できない場合.

MSPException["SecurityError"] 値がセキュリティテストを通らない場合.

MSPException["ValueError"] 値が文字列ではない場合.これはページの作者によるプログラム上のエラーを示唆しています.

MSPException["VariableError"] 変数がMathematica のシンボルではない場合.これはページの作者によるプログラム上のエラーを示唆しています.

MSPURLStore

MSPURLStoreはフォーマットされたデータの文字列をMSPサーブレットに保存し,データを取り出すことのできるURLを返します.これは画像を保存するメカニズムを拡張したものです.クライアントのプラグインやアプレットからの入力を保持するのにも使えます.また,imgタグにフォーマットすることもできます.

Needs["MSP`"]

m=DisplayString[Graphics[Line[ {{0, 0}, {1, 1}}]], "JPEG"];

MSPURLStore[m, "image/jpeg"]

"/webMathematica/MSP?MSPStoreID=FileNameBase_97360396&MSPStoreType=image/jpeg"

結果はMSPサーブレットを参照するURLとして使える文字列で,記憶装置からデータを取り出すのに使えます.

MSPURLStoreの第3引数はURL中のファイル名を設定するために使えます.クライアントが使うヘルパーアプリケーションを選ぶ等,この機能にはさまざまな使い方があります.実際にこの名前のファイルが作られるわけではなく,以下のように返されるURLに名前が置かれるだけなのでご注意ください.

MSPURLStore[m, "image/jpeg", "file.gif"]

"/webMathematica/MSP/file.gif?MSPStoreID=FileNameBase_846174849&MSPStoreType=image/jpeg"

これについては「一般的な内容を返す」で詳しく説明してあります.MSPURLStoreの結果は「MSP関数で画像を返す」で説明されているように他のフォーマッティング関数に埋め込むことができます.

MSPValue

これは変数の値を抽出するのに役立つユーティリティ関数です.

Needs["MSP`"]

変数$$exprの値が返されます.

$$expr=56;MSPValue[ $$expr]

56

$$exprに値がない場合はヌル文字列が返されます.

Clear[$$expr];MSPValue[ $$expr]

""

ここではデフォルト値が返されています.

Clear[$$expr];MSPValue[ $$expr, "x+y"]

"x+y"

例外

MSPValueは以下の例外を投げることがあります.

MSPException["ValueError"] 値が文字列ではない場合.これはページの作者によるプログラム上のエラーを示唆しています.

MSPException["VariableError"] 変数がMathematica のシンボルではない場合.これはページの作者によるプログラム上のエラーを示唆しています.

MSPValueQ

これは変数に値があるかどうかをテストするユーティリティ関数です.

Needs["MSP`"]

変数$$exprには値があるので結果はTrueになります.

$$expr=56;MSPValueQ[ $$expr]

True

この場合は$$exprには値がないので,結果はFalseになります.

Clear[$$expr];MSPValueQ[ $$expr]

False

Trueを返すためには,すべての変数にMSPValueQの値がなければなりません.

$$expr=56;Clear[ $$var];MSPValueQ[ $$expr, $$var]

False

$ExportImageOptions

$ExportImageOptionsMSPExportImageが使われているとき画像を生成するためのオプションを保持します.これにはMathematicaExportコマンドが使われます.使用できるオプションの説明はオンラインヘルプでExportのAdditional Information(追加情報)をご覧ください.以下の例では白が透過色になるようにオプションが設定されています.これで画像の背景が透過色になります.$ExportImageOptionsのデフォルト値は{}です.

<msp:evaluate>
   Block[{MSP`Utility`ImageQuality=2,
            $ExportImageOptions={"Transparency" -> GrayLevel[1]}},
      MSPExportImage[ Plot[Sin[x], {x, 0, 2Pi}, Background->GrayLevel[1]]]
      ]
</msp:evaluate>

画像生成については「数式やグラフィックスの表示」もご覧ください.

$MSPFormatType

$MSPFormatTypeMSPFormatで使われるデフォルトのフォーマットタイプです.デフォルト値はOutputFormです.

$PageWidth

式は変数$PageWidthで指定されたページ幅でフォーマットされます.デフォルト値は78です.

$PathInfo

$PathInfoはリクエストのパス情報設定を保持するMathematica の変数です.

$QueryString

$QueryStringはリクエストの照会文字列設定を保持するMathematica の変数です.

$ScriptName

$ScriptNameはトップレベルのスクリプト名を保持するMathematica の変数です.これはURLのパラメータとしても与えられます.

$ServletConfig

$ServletConfigはサーブレットのトランザクションのServletConfigオブジェクトへの参照を保持します.「サーバAPI」に関するセクションに説明されているように,J/Link でこのオブジェクトを呼ぶことも可能です.

$ServletRequest

ServletRequestはサーブレットのトランザクションのHTTPServletRequestオブジェクトへの参照を保持します.「サーバAPI」のセクションに説明されているように,J/Link でこのオブジェクトを呼ぶことも可能です.

$ServletResponse

$ServletResponseはサーブレットのトランザクションのHTTPServletResponseオブジェクトへの参照を保持します.「サーバAPI」のセクションに説明されているように,J/Link でこのオブジェクトを呼ぶことも可能です.

$ShowAnimationOptions

$ShowAnimationOptionsMSPShowAnimationを使ってGIFアニメーションを生成するときのオプションを保持します.このオプションはMathematicaExportコマンドに渡されます.オプションの説明はオンラインヘルプを使い,ExportAdditional Information(追加情報)でご覧ください.以下の例ではアニメーションが各フレーム2秒で巡回するように設定されています.計算終了後,Blockを使ってオプション設定を復元します.$ShowAnimationOptionsのデフォルト値は{Loop -> True}です.

<msp:evaluate>
   Block[{$ShowAnimationOptions=
         {"Loop" -> True, "AnimationDisplayTime" -> 2}},
      MSPShowAnimation[ Table[Plot[Sin[x+i], {x, 0, 2Pi}],
            {i, 0, 2Pi-Pi/$$n, Pi/10}]]
      ]
</msp:evaluate>

$TypesetImageWidth

$TypesetImageWidthはタイプセットされた式の画像の幅をピクセルで設定します.デフォルト値は800です.

$WebApplication

$WebApplicationはwebMathematica がインストールされているWebアプリケーションの名前を与えます.通常これは「/webMathematica」ですが,異なる場合もあります.この定義を使ってポータブルなコードを書くことができます.この方が,あるWebアプリケーションから別のWebアプリケーションへ移動するよりも簡単です.

Needs["MSP`"];

$WebApplication

"/webMathematica"

$WebApplicationを使って,画像やアプレットのようなリソースをwebMathematica Webアプリケーションのルートからロードすることができます.$WebApplicationは,例題TextApplet.jspのアプレットをロードするのに使われています.