ヘッダーをスキップ
Oracle® Databaseセマンティク・テクノロジ開発者ガイド
11gリリース2 (11.2)
E52974-01
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

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

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

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

SEM_APIS.ADD_DATATYPE_INDEX

書式

SEM_APIS.ADD_DATATYPE_INDEX(

     datatype IN VARCHAR2,

     tablespace_name IN VARCHAR2 default NULL,

     parallel IN PLS_INTEGER default NULL,

     online IN BOOLEAN default FALSE,

     options IN VARCHAR2 default NULL);

説明

指定されたデータ型のデータ型索引をセマンティク・ネットワークに追加します。

パラメータ

datatype

索引付けするデータ型のURI。

tablespace_name

索引作成先の表領域。

parallel

索引作成時に使用する並列度。

online

TRUEに設定すると、索引の作成時に索引に影響を与えるDML操作が許可され、FALSE (デフォルト)に設定すると、索引の作成時に索引に影響を与えるDML操作は許可されません。

options

OPTION_NAME=option_value形式を使用する索引作成のオプションを指定する文字列。サポートされるオプションは、SRIDTOLERANCEおよびDIMENSIONSで、これらはすべて空間索引の作成(1.6.6.2項「空間データの索引付け」を参照)に関連付けられています。オプション名のキーワードは大/小文字の区別があるため、大文字で指定する必要があります。

使用方法

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

データ型索引付けの詳細は、1.9項を参照してください。

RDF空間データに対するデータ型索引の作成の詳細は、1.6.6.2項を参照してください。

次の例では、MY_TBS表領域にxsd:string型付きリテラルとプレーン・リテラルで索引を作成します。

EXECUTE SEM_APIS.ADD_DATATYPE_INDEX('http://www.w3.org/2001/XMLSchema#string', tablespace_name=>'MY_TBS', parallel=>4);

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_DATATYPE_INDEX

書式

SEM_APIS.ALTER_DATATYPE_INDEX(

     datatype IN VARCHAR2,

     command IN VARCHAR2,

     tablespace_name IN VARCHAR2 default NULL,

     parallel IN PLS_INTEGER default NULL,

     online IN BOOLEAN default FALSE);

説明

データ型索引を変更します。

パラメータ

datatype

索引付けするデータ型のURI。

options

実行するコマンドを指定する文字列です(データ型索引を再構築する場合はREBUILD、データ型索引を使用不能としてマークする場合はUNUSABLEを指定します)。このパラメータの値には、大/小文字の区別がありません。

tablespace_name

索引作成先の表領域。

parallel

索引を再構築する場合に使用する並列度。

online

TRUEに設定すると、索引の再構築時に索引に影響を与えるDML操作が許可され、FALSE (デフォルト)に設定すると、索引の再構築時に索引に影響を与えるDML操作は許可されません。

使用方法

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

データ型索引の詳細は、1.9項を参照してください。

次の例では、MY_TBS表領域にxsd:string型付きリテラルとプレーン・リテラルで索引を再構築します。

EXECUTE SEM_APIS.ALTER_DATATYPE_INDEX('http://www.w3.org/2001/XMLSchema#string', command=>'REBUILD', tablespace_name=>'MY_TBS', parallel=>4);

SEM_APIS.ALTER_ENTAILMENT

書式

SEM_APIS.ALTER_ENTAILMENT(

     entailment_name IN VARCHAR2,

     command IN VARCHAR2,

     tablespace_name IN VARCHAR2,

     parallel IN NUMBER(38) DEFAULT NULL);

説明

伴意(ルール索引)を変更します。現在、サポートされている唯一のアクションは、指定された表領域に伴意を移動することです。

パラメータ

entailment_name

伴意の名前。

command

文字列MOVEである必要があります。

tablespace_name

宛先表領域の名前。

parallel

操作に関連付けられている並列度。パラレル実行の詳細は、『Oracle Database VLDBおよびパーティショニング・ガイド』を参照してください。

使用方法

伴意の詳細は、1.3.7項を参照してください。

次の例では、rdfs_rix_familyという名前の伴意をmy_tbsという名前の表領域に移動します。

EEXECUTE SEM_APIS.ALTER_ENTAILMENT('rdfs_rix_family', 'MOVE',  'my_tbs');

SEM_APIS.ALTER_MODEL

書式

SEM_APIS.ALTER_MODEL(

     model_name IN VARCHAR2,

     command IN VARCHAR2,

     tablespace_name IN VARCHAR2,

     parallel IN NUMBER(38) DEFAULT NULL);

説明

モデルを変更します。現在、サポートされている唯一のアクションは、指定したデータベースにモデルを移動することです。

パラメータ

model_name

モデルの名前。

command

文字列MOVEである必要があります。

tablespace_name

宛先表領域の名前。

parallel

操作に関連付けられている並列度。パラレル実行の詳細は、『Oracle Database VLDBおよびパーティショニング・ガイド』を参照してください。

使用方法

モデルの詳細は、1.2項「セマンティク・データのモデル化」および1.3項「データベースのセマンティク・データ」を参照してください。

6.5項「RDFデータに対してWorkspace Managerサポートを使用する場合の特別な考慮事項」の説明にあるとおり、このプロシージャはバージョン対応RDFモデルではサポートされません。

次の例では、familyというモデルをmy_tbsという表領域に移動します。

EEXECUTE SEM_APIS.ALTER_MODEL('family', 'MOVE',  'my_tbs');

SEM_APIS.ALTER_SEM_INDEX_ON_ENTAILMENT

書式

SEM_APIS.ALTER_SEM_INDEX_ON_ENTAILMENT(

     entailment_name IN VARCHAR2,

     index_code IN VARCHAR2,

     command IN VARCHAR2,

     tablespace_name IN VARCHAR2 DEFAULT NULL,

     use_compression IN BOOLEAN DEFAULT NULL,

     parallel IN NUMBER(38) DEFAULT NULL,

     online IN BOOLEAN DEFAULT FALSE);

説明

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

パラメータ

entailment_name

伴意の名前。

index_code

索引コード文字列。

command

次のいずれかのコマンドを含む文字列値です(REBUILDを指定すると、伴意のセマンティク・ネットワーク索引を再構築し、UNUSABLEを指定すると、伴意のセマンティク・ネットワーク索引を使用不能としてマークします)。このパラメータの値には、大/小文字の区別がありません。

tablespace_name

再構築操作先の表領域の名前。

use_compression

索引を再構築する場合に圧縮を使用するかどうかを指定します。

parallel

操作に関連付けられている並列度。パラレル実行の詳細は、『Oracle Database VLDBおよびパーティショニング・ガイド』を参照してください。

online

TRUEに設定すると、索引の再構築時に索引に影響を与えるDML操作が許可され、FALSE (デフォルト)に設定すると、索引の再構築時に索引に影響を与えるDML操作は許可されません。

使用方法

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

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

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

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,

     tablespace_name IN VARCHAR2 DEFAULT NULL,

     use_compression IN BOOLEAN DEFAULT NULL,

     parallel IN NUMBER(38) DEFAULT NULL,

     online IN BOOLEAN DEFAULT FALSE);

説明

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

パラメータ

model_name

モデルの名前。

index_code

索引コード文字列。

command

次のいずれかのコマンドを含む文字列値です(REBUILDを指定すると、モデルのセマンティク・ネットワーク索引を再構築し、UNUSABLEを指定すると、モデルのセマンティク・ネットワーク索引を使用不能としてマークします)。このパラメータの値には、大/小文字の区別がありません。

tablespace_name

再構築操作先の表領域の名前。

use_compression

索引を再構築する場合に圧縮を使用するかどうかを指定します。

parallel

操作に関連付けられている並列度。パラレル実行の詳細は、『Oracle Database VLDBおよびパーティショニング・ガイド』を参照してください。

online

TRUEに設定すると、索引の再構築時に索引に影響を与えるDML操作が許可され、FALSE (デフォルト)に設定すると、索引の再構築時に索引に影響を与えるDML操作は許可されません。

使用方法

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

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

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

SEM_APIS.ANALYZE_ENTAILMENT

書式

SEM_APIS.ANALYZE_ENTAILMENT(

     entailment_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);

説明

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

パラメータ

entailment_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_ENTAILMENT('rdfs_rix_family');

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.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 INTEGER DEFAULT NULL,

     start_comment IN VARCHAR2 DEFAULT NULL,

     end_comment IN VARCHAR2 DEFAULT NULL);

説明

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

パラメータ

model_name

モデルの名前。

table_owner

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

table_name

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

flags

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

  • COLLECT_PRELOAD_STATS=<scope>、ここで<scope>は、VALUES_ONLYMODEL_ONLYVALUES_AND_MODELまたはNONE (デフォルト)を指定でき、データをロードする前に、RDF_VALUE$またはターゲットRDFモデルあるいはその両方の統計の収集を実行します。(NONEを指定すると統計の収集を実行しません。)

  • <stats_scope>_<stats_param>=<number>、ここで、

    <stats_scope>は、STATSSTATS_VALUESSTATS_BATCH_VALUESSTATS_MODELおよびSTATS_BATCH_TRIPLESのいずれかで、それぞれは、デフォルト、RDF_VALUE$表、バッチ値表、ターゲットRDFモデルおよびバッチ・トリプル表に対応しています。

    <stats_param>は、MIN_CNTMIN_PCTおよびEST_PCTのいずれかです。MIN_CNTは、実行する統計の収集に追加される値の最小カウントを示します。MIN_PCTは、実行する統計の収集に追加される必要のある値またはトリプルの元のカウントの最小パーセントを示します。EST_PCTは、統計の収集に使用されるestimate_percent (DBMS_STATSパッケージのサブプログラムで使用)です。これらのキーワードをどれも指定しない場合、いくつかの内部デフォルト値がこれらのしきい値として使用されます。

  • DEL_BATCH_DUPS=USE_INSERTを指定すると、挿入に基づく重複除去方法を使用できるため、入力データに多くの重複が含まれている場合に処理がより高速になる可能性があります。

  • MBV_METHOD=SHADOWを指定すると、異なる値をロードする方法を使用できるため、大量のロード処理がより高速になる可能性があります。

  • PARALLEL=<integer>を指定すると、バルク・ロード中に使用される処理のほとんどを、指定した、操作に関連付けられている並列度を使用してパラレルに実行できます。このキーワードを使用することによって、セッションのパラレルDML、DDLおよび問合せを自動的に実行できます。並列度を指定しない場合は、自動的に決定されます。

  • PARSEを指定すると、ステージング表から取得されるトリプルを解析できます(グラフ名を含むトリプルも解析できます)。

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

