|
OKS 4.0.0 Release Note
このリリースは、大規模な改訂版です。主要な改訂は、TMDM (トピックマップ データモデル) 規格とXTM 2.0 (XML 構文 2.0) 規格のサポート、クラスタリングのサポート、及び、Ontopoly の再実装です。公開 API の変更にも注意してください。それらには、以前の版との互換性がありません。それらの扱いに関する詳しい情報は、下記をご覧下さい。
下記に記述されている変更以外、すべての他の既存のOKSコンポーネントは、以前のように機能します。
- 注意
-
ISO の新規格 TMDM のサポートのために根本的な API の変更が必要だったため、この版は、以前の版との互換性が保証されていません。Java API を使用している既存のアプリケーションは、OKS 4.0 で使用する前に、再コンパイルが必要です。
- 注意
-
RDBMS データベーススキーマに多くの変更があるため、既存のトピックマップは、古いスキーマのもとでエクスポートし、新しいスキーマのもとで再インポートする必要があります。この作業をするときは、XTM 1.0 フォーマットを使用してください。(OKS 4.0 ベータ版からアップグレードする場合は、この最新のリリースを使用する前に、データベーススキーマのアップグレードをする必要があります。)
- 注意
-
OKS 4.0 では、Java 1.4 以降の版が必要です。
1. 新しい機能
- このリリースからOKSは、国際標準 ISO/IEC 13250-2: トピックマップ - データモデル、ISO/IEC 13250-3: トピックマップ - XML構文 (XTM 2.0)、及び、ISO/IEC 13250-4: トピックマップ - 正準化 (Canonicalization) を全面的にサポートしています。
- このリリースからOKSは、クラスタ化されました。クラスタのメンバに、キャシュの無効化イベント (cache invalidation events) を知らせるのに、JGroups を使用しています。これにより、異なるOKSのインスタンスから、クラスタ内の複数のノード上にある同一トピックマップにアクセスすることが可能になりました。Web-Editor のロック機能は、Terracotta を用いることにより、クラスタ化することができます。設定方法について詳しくは、次の文書: The RDBMS Backend Connector - Installation Guide、及び、The Web Editor Framework - Developer's Guide をご覧下さい。
- Ontopolyを、コンポーネントフレームワークである Apache Wicket フレームワーク上で再実装しました。新しい版は、変更のたび毎にページ全体を再描画する代わりに、ユーザインタフェースの部品に更新する AJAX 技術を使用しているため、よりインタラクティブになっています。すべての更新は、そのインタフェースを通して即座にサーバ側に反映されるため、以前の版にあった "Confirm" 及び "Reset" ボタンは必要なくなりました。Ontopoly再実装の主要な根本理由は、より柔軟で拡張性のあるものにすることです。以前の版は、JSP を使用していて、保守が困難でした。新しい機能は、HTML 及び 画像出現のデータ型のサポートであり、それらのインスタンスは、型に変換すること、及び、その逆も可能です。ユーザガイドは、まだ、新しいユーザインタフェースに更新していないことに注意してください。
- XTM 2.0 のインポート、及び、エクスポート機能が追加しました。XTM インポートにおいて、XTM のバージョンを自動判別します。また、両方のバージョンを透過的にサポートします。XTM のエクスポートは、デフォルトでは XTM 2.0 です。
- 異形名及び出現に対するデータ型のサポートを追加しました。値を設定するときには、データ型が指定できるようになりました。モデルの中では、任意のデータ型が使用できます。しかし、少数のデータ型は、すべてのトピックマップソフトウェアで明示的にサポートされるわけではないことに注意してください。String 及び LocatorIF を参照する APIメソッドは、データ型を明記しませんが、各々、データ型 http://www.w3.org/2001/XMLSchema#string 及び http://www.w3.org/2001/XMLSchema#anyURI を使用します。
- 最も一般的なデータ型は、DataTypes クラスの中のコンスタントとして見つけることができます。
- DB2TM は、任意のデータ型をサポートするようになりました。
- 出現及び異形名は、任意の長さの値を持つことができるようになりました。実際、長い値を設定するためには、OccurrenceIF.setReader(Reader, long, LocatorIF) 及び VariantNameIF.setReader(Reader, long, LocatorIF) メソッドを使用してください。バイナリ値は、例えばBase64を使用するように、文字列エンコードする必要があります。
- NameIndexIF インデックスを、異形及びそのデータ型をサポートするために更新しました。
- OccurrenceIndexIF インデックスを、出現のデータ型をサポートするために更新しました。
- TopicMapBuilderIF インタフェースを、無効なオブジェクトを構築しないように変更しました。理由は、TMDM規格が部分的なオブジェクトは有効でないと述べているからです。より詳しくは、javadoc API ドキュメントをご覧下さい。
- オブジェクトモデルの中の TopicMapBuilderIF 及び mutable メソッドは、オブジェクトモデルが、クロストピックマップリファレンスによって、汚染されていないことを検証するために、厳密なチェックをするようにしました。また、除去されたオブジェクトは、オブジェクトモデルの中のプロパティに、再度取り付けることはできません。実際には、この新しい振る舞いは、可能なバグシナリオの全シリーズを防がなければなりません。
- ReifiableIF インタフェースが追加され、具体化可能なオブジェクトがこのインタフェースを実装しています。具体化は、オブジェクトモデルの中で明示的になりました。古い暗黙的な具体化 (マッチング項目識別子、及び、主題識別子) は、新旧の具体化モデルの間を変換する XTM 1.0 のインポート、及び、エクスポート以外は、明示的にサポートしていません。トピックがどのオブジェクトを具体化するかを見るためには、TopicIF.getReified() メソッドを使用してください。
- すべての LocatorIF を、URI 記法であることに限定しました。URI でないロケータを使用した場合、オブジェクトモデルは、 ConstraintViolationException を投げます。他のロケータは、代わりに、データ型として表現される必要があります。
- モデルの中では、ソースロケータを、項目識別子と呼びます。
- モデルの中では、主題アドレスを主題ロケータと呼びます。トピックは、複数の主題ロケータを持つことができるようになりました。この理由により、 ConflictingSubjectHandlerIF インタフェースは、除去されました。
- BaseNameIF インタフェースを、TopicNameIF に、リネームしました。それにしたがって、'base name' という名前を使っていたすべてのメソッドを変更しました。
- AssociationRoleIF.setPlayer(TopicIF), TypedIF.setType(TopicIF) (TopicNameIF ではない) 及び TopicNameIF, VariantNameIF と OccurrenceIF の value setter メソッド は、null 値、及び、データ型をサポートしません。XTM 1.0 及び LTM のインポータは、null 値を表現するために、PSI http://psi.ontopia.net/xtm/1.0/null-topic という値の PSI を持つトピックを作成することに注意してください。
- 新しいメソッド TMObjectIF.remove() は、古い TopicMapIF.removeTopic(TopicIF), TopicMapIF.removeAssociation(AssociationIF), TopicIF.removeBaseName(BaseNameIF), TopicIF.removeOccurrenceIF(OccurrenceIF), TopicNameIF.remove 及び VariantName(VariantNameIF) メソッドを置き換えます。
- TopicMapIF.clear() は、DeletionUtils.clearTopicMap(TopicMapIF) を置き換えます。
- tolog 問合せ言語は、引続き以前のようにご利用いただけます。公開インタフェース上は、変更がありません。異形及び出現のデータ型に対する問合せを可能にするために、datatype 述語を追加しました。
- 4つの関連役割をもつ関連を作成するために、 AssociationBuilder.makeAssociation(TopicIF, TopicIF, TopicIF, TopicIF) メソッドを追加しました。
- 新しいオブジェクトモデルをサポートするために、RDBMS データベーススキーマを更新しました。トピックマップをエクスポートしてインポートすることによって、古いスキーマから新しいスキーマに移行する必要があることに注意してください。
2. 除去した機能
- HyTMは、もはやサポートしていません。
- ファセット、ファセット値、ニモニック及びイフェクティブスコープは、もはやトピックマップ標準の一部ではないので、トピックマップエンジンモデルの一部ではなくなりました。それらは、また、トピックマップの開発に必須とみなされていないので、ソフトウェアから除去しました。
- MultiTypedIF インタフェースは、余分と思われたため除去しました。
- 以前の版の中で、deprecated の印がつけられたメソッドとクラスの大部分を、この版の中から除去しました。残っているものも後日除去される可能性があるので、使っていないことを確認してください。
- 有用なメソッドのすべてを、TopicMapStoreIF か TopicMapIF のどちらかに移したので、TopicMapTransactionIF インタフェースは、除去しました。
- IndexManagerIF インタフェースを除去しました。その代わり、インデックスを検索するためには、TopicMapIF.getIndex(String) メソッドを使用してください。すべてのインデックスが、自動的に更新維持されるようになり、古いインタフェースが余分になったためです。
- IndexIF インタフェースはまだ存在していますが、古いメソッドを除去したため、今はたんに、マーカーインタフェースの働きをするだけです。
- TopicMapFactoryIF インタフェースは削除し、変更した TopicMapBuilderIF インタフェースに置き換えました。
- DeletionUtils クラスは、TMObjectIF.remove() 及び TopicMapIF.clear() メソッドがそれを置き換えるため、除去しました。
- ReificationUtils クラスは、TopicIF.getReified() メソッド、及び ReifiableIF インタフェースをそれを置き換えるため、除去しました。
- LocatorIndexIF インデックスは、除去しました。NameIndexIF and OccurrenceIndexIF の中のメソッドがそれを置き換えます。
- トピック名前制約のサポートは、除去しました。
- TopicMapIF.getObjectBySourceLocator(LocatorIF) を、TopicMapIF.getObjectByItemIdentifier(LocatorIF) に置き換えました。
- TopicMapIF.getTopicBySubject(LocatorIF) を、TopicMapIF.getTopicBySubjectLocator(LocatorIF) に置き換えました。
- TopicMapIF.getTopicByIndicator(LocatorIF) を、TopicMapIF.getTopicBySubjectIdentifier(LocatorIF) に置き換えました。
- TMObjectIF.getSourceLocators(), TMObjectIF.addSourceLocator(LocatorIF) 及び TMObjectIF.removeSourceLocator(LocatorIF) を、TMObjectIF.getItemIdentifiers(), TMObjectIF.addItemIdentifier(LocatorIF) 及び TMObjectIF.removeItemIdentifier(LocatorIF) に置き換えました。
- TopicIF.getSubject() 及び TopicIF.setSubject(LocatorIF) を、TopicIF.getSubjectLocators(), TopicIF.addSubjectLocator(LocatorIF), TopicIF.removeSubjectLocator(LocatorIF) に置き換えました。
- TopicIF.getSubjectIndicators(), TopicIF.addSubjectIndicator(Locator) 及び TopicIF.removeSubjectIndicator(LocatorIF) を、TopicIF.getSubjectIdentifiers(), TopicIF.addSubjectIdentifier(LocatorIF) 及び TopicIF.removeSubjectIdentifier(LocatorIF) に置き換えました。
3. その他の変更
以下のバグを修正しました。
- Bug #2120: 文字列の長さによる順序付けが例外を発生させる
- Bug #2123: 比較問合せにおける NullPointerException
オブジェクトモデルの変更のため、Web Editor framework のアクションを少し変更しました。それらの変更は以下のとおりです。
- AddExtOccurrence: 型パラメータが必要になりました
- AddIntOccurrence: 型パラメータが必要になりました
- RemoveType: TopicNameIF オブジェクトとのみ機能します
- SetPlayer: プレーヤパラメータが必要になりました
|
|