ヘッダーをスキップ
Oracle Databaseセマンティク・テクノロジ開発者ガイド
11gリリース1(11.1)
E05679-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

3 SEM_APISパッケージのサブプログラム

SEM_APISパッケージには、Oracle DatabaseのResource Description Framework(RDF)およびWeb Ontology Language(OWL)とともに使用できるサブプログラム(ファンクションとプロシージャ)が含まれます。この章のサブプログラムを使用するには、第1章「Oracleセマンティク・テクノロジの概要」第2章「OWLの概要」に記載されている概念および使用情報について理解しておく必要があります。

この章では、サブプログラムに関するリファレンス情報を示します(サブプログラムのリストはアルファベット順です)。


SEM_APIS.ADD_SEM_INDEX

書式

SEM_APIS.ADD_SEM_INDEX(

     index_code IN VARCHAR2);

説明

セマンティク・ネットワーク索引を作成します。これにより、セマンティク・ネットワークの既存のモデルおよびルール索引それぞれに対して、一意でないBツリー索引がUNUSABLEステータスで作成されます。

パラメータ

index_code

索引コード文字列。

使用方法

このプロシージャをコールするには、DBA権限が必要です。

セマンティク・ネットワーク索引の詳細は、1.8項を参照してください。

次の例では、索引コード文字列pcsmを使用して、セマンティク・ネットワークのモデルおよびルール索引に対するセマンティク・ネットワーク索引を作成します。

EXECUTE SEM_APIS.ADD_SEM_INDEX('pscm');

SEM_APIS.ALTER_SEM_INDEX_ON_MODEL

書式

SEM_APIS.ALTER_SEM_INDEX_ON_MODEL(

     model_name IN VARCHAR2,

     index_code IN VARCHAR2,

     command IN VARCHAR2);

説明

モデルのセマンティク・ネットワーク索引を変更します。

パラメータ

model_name

モデルの名前。

index_code

索引コード文字列。

コマンド

Oracle SQL ALTER INDEX文に有効なコマンド(たとえば、REBUILDやUNUSABLEなど)。ALTER INDEX文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

使用方法

セマンティク・ネットワーク索引の詳細は、1.8項を参照してください。

次の例では、モデルfamilyのセマンティク・ネットワーク索引を再構築します(また、使用不能になっている場合は使用可能にします)。

EXECUTE SEM_APIS.ALTER_SEM_INDEX_ON_MODEL('family', 'pscm', 'rebuild');

SEM_APIS.ALTER_SEM_INDEX_ON_RULES_INDEX

書式

SEM_APIS.ALTER_SEM_INDEX_ON_RULES_INDEX(

     rules_index_name IN VARCHAR2,

     index_code IN VARCHAR2,

     command IN VARCHAR2);

説明

ルール索引のセマンティク・ネットワーク索引を変更します。

パラメータ

rules_index_name

ルール索引の名前。

index_code

索引コード文字列。

コマンド

Oracle SQL ALTER INDEX文に有効なコマンド(たとえば、REBUILDやUNUSABLEなど)。ALTER INDEX文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

使用方法

セマンティク・ネットワーク索引の詳細は、1.8項を参照してください。

次の例では、ルール索引rdfs_rix_familyのセマンティク・ネットワーク索引を再構築します(また、使用不能になっている場合は使用可能にします)。

EXECUTE SEM_APIS.ALTER_SEM_INDEX_ON_RULES_INDEX('rdfs_rix_family', 'pscm', 'rebuild');

SEM_APIS.ANALYZE_MODEL

書式

SEM_APIS.ANALYZE_MODEL(

     model_name IN VARCHAR2,

     estimate_percent IN NUMBER DEFAULT to_estimate_percent_type (get_param('ESTIMATE_PERCENT')),

     method_opt IN VARCHAR2 DEFAULT get_param('METHOD_OPT'),

     degree IN NUMBER DEFAULT to_degree_type(get_param('DEGREE')),

     cascade IN BOOLEAN DEFAULT to_cascade_type(get_param('CASCADE')),

     no_invalidate IN BOOLEAN DEFAULT to_no_invalidate_type (get_param('NO_INVALIDATE')),

     force IN BOOLEAN DEFAULT FALSE);

説明

指定されたモデルの統計を収集します。

パラメータ

model_name

モデルの名前。

estimate_percent

モデルの情報を含む内部表パーティション内の、評価される行の割合(NULLは計算を意味します)。有効なレンジは、[0.000001,100]です。定数DBMS_STATS.AUTO_SAMPLE_SIZEを使用すると、有効な統計を生成するための適切なサンプル・サイズがOracleにより決定されます。これが通常のデフォルトです。

method_opt

モデルの情報を含む内部表パーティションに対して、次のいずれかのオプション(または両方の組合せ)を受け入れます。

  • FOR ALL [INDEXED │ HIDDEN] COLUMNS [size_clause]

  • FOR COLUMNS [size clause] column│attribute [size_clause] [,column│attribute [size_clause]...]

size_clauseは、size_clause := SIZE {integer │ REPEAT │ AUTO │ SKEWONLY}として定義されます。

columnは、column := column_name │ (extension)として定義されます。


- integer: ヒストグラム・バケットの数。レンジ[1,254]内の数にする必要があります。
- REPEAT: すでにヒストグラムが存在する列のみについてヒストグラムを収集します。
- AUTO: Oracleにより、列のデータ配分とワークロードに基づいて、ヒストグラムを収集する列が決定されます。
- SKEWONLY: Oracleにより、列のデータ配分に基づいて、ヒストグラムを収集する列が決定されます。
- column_name: 列の名前。
- extension:column_name, column_name [, ...])という書式の列グループ、または式。

通常のデフォルトは、FOR ALL COLUMNS SIZE AUTOです。

degree

モデルの情報を含む内部表パーティションの並列度。degreeの通常のデフォルトは、NULLです。つまり、CREATE TABLEまたはALTER TABLE文のDEGREE句により指定された表デフォルト値が使用されます。初期化パラメータに基づくデフォルト値を指定するには、定数DBMS_STATS.DEFAULT_DEGREEを使用します。AUTO_DEGREE値を指定すると、並列度が自動的に決定されます。オブジェクトのサイズに応じて、1(シリアル実行)またはDEFAULT_DEGREE(CPUおよび初期化パラメータの数に基づくシステム・デフォルト値)のいずれかになります。

cascade

モデルの情報を含む内部表パーティションの索引に関する統計を収集します。定数DBMS_STATS.AUTO_CASCADEを使用すると、索引統計を収集するかどうかがOracleにより決定されます。これが通常のデフォルトです。