debug

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

start_comment

ロード操作の開始についてのオプションのコメント。

end_comment

ロード操作の終了についてのオプションのコメント。

使用方法

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

BULK_LOAD_FROM_STAGING_TABLEとファイングレイン・アクセス制御(VPDおよびOLS)の併用

VPDを使用する特定のモデルに対して、またはOLSを使用するネットワーク全体に対して、ファイングレイン・アクセス制御(第5章を参照)が有効な場合、関連ポリシーへの完全なアクセス権限を持つユーザーのみがバルク・ロード操作を実行できます。VPDポリシー(5.1.1項を参照)に関連付けられる名前空間に対して、パッケージ定数sem_rdfsa.VPD_FULL_ACCESSによって1に定義されるコンテキスト属性を設定することで、VPDポリシーへの完全なアクセス権限が付与されます。OLSが有効な場合、OLSポリシーへの完全なアクセス権限は、SA_USER_ADMIN.SET_USER_PRIVSプロシージャを使用して付与されます。

VPDが有効になっているモデルにロードされるデータは、すぐにアクセス可能になり、いかなるメンテナンス操作も必要ありません。ただし、OLSが使用されている場合、RDFトリプルを格納する表のラベル列は保持する必要があります。デフォルトでは、OLSを有効にしている場合、RDFトリプルを格納する表のラベル列はNULLに設定されます。完全なアクセス権限がある場合、適切なサブプログラム(SEM_RDFSA.SET_RESOURCE_LABELおよびSEM_RDFSA.SET_PREDICATE_LABEL)を使用して、新しく挿入されたトリプルおよびトリプルの新しいバッチで導入されたすべてのリソースのラベルをリセットできます。

オプションで、ステージング表とアプリケーション表にRDF$STC_CTXT1という数値列を定義し、データが目的のモデルにロードされる前にトリプルの機密性ラベルを割り当てることができます。このようなラベルは、MDSYS.RDF_LINK$表に格納される、対応するトリプルに、自動的に適用されます。新しく導入されたリソースのラベルはロードの前または後にまだ個別に適用する必要がある場合があり、システムはバルク・ロード操作の間、割り当てられるラベルを検証しません。

アプリケーション表のRDF$STC_CTXT1列は重要ではなく、バルク・ロード操作の後に削除される場合があります。

次の例では、スキーマSCOTTのステージング表STAGE_TABLEに格納されたセマンティク・データをセマンティク・モデルfamilyにロードします。

EXECUTE SEM_APIS.BULK_LOAD_FROM_STAGING_TABLE('family', 'scott', 'stage_table', flags => 'PARSE');

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.COMPOSE_RDF_TERM

書式

SEM_APIS.COMPOSE_RDF_TERM(

     value_name IN VARCHAR2,

     value_type IN VARCHAR2,

     literal_type IN VARCHAR2,

     language_type IN VARCHAR2

     ) RETURN VARCHAR2;

または

SEM_APIS.COMPOSE_RDF_TERM(

     value_name IN VARCHAR2,

     value_type IN VARCHAR2,

     literal_type IN VARCHAR2,

     language_type IN VARCHAR2,

     long_value IN CLOB,

     options IN VARCHAR2 DEFAULT NULL,

     ) RETURN CLOB;

説明

指定したパラメータを使用してRDF語句を作成して戻します。

パラメータ

value_name

値名。MDSYS.RDF_VALUE$表(1.3.2項を参照)のVALUE_NAME列の値またはSEM_MATCHテーブル・ファンクションから戻されたvar属性の値と一致している必要があります。

value_type

テキスト情報のタイプ。MDSYS.RDF_VALUE$表(1.3.2項を参照)のVALUE_TYPE列の値またはSEM_MATCHテーブル・ファンクションから戻されたvar$RDFVTYP属性の値と一致している必要があります。

literal_type

型付きリテラルの場合は型情報、それ以外の場合はNULL。またはNULL値であるか、またはMDSYS.RDF_VALUE$表(1.3.2項を参照)のLITERAL_TYPE列の値またはSEM_MATCHテーブル・ファンクションから戻されたvar$RDFLTYP属性の値と一致している必要があります。

language_type

言語タグ。MDSYS.RDF_VALUE$表(1.3.2項を参照)のLANGUAGE_TYPE列の値またはSEM_MATCHテーブル・ファンクションから戻されたvar$RDFLANG属性の値と一致している必要があります。

long_value

字句の値の長さが4000バイトを超える場合の文字列。MDSYS.RDF_VALUE$表(1.3.2項を参照)のLONG_VALUE列の値、またはSEM_MATCHテーブル・ファンクションから戻されたvar$RDFCLOB属性の値と一致している必要があります。

options

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

使用方法

一貫性のない値の組合せをパラメータに指定すると、このファンクションはNULL値を戻します。NULL値が戻されても、パラメータの値が適切である(MDSYS.RDF_VALUE$表の同じ行の列、または同じ変数のSEM_MATCH問合せの列を反映している)と思われる場合は、Oracleサポートまでご連絡ください。

次の例では、身長がわかっている家族のメンバーごとに、身長のRDF語句だけでなく身長の値部分も戻します。

SELECT x, SEM_APIS.COMPOSE_RDF_TERM(h, h$RDFVTYP, h$RDFLTYP, h$RDFLANG)
       h_rdf_term, h
  FROM TABLE(SEM_MATCH(
    '{?x :height ?h}',
    SEM_Models('family'),
    null, 
    SEM_ALIASES(SEM_ALIAS('','http://www.example.org/family/')),
    null))
ORDER BY x;
X
--------------------------------------------------------------------------------
H_RDF_TERM
--------------------------------------------------------------------------------
H
--------------------------------------------------------------------------------
http://www.example.org/family/Cathy
"5.8"^^<http://www.w3.org/2001/XMLSchema#decimal>
5.8
 
http://www.example.org/family/Cindy
"6"^^<http://www.w3.org/2001/XMLSchema#decimal>
6
 
http://www.example.org/family/Jack
"6"^^<http://www.w3.org/2001/XMLSchema#decimal>
6
 
http://www.example.org/family/Tom
"5.75"^^<http://www.w3.org/2001/XMLSchema#decimal>
5.75
 
4 rows selected.

次の例では、MDSYS.RDF_VALUE$表に格納されている値のRDF語句を戻します。

SELECT SEM_APIS.COMPOSE_RDF_TERM(value_name, value_type, literal_type,
     language_type)
  FROM MDSYS.RDF_VALUE$ WHERE ROWNUM < 5;

SEM_APIS.COMPOSE_RDF_TERM(VALUE_NAME,VALUE_TYPE,LITERAL_TYPE,LANGUAGE_TYPE)
--------------------------------------------------------------------------------
<http://www.w3.org/1999/02/22-rdf-syntax-ns#object>
<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
<http://www.w3.org/1999/02/22-rdf-syntax-ns#subject>
<http://www.w3.org/1999/02/22-rdf-syntax-ns#Property>

SEM_APIS.CREATE_ENTAILMENT

書式

SEM_APIS.CREATE_ENTAILMENT(

     entailment_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,

     delta_in IN SEM_MODELS DEFAULT NULL,

     label_gen IN RDFSA_LABELGEN DEFAULT NULL,

     include_named_g IN SEM_GRAPHS DEFAULT NULL,

     include_default_g IN SEM_MODELS DEFAULT NULL,

     include_all_g IN SEM_MODELS DEFAULT NULL,

     inf_ng_name IN VARCHAR2 DEFAULT NULL);

説明

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

パラメータ

entailment_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の値は、COL_COMPRESSDEST_MODELDISTANCE,DOPENTAIL_ANYWAYHASH_PARTINCLOCAL_NG_INFOPT_SAMEASRAW8PROOFおよびUSER_RULESです。各値の詳細は、「使用方法」を参照してください。

delta_in

増分推論が有効な場合は、増分推論を実行する1つ以上のモデルを指定します。そのデータ型は、TABLE OF VARCHAR2(25)という定義を持つSEM_MODELSです。

delta_in内の最初のモデルのトリプルがmodels_in内の最初のモデルにコピーされ、rules_index_in内の伴意(ルール索引)が更新され、次に、delta_in内の2番目のモデルのトリプル(存在する場合)がmodels_in内の2番目のモデル(存在する場合)にコピーされ、rules_index_in内の伴意が更新されるというように、すべてのトリプルがコピーされ、伴意が更新されるまで続きます。(増分推論が伴意で有効にされていない場合、delta_inパラメータは無効です。)

label_gen

