ここでは,リレーションのプロパティについて説明します。
リレーションには,プロパティが設定できます。リレーションのプロパティは,リレーション元文書やリレーション先文書を分類したり,リレーション元文書やリレーション先文書のプロパティと組み合わせた管理に使用したりできます。
リレーションのプロパティは,リレーション元文書に接続した状態で設定します。
プロパティを設定した文書間リレーションの例を次の図に示します。
図3-36 プロパティを設定した文書間リレーションの例
この例では,リレーションにユーザ定義プロパティとして,「Type」と「参照日」を設定しています。例えば,プロパティ「Type」によって,リレーション先文書を「参照」と「引用」に分類したりできます。また,プロパティ「参照日」とリレーション先文書のプロパティ「更新日」を比較して,参照した以降に参照先文書が更新されたかどうかを確認したりできます。
リレーションにプロパティを設定する場合は,PutRelationPropertyValuesメソッドを使用します。リレーションを設定する時に同時に設定することもできます。リレーションのプロパティを取得する場合は,GetRelationListAndLockメソッドまたはGetRelationListメソッドを使用します。
文書間リレーションのプロパティは検索に使用できます。検索では,ユーザが定義したプロパティのほか,リレーションを表すRelationshipオブジェクトのプロパティとして設定されている,DMAが規定したプロパティ(dmaProp_またはedmProp_で始まるプロパティ)も使用できます。
ここでは,リレーションのプロパティによってリレーション元クラスとリレーション先クラスを内部結合(INNER JOIN)した検索の方法について,次の図を例にして説明します。
図3-37 リレーションを使用した検索に使用する文書の例
この例では,「論文X」,「論文Y」および「引用元論文」はdmaClass_DocVersionクラスのサブクラスを「論文クラス」を構成要素として作成されたバージョンなし文書(CdbrDocumentオブジェクト)です。また,「参考文献1」および「参考文献2」はdmaClass_DocVersionクラスのサブクラス「参考文献クラス」を構成要素として作成されたバージョンなし文書(CdbrDocumentオブジェクト)です。
この例の場合に実行できる検索の例を次に示します。
SELECT 論文クラス.dmaProp_OIID, 論文クラス.文書名
FROM ((論文クラス INNER JOIN リレーションクラス
ON 論文クラス.dmaProp_This = リレーションクラス.dmaProp_Tail)
INNER_JOIN 参考文献クラス
ON リレーションクラス.dmaProp_Head = 参考文献クラス.dmaProp_This)
WHERE 論文クラス.作成者 = "Suzuki"
AND 参考文献クラス.文書名 = "参考文献2"