DatabaseLink チュートリアル

コマンドキャッシュ

以下の例ではプライベートデータベースにMathematica コマンドを保管し,JavaとMathematica からデータをクエリする方法について示します.
このセクションの例を実際に試してみて,記載の通りに動作しなかった場合は,データベースの例の使用で述べているようにDatabaseExamples`パッケージを使ってデータベースをもとの状態に戻す必要があるかもしれません.
例題のコードはDatabaseLinkExamplesサブディレクトリからロードします.
In[1]:=
Click for copyable input
コマンドキャッシュを使うと,Mathematica 式をタイプセットされたボックス式としてデータベースに保管することができます.データベースにボックスを保管するときはStoreCommandを使います.
In[2]:=
Click for copyable input
Out[2]=
データベースからデータを取り出すときはCommandCache[]を使います.
In[3]:=
Click for copyable input
Out[3]=
各コマンドのいくつかの属性はデータベースに保管されます.各コマンドには,保管するときに生成されたIDが与えられます.式は完全形FullFormでフォーマットされた文字列として保管されます.これにより,Mathematica 内で式を再利用することが可能です.また,データが保管された時間と,式の画像も保存されます.GetCommandAttributesを使うと属性名が得られ,これらの属性名は返されるデータをフィルタするのに使えます.
In[4]:=
Click for copyable input
Out[4]=
In[5]:=
Click for copyable input
Out[5]=
次の例ではPowerを含んでいるすべての結果を求めます.
In[6]:=
Click for copyable input
Out[6]=
In[7]:=
Click for copyable input
Out[7]=
In[8]:=
Click for copyable input
Out[8]=
コマンドはIDを使って取り出すこともできます.
In[9]:=
Click for copyable input
Out[9]=
このパッケージの別の機能に,データを見るためのJava GUIがあります.これにはデータを管理したり,ノートブックにデータをペーストしたりする機能があります.
In[10]:=
Click for copyable input
Out[10]=
データベースに新しいコマンドが追加されると,GUIは自動的に更新されます.
In[11]:=
Click for copyable input
同様に,コマンドが削除された場合もGUIは自動的に更新されます.ClearCommandCacheはコマンドキャッシュにあるデータをすべて削除するときに使います.
In[12]:=
Click for copyable input
Out[12]=

グラフデータベース

この例ではMathematica で生成されたマテリアルを保管するデータベースについて示します.そのマテリアルとして,ここではグラフとグラフの数々の特性について取り上げます.グラフの数が特別多くなくても,これらのグラフの特性を生成するには非常に時間がかかります.このことから,計算結果の永続的な保管のために,データベースがいかに価値のあるものであるかが分かります.

グラフデータベースの使用

グラフデータベースを使用するには,パッケージをロードする必要があります.
In[1]:=
Click for copyable input
最初にパッケージを使うときには,RestoreGraphDatabaseコマンドを実行する必要があります.このセクションの例を実際に試してみて,記載の通りに動作しなかった場合は,次のコマンドも実行してください.これは実行に時間がかかることがありますが,実行する必要があるのは1度だけです.
Click for copyable input
データベースに保管されているグラフの特性は,GraphProperties関数で得られます.
In[2]:=
Click for copyable input
Out[2]=
これで,データベースからクエリが作成できます.これはGraphQueryコマンドを使って行います.以下を実行すると,すべての完全な形のグラフが返されます.
グラフに使われた形式はCombinatorica パッケージで提供されているものです.これはグラフの図を描く他に,Mathematica でさらに計算に使用できる記号オブジェクトも返します.
次の式は正則グラフの最初の3つを返します.
次はハミルトングラフを求め,その直径,周囲の長さ,辺情報を返します.前述の例と同じように,グラフも描かれます.
この例題パッケージの重要な点のひとつに,一般的なデータベースコマンドではなく,グラフを求めるための特有のコマンドを示しているということが挙げられます.データベースのインタラクションの詳細は,実装したものの中にあります.

グラフデータベースパッケージ

グラフデータベースパッケージには3つの関数があります.
GraphProperties[]データベース中のすべてのグラフ特性をリストする
GraphQuery[{props}]データベース中でprops に合致するグラフを検索する
RestoreGraphDatabase[]データベース中のデータをもとの状態に戻す(時間がかかる可能性あり

グラフデータベースパッケージの関数

RestoreDatabase関数はデータベース中のすべてのデータを計算し直すため,計算し終えるのに時間がかかることがあります.一般に,これはデータベースを破壊してしまったとき以外には実行しない方がよいでしょう.