no_invalidate

TRUEに設定した場合、依存カーソルは無効化されません。FALSEに設定した場合、依存カーソルは即時に無効化されます。DBMS_STATS.AUTO_INVALIDATE.を使用すると、従属カーソルを無効化するかどうかがOracleにより決定されます。これが通常のデフォルトです。

force

TRUEに設定すると、モデルがロックされている場合でも統計が収集されます。FALSE(デフォルト)に設定すると、モデルがロックされている場合は統計が収集されません。

使用方法

クラスタ、ドメインおよび結合索引を除いて、索引統計コレクションはパラレル化できます。

このプロシージャは、モデルの情報を含む内部表パーティションの統計を収集するDBMS_STATS.GATHER_TABLE_STATSプロシージャを内部的にコールします。DBMS_STATS.GATHER_TABLE_STATSプロシージャについては、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。

次の例では、セマンティク・モデルfamilyの統計を収集します。

EXECUTE SEM_APIS.ANALYZE_MODEL('family');

SEM_APIS.ANALYZE_RULES_INDEX

書式

SEM_APIS.ANALYZE_RULES_INDEX(

     index_name IN VARCHAR2,

     estimate_percent IN NUMBER DEFAULT to_estimate_percent_type (get_param('ESTIMATE_PERCENT')),

     method_opt IN VARCHAR2 DEFAULT get_param('METHOD_OPT'),

     degree IN NUMBER DEFAULT to_degree_type(get_param('DEGREE')),

     cascade IN BOOLEAN DEFAULT to_cascade_type(get_param('CASCADE')),

     no_invalidate IN BOOLEAN DEFAULT to_no_invalidate_type (get_param('NO_INVALIDATE')),

     force IN BOOLEAN DEFAULT FALSE);

説明

指定されたルール索引(伴意)の統計を収集します。

パラメータ

index_name

ルール索引の名前。

estimate_percent

ルール索引の情報を含む内部表パーティション内の、評価される行の割合(NULLは計算を意味します)。有効なレンジは、[0.000001,100]です。定数DBMS_STATS.AUTO_SAMPLE_SIZEを使用すると、有効な統計を生成するための適切なサンプル・サイズがOracleにより決定されます。これが通常のデフォルトです。

method_opt

ルール索引の情報を含む内部表パーティションに対して、次のいずれかのオプション(または両方の組合せ)を受け入れます。

  • FOR ALL [INDEXED │ HIDDEN] COLUMNS [size_clause]

  • FOR COLUMNS [size clause] column│attribute [size_clause] [,column│attribute [size_clause]...]

size_clauseは、size_clause := SIZE {integer │ REPEAT │ AUTO │ SKEWONLY}として定義されます。

columnは、column := column_name │ (extension)として定義されます。


- integer: ヒストグラム・バケットの数。レンジ[1,254]内の数にする必要があります。
- REPEAT: すでにヒストグラムが存在する列のみについてヒストグラムを収集します。
- AUTO: Oracleにより、列のデータ配分とワークロードに基づいて、ヒストグラムを収集する列が決定されます。
- SKEWONLY: Oracleにより、列のデータ配分に基づいて、ヒストグラムを収集する列が決定されます。
- column_name: 列の名前。
- extension:column_name, column_name [, ...])という書式の列グループ、または式。

通常のデフォルトは、FOR ALL COLUMNS SIZE AUTOです。

degree

ルール索引の情報を含む内部表パーティションの並列度。degreeの通常のデフォルトは、NULLです。つまり、CREATE TABLEまたはALTER TABLE文のDEGREE句により指定された表デフォルト値が使用されます。初期化パラメータに基づくデフォルト値を指定するには、定数DBMS_STATS.DEFAULT_DEGREEを使用します。AUTO_DEGREE値を指定すると、並列度が自動的に決定されます。オブジェクトのサイズに応じて、1(シリアル実行)またはDEFAULT_DEGREE(CPUおよび初期化パラメータの数に基づくシステム・デフォルト値)のいずれかになります。

cascade

ルール索引の情報を含む内部表パーティションの索引に関する統計を収集します。定数DBMS_STATS.AUTO_CASCADEを使用すると、索引統計を収集するかどうかがOracleにより決定されます。これが通常のデフォルトです。

no_invalidate

TRUEに設定した場合、依存カーソルは無効化されません。FALSEに設定した場合、依存カーソルは即時に無効化されます。DBMS_STATS.AUTO_INVALIDATE.を使用すると、従属カーソルを無効化するかどうかがOracleにより決定されます。これが通常のデフォルトです。

force

TRUEに設定すると、ルール索引がロックされている場合でも統計が収集されます。FALSE(デフォルト)に設定すると、ルール索引がロックされている場合は統計が収集されません。

使用方法

クラスタ、ドメインおよび結合索引を除いて、索引統計コレクションはパラレル化できます。

このプロシージャは、ルール索引の情報を含む内部表パーティションの統計を収集するDBMS_STATS.GATHER_TABLE_STATSプロシージャを内部的にコールします。DBMS_STATS.GATHER_TABLE_STATSプロシージャについては、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。

ルール索引の詳細は、1.3.7項を参照してください。

次の例では、ルール索引rdfs_rix_familyの統計を収集します。

EXECUTE SEM_APIS.ANALYZE_RULES_INDEX('rdfs_rix_family');

SEM_APIS.BULK_LOAD_FROM_STAGING_TABLE

書式

SEM_APIS.BULK_LOAD_FROM_STAGING_TABLE(

     model_name IN VARCHAR2,

     table_owner IN VARCHAR2,

     table_name IN VARCHAR2,

     flags IN VARCHAR2 DEFAULT NULL,

     debug IN BINARY_INTEGER DEFAULT NULL);

説明

ステージング表からセマンティク・データをロードします。

パラメータ

model_name

モデルの名前。

table_owner

ロードされるセマンティク・データを保持するステージング表を所有するスキーマの名前。

table_name

ロードされるセマンティク・データを保持するステージング表の名前。

flags

次のキーワード指定が1つ以上含まれる、引用符で囲んだオプションの文字列。

  • PARALLEL_CREATE_INDEXを指定すると、内部索引をパラレルに作成できるため、バルク・ロード処理のパフォーマンスが向上する可能性があります。

  • PARALLEL=<integer>を指定すると、バルク・ロード中に使用される処理のほとんどを、指定した並列度を使用してパラレルに実行できます。

  • <task>_JOIN_HINT=<join_type><task>は、バルク・ロード中に実行される内部タスクで、IZC(ゼロ衝突)、MBV(バッチ値をマージ)またはMBT(バッチ・トリプルをマージ。トリプルを空でないモデルに追加するときに使用される。)のいずれかです。<join_type>は、USE_NLまたはUSE_HASHです。