MDSYS.RDFSA_LABELGENのインスタンスまたはそのサブタイプで、推論されたトリプルに対するOracle Label Security (OLS)ラベルの生成の論理を定義します。このパラメータに何を指定するかは、デフォルトのラベル・ジェネレータまたはカスタム・ラベル・ジェネレータを使用するかどうかによって応じて異なります。

  • デフォルトのラベル・ジェネレータを使用する場合は、SEM_RDFSA.LABELGEN_RULE((ルール・ラベルの使用の場合)、SEM_RDFSA.LABELGEN_SUBJECT(主語ラベルの使用の場合)、SEM_RDFSA.LABELGEN_PREDICATE(述語ラベルの使用の場合)、SEM_RDFSA.LABELGEN_OBJECT(目的語ラベルの使用の場合)、SEM_RDFSA.LABELGEN_DOMINATING(優位ラベルの使用の場合)、SEM_RDFSA.LABELGEN_ANTECED(前件ラベルの使用の場合)のいずれかを指定します。各定数の詳細は、5.2.2.4項を参照してください。

  • カスタム・ラベル・ジェネレータを使用する場合、カスタム・ラベル・ジェネレータ・タイプを指定します。カスタム・ラベル・ジェネレータの作成および実装の詳細は、5.2.2.5項を参照してください。

include_named_g

(すべてのソース・モデル全体で)指定された名前付きグラフからのすべてのトリプルを、名前付きグラフ・ベースのグローバル推論(NGGI、2.2.11.1項を参照)に加えます。たとえばinclude_named_g => sem_graphs('<urn:G1>','<urn:G2>')は、名前付きグラフG1およびG2からのトリプルがNGGIに含められることを意味します。

このデータ型はSEM_GRAPHSで、TABLE OF VARCHAR2(4000)という定義を持ちます。

include_default_g

指定されたモデルのグラフ名がNULLであるすべてのトリプルを、名前付きグラフ・ベースのグローバル推論(NGGI、2.2.11.1項を参照)に加えます。たとえば、include_default_g => sem_models('m1')は、モデルM1からのグラフ名がNULLであるすべてのトリプルをNGGIに含めます。

include_all_g

指定されたモデルのグラフ名の値にかかわらず、すべてのトリプルを、名前付きグラフ・ベースのグローバル推論(NGGI、2.2.11.1項を参照)に加えます。たとえば、include_all_g => sem_models('m2')は、モデルM2のすべてのトリプルをNGGIに含めます。

inf_ng_name

名前付きグラフ・ベースのグローバル推論(NGGI、2.2.11.1項を参照)で推論された新しいトリプルすべてに、指定されたグラフ名を割り当てます。

使用方法

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

OWLPrimeボキャブラリの推論コンポーネントのデフォルト・セットには、SCOHCOMPHDISJHSYMMHINVHSPIHSPOHDOMHRANHEQCHEQPHFPHIFPHSAMHDOMRANSCODISJCOMPINVSPOFPIFPSYMMTRANSDIFRDFP14ARDFP14BXRDFP15RDFP16が含まれます。ただし、次の点にも注意してください。

  • コンポーネントSAMは、一部のオントロジで多数の新規トリプルを生成することが多いため、このデフォルトのOWLPrimeリストには含まれません。

  • リリース11.2では、ネイティブOWL推論エンジンにより、次の新しい推論コンポーネントであるCHAINHASKEYINTERSECTINTERSECTSCOHMBRLSTONEOFPROPDISJHSKOSAXIOMSSNOMEDSVFHTHINGHTHINGSAMUNIONがサポートされています。ただし、下位互換のために、OWLPrimeルールベースや既存のルールベースには、デフォルトでは前述の新しいコンポーネントは含まれていないため、これらの新しいコンポーネントを使用するには、明示的に設定する必要があります(これらを表9-1に示します)。次の例では、OWLPrime伴意がLUBMUNIVという2つのOWLオントロジ向けに作成されます。追加の推論コンポーネントの指定により、この伴意には、それらの推論コンポーネントによって導入された新しいセマンティクが含まれるようになります。

    EXECUTE sem_apis.create_entailment('lubm1000_idx',sem_models('lubm','univ'),
        sem_rulebases('owlprime'), SEM_APIS.REACH_CLOSURE, 
        'INTERSECT,INTERSECTSCOH,SVFH,THINGH,THINGSAM,UNION');
    

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

キーワード 説明

CHAIN

OWL 2で定義されるプロパティ・チェーン・セマンティクを取得します。長さが2のチェーンのみがサポートされます。デフォルトでは、これはSKOSCOREルールベースに含まれています。サブプロパティ・チェーンはOWL 2の機能であり、下位互換性を確保するため、このコンポーネントはデフォルトではOWLPrimeルールベースに含まれていません。(プロパティ・チェーンの処理の詳細は、3.2.2項を参照してください。)(リリース11.2の新機能。)

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のインスタンスを使用して推論を実行します。

HASKEY

OWL 2で定義された「キー」の背後にあるセマンティクを網羅します。OWL 2では、プロパティのコレクションをクラス式のキーとして処理されます。効率を考慮して、コレクションのサイズは3以下にしてください。(リリース11.2の新機能。)

IFP

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

IFPH

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

INTERSECT

owl:intersectionOfのコア・セマンティクを処理します。たとえば、クラスCがC1、C2およびC3の積集合の場合、CはC1、C2およびC3のサブクラスです。また、C1、C2およびC3すべての共通インスタンスは、Cのインスタンスでもあります。(リリース11.2の新機能。)

INTERSECTSCOH

積集合は最大の共通サブセットであるということを処理します。たとえば、クラスCがクラスC1、C2およびC3の積集合である場合は、C1、C2およびC3すべての任意の共通サブクラスはCのサブクラスです。(リリース11.2の新機能。)

INV

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

INVH

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

MBRLST

どのリソースにおいても、skos:memberListプロパティの値として与えられるリストの各項目はskos:memberプロパティの値でもあるというセマンティクを取得します。(SKOSの詳細な指定のS36を参照してください。)デフォルトでは、これはSKOSCOREルールベースに含まれています。(リリース11.2の新機能。)

ONEOF

列挙クラスの定義に基づいて、分類表明を生成します。OWLでは、クラス拡張をowl:oneOfコンストラクタで明示的に列挙できます。(リリース11.2の新機能。)

PROPDISJH

owl:propertyDisjointWithrdfs:subPropertyOfの積集合を取得します。デフォルトでは、これはSKOSCOREルールベースに含まれています。propertyDisjointWithはOWL 2の機能であり、下位互換性を確保するため、このコンポーネントはデフォルトではOWLPrimeルールベースに含まれていません。(リリース11.2の新機能。)

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の別名でもあります。

SKOSAXIOMS

SKOSの詳細な指定で定義されるほとんどの公理を取得します。デフォルトでは、これはSKOSCOREルールベースに含まれています。(リリース11.2の新機能。)

SNOMED

最も表現が多様で複雑な医学用語集の1つであるSNOMED CT (Systematized Nomenclature of Medicine - Clinical Terms)の表現を取得する、OWL 2 ELプロファイルのセマンティクに基づいて推論を実行します。(リリース11.2の新機能。)

SPIH

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

SPO

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

SPOH

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

SVFH

owl:someValuesFromとrdfs:subClassOf間の相互作用に関する次のセマンティクを処理します。同じ制限プロパティをどちらも使用する2つの存在する制限クラスC1およびC2を考えてみます。さらにC1のowl:someValuesFrom制約クラスが、C2のその制約クラスのサブクラスであるとします。これによって、C1はC2のサブクラスとして推論できます。(リリース11.2の新機能。)

SYMM

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

SYMH

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

THINGH

すべての定義済OWLクラスがowl:Thingのサブクラスであるというセマンティクを処理します。このルールの結果、すべての定義済OWLクラスのインスタンスはowl:Thingのインスタンスになります。推論されたグラフのサイズは、このコンポーネントが選択されたことで、より大きくなる可能性があります。(リリース11.2の新機能。)

THINGSAM

owl:Thingのインスタンスは(owl:sameAs)自身と等価であるというセマンティクを処理します。このコンポーネントは、一部のアプリケーションの利便性のために提供されます。アプリケーションでは、この推論コンポーネントを選択して個体がそれ自身と等価であることがわかるようにする必要はありません(この種の情報はアプリケーション・ロジックで簡単に構築できます)。(リリース11.2の新機能。)

TRANS

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

UNION

owl:unionOf構成要素のコア・セマンティクを取得します。基本的に、unionクラスは、すべてのメンバー・クラスのスーパークラスです。下位互換性を確保するため、このコンポーネントはデフォルトではOWLPrimeルールベースに含まれていません。(リリース11.2の新機能。)


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

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

  • COL_COMPRESS=Tは一時的な、中間作業表を作成します。このオプションは、このような表に必要となる領域を減らすことができ、大規模なデータセットのCREATE_ENTAILMENT操作のパフォーマンスを向上できます。


    注意:

    COL_COMPRESS=Tは、Hybrid Columnar Compression (HCC)をサポートするシステムでのみ指定できます。HCCの詳細は、『Oracle Database概要』を参照してください。

  • DEST_MODEL=<model_name>は、増分推論のために、1つ以上のdelta_inモデルが追加される宛先モデルを指定します。指定する宛先モデルは、models_inパラメータで指定するモデルの1つである必要があります。

  • DISTANCE=Tは、セマンティク演算子に有効な補助的距離情報を生成します。

  • DOP=nは、推論パフォーマンスを向上できるパラレル推論の並列度を指定します。パラレル推論の詳細は、2.2.10項を参照してください。

  • ENTAIL_ANYWAY=Tは、伴意のステータスが有効の場合、OWL推論を強制的に続行し、既存の推論データ(伴意)を再利用します。デフォルトでは、モデルとルールベースの組合せに対して有効な伴意がすでに存在する場合、SEM_APIS.CREATE_ENTAILMENTは即座に終了します。

  • HASH_PART=nは、内部の作業表に、指定された数のハッシュ・パーティションを作成します。(この数は、2、4、8、16、32など、2の累乗値である必要があります。)セマンティク・データ・モデルに、異なる述語が多くある場合には、値を指定できます。ベンチマーク・オントロジのOracle内部のテストで、HASH_PART=32は適切に動作しました。

  • INC=Tは、伴意に対して増分推論を有効にします。増分推論の詳細は、2.2.9項を参照してください。

  • LOCAL_NG_INF=Tは、名前付きグラフ・ベースのグローバル推論(NGGI)のかわりに名前付きグラフ・ベースのローカル推論(NGLI)が使用されるようにします。NGLIの詳細は、2.2.11.2項を参照してください。

  • OPT_SAMEAS=Tは、伴意に、統合されたowl:sameAs伴意を使用します。このオプションを指定する場合、PROOF=Tは指定できません。owl:sameAs推論の最適化の詳細は、2.2.8項を参照してください。

  • RAW8=Tは、補助推論表にRAW8データ型を使用します。このオプションによって、状況によっては最大で30%伴意パフォーマンスが向上する可能性があります。

  • PROOF=T: 推論されたトリプルの証明を生成します。生成されるデータが多くなり、推論パフォーマンスが低下するため、必要のない場合はこのオプションを指定しないでください。このオプションを指定する場合、OPT_SAMEAS=Tは指定できません。

  • USER_RULES=T: 任意のユーザー定義ルールを適用します。このオプションを指定する場合、PROOF=TまたはDISTANCE=Tは指定できません。また、passesパラメータのデフォルト値を使用する必要があります。

delta_inパラメータでは、値がこれらのモデルの全体的なサイズと比較して小さい場合、推論パフォーマンスは最適です。一般的なシナリオでは、デルタに10,000未満のトリプルが含まれているときに最適な結果が得られる場合がありますが、一部のテストでは、100,000トリプルのデルタでもかなりの推論パフォーマンスの向上が見られました。

label_genパラメータでは、デフォルトのOLSラベル・ジェネレータを使用する場合、表9-2から適切なSEM_RDFSAパッケージ定数値を指定します。

表9-2 label_genパラメータのSEM_RDFSAパッケージ定数

定数 説明

SEM_RDFSA.LABELGEN_SUBJECT

トリプルのラベルとして、推論されたトリプルの主語に関連付けられているラベルを適用するラベル・ジェネレータ。

SEM_RDFSA.LABELGEN_PREDICATE

トリプルのラベルとして、推論されたトリプルの主語に関連付けられているラベルを適用するラベル・ジェネレータ。

SEM_RDFSA.LABELGEN_OBJECT

トリプルのラベルとして、推論されたトリプルの主語に関連付けられているラベルを適用するラベル・ジェネレータ。

SEM_RDFSA.LABELGEN_RULE

トリプルのラベルとして、推論されたトリプルを直接生成したルールに関連付けられているラベルを適用するラベル・ジェネレータ。このオプションを指定する場合、optionsパラメータにPROOF=Tも指定する必要があります。

SEM_RDFSA.LABELGEN_DOMINATING

トリプルのコンポーネント(主語、述語、目的語およびルール)のためのすべての使用可能なラベルのうち、優位ラベルを計算して、推論されたトリプルのラベルとしてそれを適用するラベル・ジェネレータ。


ファイングレイン・アクセス制御(VPDおよびOLS)に関する考慮事項

VPDを使用する特定のモデルに対して、またはOLSを使用するネットワーク全体に対して、ファイングレイン・アクセス制御を有効にした場合、関連ポリシーへの完全なアクセス権限を持つユーザーのみが伴意を作成できます。VPDポリシー(5.1.1項「RDFデータのVPDポリシー」を参照)に関連付けられる名前空間に対して、パッケージ定数sem_rdfsa.VPD_FULL_ACCESSによって1に定義されるコンテキスト属性を設定することで、VPDポリシーへの完全なアクセス権限が付与されます。OLSが有効な場合、SA_USER_ADMIN.SET_USER_PRIVSプロシージャを使用して、OLSポリシーへの完全なアクセス権限が付与されます。1つ以上のVPD対応RDFモデルを使用して作成されるすべての伴意に対して、VPDポリシーが自動的に適用されます。5.1.1項で説明するように、VPDポリシーに関連付けられているRDFメタデータは、事前定義されたVPDポリシーが推論データを使用して回避されないようにするために、新しく推論されたデータを使用して保持される必要がある場合があります。

生成されたラベルを通じてアクセスされる推論されたトリプルは、ユーザー・アクセス可能なトリプルおよびルールから直接推論される概念上のトリプルとは異なることがあります。トリプルのコンポーネントのサブセットを使用して生成されるラベルは、意図していたものよりも弱い場合があります。たとえば、推論されたトリプルの前件の1つは、トリプルのコンポーネントのどれよりも高いラベルを持つ場合があります。ラベルがトリプルのコンポーネントのみに基づいて生成される場合、前件の1つにアクセス権がないエンド・ユーザーが、推論されたトリプルへのアクセス権を持つ場合があります。前件がカスタム・ラベル生成に使用されるときでも、生成されたラベルが意図したものよりも強い場合があります。推論プロセスは完全なものではなく、同じトリプルを推論する他の代替方法に関連する情報も使用できません。したがって、代替パスのすべてのトリプルへのアクセス権を持つユーザーが、より低いアクセス権でトリプルを推論できるため、ある一連の前件を使用して生成されたラベルが強すぎる場合があります。

コンポーネントおよび前件すべてに対して優位であるラベルを生成する場合でも、ラベルが正確でない可能性があります。これは、関係において優位であると考えられるラベルに、重複しないグループ情報がある場合です。たとえば、2つのラベルL:C:NYL:C:NH (Lはレベル、Cはコンポーネント、NYおよびNHは2つのグループ)について考えてみます。これらの2つのラベルより優位である単純なラベルはL:C:NY,NHであり、2つのラベルの真の最上位はL:C:US(USはNYおよびNH両方の親グループ)ですただし、最初の2つのラベルを持つトリプルから推論されたトリプルには、これらの2つの優位ラベルはどちらも正確ではありません。推論されるトリプルにL:C:NY,NHが使用される場合、これらのどちらのグループのメンバーシップを持つユーザーにも、推論されるトリプルへのアクセス権がありますが、同じユーザーに、その前件の1つへのアクセス権はありません。一方、推論されるトリプルにL:C:USが使用される場合、両方のグループに属するがUSグループには属さないメンバーシップを持つユーザーは推論されるトリプルにアクセスできませんが、そのコンポーネントと前件に直接アクセスすることによって、そのユーザーはトリプルを推論できます。

推論されるトリプルに伴うこれらの固有の問題のため、ラベル・ジェネレータを選択または実装する場合は、特別に注意する必要があります。

例の項のOLSの例も参照してください。

次の例では、OWLPrimeルールベースを使用してOWLTST_IDXという伴意を作成し、推論されたトリプルに対して証明を生成します。

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

次の例では、OLS環境が前提となります。ルールと一緒にルールベースを作成し、伴意も作成します。

-- Create an entailment with a rule. -- 
exec sdo_rdf_inference.create_entailment('contracts_rb');
 
insert into mdsys.rdfr_contracts_rb values (
  'projectLedBy', '(?x :drivenBy ?y) (?y :hasVP ?z)',  NULL,
  '(?x :isLedBy ?z)',
  SDO_RDF_Aliases(SDO_RDF_Alias('','http://www.myorg.com/pred/')));
 
-- Assign sensitivity label for the predicate to be inferred. -- 
-- Yhe predicate label may be set globally or it can be assign to --
-- the one or the models used to infer the data – e.g: CONTRACTS. 
begin
  sem_rdfsa.set_predicate_label(
         model_name   => 'rdf$global',
         predicate    => 'http://www.myorg.com/pred/isLedBy',
         label_string => 'TS:US_SPCL');
end;
/
 
-- Create index with a specific label generator. -- 
begin
  sem_apis.create_entailment(
         entailment_name_in => 'contracts_inf',
         models_in          => SDO_RDF_Models('contracts'),
         rulebases_in       => SDO_RDF_Rulebases('contracts_rb'),
         options            => 'USER_RULES=T',
         label_gen          => sem_rdfsa.LABELGEN_PREDICATE);
end;
/
 
-- Check for any label exceptions and update them accordingly. -- 
update mdsys.rdfi_contracts_inf set ctxt1 = 1100 where ctxt1 = -1;
 
-- The new entailment is now ready for use in SEM_MATCH queries. --

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.11.2項例1-44からの抜粋です。)

