例
コマンドキャッシュ
以下の例ではプライベートデータベースに Mathematica コマンドを保管し,Javaと Mathematica からデータをクエリする方法について示す.
このセクションの例を実際に試してみて,記載の通りに動作しなかった場合は,「データベースの例の使用」で述べているように
パッケージを使ってデータベースをもとの状態に戻す必要があるかもしれない.
例題のコードは DatabaseLink のExamplesサブディレクトリからロードする.
コマンドキャッシュを使うと,Mathematica 式をタイプセットされたボックス式としてデータベースに保管することができる.データベースにボックスを保管するときは
を使う.
| Out[2]= |  |
データベースからデータを取り出すときは
を使う.
| Out[3]= |  |
各コマンドのいくつかの属性はデータベースに保管される.各コマンドには,保管するときに生成されたIDが与えられる.式は完全形FullFormでフォーマットされた文字列として保管される.これにより,Mathematica 内で式を再利用することが可能である.また,データが保管された時間と,式の画像も保存される.
を使うと属性名が得られ,これらの属性名は返されるデータをフィルタするのに使える.
| Out[4]= |  |
| Out[5]= |  |
次の例ではPowerを含んでいるすべての結果を求める.
| Out[6]= |  |
| Out[7]= |  |
| Out[8]= |  |
コマンドはIDを使って取り出すこともできる.
| Out[9]= |  |
このパッケージの別の機能に,データを見るためのJava GUIがある.これにはデータを管理したり,ノートブックにデータをペーストしたりする機能がある.
| Out[10]= |  |
データベースに新しいコマンドが追加されると,GUIは自動的に更新される.
同様に,コマンドが削除された場合もGUIは自動的に更新される.
はコマンドキャッシュにあるデータをすべて削除するときに使う.
| Out[12]= |  |
グラフデータベース
この例では Mathematica で生成されたマテリアルを保管するデータベースについて示す.そのマテリアルとして,ここではグラフとグラフの数々の特性について取り上げる.グラフの数が特別多くなくても,これらのグラフの特性を生成するには非常に時間がかかる.このことから,計算結果の永続的な保管のために,データベースがいかに価値のあるものであるかが分かる.
グラフデータベースの使用
グラフデータベースを使用するには,パッケージをロードする必要がある.
最初にパッケージを使うときには,
コマンドを実行する必要がある.このセクションの例を実際に試してみて,記載の通りに動作しなかった場合は,次のコマンドも実行する.実行に時間がかかることがあるが,実行する必要があるのは1度だけである.
データベースに保管されているグラフの特性は,
関数で得られる.
| Out[2]= |  |
これで,データベースからクエリが作成できる.これは
コマンドを使って行う.以下を実行すると,すべての完全な形のグラフが返される.
| Out[3]= |  |
グラフに使われた形式は Combinatorica パッケージで提供されているものである.これはグラフの図を描く他に,Mathematica でさらに計算に使用できる記号オブジェクトも返す.
次の式は正則グラフの最初の3つを返す.
| Out[4]= |  |
次はハミルトングラフを求め,その直径,周囲の長さ,辺情報を返す.前述の例と同じように,グラフも描かれる.
| Out[5]= |  |
この例題パッケージの重要な点の一つに,一般的なデータベースコマンドではなく,グラフを求めるための特有のコマンドを示しているということが挙げられる.データベースのインタラクションの詳細は,実装したものの中にある.
グラフデータベースパッケージ
グラフデータベースパッケージには3つの関数がある.
| GraphProperties[] | データベース中のすべてのグラフ特性をリストする |
| GraphQuery[{props}] | データベース中で props に合致するグラフを検索する |
| RestoreGraphDatabase[] | データベース中のデータをもとの状態に戻す(時間がかかる可能性がある) |
グラフデータベースパッケージの関数
関数はデータベース中のすべてのデータを計算し直すため,計算し終えるのに時間がかかることがある.一般に,これはデータベースを破壊してしまったとき以外には実行しない方がよいだろう.