debug

(将来使用するために予約済)

使用方法

このプロシージャをコールする前に、ステージング表にセマンティク・データをロードする必要があります。詳細は、1.7.1項を参照してください。

次の例では、スキーマSCOTTのステージング表STAGE_TABLEに格納されたセマンティク・データをセマンティク・モデルfamilyにロードします。この例には、結合ヒントがいくつか含まれています。

EXECUTE SEM_APIS.BULK_LOAD_FROM_STAGING_TABLE('family', 'scott', 'stage_table', flags => 'IZC_JOIN_HINT=USE_HASH MBV_JOIN_HINT=USE_HASH');

SEM_APIS.CLEANUP_FAILED

書式

SEM_APIS.CLEANUP_FAILED(

     rdf_object_type IN VARCHAR2,

     rdf_object_name IN VARCHAR2);

説明

指定したルールベースまたはルール索引が失敗の状態にある場合、それらを削除します。

パラメータ

rdf_object_type

RDFオブジェクトのタイプ。RULEBASE(ルールベースの場合)またはRULES_INDEX(ルール索引の場合)。

rdf_object_name

rdf_object_typeタイプのRDFオブジェクトの名前。

使用方法

このプロシージャは、指定したRDFオブジェクトが失敗の状態にあるかどうかをチェックします。オブジェクトが失敗の状態にある場合、プロシージャはそのオブジェクトを削除します。

ルールベースまたはルール索引が失敗の状態になるのは、そのオブジェクトの作成中にシステム障害が発生した場合です。ルールベースまたはルール索引が失敗の状態にあるかどうかをチェックするには、それぞれSDO_RULEBASE_INFOビュー(1.3.6項を参照)またはSDO_RULES_INDEX_INFOビュー(1.3.7項を参照)のSTATUS列の値がFAILEDであるかどうかを確認します。

ルールベースまたはルール索引が失敗の状態にない場合、このプロシージャは何のアクションも実行せず、成功のステータスを戻します。

RDFオブジェクトが現在使用されている場合、例外が生成されます。

次の例では、ルールベースfamily_rbが失敗の状態にある場合にのみ、そのルールベースを削除します。

EXECUTE SEM_APIS.CLEANUP_FAILED('RULEBASE', 'family_rb');

SEM_APIS.CREATE_ENTAILMENT

書式

SEM_APIS.CREATE_ENTAILMENT(

     index_name_in IN VARCHAR2,

     models_in IN SEM_MODELS,

     rulebases_in IN SEM_RULEBASES,

     passes IN NUMBER DEFAULT SEM_APIS.REACH_CLOSURE,

     inf_components_in IN VARCHAR2 DEFAULT NULL,

     options IN VARCHAR2 DEFAULT NULL);

説明

OWLまたはRDFS推論を実行する(およびオプションでユーザー定義ルールを使用する)際に使用できるルール索引(伴意)を作成します。

パラメータ

index_name_in

作成するルール索引(伴意)の名前。

models_in

1つ以上のモデル名。そのデータ型は、TABLE OF VARCHAR2(25)という定義を持つSEM_MODELSです。

rulebases_in

1つ以上のルールベース名。そのデータ型は、TABLE OF VARCHAR2(25)という定義を持つSEM_RULEBASESです。ルールおよびルールベースの詳細は、1.3.6項を参照してください。

passes

推論エンジンを実行する回数。デフォルト値はSEM_APIS.REACH_CLOSUREであり、推論エンジンは閉包に到達するまで実行されます。指定した実行回数が、閉包に到達するのに必要な実際の実行回数より少ない場合、ルール索引のステータスはINCOMPLETEに設定されます。

inf_components_in

選択的またはコンポーネント・ベースの推論を実行する場合の推論コンポーネントを示すキーワードのカンマ区切りの文字列。このパラメータがNULLの場合、推論コンポーネントのデフォルト・セットが使用されます。推論コンポーネントの詳細は、「使用方法」を参照してください。

options

デフォルトの推論動作を上書きして推論プロセスを制御するためのオプションのカンマ区切りの文字列。オプションを有効化するには、option-name=Tを指定します。オプションを無効化するには、option-name=Fを指定します(デフォルト)。使用可能なoption-nameの値は、PROOFDISTANCEENTAIL_ANYWAYおよびUSER_RULESです。各値の詳細は、「使用方法」を参照してください。

使用方法

inf_components_inパラメータには、キーワードSCOHCOMPHDISJHSYMMHINVHSPIHSPOHDOMHRANHEQCHEQPHFPHIFPHSAMHDOMRANSCODISJINVSPOFPIFPSYMMTRANSDIFSAMRDFS2RDFS3RDFS4aRDFS4bRDFS5RDFS6RDFS7RDFS8RDFS9RDFS10RDFS11RDFS12RDFS13RDFP1RDFP2RDFP3RDFP4RDFP6RDFP7RDFP8AXRDFP8BXRDFP9RDFP10RDFP11RDFP12ARDFP12BRDFP12CRDFP13ARDFP13BRDFP13CRDFP14ARDFP14BXRDFP15RDFP16の任意の組合せを指定できます。これらのキーワードの意味の説明は、キーワードのアルファベット順のリストである表3-1を参照してください。

OWLPRIMEボキャブラリの推論コンポーネントのデフォルト・セットには、SCOHCOMPHDISJHSYMMHINVHSPIHSPOHDOMHRANHEQCHEQPHFPHIFPHSAMHDOMRANSCODISJCOMPINVSPOFPIFPSYMMTRANSDIFRDFP14ARDFP14BXRDFP15RDFP16が含まれます。コンポーネントSAMは、一部のオントロジで多数の新規トリプルを生成することが多いため、このデフォルト・リストには含まれません。

表3-1 inf_components_inパラメータの推論キーワード

キーワード 説明

COMPH

owl:complementOf表明、およびowl:complementOfと他の言語構成要素との相互作用に基づいて推論を実行します。

DIF

owl:differentFromの対称性に基づいてowl:differentFrom表明を生成します。

DISJ

owl:disjointWith表明を使用してインスタンス・レベルでowl:differentFrom関係を推論します。

DISJH

owl:disjointWith表明、および他の言語構成要素との相互作用に基づいて推論を実行します。

DOM

RDFS2に基づいて推論を実行します。

DOMH

rdfs:domain表明、および他の言語構成要素との相互作用に基づいて推論を実行します。

EQCH

owl:equivalentClassに関連する推論を実行します。

