title: CHANGES

CHANGES
========================================

(2008,02/19)アップデートしました。
ちゃんと検証してないけどAcerola3Dのサウンドを
WindowsのJavaWebStartでも有効になるように
改良した．main関数の中でjava.awt.EventQueue.invokeLater()
という関数を使用している．それと，Linuxの
JavaWebStartでセキュリティ例外が発生するのを
System.setSecurityManager(null);でむりやり対処．

----------

(2008,02/04)アップデートしました。
smailビルトインを作成しました。SMTPでメールを
送信します。smail('localhost','from@mail.org','to@mail.org','subject','body')
という感じで使います。詳しくはソースを。
それと、タイマーのインターバルをセット、ゲットする
APIを追加。さらにlongとXMLSchema#dateTimeの変換を行う
long2datetimeとdatetime2longビルトインを追加．

----------

(2007,10/17)アップデートしました。
ウェブサービスのスキーマネームスペースを
「http://x314.do-johodai.ac.jp/sw_ws/xsd」
に変更しました。JenaLMSとあわせるためです。

それと、JenaEngineにリストを検索して取り出す
ためのgetList(String query)というメソッドを
作りました。使ってみて改善する必要があると思う。

----------

(2007,08/27)アップデートしました。
JenaEngineにSPARQLの検索結果をStringの2次元
配列で返すメソッドを追加しました．

----------

(2007,08/21)アップデートしました。
JenaEngineにdestroyメソッドを追加しました．
これは，JenaEngineをnewした時に作成される
データベースコネクションやスレッドを破棄する
ためのメソッドです．

----------

(2007,08/09)アップデートしました。
JenaEngineにdeleteAndInsertSPARQLメソッドを
追加して、RDFモデルの更新(update)を可能にしました。
非同期にも対応しています。これもJenaCheckでは特に約に
立っていませんがJenaLMSなどのほうで使用する機能です。

----------

(2007,06/21)アップデートしました。
JenaEngineのコンストラクタを一つ増やして，こちらの
コンストラクタを使うと，リレーショナルデータベースを
使ったデータの永続化が可能になります．でも，まだ全然
テストしてません．

今のところ，この機能はJenaCheck自体では使用する予定
はありません．JenaEngineを使う他のソフト(具体的には
JenaLMSですが)で利用することを考えてます．

----------

(2007,06/15)アップデートしました。
pelletのバージョンを1.3から1.5-RC1に，axis2のバージョンを
1.0から1.2に更新しました．仕様の変更はありません．
今のところ特に問題ないように見えます．

----------

(2007,06/14)アップデートしました。
a3printを、printと同じように複数の引数を受け付けるように
しました。文字列の間に変数を挟んで表示できるようになるので、
stringFormatビルトインを使わないであるていどのことが
できるようになるはずです。

----------

(2007,06/03)アップデートしました。
state_setとstate_get,state_printビルトインを作成しました。
状態を保存しておくための独立した変数を用意するための
仕組みです。Jenaの真理維持システムに感知されない記憶
領域なのでエージェントを作るには便利になると思うのですが、
論理的には、どんな破綻があるのか予想できません。
でも、とりあえずこれから使って実験していきます。

----------

(2007,02/20)アップデートしました．
list2stringビルトインが手抜きで入れ子のリストを
処理できなかったので直しました．

----------

(2007,02/06)アップデートしました．
Reasonerの推論モードを変更できるように
しました．JenaEngineに.setReasonerMode(String)
を追加して，JenaCheckのGUIにはJComboBoxを
追加してます．

----------

(2006,12/19)アップデートしました．
stringConcat,stringFormat,int2string
ビルトインを追加しました。

----------

(2006,11/23-2)アップデートしました．
FSMの実装で，仮定していない入力が入ってきた時，
それを無視する処理を付け加えました．

----------

(2006,11/23)アップデートしました．
三組入力の仕様をすこし変更しました。変更後は以下の形式で
入力が保存されます。

    @prefix : <http://input.org/namespace#> .
    [] :input '文字列' .

主語が空白ノードで、述語のpが取れました。これを使って
有限状態機械の実装を作りました。docs/tutorial/fsm
にドキュメントを書いてゆく予定です。

----------