EXECUTE SEM_APIS.CREATE_RULEBASE('family_rb');

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.10項を参照してください。

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

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

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

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

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_SOURCE_EXTERNAL_TABLE

書式

SEM_APIS.CREATE_SOURCE_EXTERNAL_TABLE(

     source_table IN VARCHAR2,

     def_directory IN VARCHAR2,

     log_directory IN VARCHAR2 DEFAULT NULL,

     bad_directory IN VARCHAR2 DEFAULT NULL,

     log_file IN VARCHAR2 DEFAULT NULL,

     bad_file IN VARCHAR2 DEFAULT NULL,

     parallel IN INTEGER DEFAULT NULL,

     source_table_owner IN VARCHAR2 DEFAULT NULL,

     flags IN VARCHAR2 DEFAULT NULL);

説明

表にN-TripleまたはN-Quad形式ファイルをマップするために外部表を作成します。

パラメータ

source_table

作成する外部表の名前。

def_directory

入力ファイルがあるデータベース・ディレクトリ。このステージング表からロードするには、このディレクトリに対するREAD権限を持っている必要があります。

log_directory

外部表からのロード時にログ・ファイルが生成されるデータベース・ディレクトリ。指定しない場合、def_directoryパラメータの値が使用されます。外部表からのロードする場合は、このディレクトリに対するWRITE権限を持っている必要があります。

bad_directory

外部表からのロード時に不良ファイルが生成されるデータベース・ディレクトリ。指定しない場合、def_directoryパラメータの値が使用されます。外部表からのロードする場合は、このディレクトリに対するWRITE権限を持っている必要があります。

log_file

ログ・ファイルの名前。指定しない場合、名前はロード操作中に自動的に生成されます。

bad_file

不良ファイルの名前。指定しない場合、名前はロード操作中に自動的に生成されます。

parallel

作成中の外部表に関連付けられている並列度。

source_table_owner

作成中の外部表の所有者。指定しない場合、起動側は所有者になります。

flags

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

使用方法

詳細およびその例は、1.7.1.1.2項「外部表を使用したステージング表へのN-Quad形式のデータのロード」を参照してください。

次の例では、ソース外部表を作成します。(この例は、1.7.1.1.2項例1-36からの抜粋です。)

BEGIN
  sem_apis.create_source_external_table(
    source_table    => 'stage_table_source'
   ,def_directory   => 'DATA_DIR'
   ,bad_file        => 'CLOBrows.bad'
   );
END;

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権限を持つユーザーである必要があります。

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

  • SEMV_vm_name。これは、各モデルおよび伴意内のトリプルのUNION ALLに対応します。このビューには重複が含まれることがあります。

  • SEMU_vm_nameは、各モデルおよび伴意内のトリプルのUNIONに対応します。このビューには重複は含まれません(このため、SEMUのUunique(一意)を表します)。

    ただし、仮想モデルに1つのみのセマンティク・モデルが含まれ、伴意は含まれない場合、SEMU_vm_nameビューは作成されません。

モデルm1、m2、m3およびモデルm1、m2およびm3のためにOWLPrimeルールベースを使用して作成された伴意から作成された仮想モデルvm1の1.3.8項の例を使用するために、このプロシージャで、次の2つのビューを作成します(m1、m2、m3およびOWLPRIME伴意が内部のmodel_id値1、2、3、4を保持すると想定しています)。

CREATE VIEW MDSYS.SEMV_VM1 AS
  SELECT start_node_id, p_value_id, canon_end_node_id, end_node_id
  FROM MDSYS.rdf_link$
  WHERE model_id IN (1, 2, 3, 4);
 
CREATE VIEW MDSYS.SEMU_VM1 AS
  SELECT start_node_id, p_value_id, canon_end_node_id, MAX(end_node_id)
  FROM MDSYS.rdf_link$
  WHERE model_id IN (1, 2, 3, 4)
  GROUP BY start_node_id, p_value_id, canon_end_node_id;

このプロシージャを起動するユーザーは、仮想モデルの所有者となり、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.DISABLE_CHANGE_TRACKING

書式

SEM_APIS.DISABLE_CHANGE_TRACKING(

     models_in IN SEM_MODELS);

説明

指定されたモデルのセットの変更トラッキングを無効にします。

パラメータ

models_in

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

使用方法