EQPH

owl:equivalentPropertyに関連する推論を実行します。

FP

owl:FunctionalPropertyのインスタンスを使用してインスタンス・レベルの推論を実行します。

FPH

owl:FunctionalPropertyのインスタンスを使用して推論を実行します。

IFP

owl:InverseFunctionalPropertyのインスタンスを使用してインスタンス・レベルの推論を実行します。

IFPH

owl:InverseFunctionalPropertyのインスタンスを使用して推論を実行します。

INV

owl:inverseOf表明を使用してインスタンス・レベルの推論を実行します。

INVH

owl:inverseOf表明、および他の言語構成要素との相互作用に基づいて推論を実行します。

RANH

rdfs:range表明、および他の言語構成要素との相互作用に基づいて推論を実行します。

RDFP*

(接頭辞RDFP付きのコンポーネントに対応するルールの詳細は、『Completeness, decidability and complexity of entailment for RDF Schema and a semantic extension involving the OWL vocabulary』(H.J. Horst)を参照してください。)

RDFS2, ... RDFS13

RDFS2、RDFS3、RDFS4a、RDFS4b、RDFS5、RDFS6、RDFS7、RDFS8、RDFS9、RDFS10、RDFS11、RDFS12およびRDFS13の詳細は、http://www.w3.org/TR/rdf-mt/にある「RDF Semantics」の7.3項を参照してください。RDFSコンポーネントの多くは、OWL推論とは無関係です。

SAM

各個体およびowl:sameAsの既存の表明に基づいてそれらの個体に関する推論を実行します。

SAMH

owl:sameAsの推移性および対称性を使用してowl:sameAs表明を推論します。

SCO

RDFS9に基づいて推論を実行します。

SCOH

既存のrdfs:subClassOf表明に基づいてsubClassOf階層を生成します。基本的には、推移性に基づいてC1 rdfs:subClassOf C2およびC2 rdfs:subClassOf C3からC1 rdfs:subClassOf C3が推論されます。SCOHは、RDFS11の別名でもあります。

SPIH

rdfs:subPropertyOf表明とowl:inverseOf表明間の相互作用に基づいて推論を実行します。

SPO

RDFS7に基づいて推論を実行します。

SPOH

rdfs:subPropertyOfの推移性に基づいてrdfs:subPropertyOf階層を生成します。これは、RDFS5の別名です。

SYMM

owl:SymmetricPropertyのインスタンスを使用してインスタンス・レベルの推論を実行します。

SYMH

owl:SymmetricPropertyタイプのプロパティに関する推論を実行します。

TRANS

owl:TransitivePropertyのインスタンスの推移閉包を計算します。


コンポーネントを選択解除するには、コンポーネント名の次にマイナス記号(-)を付けます。たとえば、SCOH-と指定すると、subClassOf階層の推論が選択解除されます。

optionsパラメータでは、次のオプションを有効化してデフォルトの推論動作を上書きできます。

次の例では、OWLPRIMEルールベースを使用してルール索引OWLTST_IDXを作成し、推論されたトリプルに対して証明を生成します。

EXECUTE sem_apis.create_entailment('owltst_idx', sem_models('owltst'), sem_rulebases('OWLPRIME'), SEM_APIS.REACH_CLOSURE, null, 'PROOF=T');

SEM_APIS.CREATE_RULEBASE

書式

SEM_APIS.CREATE_RULEBASE(

     rulebase_name IN VARCHAR2);

説明

ルールベースを作成します。

パラメータ

rulebase_name

ルールベースの名前。

使用方法

このプロシージャは、ユーザー定義のルールベースを作成します。ルールベースの作成後、そのルールベースにルールを追加できます。RDFデータの問合せでルールベースのルールを適用するには、SEM_MATCHテーブル・ファンクションのコールでルールベースを指定します。

ルールおよびルールベースの詳細は、1.3.6項を参照してください。SEM_MATCHテーブル・ファンクションの詳細は、1.6項を参照してください。

次の例では、ルールベースfamily_rbを作成します。(この例は、1.10.2項例1-14からの抜粋です。)

EXECUTE SEM_APIS.CREATE_RULEBASE('family_rb');

SEM_APIS.CREATE_RULES_INDEX

書式

SEM_APIS.CREATE_RULES_INDEX(

     index_name_in IN VARCHAR2,

     models_in IN SEM_MODELS,

     rulebases_in IN SEM_RULEBASES);

説明

1つ以上のモデルおよび1つ以上のルールベースのデータに基づいてルール索引を作成します。

パラメータ

index_name_in

ルール索引の名前。

models_in

1つ以上のモデル名。そのデータ型は、TABLE OF VARCHAR2(25)という定義を持つSEM_MODELSです。

rulebases_in

1つ以上のルールベース名。そのデータ型は、TABLE OF VARCHAR2(25)という定義を持つSEM_RULEBASESです。ルールおよびルールベースの詳細は、1.3.6項を参照してください。

使用方法

このプロシージャは、ルール索引を作成します。ルール索引の詳細は、1.3.7項を参照してください。

次の例では、familyモデルとRDFSおよびfamily_rbルールベースを使用してルール索引family_rb_rix_familyを作成します。(この例は、1.10.2項例1-14からの抜粋です。)

BEGIN
  SEM_APIS.CREATE_RULES_INDEX(
    'rdfs_rix_family',
    SEM_Models('family'),
    SEM_Rulebases('RDFS','family_rb'));
END;
/

SEM_APIS.CREATE_SEM_MODEL

書式

SEM_APIS.CREATE_SEM_MODEL(

     model_name IN VARCHAR2,

     table_name IN VARCHAR2,

     column_name IN VARCHAR2);

     model_tablespace IN VARCHAR2 DEFAULT NULL);

説明

セマンティク・テクノロジ・モデルを作成します。

パラメータ

model_name

モデルの名前。

table_name

このモデルのセマンティク・テクノロジ・データへの参照を保持する表の名前。

column_name

table_nameのSDO_RDF_TRIPLE_S型の列の名前。

model_tablespace

このモデルをサポートするためにOracleで使用される表および他のデータベース・オブジェクト用の表領域の名前。デフォルト値は、SEM_APIS.CREATE_SEM_NETWORKプロシージャのコールで指定された表領域です。

使用方法

このプロシージャをコールしてセマンティク・テクノロジ・モデルを作成する前に、セマンティク・テクノロジ・データへの参照を保持する表を作成する必要があります。詳細は、1.9項を参照してください。

このプロシージャは、モデルをMDSYS.SEM_MODEL$ビュー(1.3.1項を参照)に追加します。