(2006,11/17)アップデートしました．
文字列を入力するための「三組入力」というTextFieldを
JenaFrameとA3ビルトインのウィンドウに追加しました。
この入力欄は標準入力と異なり、入力された文字を

    @prefix : <http://input.org/namespace#> .
    :input :inputp '文字列' .

という感じで、timerと同じような形で三つ組で与えるように
なってます。これを使えば、ルールの実行が入力待ちでブロック
されることがなくなります。それと、ルールのレベルで入力の
ためのループを作る必要がなくなり、removeなどの副作用で
悩む必要が減るのではないかと期待してます。この変更はGUI
だけでなく、JenaEngineのAPI(同期・非同期)のレベルでも
利用できます。

----------

(2006,11/14)アップデートしました．
文字列の先頭や交尾を判定するための
startsWith,endsWith,notStartsWith,notEndsWith
ビルトインを追加しました。

----------

(2006,11/10)アップデートしました．
send_n3ビルトインで、主語が空白ノードの時に
送信が失敗するバグを直した。(述語が空白ノードに
なることはあるのだろうか？あったらエラーが出る。)

----------

(2006,10/28)アップデートしました．
ウェブサービスのポート番号を変更できるようにしました。
起動時にウェブサービスがスタートしないように変更しました。
かわりに、メニューのファイルからウェブサービスの起動と
停止ができるようにしました。
send_n3ビルトインで、リテラルが送れなかったバグを直し
ました。

----------

(2006,10/26)アップデートしました．
タイマーの働きを改善しました．
* long形式で時間が記録されるようにした．
* 古い時間を削除する時余計な推論がおこらない
  ようにした．

----------

(2006,10/25)アップデートしました．
print_listビルトインを追加しました。
リストを使ったプログラムを作成する時に、
そのリストを標準出力に出力して確認するのに
便利だと思います。

----------

(2006,10/23)アップデートしました．
詳細な形態素解析情報を得るためのkeitaisokaiseki
ビルトインを追加しました。形態素解析ビルトインの簡単な
使用方法を説明したチュートリアルを作成しました。
空白ノードの処理を適切に直しました。

----------

(2006,10/21)アップデートしました．
形態素解析のビルトインを追加しました(keitaiso,
keitaiso_init)。リスト処理のためのビルトインを
追加しました(list2string,list_append)。
リスト処理のプログラムのバグを改善しました
(空白ノードの名前の一意性。でも完全ではない)。
ユーザインタフェースも広く使えるよう変更しました。

----------

(2006,10/20)アップデートしました．
JenaEngineにsaveRDFAsN3メソッドを追加しました。
Trace機能をリファクタリングしましたが、テストは
まだしてません。

----------

(2006,10/20)アップデートしました．
リスト処理で使うlistとconsビルトインを追加しました。

----------

(2006,10/18)アップデートしました．
JenaEngineにdeleteNotation3,insertSPARQLという
メソッドを追加しました。それに対応してJenaCheckの
インタフェースも整理しました。

----------

(2006,10/17)アップデートしました．
ルールがセットできなくなっていたバグを直しました。
rand_intビルトインとstring2intビルトインを
追加しました。

----------

(2006,10/15-2)アップデートしました．
OWL-DLのReasonerは手動で有効にするように変更しました。
RDFモデルを削除するための機能を追加しました。削除する内容は
はSPARQLを用いて指定するようにしたので、SPARQLの入力欄の
下に「RDFを削除」というボタンを付けました。JenaEngineの
APIからも使用できます。

----------

(2006,10/15)アップデートしました．
SPARQLのSELECTクエリの表示に、プレフィックスが使用
されるようにしました。TextAreaのフォントをためしに、
MonoSpacedにしてみました。

----------

(2006,10/09)アップデートしました．
ウェブサービスの所(jp.ac.do_johodai.j314.sw.wsパッケージ)を
整理しました。具体的にはRPCMessageReceiverを使うようにして表面
的にはOMElementを使わなくしたことと、SimpleHttpClientをやめて
SimpleHTTPClientを使うようにしてみた。本質的にはあまりかわりない。

----------