モデルの変更トラッキングを無効にすることにより、そのモデルを使用するすべての伴意の増分推論が自動的に無効になります。

このプロシージャを使用するには、指定したモデルの所有者である必要があり、あらかじめ増分推論を有効にしておく必要があります。

(使用方法の情報を含む)増分推論の説明は、2.2.9項を参照してください。

次の例では、familyモデルの変更トラッキングを無効にします。

EXECUTE sem_apis.disable_change_tracking(sem_models('family'));

SEM_APIS.DISABLE_INC_INFERENCE

書式

SEM_APIS.DISABLE_INC_INFERENCE(

     entailment_name IN VARCHAR2);

説明

指定された伴意(ルール索引)の増分推論を無効にします。

パラメータ

entailment_name

増分推論を無効にする伴意の名前。

使用方法

このプロシージャを使用するには、指定した伴意の所有者である必要があり、SEM_APIS.ENABLE_INC_INFERENCEプロシージャによって、あらかじめ増分推論を有効にしておく必要があります。

このプロシージャをコールすることにより、起動ユーザーが所有する、この特定の推論によってのみ変更を追跡していたすべてのモデルの変更トラッキングが自動的に無効になります。

(使用方法の情報を含む)増分推論の説明は、2.2.9項を参照してください。

次の例では、RDFS_RIX_FAMILYという伴意の増分推論を有効にします。

EXECUTE sem_apis.disable_inc_inference('rdfs_rix_family');

SEM_APIS.DROP_DATATYPE_INDEX

書式

SEM_APIS.DROP_DATATYPE_INDEX(

     datatype IN VARCHAR2,

     force_drop IN BOOLEAN default FALSE);

説明

既存のデータ型索引を削除します。

パラメータ

datatype

削除する索引に対するデータ型のURI。

force_drop

TRUEに設定すると、文の処理中にエラーが発生した場合、索引を強制的に削除し、FALSE (デフォルト)に設定すると、文の処理中にエラーが発生した場合、索引を削除しません。

使用方法

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

データ型索引の詳細は、1.9項を参照してください。

次の例では、xsd:string型付きリテラルおよびプレーン・リテラルのデータ型索引を削除します。

EXECUTE SEM_APIS.DROP_DATATYPE_INDEX('http://www.w3.org/2001/XMLSchema#string');

SEM_APIS.DROP_ENTAILMENT

書式

SEM_APIS.DROP_ENTAILMENT(

     entailment_name_in IN VARCHAR2,

     named_g_in IN SEM_GRAPHS DEFAULT NULL,

     dop IN INT DEFAULT 1);

説明

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

パラメータ

entailment_name_in

削除する伴意の名前。

named_g_in

伴意の指定されたグラフ名を持つトリプルのみを削除します。NULL値(デフォルト)は伴意全体を削除します。

たとえば、named_g_in => sem_graphs('<urn:G1>','<urn:G2>')は、グラフ名G1およびG2を持つ伴意のトリプルのみを削除し、残りの伴意グラフは削除されません。

dop

トリプル削除のパラレル実行の並列度。named_g_inパラメータがNULLでない場合にのみ適用されます。

使用方法

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

VALIDまたはINCOMPLETEステータスの伴意における指定された名前付きグラフを持つ伴意のサブセットのみを削除する場合(つまり、named_g_inがNULLでない場合)、削除後の伴意の結果のステータスはINCOMPLETEに設定されます。

次の例では、伴意OWLTST_IDXを削除します。

EXECUTE sem_apis.drop_entailment('owltst_idx');

次の例では、伴意OWLNG_IDXに属するグラフ名G1およびG2の推論されたトリプルのみを削除します。デフォルトのグラフおよび他の名前付きグラフのすべての推論されたトリプルは、伴意に残ります。

EXECUTE sem_apis.drop_entailment('owlng_idx',sem_graphs('<urn:G1>','<urn:G2>'));

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_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(

     cascade IN BOOLEAN DEFAULT FALSE);

説明

セマンティク・データの永続的な記憶域に使用される構造を削除します。

パラメータ

cascade

TRUEに設定すると、既存のすべてのセマンティク・テクノロジ・モデルおよびルールベースを削除して、セマンティク・データの永続的な記憶域に使用される構造を削除し、FALSE(デフォルト)を設定すると、セマンティク・テクノロジ・モデルまたはルールベースが存在する場合、操作が失敗します。

使用方法

セマンティク・データの永続的な記憶域に使用される構造を削除するには、DBA権限を持つユーザーとして接続し、このプロシージャをコールします。

バージョン対応モデルが存在する場合、cascadeパラメータの値に関係なく、このプロシージャは失敗します。

次の例では、セマンティク・データの永続的な記憶域に使用される構造を削除します。

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.ENABLE_CHANGE_TRACKING

書式

SEM_APIS.ENABLE_CHANGE_TRACKING(

     models_in IN SEM_MODELS);

説明

指定されたモデルのセットの変更トラッキングを有効にします。

パラメータ

models_in

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

使用方法

モデルを使用するすべての伴意で増分推論を有効にする前に、そのモデルで変更トラッキングを有効にする必要があります。

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

伴意の所有者が、基礎となるモデルの所有者でもある場合、(SEM_APIS.ENABLE_INC_INFERENCEプロシージャをコールすることによって)伴意で増分推論を有効にすることにより、そのユーザーが所有するそれらのモデルで変更トラッキングが自動的に有効になります。

モデルのセットの変更トラッキングを無効にするには、SEM_APIS.DISABLE_CHANGE_TRACKINGプロシージャを使用します。

(使用方法の情報を含む)増分推論の説明は、2.2.9項を参照してください。

次の例では、familyモデルの変更トラッキングを有効にします。

EXECUTE sem_apis.enable_change_tracking(sem_models('family'));

SEM_APIS.ENABLE_INC_INFERENCE

書式

SEM_APIS.ENABLE_INC_INFERENCE(

     entailment_name IN VARCHAR2);

説明

指定された伴意(ルール索引)の増分推論を有効にします。

パラメータ

entailment_name

増分推論を有効にする伴意の名前。

使用方法

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

このプロシージャが実行される前に、伴意に関連するすべての基礎となるモデルで変更トラッキングを有効にしておく必要があります。伴意の所有者が、基礎となるモデルの所有者でもある場合、このプロシージャをコールすることにより、それらのモデルで変更トラッキングが自動的に有効になります。ただし、いくつかの基礎となるモデルが伴意の所有者によって所有されない場合、それらのモデルで変更トラッキングを有効にするには、適切なモデル所有者が最初にSEM_APIS.ENABLE_CHANGE_TRACKINGプロシージャをコールする必要があります。

伴意に対する増分推論を無効にするには、SEM_APIS.DISABLE_INC_INFERENCEプロシージャを使用します。

(使用方法の情報を含む)増分推論の説明は、2.2.9項を参照してください。

次の例では、RDFS_RIX_FAMILYという伴意の増分推論を有効にします。

EXECUTE sem_apis.enable_inc_inference('rdfs_rix_family');

SEM_APIS.ESCAPE_CLOB_TERM

書式

SEM_APIS.ESCAPE_CLOB_TERM(

     term IN CLOB CHARACTER SET ANY_CS,

     utf_encode IN NUMBER DEFAULT 1

     ) RETURN CLOB CHARACTER SET val%CHARSET;

説明

