この章では、シソーラスを管理および参照するためのCTX_THES
パッケージの使用方法について説明します。これらのシソーラスのファンクションは、特に指定されていない場合は、ISO-2788およびANSI Z39.19規格に基づいています。
シソーラスへの情報の格納方法を理解しておくと、シソーラス演算子を使用した問合せを記述する際に役立ちます。また、シソーラスを使用して、英語とフランス語でのABOUT
問合せおよびドキュメント・テーマの生成に使用するナレッジ・ベースを拡張できます。
CTX_THES
には、次のストアド・プロシージャおよびファンクションが含まれています。
名前 | 説明 |
---|---|
ALTER_PHRASE |
シソーラス句を変更します。 |
ALTER_THESAURUS |
シソーラスを名前変更または切り捨てます。 |
BT |
句のすべての上位語を戻します。 |
BTG |
句のすべての上位汎用語を戻します。 |
BTI |
句のすべての上位インスタンス語を戻します。 |
BTP |
句のすべての上位部分語を戻します。 |
CREATE_PHRASE |
指定されたシソーラスに句を追加します。 |
CREATE_RELATION |
2つの句の間にリレーションを作成します。 |
CREATE_THESAURUS |
指定されたシソーラスを作成します。 |
CREATE_TRANSLATION |
句に対する新しい翻訳を作成します。 |
DROP_PHRASE |
シソーラスから句を削除します。 |
DROP_RELATION |
2つの句の間のリレーションを削除します。 |
DROP_THESAURUS |
指定されたシソーラスをシソーラス表から削除します。 |
DROP_TRANSLATION |
句に対する翻訳を削除します。 |
HAS_RELATION |
シソーラス・リレーションの存在の有無をテストします。 |
NT |
句のすべての下位語を戻します。 |
NTG |
句のすべての下位汎用語を戻します。 |
NTI |
句のすべての下位インスタンス語を戻します。 |
NTP |
句のすべての下位部分語を戻します。 |
OUTPUT_STYLE |
拡張ファンクションの出力スタイルを設定します。 |
PT |
句の優先語を戻します。 |
RT |
句の関連語を戻します。 |
SN |
句のスコープ・ノートを戻します。 |
SYN |
句のシノニム語句を戻します。 |
THES_TT |
句のすべての最上位語を戻します。 |
TR |
句の外国語の等価語を戻します。 |
TRSYN |
句の外国語の等価語、句のシノニムおよびシノニムの外国語の等価語を戻します。 |
TT |
句の最上位語を戻します。 |
UPDATE_TRANSLATION |
既存の翻訳を更新します。 |
シソーラスの既存の句を変更します。句を変更できるのは、CTXSYS
またはシソーラスの所有者のみです。
構文
CTX_THES.ALTER_PHRASE(tname in varchar2, phrase in varchar2, op in varchar2, operand in varchar2 default null);
シソーラス名を指定します。
変更する句を指定します。
変更操作を文字列または記号として指定します。次の操作の1つを、op
とoperand
の組で指定できます。
op | 意味 | operand |
---|---|---|
RENAME
または
|
句を名前変更します。シソーラスに新しい句がすでに存在している場合は、このプロシージャによって例外が発生します。 | 新しい句を指定します。修飾子を挿入し、句に対する修飾子を変更、追加または削除できます。 |
PT
または
|
句を優先語にします。シノニム・リングにある既存の優先語は、非優先シノニムになります。 | (なし) |
SN
または
|
句のスコープ・ノートを変更します。 | 新しいスコープ・ノートを指定します。 |
引数を指定し、操作を変更します。op
の表を参照してください。
例
シソーラスの中のスペルの間違っているワードを修正します。
ctx_thes.alter_phrase('thes1', 'tee', 'rename', 'tea');
mercury (metal)から修飾子を削除します。
ctx_thes.alter_phrase('thes1', 'mercury (metal)', 'rename', 'mercury');
mercuryに修飾子を追加します。
ctx_thes.alter_phrase('thes1', 'mercury', 'rename', 'mercury (planet)');
シノニム・リング内でKowalskiを優先語にします。
ctx_thes.alter_phrase('thes1', 'Kowalski', 'pt');
view camerasのスコープ・ノートを変更します。
ctx_thes.alter_phrase('thes1', 'view cameras', 'sn', 'Cameras with lens focusing');
このプロシージャを使用して、既存のシソーラスを名前変更または切り捨てます。指定されたシソーラスでこのファンクションをコールできるのは、シソーラスの所有者またはCTXSYS
ユーザーのみです。
構文
CTX_THES.ALTER_THESAURUS(tname in varchar2, op in varchar2, operand in varchar2 default null);
シソーラス名を指定します。
変更操作を文字列または記号として指定します。次の2つの操作のいずれかを指定できます。
op | 意味 | operand |
---|---|---|
RENAME
または
|
シソーラスを名前変更します。新しい名前がすでに存在している場合は、エラーが戻ります。 | 新しいシソーラス名を指定します。 |
TRUNCATE
または
|
シソーラスを切り捨てます。 | なし |
引数を指定し、操作を変更します。op
の表を参照してください。
このファンクションは、指定されたシソーラスに記録されているとおりに、句のすべての上位語を戻します。
構文1: 表結果
CTX_THES.BT(restab IN OUT NOCOPY EXP_TAB, phrase IN VARCHAR2, lvl IN NUMBER DEFAULT 1, tname IN VARCHAR2 DEFAULT 'DEFAULT');
構文2: 文字列結果
CTX_THES.BT(phrase IN VARCHAR2, lvl IN NUMBER DEFAULT 1, tname IN VARCHAR2 DEFAULT 'DEFAULT') RETURN VARCHAR2;
オプションで、結果を格納する拡張表の名前を指定します。この表は、次のようにシステムが定義するEXP_TAB
型である必要があります。
type exp_rec is record ( xrel varchar2(12), xlevel number, xphrase varchar2(256) ); type exp_tab is table of exp_rec index by binary_integer;
シソーラスで検索する句を指定します。
戻す上位語のレベルを指定します。たとえば、2を指定することによって、句の上位語の上位語までをすべて取得します。
シソーラス名を指定します。指定しない場合は、システムのデフォルト・シソーラスが使用されます。
例
文字列結果
catに対して次のエントリを持つ、MY_THES
というシソーラスがあるとします。
cat BT1 feline BT2 mammal BT3 vertebrate BT4 animal
catに対する上位語を2レベル上まで検索するには、次の文を入力します。
set serveroutput on declare terms varchar2(2000); begin terms := ctx_thes.bt('CAT', 2, 'MY_THES'); dbms_output.put_line('The broader expansion for CAT is: '||terms); end;
このコードは、次の出力結果を戻します。
The broader expansion for CAT is: {cat}|{feline}|{mammal}
表結果
次のコードは、表結果を使用してwhite wolfに対する上位語の検索を実行します。
set serveroutput on declare xtab ctx_thes.exp_tab; begin ctx_thes.bt(xtab, 'white wolf', 2, 'my_thesaurus'); for i in 1..xtab.count loop dbms_output.put_line(xtab(i).rel||' '||xtab(i).phrase); end loop; end;
このコードは、次の出力結果を戻します。
PHRASE WHITE WOLF BT WOLF BT CANINE BT ANIMAL
このファンクションは、指定されたシソーラスに記録されているとおりに、句のすべての上位汎用語を戻します。
構文1: 表結果
CTX_THES.BTG(restab IN OUT NOCOPY EXP_TAB, phrase IN VARCHAR2, lvl IN NUMBER DEFAULT 1, tname IN VARCHAR2 DEFAULT 'DEFAULT');
構文2: 文字列結果
CTX_THES.BTG(phrase IN VARCHAR2, lvl IN NUMBER DEFAULT 1, tname IN VARCHAR2 DEFAULT 'DEFAULT') RETURN VARCHAR2;
オプションで、結果を格納する拡張表の名前を指定します。この表は、次のようにシステムが定義するEXP_TAB
型である必要があります。
type exp_rec is record ( xrel varchar2(12), xlevel number, xphrase varchar2(256) ); type exp_tab is table of exp_rec index by binary_integer;
シソーラスで検索する句を指定します。
戻す上位語のレベルを指定します。たとえば、2を指定することによって、句の上位語の上位語までをすべて取得します。
シソーラス名を指定します。指定しない場合は、システムのデフォルト・シソーラスが使用されます。
このファンクションは、指定されたシソーラスに記録されているとおりに、句のすべての上位インスタンス語を戻します。
構文1: 表結果
CTX_THES.BTI(restab IN OUT NOCOPY EXP_TAB, phrase IN VARCHAR2, lvl IN NUMBER DEFAULT 1, tname IN VARCHAR2 DEFAULT 'DEFAULT');
構文2: 文字列結果
CTX_THES.BTI(phrase IN VARCHAR2, lvl IN NUMBER DEFAULT 1, tname IN VARCHAR2 DEFAULT 'DEFAULT') RETURN VARCHAR2;
オプションで、結果を格納する拡張表の名前を指定します。この表は、次のようにシステムが定義するEXP_TAB
型である必要があります。
type exp_rec is record ( xrel varchar2(12), xlevel number, xphrase varchar2(256) ); type exp_tab is table of exp_rec index by binary_integer;
シソーラスで検索する句を指定します。
戻す上位語のレベルを指定します。たとえば、2を指定することによって、句の上位語の上位語までをすべて取得します。
シソーラス名を指定します。指定しない場合は、システムのデフォルト・シソーラスが使用されます。
このファンクションは、指定されたシソーラスに記録されているとおりに、句のすべての上位部分語を戻します。
構文1: 表結果
CTX_THES.BTP(restab IN OUT NOCOPY EXP_TAB, phrase IN VARCHAR2, lvl IN NUMBER DEFAULT 1, tname IN VARCHAR2 DEFAULT 'DEFAULT');
構文2: 文字列結果
CTX_THES.BTP(phrase IN VARCHAR2, lvl IN NUMBER DEFAULT 1, tname IN VARCHAR2 DEFAULT 'DEFAULT') RETURN VARCHAR2;
オプションで、結果を格納する拡張表の名前を指定します。この表は、次のようにシステムが定義するEXP_TAB
型である必要があります。
type exp_rec is record ( xrel varchar2(12), xlevel number, xphrase varchar2(256) ); type exp_tab is table of exp_rec index by binary_integer;
シソーラスで検索する句を指定します。
戻す上位語のレベルを指定します。たとえば、2を指定することによって、句の上位語の上位語までをすべて取得します。
シソーラス名を指定します。指定しない場合は、システムのデフォルト・シソーラスが使用されます。
CREATE_PHRASE
プロシージャは、新しい句を指定したシソーラスに追加します。
注意: このプロシージャでもシソーラスのリレーションを作成できますが、シソーラスにリレーションを作成する場合は、CTX_THES.CREATE_PHRASE ではなくCTX_THES.CREATE_RELATION を使用することをお薦めします。 |
構文
CTX_THES.CREATE_PHRASE(tname IN VARCHAR2, phrase IN VARCHAR2, rel IN VARCHAR2 DEFAULT NULL, relname IN VARCHAR2 DEFAULT NULL);
新しい句を追加するシソーラスまたは既存の句があるシソーラスの名前を指定します。
シソーラスに追加する句、または新しいリレーションを作成する句を指定します。
phraseおよびrelnameの間の新しい関係を指定します。このパラメータは、下位互換用にのみサポートされます。CTX_THES.CREATE_RELATIONを使用して、新しいリレーションをシソーラスに作成します。
phraseに関連する既存の句を指定します。このパラメータは、下位互換用にのみサポートされます。CTX_THES.CREATE_RELATIONを使用して、新しいリレーションをシソーラスに作成します。
シソーラスの中の2つの句の間にリレーションを作成します。ワードの長さに応じて、シノニム・リングの長さが約4000個のシノニムに制限されます。
注意: シソーラスにリレーションを作成するには、CTX_THES.CREATE_PHRASE ではなくCTX_THES.CREATE_RELATION を使用することをお薦めします。 |
指定されたシソーラスでこのプロシージャをコールできるのは、シソーラスの所有者およびCTXSYS
ユーザーのみです。
構文
CTX_THES.CREATE_RELATION(tname in varchar2, phrase in varchar2, rel in varchar2, relphrase in varchar2);
シソーラス名を指定します。
変更または作成する句を指定します。phrase
が明確な同形異義語の場合は、修飾子を指定する必要があります。phrase
がシソーラスに存在しない場合は作成されます。
作成するリレーションを指定します。phrase
からrelphrase
へのリレーションになります。次のリレーションのいずれかを指定できます。
リレーション | 意味 | relphrase |
---|---|---|
BT*/NT* | 階層におけるリレーションを追加します。 | 関係付けられた句を指定します。phraseからrelphraseへのリレーションと解釈されます。 |
RT | 関連語のリレーションを追加します。 | 関連付ける句を指定します。 |
SYN | 句をシノニム・リングに追加します。 | シノニム・リングの中の既存の句を指定します。 |
言語の指定 | 句に対する翻訳を追加します。 | 新しい翻訳句を指定します。 |
関係付けられた句を指定します。relphraseがtname内に存在しない場合は、relphraseが作成されます。relの表を参照してください。
CREATE_THESAURUS
プロシージャは、シソーラス表に、指定した名前を持つ空のシソーラスを作成します。
構文
CTX_THES.CREATE_THESAURUS(name IN VARCHAR2, casesens IN BOOLEAN DEFAULT FALSE);
作成するシソーラスの名前を指定します。シソーラスの名前は一意である必要があります。指定した名前を持つシソーラスがすでに存在している場合、CREATE_THESAURUS
はエラーを戻し、シソーラスは作成されません。
作成するシソーラスで大/小文字を区別するかどうかを指定します。casesensがTRUEの場合、Oracle Textは、指定されたシソーラスに入力されるすべての語句の大/小文字の区別を維持します。その結果、指定のシソーラスを使用する問合せの大/小文字が区別されます。
このプロシージャを使用して、指定した言語で句に対する新しい翻訳を作成します。
構文
CTX_THES.CREATE_TRANSLATION(tname in varchar2, phrase in varchar2, language in varchar2, translation in varchar2);
シソーラスの名前を30文字以内で指定します。
翻訳を追加するシソーラス内の句を指定します。その句がシソーラスにすでに存在している必要があります。存在しない場合はエラーが発生します。
翻訳の言語を10文字以内で指定します。
翻訳済の語句を256文字以内で指定します。
この句の翻訳がすでに存在している場合、この新しい翻訳は、元の翻訳を削除せずに追加されます。ただし、元の翻訳と同じでない場合にかぎります。同じ翻訳を2回追加すると、エラーになります。
シソーラスから句を削除します。指定されたシソーラスでこのプロシージャをコールできるのは、シソーラスの所有者およびCTXSYS
ユーザーのみです。
構文
CTX_THES.DROP_PHRASE(tname in varchar2, phrase in varchar2);
シソーラス名を指定します。
削除する句を指定します。phraseが明確な同形異義語の場合は、修飾子を挿入する必要があります。句がtnameに存在しない場合は、このプロシージャによって例外が発生します。
BT* / NT*リレーションは、削除された句の前後にパッチされます。たとえば、AがBT Bを持ち、BがBT Cを持つ場合、Bが削除された後、AはBT Cを持ちます。
ワードが複数の上位語を持つ場合、各上位語に対する各下位語の関係が設定されます。
BT、BTG、BTPおよびBTIは別々の階層です。したがって、AがBTG Bを持ち、BがBTI Cを持つ場合、Bが削除されると、AとCの間に暗黙的なリレーションは作成されないことに注意してください。
RTリレーションはパッチされません。たとえば、AがRT Bを持ち、BがRT Cを持つ場合、Bが削除されると、AとCの間に対応関係は作成されません。
2つの句の間のリレーションをシソーラスから削除します。
注意: CTX_THES.DROP_RELATION は、2つの句の間のリレーションのみを削除します。このコールで、句が削除されることはありません。 |
指定されたシソーラスでこのプロシージャをコールできるのは、シソーラスの所有者およびCTXSYS
ユーザーのみです。
構文
CTX_THES.DROP_RELATION(tname in varchar2, phrase in varchar2, rel in varchar2, relphrase in varchar2 default null);
シソーラス名を指定します。
対象の句を指定します。
削除するリレーションを指定します。phraseからrelphraseへのリレーションになります。次のリレーションのいずれかを指定できます。
リレーション | 意味 | relphrase |
---|---|---|
BT*/NT* | 階層のリレーションを削除します。 | オプションでrelphraseを指定します。指定されない場合、句に対するこの種類のすべてのリレーションが削除されます。 |
RT | 関連語のリレーションを削除します。 | オプションでrelphraseを指定します。指定されない場合、句に対するすべてのRTリレーションが削除されます。 |
SYN | 句をそのシノニム・リングから削除します。 | (なし) |
PT | 優先語の指定を句から削除します。句はシノニム・リングに残ります。 | (なし) |
language | 翻訳を句から削除します。 | オプションでrelphraseを指定します。1つの句に対して、relに指定した言語に複数の翻訳がある場合は、relphraseを指定することで、1つの翻訳のみを削除することもできます。
relphraseがNULLの場合は、その言語での、その句に対するすべての翻訳が削除されます。 |
関係付けられた句を指定します。
注意
relに対して指定したリレーションは、phraseからrelphraseへのリレーションと解釈されます。たとえば、上位語animalを持つdogがあるとします。
dog BT animal
このリレーションを削除するには、引数を次のように指定します。
begin CTX_THES.DROP_RELATION('thes','dog','BT','animal'); end;
また、次のようにNTを使用してこのリレーションを削除することもできます。
begin CTX_THES.DROP_RELATION('thes','animal','NT','dog'); end;
例
リレーションVEHICLE NT CARを削除します。
ctx_thes.drop_relation('thes1', 'vehicle', 'NT', 'car');
vehicleに対するすべての下位語リレーションを削除します。
ctx_thes.drop_relation('thes1', 'vehicle', 'NT');
meに対する日本語の翻訳を削除します。
ctx_thes.drop_relation('thes1', 'me', 'JAPANESE:');
meに対する、指定した日本語の翻訳を削除します。
ctx_thes.drop_relation('thes1', 'me', 'JAPANESE:', 'boku')
このプロシージャを使用して、句に対する1つ以上の翻訳を削除します。
構文
CTX_THES.DROP_TRANSLATION (tname in varchar2, phrase in varchar2, language in varchar2 default null, translation in varchar2 default null);
シソーラスの名前を30文字以内で指定します。
翻訳を削除するシソーラス内の句を指定します。その句がシソーラスにすでに存在している必要があります。存在しない場合はエラーが発生します。
オプションで、翻訳の言語を10文字以内で指定します。指定しない場合は、その翻訳も指定できません。その結果、その句に対するすべての言語での翻訳が削除されます。その句に翻訳がない場合は、エラーが発生します。
オプションで、削除する翻訳済の語句を256文字以内で指定します。指定した翻訳が存在しない場合は、エラーが発生します。
このプロシージャを使用して、実際に拡張操作を実行せずに、シソーラス・リレーションの存在の有無をテストします。その句に対するリレーションが指定したリスト内にある場合は、TRUE
を戻します。
このファンクションは、指定されたシソーラスに記録されているとおりに、句のすべての下位語を戻します。
構文1: 表結果
CTX_THES.NT(restab IN OUT NOCOPY EXP_TAB, phrase IN VARCHAR2, lvl IN NUMBER DEFAULT 1, tname IN VARCHAR2 DEFAULT 'DEFAULT');
構文2: 文字列結果
CTX_THES.NT(phrase IN VARCHAR2, lvl IN NUMBER DEFAULT 1, tname IN VARCHAR2 DEFAULT 'DEFAULT') RETURN VARCHAR2;
オプションで、結果を格納する拡張表の名前を指定します。この表は、次のようにシステムが定義するEXP_TAB
型である必要があります。
type exp_rec is record ( xrel varchar2(12), xlevel number, xphrase varchar2(256) ); type exp_tab is table of exp_rec index by binary_integer;
シソーラスで検索する句を指定します。
戻す下位語のレベルを指定します。たとえば、2を指定することによって、句の下位語の下位語までをすべて取得します。
シソーラス名を指定します。指定しない場合は、システムのデフォルト・シソーラスが使用されます。
例
文字列結果
catに対して次のエントリを持つ、MY_THES
というシソーラスがあるとします。
cat NT domestic cat NT wild cat BT mammal mammal BT animal domestic cat NT Persian cat NT Siamese cat
catに対する下位語を2レベル下まで検索するには、次の文を入力します。
declare terms varchar2(2000); begin terms := ctx_thes.nt('CAT', 2, 'MY_THES'); dbms_output.put_line('the narrower expansion for CAT is: '||terms); end;
このコードは、次の出力結果を戻します。
the narrower expansion for CAT is: {cat}|{domestic cat}|{Persian cat}|{Siamese cat}| {wild cat}
表結果
次のコードは、表結果を使用してcanineに対する下位語の検索を実行します。
declare xtab ctx_thes.exp_tab; begin ctx_thes.nt(xtab, 'canine', 2, 'my_thesaurus'); for i in 1..xtab.count loop dbms_output.put_line(lpad(' ', 2*xtab(i).xlevel) || xtab(i).xrel || ' ' || xtab(i).xphrase); end loop; end;
このコードは、次の出力結果を戻します。
PHRASE CANINE NT WOLF (Canis lupus) NT WHITE WOLF NT GREY WOLF NT DOG (Canis familiaris) NT PIT BULL NT DASCHUND NT CHIHUAHUA NT HYENA (Canis mesomelas) NT COYOTE (Canis latrans)
このファンクションは、指定されたシソーラスに記録されているとおりに、句のすべての下位汎用語を戻します。
構文1: 表結果
CTX_THES.NTG(restab IN OUT NOCOPY EXP_TAB, phrase IN VARCHAR2, lvl IN NUMBER DEFAULT 1, tname IN VARCHAR2 DEFAULT 'DEFAULT');
構文2: 文字列結果
CTX_THES.NTG(phrase IN VARCHAR2, lvl IN NUMBER DEFAULT 1, tname IN VARCHAR2 DEFAULT 'DEFAULT') RETURN VARCHAR2;
オプションで、結果を格納する拡張表の名前を指定します。この表は、次のようにシステムが定義するEXP_TAB
型である必要があります。
type exp_rec is record ( xrel varchar2(12), xlevel number, xphrase varchar2(256) ); type exp_tab is table of exp_rec index by binary_integer;
シソーラスで検索する句を指定します。
戻す下位語のレベルを指定します。たとえば、2を指定することによって、句の下位語の下位語までをすべて取得します。
シソーラス名を指定します。指定しない場合は、システムのデフォルト・シソーラスが使用されます。
このファンクションは、指定されたシソーラスに記録されているとおりに、句のすべての下位インスタンス語を戻します。
構文1: 表結果
CTX_THES.NTI(restab IN OUT NOCOPY EXP_TAB, phrase IN VARCHAR2, lvl IN NUMBER DEFAULT 1, tname IN VARCHAR2 DEFAULT 'DEFAULT');
構文2: 文字列結果
CTX_THES.NTI(phrase IN VARCHAR2, lvl IN NUMBER DEFAULT 1, tname IN VARCHAR2 DEFAULT 'DEFAULT') RETURN VARCHAR2;
オプションで、結果を格納する拡張表の名前を指定します。この表は、次のようにシステムが定義するEXP_TAB
型である必要があります。
type exp_rec is record ( xrel varchar2(12), xlevel number, xphrase varchar2(256) ); type exp_tab is table of exp_rec index by binary_integer;
シソーラスで検索する句を指定します。
戻す下位語のレベルを指定します。たとえば、2を指定することによって、句の下位語の下位語までをすべて取得します。
シソーラス名を指定します。指定しない場合は、システムのデフォルト・シソーラスが使用されます。
このファンクションは、指定されたシソーラスに記録されているとおりに、句のすべての下位部分語を戻します。
構文1: 表結果
CTX_THES.NTP(restab IN OUT NOCOPY EXP_TAB, phrase IN VARCHAR2, lvl IN NUMBER DEFAULT 1, tname IN VARCHAR2 DEFAULT 'DEFAULT');
構文2: 文字列結果
CTX_THES.NTP(phrase IN VARCHAR2, lvl IN NUMBER DEFAULT 1, tname IN VARCHAR2 DEFAULT 'DEFAULT') RETURN VARCHAR2;
オプションで、結果を格納する拡張表の名前を指定します。この表は、次のようにシステムが定義するEXP_TAB
型である必要があります。
type exp_rec is record ( xrel varchar2(12), xlevel number, xphrase varchar2(256) ); type exp_tab is table of exp_rec index by binary_integer;
シソーラスで検索する句を指定します。
戻す下位語のレベルを指定します。たとえば、2を指定することによって、句の下位語の下位語までをすべて取得します。
シソーラス名を指定します。指定しない場合は、システムのデフォルト・シソーラスが使用されます。
CTX_THES
拡張ファンクションの戻り文字列に対する出力形式を設定します。このプロシージャは、CTX_THES
拡張ファンクションに対する表結果には影響を与えません。
構文
CTX_THES.OUTPUT_STYLE ( showlevel IN BOOLEAN DEFAULT FALSE, showqualify IN BOOLEAN DEFAULT FALSE, showpt IN BOOLEAN DEFAULT FALSE, showid IN BOOLEAN DEFAULT FALSE );
BT/NT
拡張のレベルを示すには、TRUE
を指定します。
句修飾子を示すには、TRUE
を指定します。
アスタリスク*を持つ優先語を示すには、TRUE
を指定します。
句IDを示すには、TRUE
を指定します。
このファンクションは、指定されたシソーラスに記録されているとおりに、句の優先語を戻します。
構文1: 表結果
CTX_THES.PT(restab IN OUT NOCOPY EXP_TAB, phrase IN VARCHAR2, tname IN VARCHAR2 DEFAULT 'DEFAULT') RETURN varchar2;
構文2: 文字列結果
CTX_THES.PT(phrase IN VARCHAR2, tname IN VARCHAR2 DEFAULT 'DEFAULT') RETURN varchar2;
オプションで、結果を格納する拡張表の名前を指定します。この表は、次のようにシステムが定義するEXP_TAB
型である必要があります。
type exp_rec is record ( xrel varchar2(12), xlevel number, xphrase varchar2(256) ); type exp_tab is table of exp_rec index by binary_integer;
シソーラスで検索する句を指定します。
シソーラス名を指定します。指定しない場合は、システムのデフォルト・シソーラスが使用されます。
このファンクションは、指定されたシソーラスの語句の関連語を戻します。
構文1: 表結果
CTX_THES.RT(restab IN OUT NOCOPY EXP_TAB, phrase IN VARCHAR2, tname IN VARCHAR2 DEFAULT 'DEFAULT');
構文2: 文字列結果
CTX_THES.RT(phrase IN VARCHAR2, tname IN VARCHAR2 DEFAULT 'DEFAULT') RETURN varchar2;
オプションで、結果を格納する拡張表の名前を指定します。この表は、次のようにシステムが定義するEXP_TAB
型である必要があります。
type exp_rec is record ( xrel varchar2(12), xlevel number, xphrase varchar2(256) ); type exp_tab is table of exp_rec index by binary_integer;
シソーラスで検索する句を指定します。
シソーラス名を指定します。指定しない場合は、システムのデフォルト・シソーラスが使用されます。
例
dogに対して次の関連語定義を持つシソーラスMY_THES
があるとします。
DOG RT WOLF RT HYENA
dogに対する関連語を検索するには、次のコードを実行します。
declare terms varchar2(2000); begin terms := ctx_thes.rt('DOG','MY_THES'); dbms_output.put_line('The related terms for dog are: '||terms); end;
このコードは、次の出力結果を戻します。
The related terms for dog are: {dog}|{wolf}|{hyena}
このファンクションは、指定された句のスコープ・ノートを戻します。
このファンクションは、指定されたシソーラスに記録されているとおりに、すべての句のシノニムを戻します。
構文1: 表結果
CTX_THES.SYN(restab IN OUT NOCOPY EXP_TAB, phrase IN VARCHAR2, tname IN VARCHAR2 DEFAULT 'DEFAULT');
構文2: 文字列結果
CTX_THES.SYN(phrase IN VARCHAR2, tname IN VARCHAR2 DEFAULT 'DEFAULT') RETURN VARCHAR2;
オプションで、結果を格納する拡張表の名前を指定します。この表は、次のようにシステムが定義するEXP_TAB
型である必要があります。
type exp_rec is record ( xrel varchar2(12), xlevel number, xphrase varchar2(256) ); type exp_tab is table of exp_rec index by binary_integer;
シソーラスで検索する句を指定します。
シソーラス名を指定します。指定しない場合は、システムのデフォルト・シソーラスが使用されます。
例
文字列結果
catに対して次のエントリを持つ、ANIMALS
というシソーラスがあるとします。
CAT SYN KITTY SYN FELINE
catに対するシノニムを検索し、結果を文字列として取得するには、次の文を入力します。
declare synonyms varchar2(2000); begin synonyms := ctx_thes.syn('CAT','ANIMALS'); dbms_output.put_line('the synonym expansion for CAT is: '||synonyms); end;
このコードは、次の出力結果を戻します。
the synonym expansion for CAT is: {CAT}|{KITTY}|{FELINE}
表結果
次のコードは、canineに対するシノニムを検索し、結果を表に取得します。表の内容は、標準出力で出力されます。
declare xtab ctx_thes.exp_tab; begin ctx_thes.syn(xtab, 'canine', 'my_thesaurus'); for i in 1..xtab.count loop dbms_output.put_line(lpad(' ', 2*xtab(i).xlevel) || xtab(i).xrel || ' ' || xtab(i).xphrase); end loop; end;
このコードは、次の出力結果を戻します。
PHRASE CANINE PT DOG SYN PUPPY SYN MUTT SYN MONGREL
このプロシージャは、シソーラスのすべての最上位語を検索して戻します。最上位語は、下位語を持つが上位語を持たないすべての語句として定義されます。
このプロシージャは、シソーラス全体を検索し、すべての最上位語を検索します。TT
は句の中で、その句の最上位語を検索します。この点で、THES_TT
とTT
は異なります。
大規模なシソーラス
このプロシージャはシソーラス全体を検索するため、大規模なシソーラスを処理することもできます。このようなシソーラスに対して、このファンクションを頻繁にコールしないでください。かわりに、アプリケーションでこれを1回コールして結果を別の表に格納し、この格納された結果を使用してください。
構文
CTX_THES.THES_TT(restab IN OUT NOCOPY EXP_TAB, tname IN VARCHAR2 DEFAULT 'DEFAULT');
結果を格納する拡張表の名前を指定します。この表は、次のようにシステムが定義するEXP_TAB
型である必要があります。
type exp_rec is record ( xrel varchar2(12), xlevel number, xphrase varchar2(256) ); type exp_tab is table of exp_rec index by binary_integer;
シソーラス名を指定します。指定しない場合は、システムのデフォルト・シソーラスが使用されます。
このファンクションは、指定された単一言語のシソーラスに対し、シソーラスに記録されているとおりに句の外国語の等価語を戻します。
注意: 外国語の翻訳は、ISO-2788またはANSI Z39.19シソーラス規格に準拠するものではありません。TRの動作は、Oracle Text固有です。 |
構文1: 表結果
CTX_THES.TR(restab IN OUT NOCOPY EXP_TAB, phrase IN VARCHAR2, lang IN VARCHAR2 DEFAULT NULL, tname IN VARCHAR2 DEFAULT 'DEFAULT')
構文2: 文字列結果
CTX_THES.TR(phrase IN VARCHAR2, lang IN VARCHAR2 DEFAULT NULL, tname IN VARCHAR2 DEFAULT 'DEFAULT') RETURN VARCHAR2;
オプションで、結果を格納する拡張表の名前を指定します。この表は、次のようにシステムが定義するEXP_TAB
型である必要があります。
type exp_rec is record ( xrel varchar2(12), xlevel number, xphrase varchar2(256) ); type exp_tab is table of exp_rec index by binary_integer;
シソーラスで検索する句を指定します。
外国語を指定します。phrase
のすべての翻訳を示すには、ALL
を指定します。
シソーラス名を指定します。指定しない場合は、システムのデフォルト・シソーラスが使用されます。
例
catに対して次のエントリを持つシソーラスMY_THES
があるとします。
cat SPANISH: gato FRENCH: chat SYN lion SPANISH: leon
catに対する翻訳を検索するには、次の文を入力します。
declare trans varchar2(2000); span_trans varchar2(2000); begin trans := ctx_thes.tr('CAT','ALL','MY_THES'); span_trans := ctx_thes.tr('CAT','SPANISH','MY_THES') dbms_output.put_line('the translations for CAT are: '||trans); dbms_output.put_line('the Spanish translations for CAT are: '||span_trans); end;
このコードは、次の出力結果を戻します。
the translations for CAT are: {CAT}|{CHAT}|{GATO} the Spanish translations for CAT are: {CAT}|{GATO}
このファンクションは、指定された単一言語のシソーラスに対し、シソーラスに記録されているとおりに句の外国語の等価語、句のシノニムおよびシノニムの外国語の等価語を戻します。
注意: 外国語の翻訳は、ISO-2788またはANSI Z39.19シソーラス規格に準拠するものではありません。TRSYN の動作は、Oracle Text固有です。 |
構文1: 表結果
CTX_THES.TRSYN(restab IN OUT NOCOPY EXP_TAB, phrase IN VARCHAR2, lang IN VARCHAR2 DEFAULT NULL, tname IN VARCHAR2 DEFAULT 'DEFAULT');
構文2: 文字列結果
CTX_THES.TRSYN(phrase IN VARCHAR2, lang IN VARCHAR2 DEFAULT NULL, tname IN VARCHAR2 DEFAULT 'DEFAULT') RETURN VARCHAR2;
オプションで、結果を格納する拡張表の名前を指定します。この表は、次のようにシステムが定義するEXP_TAB
型である必要があります。
type exp_rec is record ( xrel varchar2(12), xlevel number, xphrase varchar2(256) ); type exp_tab is table of exp_rec index by binary_integer;
シソーラスで検索する句を指定します。
外国語を指定します。phraseのすべての翻訳を示すには、ALL
を指定します。
シソーラス名を指定します。指定しない場合は、システムのデフォルト・シソーラスが使用されます。
例
catに対して次のエントリを持つシソーラスMY_THES
があるとします。
cat SPANISH: gato FRENCH: chat SYN lion SPANISH: leon
catに対する翻訳およびシノニムを検索するには、次の文を入力します。
declare synonyms varchar2(2000); span_syn varchar2(2000); begin synonyms := ctx_thes.trsyn('CAT','ALL','MY_THES'); span_syn := ctx_thes.trsyn('CAT','SPANISH','MY_THES') dbms_output.put_line('all synonyms for CAT are: '||synonyms); dbms_output.put_line('the Spanish synonyms for CAT are: '||span_syn); end;
このコードは、次の出力結果を戻します。
all synonyms for CAT are: {CAT}|{CHAT}|{GATO}|{LION}|{LEON} the Spanish synonyms for CAT are: {CAT}|{GATO}|{LION}|{LEON}
このファンクションは、指定されたシソーラスに記録されているとおりに、句の最上位語を戻します。
構文1: 表結果
CTX_THES.TT(restab IN OUT NOCOPY EXP_TAB, phrase IN VARCHAR2, tname IN VARCHAR2 DEFAULT 'DEFAULT');
構文2: 文字列結果
CTX_THES.TT(phrase IN VARCHAR2, tname IN VARCHAR2 DEFAULT 'DEFAULT') RETURN varchar2;
オプションで、結果を格納する拡張表の名前を指定します。この表は、次のようにシステムが定義するEXP_TAB
型である必要があります。
type exp_rec is record ( xrel varchar2(12), xlevel number, xphrase varchar2(256) ); type exp_tab is table of exp_rec index by binary_integer;
シソーラスで検索する句を指定します。
シソーラス名を指定します。指定しない場合は、システムのデフォルト・シソーラスが使用されます。
例
dogに対して次の上位語エントリを持つシソーラスMY_THES
があるとします。
DOG BT1 CANINE BT2 MAMMAL BT3 VERTEBRATE BT4 ANIMAL
DOGに対する最上位語を検索するには、次のコードを実行します。
declare terms varchar2(2000); begin terms := ctx_thes.tt('DOG','MY_THES'); dbms_output.put_line('The top term for DOG is: '||terms); end;
このコードは、次の出力結果を戻します。
The top term for dog is: {ANIMAL}
このプロシージャを使用して、既存の翻訳を更新します。
構文
CTX_THES.UPDATE_TRANSLATION(tname in varchar2, phrase in varchar2, language in varchar2, translation in varchar2, new_translation in varchar2);
シソーラスの名前を30文字以内で指定します。
翻訳を更新するシソーラス内の句を指定します。その句がシソーラスにすでに存在している必要があります。存在しない場合はエラーが発生します。
翻訳の言語を10文字以内で指定します。
更新する翻訳済の語句を指定します。指定した翻訳が存在しない場合は、エラーが発生します。
phraseに対する翻訳が1つのみの場合は、NULL
を指定できます。指定した言語の語句に対して複数の翻訳がある場合は、エラーが発生します。
オプションで、翻訳済語句の新しい形式を指定します。