(2006,10/04)アップデートしました．
[Pellet](http://www.mindswap.org/2003/pellet/)という
Reasonerを導入してOWL-DLに対応しました。重くはなると思いますが、
JenaCheckの用途からして多少重いのは問題ないかと思って導入しました。
どのような副作用があるか検証が必要です。バグ報告おまちしてます。

----------

(2006,09/29)アップデートしました．
「RDFをN3で保存」で保存した時にちゃんとUTF-8で保存
されるようにしました．「ルールを保存」のメニューを
加えました．JenaEngineの使い方の例を示した
JenaEngine.mmをチュートリアルに加えました．

----------

(2006,09/26)アップデートしました．
ファイルメニューに「RDFをN3で保存」を加えました。
ドキュメントのtutorial1.mmの叔父のルールが間違って
いたので直しました。

----------

(2006,09/24)アップデートしました．
Acerola3Dのビルトイン、昨日のa3new,a3setVisible,a3change
に続いて，a3print,a3yesno,a3readを加えました．これらのビルトイン
の簡単な説明がjavadocの中に埋め込まれるようにしました。
エラーチェックなどは後まわしです。

----------

(2006,09/23)アップデートしました．
Acerola3Dのビルトイン、a3new,a3setVisible,a3change
を加えました。まだエラーチェックなどはかなりあまいです。

----------

(2006,09/22-2)アップデートしました．
JenaEngineのロックを推論エンジンとリクエストキューの二つに
分離しました。これにより、標準入力が入力待ち状態の時(つまり
推論実行中で中断している状態)に，他の推論が始まってしまうような
ボタンを押した時のデッドロックを回避しました。

また、トレース情報が表示されないことがあるバグがありました。
これは、標準出力をJTextAreaにリダイレクトするタイミングを
Jena関係のオブジェクトをインスタンスする前にしたので、
改善されたと思います。そのかわり、ウェブサービスに関する警告
が起動時に表示されるようになりました。

それと，メニューバーの「ファイル」に入っている
「RDFをファイルからロード」と「ルールをファイルからロード」
の二つについても，ロード後に前向き推論が実行されるので，
ここも非同期呼出しを使うように変更しました。

----------

(2006,09/22:追記)アップデートしました．
前向き推論時のreadのバグをいくつか修正しました．

1. 前向き推論でreadが呼び出された時に実行されるメソッドを書くのを
   忘れていたので追加しました;)
2. また，ルールをセットする時にも，自動的に前向き推論が実行される
   ことを見逃しており，デッドロックが起っていました，この部分も
   非同期呼び出しでロックされないよう変更しました．

また，標準入力が入力待ち状態の時は，標準入力の入力欄が赤い色で強調
表示されるように工夫しました．

それと，Notation3をJTextAreaから入力した場合のBaseURIを，ちょっと
修正しました．この修正により前の状態よりはましになりましたが，
これについてはルールとSPARQLと合せてもう一度良く考えみます．
とりあえずBaseURIにたよらない表記を使って下さい．

----------

(2006,09/18:追記)アップデートしました．
JavaWebStartの形で公開することにしました．
axis2も含めてウェブサービスを
起動させています(http://localhost:8080/axis2/services/)．
新しくsend_n3ビルトインを作成したので，JenaCheck同士で
通信が行えるようになりました．これで，ほぼ技術的な困難は
克服したと思います．まだまだセキュリティとかエラーのチェック
とか改善すべき点はありますが，便利なbuiltinを作っていく方を
優先して開発していきます．

Java3D関係もインストールされるようになっていますが，
これはbuiltin経由でAcerola3Dを操作できるようにするための
準備です．

----------

(2006,09/16:追記)アップデートしました．
Jenaの推論エンジンをスレッドセーフにして非同期呼出しに
対応させました．よってreadビルトインが正常に動かすことが
できるようになりました．また，文字化けも解消していると
思います．さらにタイマー機能を付けました．これを利用すると
非常に自律的なエージェントを作成できるはずです．
使い方は，のちのち…．

----------

(2006,09/13:追記)アップデートしました．
前のバージョンではSPARQLのSELECTにしか対応して
いなかったのを忘れてました．ASK,CONSTRUCT,DESCRIPTION
も使えるようにしました．bindビルトインも追加しました．
readビルトインも追加したのですが，こちらはまだ
完全には動作しません．






