W3CのN-Triples形式(http://www.w3.org/TR/rdf-testcases/#ntriples)で指定された入力RDF語句について、特殊文字および非ASCII文字をエスケープして戻します。

パラメータ

term

エスケープするRDF語句。

utf_encode

chr(8)、chr(9)、chr(10)、chr(12)、chr(13)以外の非ASCII文字および出力不可能なASCII文字をエスケープする必要がある場合は、1 (デフォルト)に設定します。それ以外の場合、これらの文字はエスケープされません。

使用方法

SEM_MATCHテーブル・ファンクションのoptionsパラメータでDO_UNESCAPEキーワードを使用する方法の詳細は、1.6項「SEM_MATCHテーブル・ファンクションを使用したセマンティク・データの問合せ」を参照してください。

次の例では、タブ文字と改行文字を含む入力RDF語句をエスケープします。

SELECT SEM_APIS.ESCAPE_CLOB_TERM('"abc' || chr(9) || 'def' || chr(10) || 'hij"^^<http://www.w3.org/2001/XMLSchema#string>') FROM DUAL;

SEM_APIS.ESCAPE_CLOB_VALUE

書式

SEM_APIS.ESCAPE_CLOB_VALUE(

     val IN VARCHAR2 CHARACTER SET ANY_CS,

     start_offset IN NUMBER DEFAULT 1,

     end_offset IN NUMBER DEFAULT 0,

     utf_encode IN NUMBER DEFAULT 1,

     include_start IN NUMBER DEFAULT 0

     ) RETURN VARCHAR2 CHARACTER SET val%CHARSET;

説明

W3CのN-Triples形式(http://www.w3.org/TR/rdf-testcases/#ntriples)で指定された入力CLOB値について、特殊文字および非ASCII文字をエスケープして戻します。

パラメータ

val

エスケープするCLOBテキスト。

start_offset

valの中で文字のエスケープを開始する位置のオフセット。デフォルト(1)は、valの最初の文字でエスケープを開始します。

end_offset

valの中で文字のエスケープを終了する位置のオフセット。デフォルト(0)は、valの末尾からエスケープを継続します。

utf_encode

chr(8)、chr(9)、chr(10)、chr(12)、chr(13)以外の非ASCII文字および出力不可能なASCII文字をエスケープする必要がある場合は、1 (デフォルト)に設定します。それ以外の場合、これらの文字はエスケープされません。

include_start

valの1文字目からstart_offsetまでの文字を戻り値の先頭に追加する場合は、1に設定します。それ以外の場合、これらの文字は戻り値の先頭に追加されません。

使用方法

SEM_MATCHテーブル・ファンクションのoptionsパラメータでDO_UNESCAPEキーワードを使用する方法の詳細は、1.6項「SEM_MATCHテーブル・ファンクションを使用したセマンティク・データの問合せ」を参照してください。

次の例では、タブ文字と改行文字を含む入力文字列をエスケープします。

SELECT SEM_APIS.ESCAPE_CLOB_VALUE('abc' || chr(9) || 'def' || chr(10) || 'hij') FROM DUAL;

SEM_APIS.ESCAPE_RDF_TERM

書式

SEM_APIS.ESCAPE_RDF_TERM(

     term IN VARCHAR2 CHARACTER SET ANY_CS,

     utf_encode IN NUMBER DEFAULT 1

     ) RETURN VARCHAR2 CHARACTER SET val%CHARSET;

説明

W3CのN-Triples形式(http://www.w3.org/TR/rdf-testcases/#ntriples)で指定された入力RDF語句について、特殊文字および非ASCII文字をエスケープして戻します。

パラメータ

term

エスケープするRDF語句。

utf_encode

chr(8)、chr(9)、chr(10)、chr(12)、chr(13)以外の非ASCII文字および出力不可能なASCII文字をエスケープする必要がある場合は、1 (デフォルト)に設定します。それ以外の場合、これらの文字はエスケープされません。

使用方法

SEM_MATCHテーブル・ファンクションのoptionsパラメータでDO_UNESCAPEキーワードを使用する方法の詳細は、1.6項「SEM_MATCHテーブル・ファンクションを使用したセマンティク・データの問合せ」を参照してください。

次の例では、タブ文字と改行文字を含む入力RDF語句をエスケープします。

SELECT SEM_APIS.ESCAPE_RDF_TERM('"abc' || chr(9) || 'def' || chr(10) || 'hij"^^<http://www.w3.org/2001/XMLSchema#string>') FROM DUAL;

SEM_APIS.ESCAPE_RDF_VALUE

書式

SEM_APIS.ESCAPE_RDF_VALUE(

     val IN VARCHAR2 CHARACTER SET ANY_CS,

     utf_encode IN NUMBER DEFAULT 1

     ) RETURN VARCHAR2 CHARACTER SET val%CHARSET;

説明

W3CのN-Triples形式(http://www.w3.org/TR/rdf-testcases/#ntriples)で指定された入力値について、特殊文字および非ASCII文字をエスケープして戻します。

パラメータ

val

エスケープするテキスト。

utf_encode

chr(8)、chr(9)、chr(10)、chr(12)、chr(13)以外の非ASCII文字および出力不可能なASCII文字をエスケープする必要がある場合は、1 (デフォルト)に設定します。それ以外の場合、これらの文字はエスケープされません。

使用方法

SEM_MATCHテーブル・ファンクションのoptionsパラメータでDO_UNESCAPEキーワードを使用する方法の詳細は、1.6項「SEM_MATCHテーブル・ファンクションを使用したセマンティク・データの問合せ」を参照してください。

次の例では、タブ文字と改行文字を含む入力文字列をエスケープします。

SELECT SEM_APIS.ESCAPE_RDF_VALUE('abc' || chr(9) || 'def' || chr(10) || 'hij') FROM DUAL;

SEM_APIS.GET_CHANGE_TRACKING_INFO

書式

SEM_APIS.GET_CHANGE_TRACKING_INFO(

     model_name IN VARCHAR2,

     enabled OUT BOOLEAN,

     tracking_start_time OUT TIMESTAMP);

説明

モデルの変更トラッキング情報を戻します。

パラメータ

model_name

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

enabled

プロシージャから戻されるブール値。TRUE (変更トラッキングがモデルで有効になっている場合)またはFALSE (変更トラッキングがモデルで有効になっていない場合)。

timestamp

変更トラッキングがモデルで有効にされた日時を示すタイムスタンプ(有効になっている場合)。

使用方法

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

モデルのセットの変更トラッキングを有効にするには、SEM_APIS.ENABLE_CHANGE_TRACKINGプロシージャを使用します。

(使用方法の情報を含む)増分推論の説明は、2.2.9項を参照してください。

次の例では、モデルの変更トラッキング情報を表示します。

DECLARE 
  bEnabled  boolean;
  tsEnabled  timestamp;
  
BEGIN
  EXECUTE IMMEDIATE 'create table m1 (t SDO_RDF_TRIPLE_S)';
  sem_apis.create_sem_model('m1','m1','t');
 
  sem_apis.enable_change_tracking(sem_models('m1'));
 
  sem_apis.get_change_tracking_info('m1', bEnabled,  tsEnabled);
  dbms_output.put_line('is enabled:' || case when bEnabled then 'true' else 'false' end);
  dbms_output.put_line('enabled at:' || tsEnabled);
END;
/

SEM_APIS.GET_INC_INF_INFO

書式

SEM_APIS.GET_INC_INF_INFO(

     entailment_name IN VARCHAR2,

     enabled OUT BOOLEAN,

     prev_inf_start_time OUT TIMESTAMP);

説明

伴意の増分推論情報を戻します。

パラメータ

entailment_name

伴意の名前。

enabled

プロシージャから戻されるブール値(TRUE (増分推論が伴意で有効になっている場合)またはFALSE (増分推論が伴意で有効になっていない場合))。

timestamp

伴意が最後に更新された日時を示すタイムスタンプ(増分推論が有効になっている場合)。

使用方法

伴意に対する増分推論を有効にするには、SEM_APIS.ENABLE_INC_INFERENCEプロシージャを使用します。

(使用方法の情報を含む)増分推論の説明は、2.2.9項を参照してください。

次の例では、伴意の増分推論情報を表示します。

DECLARE 
  bEnabled boolean;
  tsEnabled timestamp;
  
DECLARE 
  EXECUTE IMMEDIATE 'create table m1 (t SDO_RDF_TRIPLE_S)';
  sem_apis.create_sem_model('m1','m1','t');
 
  sem_apis.create_entailment('m1_inf',sem_models('m1'), 
sem_rulebases('owlprime'),null,null,'INC=T');
 
  sem_apis.get_inc_inf_info('m1_inf', bEnabled,  tsEnabled);
  dbms_output.put_line('is enabled:' || case when bEnabled then 'true' else 'false' 
  end);
  dbms_output.put_line('enabled at:' || tsEnabled);
END
/

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.11.2項例1-43からの抜粋です。)

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を持つモデルのモデルID番号を戻します。(この例は、1.11.2項例1-43からの抜粋です。)

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.11.2項例1-43からの抜粋です。)

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.GETV$DATETIMETZVAL

書式

SEM_APIS.GETV$DATETIMETZVAL(

     value_type IN VARCHAR2,

     vname_prefix IN VARCHAR2,

     vname_suffix IN VARCHAR2,

     literal_type IN VARCHAR2,

     language_type IN VARCHAR2,

     ) RETURN NUMBER;

説明

xsd:dateTime型付きリテラルに対してTIMESTAMP WITH TIME ZONE値を戻し、その他のRDF語句に対してはNULL値を戻します。グリニッジ標準時は、タイムゾーンなしのxsd:dateTime値に対してデフォルトのタイムゾーンとして使用されます。

パラメータ

value_type

RDF語句のタイプ。

vname_prefix

RDF語句の接頭辞の値。

vname_suffix

RDF語句の接尾辞の値。

literal_type

RDF語句のリテラル・タイプ。

language_type

RDF語句の言語タイプ。

使用方法

パフォーマンスを向上させるには、このファンクションでファンクション・ベース索引を作成することを検討してください。詳細は、1.6.7.2項を参照してください。

次の例では、MDSYS.RDF_VALUE$表のすべてのxsd:dateTimeのリテラルに対してTIMESTAMP WITH TIME ZONE値を戻します。

SELECT SEM_APIS.GETV$DATETIMETZVAL(value_type, vname_prefix, vname_suffix, 
  literal_type, language_type) 
  FROM MDSYS.RDF_VALUE$;

SEM_APIS.GETV$DATETZVAL

書式

SEM_APIS.GETV$DATETZVAL(

     value_type IN VARCHAR2,

     vname_prefix IN VARCHAR2,

     vname_suffix IN VARCHAR2,

     literal_type IN VARCHAR2,

     language_type IN VARCHAR2,

     ) RETURN TIMESTAMP WITH TIME ZONE;

説明

xsd:date型付きリテラルに対してTIMESTAMP WITH TIME ZONE値を戻し、その他のRDF語句に対してはNULL値を戻します。グリニッジ標準時は、タイムゾーンなしのxsd:date値に対してデフォルトのタイムゾーンとして使用されます。

パラメータ

value_type

RDF語句のタイプ。

vname_prefix

RDF語句の接頭辞の値。

vname_suffix

RDF語句の接尾辞の値。

literal_type

RDF語句のリテラル・タイプ。

language_type

RDF語句の言語タイプ。

使用方法

パフォーマンスを向上させるには、このファンクションでファンクション・ベース索引を作成することを検討してください。詳細は、1.6.7.2項を参照してください。

次の例では、MDSYS.RDF_VALUE$表のすべてのxsd:dateのリテラルに対してTIMESTAMP WITH TIME ZONE値を戻します。

SELECT SEM_APIS.GETV$DATETZVAL(value_type, vname_prefix, vname_suffix, 
  literal_type, language_type) 
  FROM MDSYS.RDF_VALUE$;

SEM_APIS.GETV$NUMERICVAL

書式

SEM_APIS.GETV$NUMERICVAL(

     value_type IN VARCHAR2,

     vname_prefix IN VARCHAR2,

     vname_suffix IN VARCHAR2,

     literal_type IN VARCHAR2,

     language_type IN VARCHAR2,

     ) RETURN NUMBER;

説明

XMLスキーマの数値型のリテラルに対して数値を戻し、他のすべてのRDF語句に対してNULL値を戻します。

パラメータ

value_type

RDF語句のタイプ。

vname_prefix

RDF語句の接頭辞の値。

vname_suffix

RDF語句の接尾辞の値。

literal_type

RDF語句のリテラル・タイプ。

language_type

RDF語句の言語タイプ。

使用方法

パフォーマンスを向上させるには、このファンクションでファンクション・ベース索引を作成することを検討してください。詳細は、1.6.7.2項を参照してください。

次の例では、MDSYS.RDF_VALUE$表のすべての数値リテラルに対して数値を戻します。

SELECT SEM_APIS.GETV$NUMERICVAL(value_type, vname_prefix, vname_suffix, 
  literal_type, language_type) 
  FROM MDSYS.RDF_VALUE$;

SEM_APIS.GETV$STRINGVAL

書式

SEM_APIS.GETV$STRINGVAL(

     value_type IN VARCHAR2,

     vname_prefix IN VARCHAR2,

     vname_suffix IN VARCHAR2,

     literal_type IN VARCHAR2,

     language_type IN VARCHAR2,

     ) RETURN TIMESTAMP WITH TIME ZONE;

説明

プレーン・リテラルおよびxsd:string型付きリテラルの字句形式のVARCHAR2文字列を戻し、他のすべてのRDF語句に対してNULL値を戻します。CHR(0)は、空のリテラルに対して戻されます。

パラメータ

value_type

RDF語句のタイプ。

vname_prefix

RDF語句の接頭辞の値。

vname_suffix

RDF語句の接尾辞の値。

literal_type

RDF語句のリテラル・タイプ。

language_type

RDF語句の言語タイプ。

使用方法

パフォーマンスを向上させるには、このファンクションでファンクション・ベース索引を作成することを検討してください。詳細は、1.6.7.2項を参照してください。

次の例では、MDSYS.RDF_VALUE$表のすべてのプレーン・リテラルおよびxsd:string型のリテラルに対して字句の値を戻します。

SELECT SEM_APIS.GETV$STRINGVAL(value_type, vname_prefix, vname_suffix, 
  literal_type, language_type) 
  FROM MDSYS.RDF_VALUE$;

SEM_APIS.GETV$TIMETZVAL

書式

SEM_APIS.GETV$TIMETZVAL(

     value_type IN VARCHAR2,

     vname_prefix IN VARCHAR2,

     vname_suffix IN VARCHAR2,

     literal_type IN VARCHAR2,

     language_type IN VARCHAR2,

     ) RETURN TIMESTAMP WITH TIME ZONE;

説明

xsd:time型付きリテラルに対してTIMESTAMP WITH TIME ZONE値を戻し、他のすべてのRDF語句に対してNULL値を戻します。グリニッジ標準時は、タイムゾーンなしのxsd:time値に対してデフォルトのタイムゾーンとして使用されます。すべてのTIMESTAMP WITH TIME ZONE値で2009-06-26がデフォルトの日付として使用されます。

パラメータ

value_type

RDF語句のタイプ。

vname_prefix

RDF語句の接頭辞の値。

vname_suffix

RDF語句の接尾辞の値。

literal_type

RDF語句のリテラル・タイプ。

language_type

RDF語句の言語タイプ。

使用方法

パフォーマンスを向上させるには、このファンクションでファンクション・ベース索引を作成することを検討してください。詳細は、1.6.7.2項を参照してください。

xsd:time値には日付ではなく時刻のみが含まれているため、戻されたTIMESTAMP WITH TIME ZONE値(日付コンポーネントを含む)には、2009-06-26が日付として追加されています。これは、戻された値が内部的に索引付けできるように、また、日付がすべての戻された値で同じになるように実行されます。

次の例では、MDSYS.RDF_VALUE$表のすべてのxsd:timeのリテラルに対してTIMESTAMP WITH TIME ZONE値(日付にデフォルトの2009-06-26を使用)を戻します。 (

SELECT SEM_APIS.GETV$DATETIMETZVAL(value_type, vname_prefix, vname_suffix, 
  literal_type, language_type) 
  FROM MDSYS.RDF_VALUE$;

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)を戻します。

  • FALSE: 文はデータベースの指定したモデルのトリプルではありません。

  • TRUE: 文はデータベースの指定したモデルのトリプル値に一致しているか、トリプル値の正規形表現と同じです。

  • TRUE (EXACT): 指定したsubjectpropertyおよびobjectの値は、データベースの指定したモデルのトリプルと完全に一致しています。

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

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.LOAD_INTO_STAGING_TABLE

書式

SEM_APIS.LOAD_INTO_STAGING_TABLE(

     stagong_table IN VARCHAR2,

     source_table IN VARCHAR2,

     input_format IN VARCHAR2 DEFAULT NULL,

     parallel IN INTEGER DEFAULT NULL,

     staging_table_owner IN VARCHAR2 DEFAULT NULL,

     source_table_owner IN VARCHAR DEFAULT NULL,

     flags IN VARCHAR DEFAULT NULL);

説明

N-TripleまたはN-Quad形式の入力ファイルにマップされた外部表から、ステージング表にデータをロードします。

パラメータ

staging_table

ステージング表の名前。

source_table

ソース外部表の名前。

input_format

ソース外部表によってマップされる入力ファイルの形式のN-TRIPLEまたはN-QUAD

parallel

ロード中に使用する並列度。

staging_table_owner

作成中のステージング表の所有者。指定しない場合、起動側は所有者であると想定されます。

source_table_owner

ソース表の所有者。指定しない場合、起動側は所有者であると想定されます。

flags

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

使用方法

詳細およびその例は、1.7.1.1.2項「外部表を使用したステージング表へのN-Quad形式のデータのロード」を参照してください。

次の例では、ステージング表をロードします。(この例は、1.7.1.1.2項例1-36からの抜粋です。)

BEGIN
  sem_apis.load_into_staging_table(
    staging_table => 'STAGE_TABLE'
   ,source_table  => 'stage_table_source'
   ,input_format  => 'N-QUAD');
END;

SEM_APIS.LOOKUP_ENTAILMENT

書式

SEM_APIS.LOOKUP_ENTAILMENT (

     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.11.2項例1-44からの抜粋です。)

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

LOOKUP_ENTAILMENT
--------------------------------------------------------------------------------
RDFS_RIX_FAMILY

SEM_APIS.MERGE_MODELS

書式

SEM_APIS.MERGE_MODELS(

     source_model IN VARCHAR2,

     destination_model IN VARCHAR2,

     rebuild_apptab_index IN BOOLEAN DEFAULT TRUE,

     drop_source_model IN BOOLEAN DEFAULT FALSE,

     options IN VARCHAR2 DEFAULT NULL);

説明

ソース・モデルから宛先モデルに内容を挿入し、宛先アプリケーション表を更新します。

パラメータ

source_model

ソース・モデルの名前。

destination_model

宛先モデルの名前。

rebuild_apptab_index

TRUEは、モデルがマージされた後、宛先のアプリケーション表上の索引を再作成し、FALSEは、どの索引も再作成しません。

drop_source_model

TRUEは、モデルがマージされた後、ソース・モデル(source_model)を削除し、FALSE (デフォルト)は、ソース・モデルを削除しません。

options

プロシージャのデフォルトの動作を上書きするオプションのカンマ区切りの文字列。現在、このプロシージャのパラレル実行を有効にして、操作に関連付ける並列度を指定するDOP (並列度)オプションのみがサポートされています。

使用方法

モデルをマージする前に、位置パラメータを使用している場合は、1番目および2番目のパラメータに正しいモデル(1番目にソース・モデル、2番目に宛先モデル)を指定しているかを確認します。drop_source_model=TRUEを指定する予定の場合、これは特に重要です。

必要に応じて、マージを実行する前に、宛先モデルまたは両方のモデルのコピーを作成します。モデルのコピーを作成するには、SEM_APIS.CREATE_SEM_MODELを使用して、コピーに必要な名前で空のモデルを作成し、SEM_APIS.MERGE_MODELSを使用して、宛先モデルとして新しく作成されたコピーを移入します。

このプロシージャのいくつかの一般的な用途には次のものがあります。

  • 変更するモデルへの読取り専用のアクセス権を持っている場合、完全なアクセス権を持つ空のモデルにそのモデルをクローニングしてから、この後者のモデルを変更できます。

  • 複数のモデルを統合する場合、必要に応じてこのプロシージャを使用して、必要なモデルをマージできます。事前にすべてのモデルをマージし、マージしたモデルのみを使用することで、伴意を簡略化し、伴意のパフォーマンスを向上できます。

マルチコアまたはマルチCPUマシンでは、DOP (並列度)オプションが効果的な場合があります。DOPオプションを使用する例は、「例」を参照してください。

ソース・モデルが大きい場合、SEM_APIS.ANALYZE_MODELプロシージャをコールすることによって、マージ操作の後にマージ先でオプティマイザ統計を更新できます。

このプロシージャを使用する場合、次の考慮事項が適用されます。

  • 宛先モデルの所有者であり、ソース・モデルに対するSELECT権限を持っている必要があります。drop_second_model=TRUEの場合、ソース・モデルの所有者でもある必要があります。

  • このプロシージャは、VPD対応またはバージョン対応のセマンティク・モデルでは使用できません。

  • このプロシージャは、仮想モデル(1.3.8項を参照)ではサポートされません。

  • 表の制約は、宛先のアプリケーション表では許容されません。

次の例では、モデルM1の内容をM2に挿入します。

EXECUTE SEM_APIS.MERGE_MODELS('M1', 'M2');

次の例では、モデルM1の内容をM2に挿入し、並列度4 (マージ操作の実行では最大4つのパラレル・スレッド)を指定します。

EXECUTE SEM_APIS.MERGE_MODELS('M1', 'M2', null, null, 'DOP=4');

SEM_APIS.PRIVILEGE_ON_APP_TABLES

書式

SEM_APIS.PRIVILEGE_ON_APP_TABLES(

     command IN VARCHAR2 DEFAULT 'GRANT',

     privilege IN VARCHAR2 DEFAULT 'SELECT');

説明

MDSYSに対して、起動側が所有する全RDFモデルに対応するアプリケーション表へのSELECT権限またはINSERT権限の付与(または取消し)を実行します。

パラメータ

command

使用可能な値GRANT (デフォルト)またはREVOKEを含むSQL文(大/小文字の区別はありません)。

privilege

使用可能な値SELECT (デフォルト)またはINSERTを含む権限名(大/小文字の区別はありません)。

使用方法

(なし)

次の例では、MDSYSに、起動側が所有する全RDFモデルに対応するアプリケーション表へのSELECT権限を付与します。

EXECUTE SEM_APIS.PRIVILEGE_ON_APP_TABLES('grant', 'select');

SEM_APIS.PURGE_UNUSED_VALUES

書式

SEM_APIS.PURGE_UNUSED_VALUES(

     flags IIN VARCHAR2 DEFAULT NULL);

説明

セマンティク・ネットワークから未使用値をパージします。

パラメータ

flags

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

  • MBV_METHOD=SHADOWを指定すると、値の別のロード方法を使用できるため、大量の値をパージする必要がある場合に、処理がより高速になる可能性があります。

  • PARALLEL=<integer>を指定すると、この処理のほとんどを、integerで指定した、操作に関連付けられている並列度を使用してパラレルに実行できます。並列度なしでPARALLELのみを指定すると、デフォルトの並列度が使用されます。

  • PUV_COMPUTE_VIDS_USEDを指定すると、別の方法を使用できるため、ほとんどの値がパージされると予測される場合に、処理がより高速になる可能性があります。

使用方法

このプロシージャをコールする前に、MDSYSに、既存の全RDFモデルのアプリケーション表へのSELECT権限を付与する必要があります。

使用方法と使用例の詳細は、1.7.5項「未使用値のパージ」を参照してください。

次の例では、並列度4を使用して、未使用値をパージします。

EXECUTE SEM_APIS.PURGE_UNUSED_VALUES(flags => 'PARALLEL=4');

SEM_APIS.REFRESH_SEM_NETWORK_INDEX_INFO

書式

SEM_APIS.REFRESH_SEM_NETWORK_INDEX_INFO(

     options IN VARCHAR2 DEFAULT NULL);

説明

セマンティク・ネットワーク索引に関する情報をリフレッシュします。

パラメータ

options

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

使用方法

このプロシージャは、MDSYS.SEM_NETWORK_INDEX_INFOビュー(1.8.1項を参照)の情報を更新します。

次の例では、セマンティク・ネットワーク索引に関する情報をリフレッシュします。

EXECUTE sem_apis.refresh_sem_network_index_info;

SEM_APIS.REMOVE_DUPLICATES

書式

SEM_APIS.REMOVE_DUPLICATES(

     model_name IN VARCHAR2,

     threshold IN FLOAT DEFAULT 0.3,

     rebuild_apptab_index IN BOOLEAN DEFAULT TRUE);

説明

モデルから重複トリプルを削除します。

パラメータ

model_name

モデルの名前。

threshold

削除操作が実行されるために、どれだけ多くのトリプルが必要かを決定する値。このプロシージャは、モデルのトリプルの数が次の計算式を上回る場合にのみ、トリプルを削除します(トリプルの合計 - 一意のトリプルの合計 + 0.01) / (一意のトリプルの合計 + 0.01)。デフォルト値の0.3とトリプルの合計1000 (重複を含む)を含むモデルの場合、重複の数がおよそ230を超える場合にのみ、重複トリプルが削除されます。

しきい値が低くなるほど、プロシージャが重複を削除するのに必要な重複の数は少なくなり、しきい値が高くなるほど、プロシージャが重複を削除するのに必要な重複の数は多くなります。

rebuild_apptab_index

TRUE (デフォルト)は、重複トリプルの削除後、この操作によって影響された表の使用可能なすべての索引を再作成し、FALSEは、索引を再作成しません。

使用方法

重複トリプルが削除されると、トリプル列以外の列の情報など、削除された行のすべての情報が失われます。

このプロシージャは、仮想モデル(1.3.8項を参照)ではサポートされません。

このプロシージャは、バージョン対応モデル(第6章を参照)ではサポートされません。

モデルが空の場合、または、重複トリプルが存在しないか(threshold値を使用して計算されるような)十分な重複トリプルが存在しない場合、このプロシージャは削除操作を実行しません。

操作を実行するには(threshold値を使用して計算されるような)十分な重複がない場合、情報メッセージが表示されます。

次の例では、familyというモデルから重複したトリプルを削除します。デフォルトのしきい値0.3を受け入れ、重複が削除された後、(デフォルトで)索引が再構築されます。

EXECUTE SEM_APIS.REMOVE_DUPLICATES('family');

SEM_APIS.RENAME_ENTAILMENT

書式

SEM_APIS.RENAME_ENTAILMENT(

     old_name IN VARCHAR2,

     new_name IN VARCHAR2);

説明

伴意(ルール索引)の名前を変更します。

パラメータ

old_name

名前を変更する既存の伴意の名前。

new_name

伴意の新規の名前。

使用方法

6.5項「RDFデータに対してWorkspace Managerサポートを使用する場合の特別な考慮事項」の説明にあるとおり、このプロシージャはバージョン対応RDFモデルではサポートされません。

次の例では、OWLTST_IDXという伴意の名前をMY_OWLTST_IDXに変更します。

EXECUTE sem_apis.rename_entailment('owltst_idx', 'my_owltst_idx');

SEM_APIS.RENAME_MODEL

書式

SEM_APIS.RENAME_MODEL(

     old_name IN VARCHAR2,

     new_name IN VARCHAR2);

説明

モデルの名前を変更します。

パラメータ

old_name

名前を変更する既存のモデルの名前。

new_name

モデルの新規の名前。

使用方法

このプロシージャを使用する場合、次の考慮事項が適用されます。

  • 既存のモデルの所有者である必要があります。

  • このプロシージャは、VPD対応またはバージョン対応のセマンティク・モデルでは使用できません。

  • このプロシージャは、仮想モデル(1.3.8項を参照)ではサポートされません。

このプロシージャは、2つの既存のモデルの名前を交換するSEM_APIS.SWAP_NAMESとは対照的です。

次の例では、MODEL1というモデルの名前をMODEL2に変更します。

EXECUTE sem_apis.rename_model('model1', 'model2');

SEM_APIS.SWAP_NAMES

書式

SEM_APIS.SWAP_NAMES(

     model1 IN VARCHAR2,

     model2 IN VARCHAR2);

説明

2つの既存のモデルの名前を交換します。

パラメータ

model1

モデルの名前。

model2

別のモデルの名前。

使用方法

このプロシージャの結果として、モデルmodel1の名前はmodel2の(古い)名前に変更され、モデルmodel2の名前はmodel1の(古い)名前に変更されます。

名前の順序は、結果に影響しません。たとえば、model1に対してTESTおよびmodel2に対してPRODUCTION、または、model1に対してPRODUCTIONおよびmodel2に対してTESTを指定できますが、結果は同じになります。

6.5項「RDFデータに対してWorkspace Managerサポートを使用する場合の特別な考慮事項」の説明にあるとおり、このプロシージャはバージョン対応RDFモデルではサポートされません。

このプロシージャは、既存のモデルの名前を変更するSEM_APIS.RENAME_MODELとは対照的です。

次の例では、(古い)TESTモデルの名前をPRODUCTIONに、(古い)PRODUCTIONモデルの名前をTESTに変更します。

EXECUTE sem_apis.swap_names('test', 'production');

SEM_APIS.UNESCAPE_CLOB_TERM

書式

SEM_APIS.UNESCAPE_CLOB_TERM(

     term IN CLOB CHARACTER SET ANY_CS

     ) RETURN CLOB CHARACTER SET val%CHARSET;

説明

W3CのN-Triples形式(http://www.w3.org/TR/rdf-testcases/#ntriples)で指定された入力RDF語句について、特殊文字および非ASCII文字をアンエスケープして戻します。

パラメータ

term

アンエスケープするRDF語句。

使用方法

SEM_MATCHテーブル・ファンクションのoptionsパラメータでDO_UNESCAPEキーワードを使用する方法の詳細は、1.6項「SEM_MATCHテーブル・ファンクションを使用したセマンティク・データの問合せ」を参照してください。

次の例では、タブ文字と改行文字を含む入力RDF語句をアンエスケープします。

SELECT SEM_APIS.UNESCAPE_CLOB_TERM('"abc\tdef\nhij"^^<http://www.w3.org/2001/XMLSchema#string>') FROM DUAL;

SEM_APIS.UNESCAPE_CLOB_VALUE

書式

SEM_APIS.UNESCAPE_CLOB_VALUE(

     val IN VARCHAR2 CHARACTER SET ANY_CS,

     start_offset IN NUMBER DEFAULT 1,

     end_offset IN NUMBER DEFAULT 0,

     include_start IN NUMBER DEFAULT 0

     ) RETURN VARCHAR2 CHARACTER SET val%CHARSET;

説明

W3CのN-Triples形式(http://www.w3.org/TR/rdf-testcases/#ntriples)で指定された入力CLOB値について、特殊文字および非ASCII文字をアンエスケープして戻します。

パラメータ

val

アンエスケープするCLOBテキスト。

start_offset

valの中で文字のアンエスケープを開始する位置のオフセット。デフォルト(1)は、valの最初の文字でエスケープを開始します。

end_offset

valの中で文字のアンエスケープを終了する位置のオフセット。デフォルト(0)は、valの末尾からエスケープを継続します。

include_start

valの1文字目からstart_offsetまでの文字を戻り値の先頭に追加する場合は、1に設定します。それ以外の場合、これらの文字は戻り値の先頭に追加されません。

使用方法

SEM_MATCHテーブル・ファンクションのoptionsパラメータでDO_UNESCAPEキーワードを使用する方法の詳細は、1.6項「SEM_MATCHテーブル・ファンクションを使用したセマンティク・データの問合せ」を参照してください。

次の例では、タブ文字と改行文字を含む入力文字列をアンエスケープします。

SELECT SEM_APIS.UNESCAPE_CLOB_VALUE('abc\tdef\nhij') FROM DUAL;

SEM_APIS.UNESCAPE_RDF_TERM

書式

SEM_APIS.UNESCAPE_RDF_TERM(

     term IN VARCHAR2 CHARACTER SET ANY_CS

     ) RETURN VARCHAR2 CHARACTER SET val%CHARSET;

説明

W3CのN-Triples形式(http://www.w3.org/TR/rdf-testcases/#ntriples)で指定された入力RDF語句について、特殊文字および非ASCII文字をアンエスケープして戻します。

パラメータ

term

アンエスケープするRDF語句。

使用方法

SEM_MATCHテーブル・ファンクションのoptionsパラメータでDO_UNESCAPEキーワードを使用する方法の詳細は、1.6項「SEM_MATCHテーブル・ファンクションを使用したセマンティク・データの問合せ」を参照してください。

次の例では、タブ文字と改行文字を含む入力RDF語句をアンエスケープします。

SELECT SEM_APIS.UNESCAPE_RDF_TERM('"abc\tdef\nhij"^^<http://www.w3.org/2001/XMLSchema#string>') FROM DUAL;

SEM_APIS.UNESCAPE_RDF_VALUE

書式

SEM_APIS.UNESCAPE_RDF_VALUE(

     val IN VARCHAR2 CHARACTER SET ANY_CS

     ) RETURN VARCHAR2 CHARACTER SET val%CHARSET;

説明

W3CのN-Triples形式(http://www.w3.org/TR/rdf-testcases/#ntriples)で指定された入力値について、特殊文字および非ASCII文字をアンエスケープして戻します。

パラメータ

val

アンエスケープするテキスト。

使用方法

SEM_MATCHテーブル・ファンクションのoptionsパラメータでDO_UNESCAPEキーワードを使用する方法の詳細は、1.6項「SEM_MATCHテーブル・ファンクションを使用したセマンティク・データの問合せ」を参照してください。

次の例では、タブ文字と改行文字を含む入力文字列をアンエスケープします。

SELECT SEM_APIS.UNESCAPE_RDF_VALUE('abc\tdef\nhij') FROM DUAL;

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