このプロシージャは、モデルを作成する際にサポートされる唯一の方法です。MDSYS.SEM_MODEL$ビューにSQLのINSERT文を使用しないでください。

モデルを削除するには、SEM_APIS.DROP_SEM_MODELプロシージャを使用します。

次の例では、セマンティク・テクノロジ・モデルarticlesを作成します。モデルのトリプル・データへの参照は、ARTICLES_RDF_DATA表のTRIPLE列に格納されます。(この例は、1.10.1項例1-13からの抜粋です。)

EXECUTE SEM_APIS.CREATE_SEM_MODEL('articles', 'articles_rdf_data', 'triple');

ARTICLES_RDF_DATA表の定義は、次のとおりです。

CREATE TABLE articles_rdf_data (id NUMBER, triple SDO_RDF_TRIPLE_S);

SEM_APIS.CREATE_SEM_NETWORK

書式

SEM_APIS.CREATE_SEM_NETWORK(

     tablespace_name IN VARCHAR2

説明

データベースにセマンティク・テクノロジ・サポートを追加します。

パラメータ

tablespace_name

このプロシージャにより作成される表で使用する表領域の名前。この表領域は、作成されるすべてのモデルのデフォルトになりますが、モデルの作成時にSEM_APIS.CREATE_SEM_MODELプロシージャのコールでmodel_tablespaceパラメータを指定することで、このデフォルトを上書きできます。

使用方法

このプロシージャは、セマンティク・テクノロジ・サポートで使用されるシステム表および他のデータベース・オブジェクトを作成します。

このプロシージャのコールでセマンティク・テクノロジのシステム表の表領域を作成し、表領域名を指定する必要があります。(SYSTEM表領域は指定しないでください。)作成する表領域に必要なサイズは、格納するセマンティク・テクノロジ・データの量に応じて変化します。

このプロシージャをコールするには、DBA権限を持つユーザーとしてデータベースに接続する必要があります。プロシージャは、データベースに対して1回のみコールします。

データベースからセマンティク・テクノロジ・サポートを削除するには、DBA権限を持つユーザーとして接続し、SEM_APIS.DROP_SEM_NETWORKプロシージャをコールします。

次の例では、セマンティク・テクノロジのシステム表の表領域を作成し、データベースにセマンティク・テクノロジ・サポートを追加します。

CREATE TABLESPACE rdf_tblspace
 DATAFILE '/oradata/orcl/rdf_tblspace.dat' SIZE 1024M REUSE
 AUTOEXTEND ON NEXT 256M MAXSIZE UNLIMITED
 SEGMENT SPACE MANAGEMENT AUTO;
. . .
EXECUTE SEM_APIS.CREATE_SEM_NETWORK('rdf_tblspace');

SEM_APIS.CREATE_VIRTUAL_MODEL

書式

SEM_APIS.CREATE_VIRTUAL_MODEL(

     vm_name IN VARCHAR2,

     models IN SEM_MODELS,

     rulebases IN SEM_RULEBASES DEFAULT NULL,

     options IN VARCHAR2 DEFAULT NULL);

説明

指定されたセマンティク・モデルおよびルールベースを含む仮想モデルを作成します。

パラメータ

vm_name

作成する仮想モデルの名前。

models

1つ以上のセマンティク・モデル名。そのデータ型は、TABLE OF VARCHAR2(25)という定義を持つSEM_MODELSです。少なくとも1つのセマンティク・モデルを指定する必要があります。

rulebases

1つ以上のルールベース名。そのデータ型は、TABLE OF VARCHAR2(25)という定義を持つSEM_RULEBASESです。このパラメータがNULLの場合、仮想モデル定義にルールベースは含まれません。ルールおよびルールベースの詳細は、1.3.6項を参照してください。

options

(将来使用するために予約済)

使用方法

(使用方法の情報を含む)仮想モデルの説明は、1.3.8項を参照してください。

指定されたセマンティク・モデルとルールベースの組合せごとに、ルール索引が存在する必要があります。

仮想モデルを作成するには、(A)指定された各モデルおよび対応するルール索引の所有者、または(B)DBA権限を持つユーザーである必要があります。

このプロシージャは、次の書式の名前を持つビューを作成します。

このプロシージャを起動するユーザーは、仮想モデルの所有者となり、SEMU_vm_nameおよびSEMV_vm_nameビューに対するSELECT WITH GRANT権限を持ちます。対応する仮想モデルを問い合せるには、ユーザーはこれらのビューに対するselect権限を持っている必要があります。

次の例では、仮想モデルVM1を作成します。

EXECUTE sem_apis.create_virtual_model('vm1', sem_models('model_1', 'model_2'), sem_rulebases('OWLPRIME'));

SEM_APIS.DROP_ENTAILMENT

書式

SEM_APIS.DROP_ENTAILMENT(

     index_name_in IN VARCHAR2);

説明

ルール索引(伴意)を削除します。

パラメータ

index_name_in

削除するルール索引(伴意)の名前。

使用方法

SEM_APIS.CREATE_ENTAILMENTプロシージャを使用して作成した伴意をこのプロシージャで削除できます。

次の例では、ルール索引OWLTST_IDXを削除します。

EXECUTE sem_apis.drop_entailment('owltst_idx');

SEM_APIS.DROP_RULEBASE

書式

SEM_APIS.DROP_RULEBASE(

     rulebase_name IN VARCHAR2);

説明

ルールベースを削除します。

パラメータ

rulebase_name

ルールベースの名前。

使用方法

このプロシージャは、指定されたルールベースを削除します。削除されたルールベースは、SEM_MATCHテーブル・ファンクションのコールで使用できなくなります。ルールベースの詳細は、1.3.6項を参照してください。

ルールベースを削除できるのは、そのルールベースの作成者のみです。

次の例では、ルールベースfamily_rbを削除します。

EXECUTE SEM_APIS.DROP_RULEBASE('family_rb');

SEM_APIS.DROP_RULES_INDEX

書式

SEM_APIS.DROP_RULES_INDEX(

     index_name IN VARCHAR2);

説明

ルール索引を削除します。

パラメータ

index_name

ルール索引の名前。

使用方法

このプロシージャは、指定されたルール索引を削除します。削除されたルール索引は、RDFデータに対する問合せで使用できなくなります。ルール索引の詳細は、1.3.7項を参照してください。

このプロシージャをコールしてルール索引を削除できるのは、ルールベースの所有者のみです。ただし、ルール索引の基盤であるモデルまたはルールベースが権限のあるユーザーによって削除されると、そのルール索引は暗黙的に削除されます。この場合、ルール索引は自動的に削除されます。

次の例では、ルール索引rdfs_rix_familyを削除します。

EXECUTE SEM_APIS.DROP_RULES_INDEX ('rdfs_rix_family');

SEM_APIS.DROP_SEM_INDEX

書式

SEM_APIS.DROP_SEM_INDEX(

     index_code IN VARCHAR2);

説明

セマンティク・ネットワークのモデルおよびルール索引のセマンティク・ネットワーク索引を削除します。

パラメータ

index_code

索引コード文字列。前のSEM_APIS.ADD_SEM_INDEXプロシージャのコールで指定されたindex_code値と一致している必要があります。

使用方法

セマンティク・ネットワーク索引の詳細は、1.8項を参照してください。

次の例では、索引コード文字列pcsmを使用して、セマンティク・ネットワークのモデルおよびルール索引に対するセマンティク・ネットワーク索引を削除します。

EXECUTE SEM_APIS.DROP_SEM_INDEX('pscm');

SEM_APIS.DROP_SEM_MODEL

書式

SEM_APIS.DROP_SEM_MODEL(

     model_name IN VARCHAR2);

説明

セマンティク・テクノロジ・モデルを削除します。

パラメータ

model_name

モデルの名前。

使用方法

このプロシージャは、モデルをMDSYS.SEM_MODEL$ビュー(1.3.1項を参照)から削除します。

このプロシージャは、モデルを削除する際にサポートされる唯一の方法です。MDSYS.SEM_MODEL$ビューにSQLのDELETE文を使用しないでください。

モデルを削除できるのは、そのモデルの作成者のみです。

次の例では、セマンティク・テクノロジ・モデルarticlesを削除します。

EXECUTE SEM_APIS.DROP_SEM_MODEL('articles');

SEM_APIS.DROP_SEM_NETWORK

書式

SEM_APIS.DROP_SEM_NETWORK();

説明

データベースからセマンティク・テクノロジ・サポートを削除します。

パラメータ

なし。

使用方法

データベースからセマンティク・テクノロジ・サポートを削除するには、DBA権限を持つユーザーとして接続し、このプロシージャをコールします。

このプロシージャをコールする前に、すべてのセマンティク・テクノロジ・モデルおよびルールベースを削除してください。

次の例では、データベースからセマンティク・テクノロジ・サポートを削除します。

EXECUTE SEM_APIS.DROP_SEM_NETWORK;

SEM_APIS.DROP_USER_INFERENCE_OBJS

書式

SEM_APIS.DROP_USER_INFERENCE_OBJS(

     uname IN VARCHAR2);

説明

指定されたデータベース・ユーザーに所有されているすべてのルールベースおよびルール索引を削除します。

パラメータ

uname

データベース・ユーザーの名前。(この値には、大/小文字の区別があります。たとえば、HERMANhermanは異なるユーザーとみなされます。)

使用方法

指定したユーザーのルールおよびルールベースを削除するのに十分な権限を持っている必要があります。

このプロシージャは、データベース・ユーザーは削除しません。そのユーザーに所有されているRDFのルールベースとルール索引のみを削除します。

次の例では、ユーザーSCOTTに所有されているすべてのルールベースとルール索引を削除します。

EXECUTE SEM_APIS.DROP_USER_INFERENCE_OBJS('SCOTT');

PL/SQL procedure successfully completed.

SEM_APIS.DROP_VIRTUAL_MODEL

書式

SEM_APIS.DROP_VIRTUAL_MODEL(

     vm_name IN VARCHAR2);

説明

仮想モデルを削除します。

パラメータ

vm_name

削除する仮想モデルの名前。

使用方法

このプロシージャを使用すると、SEM_APIS.CREATE_VIRTUAL_MODELプロシージャを使用して作成した仮想モデルを削除できます。仮想モデルのコンポーネント・モデル、ルールベースまたはルール索引が削除されると、その仮想モデルは自動的に削除されます。

このプロシージャを使用するには、指定した仮想モデルの所有者である必要があります。

(使用方法の情報を含む)仮想モデルの説明は、1.3.8項を参照してください。

次の例では、仮想モデルVM1を削除します。

EXECUTE sem_apis.drop_virtual_model('vm1');

SEM_APIS.GET_MODEL_ID

書式

SEM_APIS.GET_MODEL_ID(

     model_name IN VARCHAR2

     ) RETURN NUMBER;

説明

セマンティク・テクノロジ・モデルのモデルID番号を戻します。

パラメータ

model_name

セマンティク・テクノロジ・モデルの名前。

使用方法

model_nameの値は、MDSYS.SEM_MODEL$ビュー(1.3.1項を参照)のMODEL_NAME列の値と一致している必要があります。

次の例では、モデルarticlesのモデルID番号を戻します。(この例は、1.10.1項例1-13からの抜粋です。)

SELECT SEM_APIS.GET_MODEL_ID('articles') AS model_id FROM DUAL;

  MODEL_ID
----------
         1

SEM_APIS.GET_MODEL_NAME

書式

SEM_APIS.GET_MODEL_NAME(

     model_id IN NUMBER

     ) RETURN VARCHAR2;

説明

セマンティク・テクノロジ・モデルのモデル名を戻します。

パラメータ

model_id

セマンティク・テクノロジ・モデルのID番号。

使用方法

model_idの値は、MDSYS.SEM_MODEL$ビュー(1.3.1項を参照)のMODEL_ID列の値と一致している必要があります。

次の例では、IDの値が1のモデルのモデル名を戻します。

SQL> SELECT SEM_APIS.GET_MODEL_NAME(1) AS model_name FROM DUAL;

MODEL_NAME
--------------------------------------------------------------------------------
ARTICLES

SEM_APIS.GET_TRIPLE_ID

書式

SEM_APIS.GET_TRIPLE_ID(

     model_id IN NUMBER,

     subject IN VARCHAR2,

     property IN VARCHAR2,

     object IN VARCHAR2

     ) RETURN VARCHAR2;

または

SEM_APIS.GET_TRIPLE_ID(

     model_name IN VARCHAR2,

     subject IN VARCHAR2,

     property IN VARCHAR2,

     object IN VARCHAR2

     ) RETURN VARCHAR2;

説明

指定されたセマンティク・テクノロジ・モデルのトリプルのIDを戻します(トリプルが存在しない場合、NULL値を戻します)。

パラメータ

model_id

セマンティク・テクノロジ・モデルのID番号。MDSYS.SEM_MODEL$ビュー(1.3.1項を参照)のMODEL_ID列の値と一致している必要があります。

model_name

セマンティク・テクノロジ・モデルの名前。MDSYS.SEM_MODEL$ビュー(1.3.1項を参照)のMODEL_NAME列の値と一致している必要があります。

subject

主語。MDSYS.RDF_VALUE$表(1.3.2項を参照)のVALUE_NAME列の値と一致している必要があります。

property

プロパティ。MDSYS.RDF_VALUE$表(1.3.2項を参照)のVALUE_NAME列の値と一致している必要があります。

object

目的語。MDSYS.RDF_VALUE$表(1.3.2項を参照)のVALUE_NAME列の値と一致している必要があります。

使用方法

このファンクションには、2つの書式があり、モデル番号またはモデル名でセマンティク・テクノロジ・モデルを指定できます。

次の例では、トリプルのID番号を戻します。(この例は、1.10.1項例1-13からの抜粋です。)

SELECT SEM_APIS.GET_TRIPLE_ID(
  'articles',
  'http://nature.example.com/Article2',
  'http://purl.org/dc/terms/references',
  'http://nature.example.com/Article3') AS RDF_triple_id FROM DUAL;

RDF_TRIPLE_ID
--------------------------------------------------------------------------------
2_9F2BFF05DA0672E_90D25A8B08C653A_46854582F25E8AC5

SEM_APIS.IS_TRIPLE

書式

SEM_APIS.IS_TRIPLE(

     model_id IN NUMBER,

     subject IN VARCHAR2,

     property IN VARCHAR2,

     object IN VARCHAR2) RETURN VARCHAR2;

または

SEM_APIS.IS_TRIPLE(

     model_name IN VARCHAR2,

     subject IN VARCHAR2,

     property IN VARCHAR2,

     object IN VARCHAR2) RETURN VARCHAR2;

説明

文がデータベースの指定されたモデルの既存のトリプルであるかどうかをチェックします。

パラメータ

model_id

セマンティク・テクノロジ・モデルのID番号。MDSYS.SEM_MODEL$ビュー(1.3.1項を参照)のMODEL_ID列の値と一致している必要があります。

model_name

セマンティク・テクノロジ・モデルの名前。MDSYS.SEM_MODEL$ビュー(1.3.1項を参照)のMODEL_NAME列の値と一致している必要があります。

subject

主語。MDSYS.RDF_VALUE$表(1.3.2項を参照)のVALUE_NAME列の値と一致している必要があります。

property

プロパティ。MDSYS.RDF_VALUE$表(1.3.2項を参照)のVALUE_NAME列の値と一致している必要があります。

object

目的語。MDSYS.RDF_VALUE$表(1.3.2項を参照)のVALUE_NAME列の値と一致している必要があります。

使用方法

このファンクションは、文字列値FALSETRUEまたはTRUE (EXACT)を戻します。

次の例では、文がデータベースのトリプルであるかどうかをチェックします。この場合、完全一致するトリプルが存在します。(この例は、1.10.1項例1-13からの抜粋です。)

SELECT SEM_APIS.IS_TRIPLE(
  'articles',
  'http://nature.example.com/Article2',
  'http://purl.org/dc/terms/references',
  'http://nature.example.com/Article3') AS is_triple FROM DUAL;

IS_TRIPLE
--------------------------------------------------------------------------------
TRUE (EXACT)

SEM_APIS.LOOKUP_RULES_INDEX

書式

SEM_APIS.LOOKUP_RULES_INDEX (

     models IN SEM_MODELS,

     rulebases IN SEM_RULEBASES

     ) RETURN VARCHAR2;

説明

指定されたモデルおよびルールベースに基づいてルール索引の名前を戻します。

パラメータ

models

1つ以上のモデル名。そのデータ型は、TABLE OF VARCHAR2(25)という定義を持つSEM_MODELSです。

rulebases

1つ以上のルールベース名。そのデータ型は、TABLE OF VARCHAR2(25)という定義を持つSEM_RULEBASESです。ルールおよびルールベースの詳細は、1.3.6項を参照してください。

使用方法

ルールベース索引が戻されるには、その索引が指定したすべてのモデルおよびルールベースに基づいている必要があります。

次の例では、familyモデルとRDFSおよびfamily_rbルールベースに基づくルール索引を検出します。(この例は、1.10.2項例1-14からの抜粋です。)

SELECT SEM_APIS.LOOKUP_RULES_INDEX(SEM_MODELS('family'),
  SEM_RULEBASES('RDFS','family_rb')) AS lookup_rules_index FROM DUAL;

LOOKUP_RULES_INDEX
--------------------------------------------------------------------------------
RDFS_RIX_FAMILY

SEM_APIS.VALIDATE_ENTAILMENT

書式

SEM_APIS.VALIDATE_ENTAILMENT(

     models_in IN SEM_MODELS,

     rulebases_in IN SEM_RULEBASES,

     criteria_in IN VARCHAR2 DEFAULT NULL,

     max_conflict IN NUMBER DEFAULT 100,

     options IN VARCHAR2 DEFAULT NULL

     ) RETURN RDF_LONGVARCHARARRAY;

説明

1つ以上のモデルでOWLまたはRDFS推論を実行する際に使用できるルール索引(伴意)を検証します。

パラメータ

models_in

1つ以上のモデル名。そのデータ型は、TABLE OF VARCHAR2(25)という定義を持つSEM_MODELSです。

rulebases_in

1つ以上のルールベース名。そのデータ型は、TABLE OF VARCHAR2(25)という定義を持つSEM_RULEBASESです。ルールおよびルールベースの詳細は、1.3.6項を参照してください。

criteria_in

実行する検証チェックのカンマ区切りの文字列。このパラメータを指定しない場合、デフォルトで次のすべてのチェックが実行されます。

  • UNSAT: 充足不可能なクラスを検出します。

  • EMPTY: 充足不可能なクラスに属するインスタンスを検出します。

  • SYNTAX_S: URIでも空白ノードでもない主語を含むトリプルを検出します。

  • SYNTAX_P: URIではない述語を含むトリプルを検出します。

  • SELF_DIF: 自己自身と異なる個体を検出します。

  • INST: 同時に2つの排他クラスに属する個体を検出します。

  • SAM_DIF: 同じであり(owl:sameAs)かつ異なる(owl:differentFrom)個体のペアを検出します。

デフォルトより少ない数のチェックを指定するには、実行するチェックの文字列のみを指定します。たとえば、criteria_in => 'UNSAT'と指定すると、検証プロセスでは充足不可能なクラスのみが検索されます。

max_conflict

検証プロセスを停止する前に検出する競合の最大数。デフォルト値は100です。

options

(現在は未使用。Oracleで使用するために予約済。)

使用方法

このプロシージャは、元の伴意の非一貫性を検出するために使用できます。詳細は、2.2.5項を参照してください。

このプロシージャは、エラーが検出されなかった場合はNULL値を戻し、エラーが検出された場合はVARRAY(32767) OF VARCHAR2(4000)という定義を持つRDF_LONGVARCHARARRAY型のオブジェクトを戻します。

伴意を作成するには、SEM_APIS.CREATE_ENTAILMENTプロシージャを使用します。

このプロシージャの例は、2.2.5項例2-5を参照してください。


SEM_APIS.VALIDATE_MODEL

書式

SEM_APIS.VALIDATE_MODEL(

     models_in IN SEM_MODELS,

     criteria_in IN VARCHAR2 DEFAULT NULL,

     max_conflict IN NUMBER DEFAULT 100,

     options IN VARCHAR2 DEFAULT NULL

     ) RETURN RDF_LONGVARCHARARRAY;

説明

1つ以上のモデルを検証します。

パラメータ

models_in

1つ以上のモデル名。そのデータ型は、TABLE OF VARCHAR2(25)という定義を持つSEM_MODELSです。

criteria_in

実行する検証チェックのカンマ区切りの文字列。このパラメータを指定しない場合、デフォルトで次のすべてのチェックが実行されます。

  • UNSAT: 充足不可能なクラスを検出します。

  • EMPTY: 充足不可能なクラスに属するインスタンスを検出します。

  • SYNTAX_S: URIでも空白ノードでもない主語を含むトリプルを検出します。

  • SYNTAX_P: URIではない述語を含むトリプルを検出します。

  • SELF_DIF: 自己自身と異なる個体を検出します。

  • INST: 同時に2つの排他クラスに属する個体を検出します。

  • SAM_DIF: 同じであり(owl:sameAs)かつ異なる(owl:differentFrom)個体のペアを検出します。

デフォルトより少ない数のチェックを指定するには、実行するチェックの文字列のみを指定します。たとえば、criteria_in => 'UNSAT'と指定すると、検証プロセスでは充足不可能なクラスのみが検索されます。

max_conflict

検証プロセスを停止する前に検出する競合の最大数。デフォルト値は100です。

options

(現在は未使用。Oracleで使用するために予約済。)

使用方法

このプロシージャは、元のデータ・モデルの非一貫性を検出するために使用できます。詳細は、2.2.5項を参照してください。

このプロシージャは、エラーが検出されなかった場合はNULL値を戻し、エラーが検出された場合はVARRAY(32767) OF VARCHAR2(4000)という定義を持つRDF_LONGVARCHARARRAY型のオブジェクトを戻します。

次の例では、モデルfamilyを検証します。

SELECT SEM_APIS.VALIDATE_MODEL(SEM_MODELS('family')) FROM DUAL;

SEM_APIS.VALUE_NAME_PREFIX

書式

SEM_APIS.VALUE_NAME_PREFIX (

     value_name IN VARCHAR2,

     value_type IN VARCHAR2

     ) RETURN VARCHAR2;

説明

指定された値名と値タイプのペアに対応するMDSYS.RDF_VALUE$表のVNAME_PREFIX列の値を戻します。

パラメータ

value_name

値名。MDSYS.RDF_VALUE$表(1.3.2項を参照)のVALUE_NAME列の値と一致している必要があります。

value_type

値タイプ。MDSYS.RDF_VALUE$表(1.3.2項を参照)のVALUE_TYPE列の値と一致している必要があります。

使用方法

このファンクションでは、通常、MDSYS.RDF_VALUE$表の索引が値の検索処理に使用されるため、高速な問合せを実行できます。

次の問合せでは、VALUE_NAME_PREFIXファンクションで戻されたものと同じ接頭辞の値の付いたMDSYS.RDF_VALUE$表のすべての字句の値について、値名の部分を戻します。この問合せでは、MDSYS.RDF_VALUE$表の索引が使用されるため、効率的な検索が実行されます。

SELECT value_name FROM MDSYS.RDF_VALUE$
  WHERE vname_prefix = SEM_APIS.VALUE_NAME_PREFIX(
    'http://www.w3.org/1999/02/22-rdf-syntax-ns#type','UR');

VALUE_NAME
--------------------------------------------------------------------------------
http://www.w3.org/1999/02/22-rdf-syntax-ns#Alt
http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag
http://www.w3.org/1999/02/22-rdf-syntax-ns#List
http://www.w3.org/1999/02/22-rdf-syntax-ns#Property
http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq
http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement
http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral
http://www.w3.org/1999/02/22-rdf-syntax-ns#first
http://www.w3.org/1999/02/22-rdf-syntax-ns#nil
http://www.w3.org/1999/02/22-rdf-syntax-ns#object
http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate
http://www.w3.org/1999/02/22-rdf-syntax-ns#rest
http://www.w3.org/1999/02/22-rdf-syntax-ns#subject
http://www.w3.org/1999/02/22-rdf-syntax-ns#type
http://www.w3.org/1999/02/22-rdf-syntax-ns#value

15 rows selected.

SEM_APIS.VALUE_NAME_SUFFIX

書式

SEM_APIS.VALUE_NAME_SUFFIX (

     value_name IN VARCHAR2,

     value_type IN VARCHAR2

     ) RETURN VARCHAR2;

説明

指定された値名と値タイプのペアに対応するMDSYS.RDF_VALUE$表のVNAME_SUFFIX列の値を戻します。

パラメータ

value_name

値名。MDSYS.RDF_VALUE$表(1.3.2項を参照)のVALUE_NAME列の値と一致している必要があります。

value_type

値タイプ。MDSYS.RDF_VALUE$表(1.3.2項を参照)のVALUE_TYPE列の値と一致している必要があります。

使用方法

このファンクションでは、通常、MDSYS.RDF_VALUE$表の索引が値の検索処理に使用されるため、高速な問合せを実行できます。

次の問合せでは、VALUE_NAME_SUFFIXファンクションで戻されたものと同じ接尾辞の値の付いたMDSYS.RDF_VALUE$表のすべての字句の値について、値名の部分を戻します。この問合せでは、MDSYS.RDF_VALUE$表の索引が使用されるため、効率的な検索が実行されます。

SELECT value_name FROM MDSYS.RDF_VALUE$
  WHERE vname_suffix = SEM_APIS.VALUE_NAME_SUFFIX(
    'http://www.w3.org/1999/02/22-rdf-syntax-ns#type','UR');

VALUE_NAME
--------------------------------------------------------------------------------
http://www.w3.org/1999/02/22-rdf-syntax-ns#type