SEM_APISパッケージには、Oracle DatabaseのResource Description Framework (RDF)およびWeb Ontology Language (OWL)とともに使用できるサブプログラム(ファンクションとプロシージャ)が含まれます。この章のサブプログラムを使用するには、「RDFセマンティク・グラフの概要」と「OWLの概要」に記載されている概念および使用情報について理解しておく必要があります。
この章では、サブプログラムに関するリファレンス情報を示します(サブプログラムのリストはアルファベット順です)。
書式
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);
説明
指定されたデータ型のデータ型索引をセマンティク・ネットワークに追加します。
パラメータ
索引付けするデータ型のURI。
索引作成先の表領域。
索引作成時に使用する並列度。
TRUE
に設定すると、索引作成時に索引に影響を及ぼすDML操作が許可されます。FALSE
(デフォルト)に設定すると、索引作成時に索引に影響を及ぼすDML操作は許可されません。
OPTION_NAME=option_value形式を使用する索引作成のオプションを指定する文字列。空間索引の作成に関連付けられているサポート対象オプションは、SRID
、TOLERANCE
、およびDIMENSIONS
です(「空間データの索引付け」を参照)。テキスト索引の作成に関連付けられているサポート対象オプションは、PREFIX_INDEX
、PREFIX_MIN_LENGTH
、PREFIX_MAX_LENGTH
、およびSUBSTRING_INDEX
です(「全文検索」を参照)。キーワードの名前は大/小文字が区別されるため、大文字で指定してください。
使用上の注意
このプロシージャをコールするには、DBA権限が必要です。
データ型索引付けの詳細は、「データ型索引の使用」を参照してください。
RDF空間データに対するデータ型索引の作成に関する詳細は、「空間データの索引付け」を参照してください。
例
次の例では、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( index_code IN VARCHAR2);
説明
セマンティク・ネットワーク索引を作成することにより、セマンティク・ネットワークの既存のモデルおよび伴意それぞれに対して、一意でないBツリー索引がUNUSABLEステータスで作成されます。
例
次の例では、索引コード文字列pcsm
を使用して、セマンティク・ネットワークのモデルおよび伴意に対するセマンティク・ネットワーク索引を作成します。
EXECUTE SEM_APIS.ADD_SEM_INDEX('pscm');
書式
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);
説明
データ型索引を変更します。
パラメータ
例
次の例では、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( entailment_name IN VARCHAR2, command IN VARCHAR2, tablespace_name IN VARCHAR2, parallel IN NUMBER(38) DEFAULT NULL);
説明
伴意(ルール索引)を変更します。現在、サポートされている唯一のアクションは、指定された表領域に伴意を移動することです。
パラメータ
使用上の注意
伴意の詳細は、「伴意(ルール索引)」を参照してください。
例
次の例では、伴意rdfs_rix_family
を表領域my_tbs
に移動します。
EEXECUTE SEM_APIS.ALTER_ENTAILMENT('rdfs_rix_family', 'MOVE', 'my_tbs');
書式
SEM_APIS.ALTER_MODEL( model_name IN VARCHAR2, command IN VARCHAR2, tablespace_name IN VARCHAR2, parallel IN NUMBER(38) DEFAULT NULL);
説明
モデルを変更します。現在、サポートされている唯一のアクションは、指定したデータベースにモデルを移動することです。
パラメータ
使用上の注意
モデルの詳細は、「セマンティク・データのモデル化」および「データベースのセマンティク・データ」を参照してください。
「RDFデータに対してWorkspace Managerサポートを使用する場合の特別な考慮事項」の説明にあるとおり、このプロシージャはバージョン対応RDFモデルではサポートされません。
例
次の例では、モデルfamily
を表領域my_tbs
に移動します。
EEXECUTE SEM_APIS.ALTER_MODEL('family', 'MOVE', 'my_tbs');
書式
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);
説明
伴意のセマンティク・ネットワーク索引を変更します。
パラメータ
伴意の名前。
索引コード文字列。
次のコマンドのいずれかを含む文字列値。REBUILD
(伴意のセマンティク・ネットワーク索引を再作成する場合)またはUNUSABLE
(伴意のセマンティク・ネットワーク索引に使用不可としてマークを付ける場合)。このパラメータの値には、大/小文字の区別がありません。
再構築操作先の表領域の名前。
索引を再構築する場合に圧縮を使用するかどうかを指定します。
操作に関連付けられている並列度。パラレル実行の詳細は、『Oracle Database VLDBおよびパーティショニング・ガイド』を参照してください。
TRUE
に設定すると、索引再作成時に索引に影響を及ぼすDML操作が許可され、FALSE
(デフォルト)に設定すると、索引再作成時に索引に影響を及ぼすDML操作は許可されません。
使用上の注意
セマンティク・ネットワーク索引の詳細は、「セマンティク・ネットワーク索引の使用」を参照してください。
例
次の例では、伴意rdfs_rix_family
のセマンティク・ネットワーク索引を再作成します(また、使用不可になっている場合は使用可能にします)。
EXECUTE SEM_APIS.ALTER_SEM_INDEX_ON_ENTAILMENT('rdfs_rix_family', 'pscm', 'rebuild');
書式
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);
説明
モデルのセマンティク・ネットワーク索引を変更します。
パラメータ
モデルの名前。
索引コード文字列。
次のコマンドのいずれかを含む文字列値。REBUILD
(モデルのセマンティク・ネットワーク索引を再作成する場合)またはUNUSABLE
(モデルのセマンティク・ネットワーク索引に使用不能としてマークを付ける場合)。このパラメータの値には、大/小文字の区別がありません。
再構築操作先の表領域の名前。
索引を再構築する場合に圧縮を使用するかどうかを指定します。
操作に関連付けられている並列度。パラレル実行の詳細は、『Oracle Database VLDBおよびパーティショニング・ガイド』を参照してください。
TRUE
に設定すると、索引再作成時に索引に影響を及ぼすDML操作が許可され、FALSE
(デフォルト)に設定すると、索引再作成時に索引に影響を及ぼすDML操作は許可されません。
使用上の注意
セマンティク・ネットワーク索引の詳細は、「セマンティク・ネットワーク索引の使用」を参照してください。
例
次の例では、モデルfamily
のセマンティク・ネットワーク索引を再作成します(また、使用不可になっている場合は使用可能にします)。
EXECUTE SEM_APIS.ALTER_SEM_INDEX_ON_MODEL('family', 'pscm', 'rebuild');
書式
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);
説明
指定された伴意(ルール索引)の統計を収集します。
パラメータ
伴意の名前。
伴意の情報を含む内部表パーティション内の、評価される行の割合(NULL
は計算を意味します)。有効なレンジは、[0.000001,100]です。定数DBMS_STATS
.AUTO_SAMPLE_SIZE
を使用すると、有効な統計を生成するための適切なサンプル・サイズがOracleにより決定されます。これが通常のデフォルトです。
伴意の情報を含む内部表パーティションに対して、次のいずれかのオプション(または両方の組合せ)を受け入れます。
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
: 列のデータ分布とワークロードに基づいて、ヒストグラムを収集する列が決まります。- SKEWONLY
: 列のデータ分布に基づいてヒストグラムを収集する列が決まります。column_name
: 列の名前。extension: 式または
(column_name
, column_name
[, ...])の形式で指定された列グループ。通常のデフォルトは、FOR ALL COLUMNS SIZE AUTO
です。
伴意の情報を含む内部表パーティションに関する並列度です。通常、degree
のデフォルト値はNULL
で、CREATE TABLE
文またはALTER TABLE
文のDEGREE
句で指定された表のデフォルト値が使用されます。初期化パラメータに基づいてデフォルト値を指定するには、定数DBMS_STATS.DEFAULT_DEGREE
を使用します。値にAUTO_DEGREE
を指定すると、並列度が自動的に決定されます。オブジェクトのサイズに応じて、1(シリアル実行)またはDEFAULT_DEGREE
(CPU数と初期化パラメータに基づくシステム・デフォルト値)になります。
伴意の情報を含む内部表パーティションの索引に関する統計を収集します。定数DBMS_STATS.AUTO_CASCADE
を使用すると、索引統計を収集するかどうかがOracleにより決定されます。これが通常のデフォルトです。
TRUE
に設定した場合、依存カーソルは無効化されません。FALSE
に設定した場合、依存カーソルは即時に無効化されます。DBMS_STATS
.AUTO_INVALIDATE
.を使用すると、従属カーソルを無効化するかどうかがOracleにより決定されます。これが通常のデフォルトです。
TRUE
に設定すると、伴意がロックされている場合でも統計が収集されます。FALSE
(デフォルト)に設定すると、伴意がロックされている場合は統計が収集されません。
使用上の注意
クラスタ、ドメインおよび結合索引を除いて、索引統計コレクションはパラレル化できます。
このプロシージャは、伴意の情報を含む内部表パーティションの統計を収集するDBMS_STATS.GATHER_TABLE_STATSプロシージャを内部的にコールします。DBMS_STATS.GATHER_TABLE_STATSプロシージャについては、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。
「セマンティク・モデルおよびセマンティク・ネットワークの統計の管理」を参照してください。
「伴意」の詳細は、「伴意(ルール索引)」を参照してください。
例
次の例では、伴意rdfs_rix_family
の統計を収集します。
EXECUTE SEM_APIS.ANALYZE_ENTAILMENT('rdfs_rix_family');
書式
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);
説明
指定されたモデルのオプティマイザ統計を収集します。
パラメータ
モデルの名前。
モデルの情報を含む内部表パーティション内の、評価される行の割合(NULL
は計算を意味します)。有効なレンジは、[0.000001,100]です。定数DBMS_STATS
.AUTO_SAMPLE_SIZE
を使用すると、有効な統計を生成するための適切なサンプル・サイズがOracleにより決定されます。これが通常のデフォルトです。
モデルの情報を含む内部表パーティションに対して、次のいずれかのオプション(または両方の組合せ)を受け入れます。
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
: 列のデータ分布とワークロードに基づいて、ヒストグラムを収集する列が決まります。- SKEWONLY
: 列のデータ分布に基づいてヒストグラムを収集する列が決まります。column_name
: 列の名前。extension: 式または
(column_name
, column_name
[, ...])の形式で指定された列グループ。通常のデフォルトは、FOR ALL COLUMNS SIZE AUTO
です。
モデルの情報を含む内部表パーティションの索引に関する並列度です。通常、degree
のデフォルト値はNULL
で、CREATE TABLE
文またはALTER TABLE
文のDEGREE
句で指定された表のデフォルト値が使用されます。初期化パラメータに基づいてデフォルト値を指定するには、定数DBMS_STATS.DEFAULT_DEGREE
を使用します。値にAUTO_DEGREE
を指定すると、並列度が自動的に決定されます。オブジェクトのサイズに応じて、1(シリアル実行)またはDEFAULT_DEGREE
(CPU数と初期化パラメータに基づくシステム・デフォルト値)になります。
モデルの情報を含む内部表パーティションの索引に関する統計を収集します。定数DBMS_STATS.AUTO_CASCADE
を使用すると、索引統計を収集するかどうかがOracleにより決定されます。これが通常のデフォルトです。
TRUE
に設定した場合、依存カーソルは無効化されません。FALSE
に設定した場合、依存カーソルは即時に無効化されます。DBMS_STATS
.AUTO_INVALIDATE
.を使用すると、従属カーソルを無効化するかどうかがOracleにより決定されます。これが通常のデフォルトです。
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( 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);
説明
ステージング表からセマンティク・データをロードします。
パラメータ
モデルの名前。
ロードされるセマンティク・データを保持するステージング表を所有するスキーマの名前。
ロードされるセマンティク・データを保持するステージング表の名前。
次のキーワード指定が1つ以上含まれる、引用符で囲んだオプションの文字列。
DEL_BATCH_DUPS=USE_INSERT
を指定すると、挿入に基づく重複除去方法を使用できるため、入力データに多くの重複が含まれている場合に処理がより高速になる可能性があります。
MBV_METHOD=SHADOW
を指定すると、異なる値をロードする方法を使用できるため、大量のロード処理がより高速になる可能性があります。
PARALLEL_CREATE_INDEX
を指定すると、内部索引をパラレルに作成できるため、バルク・ロード処理のパフォーマンスが向上する可能性があります。
PARALLEL=<
integer
>
を指定すると、バルク・ロードで行われる処理の多くを、その操作に関連付けて指定した並行度で並列実行できます。
PARSE
を指定すると、ステージング表(グラフ名を含む解析トリプル)から取得されるトリプルを解析できます。
<task>
_JOIN_HINT=
<join_type>
。ここで、<task>はバルク・ロード中に実行される内部タスクで、IZC
(衝突なし)、MBV
(バッチ値のマージ)またはMBT
(バッチ・トリプルのマージで、空でないモデルにトリプルを追加する際に使用されます)のいずれかの値を取ることができます。また<join_type>が取ることができる値は、USE_NL
およびUSE_HASH
。です。
(今後使用予定)
ロード操作の開始についてのオプションのコメント。
ロード操作の終了についてのオプションのコメント。
使用上の注意
このプロシージャをコールする前に、ステージング表にセマンティク・データをロードする必要があります。詳細は「ステージング表を使用したセマンティク・データのバルク・ロード」を参照してください。
BULK_LOAD_FROM_STAGING_TABLEとファイングレイン・アクセス制御(VPDおよびOLS)の併用
VPDを使用する特定のモデルに対して、またはOLSを使用するネットワーク全体に対して、ファイングレイン・アクセス制御(「RDFデータのファイングレイン・アクセス制御」を参照)が有効な場合、関連ポリシーへの完全なアクセス権限を持つユーザーのみがバルク・ロード操作を実行できます。VPDポリシー(「RDFデータのVPDポリシー」を参照)に関連付けられる名前空間に対して、パッケージ定数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 => 'IZC_JOIN_HINT=USE_HASH MBV_JOIN_HINT=USE_HASH');
書式
SEM_APIS.CLEANUP_FAILED( rdf_object_type IN VARCHAR2, rdf_object_name IN VARCHAR2);
説明
指定したルールベースまたは伴意が失敗の状態にある場合、それらを削除します。
パラメータ
使用上の注意
このプロシージャは、指定したRDFオブジェクトが失敗の状態にあるかどうかをチェックし、オブジェクトが失敗の状態にある場合、プロシージャはそのオブジェクトを削除します。
ルールベースまたは伴意が失敗の状態になるのは、そのオブジェクトの作成中にシステム障害が発生した場合です。ルールベースまたは伴意が失敗の状態にあるかどうかをチェックするには、それぞれSDO_RULEBASE_INFOビュー(「推論: ルールとルールベース」を参照)またはSDO_RULES_INDEX_INFOビュー(「伴意 (ルール索引)」を参照)のSTATUS列の値がFAILED
であるかどうかを確認します。
ルールベースまたは伴意が失敗の状態にない場合、このプロシージャは何のアクションも実行せず、成功のステータスを戻します。
RDFオブジェクトが現在使用されている場合、例外が生成されます。
例
次の例では、ルールベースfamily_rb
が失敗の状態にある場合にのみ、そのルールベースを削除します。
EXECUTE SEM_APIS.CLEANUP_FAILED('RULEBASE', 'family_rb');
書式
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語句を作成して戻します。
パラメータ
値名。MDSYS.RDF_VALUE$表(「文」を参照)のVALUE_NAME列の値、またはSEM_MATCHテーブル・ファンクションから戻されたvar属性の値と一致する必要があります。
テキスト情報のタイプ。MDSYS.RDF_VALUE$表(「文」を参照)のVALUE_TYPE列の値、またはSEM_MATCHテーブル・ファンクションから戻されたvar$RDFVTYP属性の値と一致している必要があります。
型付きリテラルの場合は型情報、それ以外の場合はNULL。NULL値か、MDSYS.RDF_VALUE$表(「文」を参照)のLITERAL_TYPE列の値、またはSEM_MATCHテーブル・ファンクションから戻されたvar$RDFLTYP属性の値と一致している必要があります。
言語タグ。MDSYS.RDF_VALUE$表(「文」を参照)のLANGUAGE_TYPE列の値、またはSEM_MATCHテーブル・ファンクションから戻されたvar$RDFLANG属性の値と一致している必要があります。
字句の値の長さが4000バイトを超える場合の文字列。MDSYS.RDF_VALUE$表(「文」を参照)のLONG_VALUE列の値、またはSEM_MATCHテーブル・ファンクションから戻されたvar$RDFCLOB属性の値と一致している必要があります。
(将来使用するために予約済)
使用上の注意
一貫性のない値の組合せをパラメータに指定すると、このファンクションは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( 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, inf_ext_user_func_name IN VARCHAR2 DEFAULT NULL);
説明
OWLまたはRDFS推論を実行する(およびオプションでユーザー定義ルールを使用する)際に使用できる伴意(ルール索引)を作成します。
パラメータ
作成する伴意の名前。
1つ以上のモデル名。そのデータ型は、TABLE OF VARCHAR2(25)
という定義を持つSEM_MODELSです。
1つ以上のルールベース名。そのデータ型は、TABLE OF VARCHAR2(25)
という定義を持つSEM_RULEBASESです。ルールおよびルールベースの詳細は、「推論: ルールとルールベース」を参照してください。
推論エンジンを実行する回数。デフォルト値はSEM_APIS.REACH_CLOSURE
であり、推論エンジンは閉包に到達するまで実行されます。指定した実行回数が、閉包に到達するのに必要な実際の実行回数より少ない場合、伴意のステータスはINCOMPLETE
に設定されます。
選択的またはコンポーネント・ベースの推論を実行する場合の推論コンポーネントを示すキーワードのカンマ区切りの文字列。このパラメータがNULLの場合、推論コンポーネントのデフォルト・セットが使用されます。推論コンポーネントの詳細は、「使用方法」を参照してください。
カンマ区切りの文字列で、デフォルトの推論の動作をオーバーライドすることにより推論プロセスを制御するためのオプション。オプションを有効化するには、option-name
=T
を指定し、オプションを無効化するには、option-name
=F
を指定します(デフォルト)。option-nameに設定できる値は、COL_COMPRESS
、DEST_MODEL
、DISTANCE,DOP
、ENTAIL_ANYWAY
、HASH_PART
、INC
、LOCAL_NG_INF
、OPT_SAMEAS
、RAW8
、PROOF
およびUSER_RULES
です。各値の詳細は、「使用方法」を参照してください。
増分推論が有効な場合は、増分推論を実行する1つ以上のモデルを指定します。そのデータ型は、TABLE OF VARCHAR2(25)
という定義を持つSEM_MODELSです。
delta_in
の1つ目のモデルのトリプルがmodels_in
の1つ目のモデルにコピーされ、rules_index_in
の伴意(ルール索引)が更新されます。次に、delta_in
の2つ目のモデル(ある場合)のトリプルがmodels_in
の2つ目のモデル(ある場合)にコピーされ、rules_index_in
の伴意が更新されます。このようにすべてのトリプルがコピーされ、伴意が更新されるまで続きます。(増分推論が伴意で有効にされていない場合、delta_in
パラメータは無効です。)
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
(前件ラベルの使用の場合)。各定数の詳細な説明は、「推論されたトリプルのラベルの生成」を参照してください。
カスタム・ラベル・ジェネレータを使用する場合、カスタム・ラベル・ジェネレータ・タイプを指定します。カスタム・ラベル・ジェネレータの作成および実装の詳細は、「アプリケーション・ロジックに基づくラベルの使用」を参照してください。
指定された名前付きグラフからのすべてのトリプル(すべてのソース・モデル全体)を、名前付きグラフ・ベースのグローバル推論(NGGI、「名前付きグラフ・ベースのグローバル推論(NGGI)」を参照)に加えます。たとえばinclude_named_g => sem_graphs('<urn:G1>','<urn:G2>')
は、名前付きグラフG1
およびG2
からのトリプルがNGGIに含められることを意味します。
指定されたモデルのグラフ名がNULLであるすべてのトリプルを、名前付きグラフ・ベースのグローバル推論(NGGI、「名前付きグラフ・ベースのグローバル推論」を参照)に加えます。たとえば、include_default_g => sem_models('m1')
は、モデルM1
からのグラフ名がNULLであるすべてのトリプルをNGGIに含めます。
指定されたモデル内にあるすべてのトリプルを、そのグラフ名の値に関わらず、名前付きグラフ・ベースのグローバル推論(NGGI、「名前付きグラフ・ベースのグローバル推論」を参照)に加えます。たとえば、include_all_g => sem_models('m2')
は、モデルM2
のすべてのトリプルをNGGIに含めます。
名前付きグラフ・ベースのグローバル推論(NGGI、「名前付きグラフ・ベースのグローバル推論(NGGI)」を参照)で推論された新しいトリプルすべてに、指定されたグラフ名を割り当てます。
ユーザー定義の推論ファンクションの名前、またはユーザー定義ファンクションの名前のカンマ区切りのリスト。特定のパラメータの形式要件やオプションなど、ユーザー定義の推論ファンクションの作成の詳細は、「ユーザー定義の推論のAPIサポート」を参照してください。(例を含むユーザー定義の推論の詳細は、「ユーザー定義の推論と問合せ」を参照してください。)
使用上の注意
inf_components_in
パラメータには、キーワードSCOH
COMPH
、DISJH
、SYMMH
、INVH
、SPIH
、MBRH
、SPOH
、DOMH
、RANH
、EQCH
、EQPH
、FPH
、IFPH
、DOM
、RAN
、SCO
、DISJ
、COMP
、INV
、SPO
、FP
、IFP
、SYMM
、TRANS
、DIF
、SAM
、CHAIN
、HASKEY
、ONEOF
、INTERSECT
、INTERSECTSCOH
、MBRLST
、PROPDISJH
、SKOSAXIOMS
、SNOMED
、SVFH
、THINGH
、THINGSAM
、UNION
、RDFP1
、RDFP2
、RDFP3
、RDFP4
、RDFP6
、RDFP7
、RDFP8AX
、RDFP8BX
、RDFP9
、RDFP10
、RDFP11
、RDFP12A
、RDFP12B
、RDFP12C
、RDFP13A
、RDFP13B
、RDFP13C
、RDFP14A
、RDFP14BX
、RDFP15
、RDFP16
、RDFS2
、RDFS3
、RDFS4a
、RDFS4b
、RDFS5
、RDFS6
、RDFS7
、RDFS8
、RDFS9
、RDFS10
、RDFS11
、RDFS12
、RDFS13
の任意の組合せを指定できます。これらのキーワードの意味の説明は、キーワードのアルファベット順のリストである表11-1を参照してください。
OWLPrimeボキャブラリの推論コンポーネントのデフォルト・セットには、SCOH
、COMPH
、DISJH
、SYMMH
、INVH
、SPIH
、SPOH
、DOMH
、RANH
、EQCH
、EQPH
、FPH
、IFPH
、SAMH
、DOM
、RAN
、SCO
、DISJ
、COMP
、INV
、SPO
、FP
、IFP
、SYMM
、TRANS
、DIF
、RDFP14A
、RDFP14BX
、RDFP15
、RDFP16
が含まれます。ただし、次のことに注意してください。
コンポーネントSAM
は、一部のオントロジで多数の新規トリプルを生成することが多いため、このデフォルトのOWLPrimeリストには含まれません。
リリース11.2では、ネイティブOWL推論エンジンにより、新しい推論コンポーネントであるCHAIN
、HASKEY
、INTERSECT
、INTERSECTSCOH
、MBRLST
、ONEOF
、PROPDISJH
、SKOSAXIOMS
、SNOMED
、SVFH
、THINGH
、THINGSAM
、UNION
がサポートされます。ただし、下位互換のために、OWLPrimeルールベースなどの既存のルールベースには、デフォルトでは前述の新しいコンポーネントは含まれていないため、使用するには明示的に設定する必要があります。これらを表11-1に示します。次の例では、OWLPrime伴意がLUBM
とUNIV
という名前の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');
表11-1 inf_components_inパラメータの推論キーワード
キーワード | 説明 |
---|---|
CHAIN |
OWL 2で定義されるプロパティ・チェーン・セマンティクを取得します。長さが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 |
どのリソースにおいても、 |
ONEOF |
列挙クラスの定義に基づいて、分類表明を生成します。OWLでは、クラス拡張を |
PROPDISJH |
|
RANH |
|
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の詳細は、「RDF Semantics」( |
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の詳細な指定で定義されるほとんどの公理を取得します。デフォルトでは、これは |
最も表現が多様で複雑な医学用語集の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 |
|
コンポーネントを選択解除するには、コンポーネント名の次にマイナス記号(-)を付けます。たとえば、SCOH-
と指定すると、subClassOf
階層の推論が選択解除されます。
options
パラメータでは、次のオプションを有効化してデフォルトの推論動作を上書きできます。
COL_COMPRESS=T
は一時的な、中間作業表を作成します。このオプションは、このような表に必要な領域を減らすことができ、大きなデータセットのCREATE_ENTAILMENT操作のパフォーマンスを向上できます。
デフォルトでは、COL_COMPRESS=T
は「問合せのための圧縮レベルが低い」設定を使用しますが、CPQH=T
を追加して「問合せのための圧縮レベルが高い」設定に変更できます。
注意:
COL_COMPRESS=T
は、ハイブリッド列圧縮(HCC) をサポートするシステムでのみ指定できます。HCCの詳細は、『Oracle Database概要』を参照してください。
DEST_MODEL=
<model_name>
は、増分推論のために、1つ以上のdelta_in
モデルが追加される宛先モデルを指定します。指定される宛先モデルは、models_in
パラメータで指定されるモデルの1つである必要があります。
DISTANCE=T
: セマンティク演算子に有効な補助的距離情報を生成します。
DOP=
n
には、パラレル推論の並列度を指定します。これにより推論パフォーマンスを向上させることができます。パラレル推論の詳細は、「パラレル推論の使用」を参照してください。
ENTAIL_ANYWAY=T
: 伴意のステータスが有効の場合、OWL推論を強制的に続行し、既存の推論データ(伴意)を再利用します。デフォルトでは、モデルとルールベースの組合せに対して有効な伴意がすでに存在する場合、SEM_APIS.CREATE_ENTAILMENTは即座に終了します。
HASH_PART=
n
を指定すると、指定した数のハッシュ・パーティションが、内部の作業表に作成されます。(この数は、2、4、8、16、32など、2の累乗値である必要があります。)多くの異なった述語がセマンティク・データ・モデルにある場合、値を指定できます。ベンチマーク・オントロジのOracle内部のテストで、HASH_PART=32は適切に動作しました。
INC=T
は、伴意に対して増分推論を有効にします。増分推論の詳細は、「増分推論の実行」を参照してください。
LOCAL_NG_INF=T
は、名前付きグラフ・ベースのグローバル推論(NGGI)のかわりに名前付きグラフ・ベースのローカル推論(NGLI)が使用されるようにします。NGLIの詳細は、「名前付きグラフ・ベースのローカル推論(NGLI)」を参照してください。
OPT_SAMEAS=T
は、伴意に、統合されたowl:sameAs
伴意を使用します。このオプションを指定する場合、PROOF=T
は指定できません。owl:sameAs
推論の最適化に関する詳細は、「owl:sameAs推論の最適化」を参照してください。
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ラベル・ジェネレータを使用する場合、表11-2から適切なSEM_RDFSAパッケージ定数値を指定します。
表11-2 label_genパラメータのSEM_RDFSAパッケージ定数
定数 | 説明 |
---|---|
SEM_RDFSA.LABELGEN_SUBJECT |
トリプルのラベルとして、推論されたトリプルの主語に関連付けられているラベルを適用するラベル・ジェネレータ。 |
SEM_RDFSA.LABELGEN_PREDICATE |
トリプルのラベルとして、推論されたトリプルの主語に関連付けられているラベルを適用するラベル・ジェネレータ。 |
SEM_RDFSA.LABELGEN_OBJECT |
トリプルのラベルとして、推論されたトリプルの主語に関連付けられているラベルを適用するラベル・ジェネレータ。 |
SEM_RDFSA.LABELGEN_RULE |
トリプルのラベルとして、推論されたトリプルを直接生成したルールに関連付けられているラベルを適用するラベル・ジェネレータ。このオプションを指定する場合、 |
SEM_RDFSA.LABELGEN_DOMINATING |
トリプルのコンポーネント(主語、述語、目的語およびルール)のためのすべての使用可能なラベルのうち、優位ラベルを計算して、推論されたトリプルのラベルとしてそれを適用するラベル・ジェネレータ。 |
ファイングレイン・アクセス制御(OLSおよびVPD)に関する考慮事項
VPDを使用する特定のモデルに対して、またはOLSを使用するネットワーク全体に対して、ファイングレイン・アクセス制御を有効にした場合、関連ポリシーへの完全なアクセス権限を持つユーザーのみが伴意を作成できます。VPDポリシー(「RDFデータのVPDポリシー」を参照)に関連付けられる名前空間に対して、パッケージ定数sem_rdfsa.VPD_FULL_ACCESS
によって1に定義されるコンテキスト属性を設定することで、VPDポリシーへの完全なアクセス権限が付与されます。OLSが有効な場合、OLSポリシーへの完全なアクセス権限はSA_USER_ADMIN.SET_USER_PRIVS
プロシージャを使用して付与されます。1つ以上のVPD対応RDFモデルを使用して作成されるすべての伴意に対して、VPDポリシーが自動的に適用されます。「RDFデータのVPDポリシー」で説明するように、VPDポリシーに関連付けられているRDFメタデータは、事前定義されたVPDポリシーが推論データを使用して回避されないようにするために、新しく推論されたデータを使用して保持しなければならない場合があります。
生成されたラベルを通じてアクセスされる推論されたトリプルは、ユーザー・アクセス可能なトリプルおよびルールから直接推論される概念上のトリプルとは異なることがあります。トリプルのコンポーネントのサブセットを使用して生成されるラベルは、意図していたものよりも弱い場合があります。たとえば、推論されたトリプルの前件の1つは、トリプルのコンポーネントのどれよりも高いラベルを持つ場合があります。ラベルがトリプルのコンポーネントのみに基づいて生成される場合、前件の1つにアクセス権がないエンド・ユーザーが、推論されたトリプルへのアクセス権を持つ場合があります。前件がカスタム・ラベル生成に使用されるときでも、生成されたラベルが意図したものよりも強い場合があります。推論プロセスは完全なものではなく、同じトリプルを推論する他の代替方法に関連する情報も使用できません。したがって、代替パスのすべてのトリプルへのアクセス権を持つユーザーが、より低いアクセス権でトリプルを推論できるため、ある一連の前件を使用して生成されたラベルが強すぎる場合があります。
コンポーネントおよび前件すべてに対して優位であるラベルを生成するときでも、ラベルが正確でない場合があります。これは、関係において優位であると考えられるラベルに、重ならないグループ情報がある場合です。たとえば、2つのラベルL:C:NY
およびL: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_RDFVIEW_MODEL( model_name IN VARCHAR2, tables IN SYS.ODCIVarchar2List, prefix IN VARCHAR2 DEFAULT NULL, r2rml_table_owner IN VARCHAR2 DEFAULT NULL, r2rml_table_name IN VARCHAR2 DEFAULT NULL, schema_table_owner IN VARCHAR2 DEFAULT NULL, schema_table_name IN VARCHAR2 DEFAULT NULL, options IN VARCHAR2 DEFAULT NULL);
説明
指定された表またはビューのリストの直接マッピングを使用して、または、R2RMLマッピングを使用してRDFビューを作成します。
パラメータ
作成するRDFビューの名前。
直接マッピングを使用して作成されるRDFビューのリレーショナル・データのソースである表またはビューのリスト。R2RMLマッピングを使用する場合、このパラメータはNULLである必要があります。
RDFビューでURIの先頭に追加される、ベースとなる接頭辞。
R2MLマッピングの場合、このパラメータは必須であり、RDFビューの作成に使用されるR2RMLマッピング(N-triple形式)を保持するステージング表を所有するスキーマの名前を指定します。
直接マッピングの場合、このパラメータはオプションで、直接マッピングから生成されるR2RMLマッピング(N-triple形式)が格納されるステージング表を所有するスキーマの名前を指定します。
R2MLマッピングの場合、このパラメータは必須であり、RDFビューの作成に使用されるR2RMLマッピング(N-triple形式)を保持するステージング表の名前を指定します。
直接マッピングの場合、このパラメータはオプションで、直接マッピングから生成されるR2RMLマッピング(N-triple形式)が格納されるステージング表の名前を指定します。
RDFビューのために生成されたRDFスキーマが格納されるステージング表を所有するスキーマの名前。
RDFビューのために生成されたRDFスキーマが格納されるステージング表の名前。
直接マッピングでは、次の任意の組合せ(何も含めない場合を含む)をオプションで指定できます。
CONFORMANCE=T
は、RDFの述語名を構築するためのデータベース制約名およびスキーマ修飾された表名またはビュー名など、デフォルトでは含まれない一部の情報を抑止します。
詳細は、「直接マッピングによるRDFビューの作成」の例10-2を参照してください。
GENERATE_ONLY=T
は、指定された表のためにR2RMLマッピングを生成して、指定されたr2rml_table_name
に格納するのみで、基礎となるRDFビュー・モデルは作成されません。このオプションを指定する場合、r2rml_table_name
パラメータはNULL以外である必要があります。
KEY_BASED_REF_PROPERTY=T
は、外部キー列名を使用してRDFの述語名を構築します。このオプションが指定されない場合は、データベース制約名がRDFの述語名を構築するために使用されます。
直接マッピングの場合、RDFの述語名は対応するデータベース名から導出されるため、外部キー制約のために名前を保持することはデフォルトの動作です。
KEY_BASED_REF_PROPERTY=T
の使用例については、「直接マッピングによるRDFビューの作成」の例10-1を参照してください。
SCALAR_COLUMNS_ONLY=T
は、指定された表またはビューのスカラー列にのみR2RMLマッピングを生成します。表またはビューの他の非スカラー列は、無視されます。このオプションを指定しない場合、ユーザー定義型またはLOBの列がある表に直接マッピングを作成しようとすると、エラーが発生します。
使用上の注意
MDSYS
に、r2rml_table_name
およびschema_table_name
に対するSELECT
およびINSERT
権限を付与する必要があります。
RDFビューの詳細は、「RDFビュー: RDFとしてのリレーショナル・データ」を参照してください。
例
次の例では、表EMPおよびDEPTに直接マッピングを使用してRDFビューを作成します。URIに使用した接頭辞はhttp://empdb/
です。
BEGIN sem_apis.create_rdfview_model( model_name => 'empdb_model_direct', tables => sem_models('EMP', 'DEPT'), prefix => 'http://empdb/' ); END; /
次の例では、ステージング表SCOTT.R2RTABのRDFトリプルによって指定されるように、R2RMLマッピングを使用してRDFビューを作成します。
BEGIN sem_apis.create_rdfview_model( model_name => 'empdb_model_R2RML', tables => NULL, r2rml_table_owner => 'SCOTT', r2rml_table_name => 'R2RTAB' ); END; /
書式
SEM_APIS.CREATE_RULEBASE( rulebase_name IN VARCHAR2);
説明
ルールベースを作成します。
使用上の注意
このプロシージャは、ユーザー定義のルールベースを作成します。ルールベースの作成後、そのルールベースにルールを追加できます。RDFデータの問合せでルールベースのルールを適用するには、SEM_MATCH表関数のコールでルールベースを指定します。
ルールおよびルールベースの詳細は、「推論: ルールとルールベース」を参照してください。(SEM_MATCH表関数については、「SEM_MATCH表関数を使用したセマンティク・データの問合せ」を参照してください。)
例
次の例では、ルールベースfamily_rbを作成します。(この例は、「例: 家系の情報」の 例1-90からの抜粋です。)
EXECUTE SEM_APIS.CREATE_RULEBASE('family_rb');
書式
SEM_APIS.CREATE_SEM_MODEL( model_name IN VARCHAR2, table_name IN VARCHAR2, column_name IN VARCHAR2, model_tablespace IN VARCHAR2 DEFAULT NULL);
説明
セマンティク・テクノロジ・モデルを作成します。
パラメータ
モデルの名前。
このモデルのセマンティク・テクノロジ・データへの参照を保持する表の名前。
table_name
のSDO_RDF_TRIPLE_S型の列の名前。
このモデルをサポートするためにOracleで使用される表および他のデータベース・オブジェクト用の表領域の名前。デフォルト値は、SEM_APIS.CREATE_SEM_NETWORKプロシージャのコールで指定された表領域です。
使用上の注意
このプロシージャをコールしてセマンティク・テクノロジ・モデルを作成する前に、セマンティク・テクノロジ・データへの参照を保持する表を作成する必要があります。詳細は、「セマンティク・データを使用するためのクイック・スタート」を参照してください。
このプロシージャは、モデルをMDSYS.SEM_MODEL$ビュー(「モデルのメタデータ」を参照)に追加します。
このプロシージャは、モデルを作成する際にサポートされる唯一の方法です。MDSYS.SEM_MODEL$ビューにSQLのINSERT文を使用しないでください。
モデルを削除するには、SEM_APIS.DROP_SEM_MODELプロシージャを使用します。
例
次の例では、セマンティク・テクノロジ・モデルarticles
を作成します。モデルのトリプル・データへの参照は、ARTICLES_RDF_DATA表のTRIPLE列に格納されます。(この例は、「例: 家系の情報」の例1-89の抜粋です。)
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( tablespace_name IN VARCHAR2
説明
セマンティク・データの永続的な記憶域の構造を作成します。
パラメータ
このプロシージャにより作成される表で使用する表領域の名前。この表領域は、作成されるすべてのモデルのデフォルトになりますが、モデルの作成時に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( 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形式ファイルをマップするために外部表を作成します。
パラメータ
作成する外部表の名前。
入力ファイルがあるデータベース・ディレクトリ。このステージング表からロードするには、このディレクトリに対するREAD権限を持っている必要があります。
外部表からのロード時にログ・ファイルが生成されるデータベース・ディレクトリ。指定されない場合、def_directory
パラメータの値が使用されます。外部表からのロード時に、このディレクトリに対するWRITE権限を持っている必要があります。
外部表からのロード時に不良ファイルが生成されるデータベース・ディレクトリ。指定されない場合、def_directory
パラメータの値が使用されます。外部表からのロード時に、このディレクトリに対するWRITE権限を持っている必要があります。
ログ・ファイルの名前。指定しない場合、名前はロード操作中に自動的に生成されます。
不良ファイルの名前。指定しない場合、名前はロード操作中に自動的に生成されます。
作成中の外部表に関連付けられている並列度。
作成中の外部表の所有者。指定しない場合、起動側は所有者になります。
(今後使用予定)
使用上の注意
詳細および例は、「外部表を使用してN-Quad形式データをステージング表にロードする方法」を参照してください。
例
次の例では、ソース外部表を作成します。(この例は、「外部表を使用してN-Quad形式データをステージング表にロードする方法」の例1-82から抜粋したものです。)
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( vm_name IN VARCHAR2, models IN SEM_MODELS, rulebases IN SEM_RULEBASES DEFAULT NULL, options IN VARCHAR2 DEFAULT NULL, entailments IN SEM_ENTAILMENTS DEFAULT NULL);
説明
指定されたセマンティク・モデルや伴意を含む仮想モデルを作成します。伴意は、次のいずれかの方法で指定できます。
1つ以上のモデルおよび1つ以上のルールベースを指定する。この場合、仮想モデルは、指定されたモデルおよびルールベースの正確な組合せに対応する単一の伴意を使用して作成されます。このような伴意が存在しない場合はエラーが発生します。
0 (ゼロ)以上のモデルおよび1つ以上の伴意を指定する。この場合、モデルと伴意の関係にかかわらず、モデルと伴意の内容が組み合されます。
最初のメソッドを使用すると、確実に適切で完全なデータセットになり、2つ目のメソッドを使用すると、適切で完全な制約が緩和され、より柔軟になります。
パラメータ
作成する仮想モデルの名前。
1つ以上のセマンティク・モデル名。そのデータ型は、TABLE OF VARCHAR2(25)
という定義を持つSEM_MODELSです。このパラメータがNULLの場合、仮想モデル定義にモデルは含まれません。
1つ以上のルールベース名。そのデータ型は、TABLE OF VARCHAR2(25)
という定義を持つSEM_RULEBASESです。このパラメータがNULLの場合、仮想モデル定義にルールベースは含まれません。ルールおよびルールベースの詳細は、「推論: ルールとルールベース」を参照してください。
このパラメータを指定する場合、entailments
パラメータも指定することはできません。
REPLACE=T
を指定すると、仮想モデルを、削除することなく置き換えます。(このオプションを使用することは、ビューでCREATE OR REPLACE VIEWを使用することと似ています。)
1つ以上の伴意名。そのデータ型は、TABLE OF VARCHAR2(25)
という定義を持つSEM_ENTAILMENTSです。このパラメータがNULLの場合、仮想モデル定義に伴意は含まれません。伴意の詳細は、「OWL推論の使用方法」を参照してください。
このパラメータを指定する場合、rulebases
パラメータも指定することはできません。
使用上の注意
仮想モデルの説明(使用方法の情報を含む)は、「仮想モデル」を参照してください。
指定されたセマンティク・モデルとルールベースの組合せごとに、伴意が存在する必要があります。
仮想モデルを作成するには、(A)指定された各モデルおよび対応する伴意の所有者、または(B) DBA権限を持つユーザーである必要があります。
仮想モデルを置き換えるには、仮想モデルの所有者またはDBA権限を持つユーザーである必要があります。
このプロシージャは、次の書式の名前を持つビューを作成します。
SEMV_vm_name。これは、各モデルおよび伴意内のトリプルのUNION ALLに対応します。このビューには重複が含まれることがあります。
SEMU_vm_nameは、各モデルおよび伴意内のトリプルのUNIONに対応します。このビューには重複は含まれません(このため、SEMUのUはunique(一意)を表します)。
ただし、仮想モデルに1つのみのセマンティク・モデルが含まれ、伴意は含まれない場合、SEMU_vm_nameビューは作成されません。
モデルm1、m2、m3から作成された仮想モデルvm1の「仮想モデル」の例を、モデルm1、m2、m3用にOWLPrimeルールベースを使用して作成した伴意で使用するために、このプロシージャは次の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'));
次の例では、緩和された伴意の指定を使用して、仮想モデルVM1
を作成します。
EXECUTE sem_apis.create_virtual_model('VM1', models=>sem_models('model_1', 'model_2'), entailments=>sem_entailments('entailment1','entailment2'));
次の例では、REPLACE=T
オプションを使用して、仮想モデルVM1
を効果的に再定義します。
EXECUTE sem_apis.create_virtual_model('VM1', models=>sem_models('model_1', 'model_2'), entailments=>sem_entailments('entailment1'), options=>'REPLACE=T');
書式
SEM_APIS.DELETE_ENTAILMENT_STATS ( entailment_name IN VARCHAR2, cascade_parts IN BOOLEAN DEFAULT TRUE, cascade_columns IN BOOLEAN DEFAULT TRUE, cascade_indexes IN BOOLEAN DEFAULT TRUE, no_invalidate IN BOOLEAN DEFAULT DBMS_STATS.AUTO_INVALIDATE, force IN BOOLEAN DEFAULT FALSE);
説明
指定された伴意の統計を削除します。
パラメータ
使用上の注意
DBMS_STATSパッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。
「セマンティク・モデルおよびセマンティク・ネットワークの統計の管理」を参照してください。
例
次の例では、伴意OWLTST_IDX
の統計を削除します。
EXECUTE SEM_APIS.DELETE_ENTAILMENT_STATS('owltst_idx');
書式
SEM_APIS.DELETE_MODEL_STATS ( model_name IN VARCHAR2, cascade_parts IN BOOLEAN DEFAULT TRUE, cascade_columns IN BOOLEAN DEFAULT TRUE, cascade_indexes IN BOOLEAN DEFAULT TRUE, no_invalidate IN BOOLEAN DEFAULT DBMS_STATS.AUTO_INVALIDATE, force IN BOOLEAN DEFAULT FALSE);
説明
指定されたモデルの統計を削除します。
パラメータ
使用上の注意
モデル所有者またはDBA権限を持つユーザーのみが、このプロシージャを実行できます。
DBMS_STATSパッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。
「セマンティク・モデルおよびセマンティク・ネットワークの統計の管理」を参照してください。
例
次の例では、モデルFAMILY
の統計を削除します。
EXECUTE SEM_APIS.DELETE_MODEL_STATS('family');
書式
SEM_APIS.DISABLE_CHANGE_TRACKING( models_in IN SEM_MODELS);
説明
指定されたモデルのセットの変更トラッキングを無効にします。
使用上の注意
モデルの変更トラッキングを無効にすることにより、そのモデルを使用するすべての伴意の増分推論が自動的に無効になります。
このプロシージャを使用するには、指定したモデルの所有者である必要があり、あらかじめ増分推論を有効にしておく必要があります。
増分推論の説明(使用方法の情報を含む)は、「増分推論の実行」を参照してください。
例
次の例では、family
モデルの変更トラッキングを無効にします。
EXECUTE sem_apis.disable_change_tracking(sem_models('family'));
書式
SEM_APIS.DISABLE_INC_INFERENCE( entailment_name IN VARCHAR2);
説明
指定された伴意(ルール索引)の増分推論を無効にします。
使用上の注意
このプロシージャを使用するには、指定した伴意の所有者である必要があり、SEM_APIS.ENABLE_INC_INFERENCEプロシージャによって、あらかじめ増分推論を有効にしておく必要があります。
このプロシージャをコールすることにより、起動ユーザーが所有する、この特定の推論によってのみ変更を追跡していたすべてのモデルの変更トラッキングが自動的に無効になります。
増分推論の説明(使用方法の情報を含む)は、「増分推論の実行」を参照してください。
例
次の例では、伴意RDFS_RIX_FAMILY
の増分推論を有効にします。
EXECUTE sem_apis.disable_inc_inference('rdfs_rix_family');
書式
SEM_APIS.DROP_DATATYPE_INDEX( datatype IN VARCHAR2, force_drop IN BOOLEAN default FALSE);
説明
既存のデータ型索引を削除します。
パラメータ
例
次の例では、xsd:string
型のリテラルおよびプレーン・リテラルのデータ型索引を削除します。
EXECUTE SEM_APIS.DROP_DATATYPE_INDEX('http://www.w3.org/2001/XMLSchema#string');
書式
SEM_APIS.DROP_ENTAILMENT( entailment_name_in IN VARCHAR2, named_g_in IN SEM_GRAPHS DEFAULT NULL, dop IN INT DEFAULT 1);
説明
伴意(ルール索引)を削除します。
パラメータ
使用上の注意
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_RDFVIEW_MODEL( model_name IN VARCHAR2, options IN VARCHAR2 DEFAULT NULL);
説明
RDFビューを削除します。
例
次の例では、RDFビューを削除します。
BEGIN sem_apis.drop_rdfview_model( model_name => 'empdb_model' ); END; /
書式
SEM_APIS.DROP_RULEBASE( rulebase_name IN VARCHAR2);
説明
ルールベースを削除します。
使用上の注意
このプロシージャは、指定されたルールベースを削除します。削除されたルールベースは、SEM_MATCH表関数のコールで使用できなくなります。ルールベースの詳細は、「推論: ルールとルールベース」を参照してください。
ルールベースを削除できるのは、そのルールベースの作成者のみです。
例
次の例では、ルールベースfamily_rb
を削除します。
EXECUTE SEM_APIS.DROP_RULEBASE('family_rb');
書式
SEM_APIS.DROP_SEM_INDEX( index_code IN VARCHAR2);
説明
セマンティク・ネットワークのモデルおよび伴意に対するセマンティク・ネットワーク索引を削除します。
パラメータ
索引コード文字列。前のSEM_APIS.ADD_SEM_INDEXプロシージャのコールで指定されたindex_code
値と一致している必要があります。
使用上の注意
セマンティク・ネットワーク索引の詳細は、「セマンティク・ネットワーク索引の使用」を参照してください。
例
次の例では、索引コード文字列pcsm
を使用して、セマンティク・ネットワークのモデルおよび伴意に対するセマンティク・ネットワーク索引を削除します。
EXECUTE SEM_APIS.DROP_SEM_INDEX('pscm');
書式
SEM_APIS.DROP_SEM_MODEL( model_name IN VARCHAR2);
説明
セマンティク・テクノロジ・モデルを削除します。
使用上の注意
このプロシージャで、MDSYS.SEM_MODEL$ビュー(「モデルのメタデータ」を参照)からモデルが削除されます。
このプロシージャは、モデルを削除する際にサポートされる唯一の方法です。MDSYS.SEM_MODEL$ビューにSQLのDELETE文を使用しないでください。
モデルを削除できるのは、そのモデルの作成者のみです。
例
次の例では、セマンティク・テクノロジ・モデルarticles
を削除します。
EXECUTE SEM_APIS.DROP_SEM_MODEL('articles');
書式
SEM_APIS.DROP_SEM_NETWORK( cascade IN BOOLEAN DEFAULT FALSE);
説明
セマンティク・データの永続的な記憶域に使用される構造を削除します。
パラメータ
使用上の注意
セマンティク・データの永続的な記憶域に使用される構造を削除するには、DBA権限を持つユーザーとして接続し、このプロシージャをコールします。
バージョン対応モデルが存在する場合、cascade
パラメータの値に関係なく、このプロシージャは失敗します。
例
次の例では、セマンティク・データの永続的な記憶域に使用される構造を削除します。
EXECUTE SEM_APIS.DROP_SEM_NETWORK;
書式
SEM_APIS.DROP_USER_INFERENCE_OBJS( uname IN VARCHAR2);
説明
指定されたデータベース・ユーザーに所有されているすべてのルールベースおよび伴意を削除します。
使用上の注意
指定したユーザーのルールおよびルールベースを削除するのに十分な権限を持っている必要があります。
このプロシージャは、データベース・ユーザーは削除しません。そのユーザーに所有されているRDFのルールベースと伴意のみを削除します。
例
次の例では、ユーザーSCOTT
に所有されているすべてのルールベースと伴意を削除します。
EXECUTE SEM_APIS.DROP_USER_INFERENCE_OBJS('SCOTT'); PL/SQL procedure successfully completed.
書式
SEM_APIS.DROP_VIRTUAL_MODEL( vm_name IN VARCHAR2);
説明
仮想モデルを削除します。
使用上の注意
このプロシージャを使用すると、SEM_APIS.CREATE_VIRTUAL_MODELプロシージャを使用して作成した仮想モデルを削除できます。仮想モデルのコンポーネント・モデル、ルールベースまたは伴意が削除されると、その仮想モデルは自動的に削除されます。
このプロシージャを使用するには、指定した仮想モデルの所有者である必要があります。
仮想モデルの説明(使用方法の情報を含む)は、「仮想モデル」を参照してください。
例
次の例では、仮想モデルVM1
を削除します。
EXECUTE sem_apis.drop_virtual_model('VM1');
書式
SEM_APIS.ENABLE_CHANGE_TRACKING( models_in IN SEM_MODELS);
説明
指定されたモデルのセットの変更トラッキングを有効にします。
使用上の注意
モデルを使用するすべての伴意で増分推論を有効にする前に、そのモデルで変更トラッキングを有効にする必要があります。
このプロシージャを使用するには、指定した1つ以上のモデルの所有者である必要があります。
伴意の所有者が、基礎となるモデルの所有者でもある場合、(SEM_APIS.ENABLE_INC_INFERENCEプロシージャをコールすることによって)伴意で増分推論を有効にすることにより、そのユーザーが所有するそれらのモデルで変更トラッキングが自動的に有効になります。
モデルのセットの変更トラッキングを無効にするには、SEM_APIS.DISABLE_CHANGE_TRACKINGプロシージャを使用します。
増分推論の説明(使用方法の情報を含む)は、「増分推論の実行」を参照してください。
例
次の例では、family
モデルの変更トラッキングを有効にします。
EXECUTE sem_apis.enable_change_tracking(sem_models('family'));
書式
SEM_APIS.ENABLE_INC_INFERENCE( entailment_name IN VARCHAR2);
説明
指定された伴意(ルール索引)の増分推論を有効にします。
使用上の注意
このプロシージャを使用するには、指定した伴意の所有者である必要があります。
このプロシージャが実行される前に、伴意に関連するすべての基礎となるモデルで変更トラッキングを有効にしておく必要があります。伴意の所有者が、基礎となるモデルの所有者でもある場合、このプロシージャをコールすることにより、それらのモデルで変更トラッキングが自動的に有効になります。ただし、いくつかの基礎となるモデルが伴意の所有者によって所有されない場合、それらのモデルで変更トラッキングを有効にするには、適切なモデル所有者が最初にSEM_APIS.ENABLE_CHANGE_TRACKINGプロシージャをコールする必要があります。
伴意に対する増分推論を無効にするには、SEM_APIS.DISABLE_INC_INFERENCEプロシージャを使用します。
増分推論の説明(使用方法の情報を含む)は、「増分推論の実行」を参照してください。
例
次の例では、伴意RDFS_RIX_FAMILY
の増分推論を有効にします。
EXECUTE sem_apis.enable_inc_inference('rdfs_rix_family');
書式
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文字をエスケープして返します。
パラメータ
使用上の注意
SEM_MATCH表関数のoptions
パラメータで、DO_UNESCAPE
キーワードを使用する際の詳細は、「セマンティク・データに対する問合せでの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( val IN CLOB 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
)に従って、特殊文字と非ASCII文字がエスケープされた入力CLOB値が返されます。
パラメータ
エスケープするCLOBテキスト。
val
の中で文字のエスケープを開始する位置のオフセット。デフォルト(1)は、val
の最初の文字でエスケープを開始します。
val
の中で文字のエスケープを終了する位置のオフセット。デフォルト(0)は、val
の末尾からエスケープを継続します。
chr(8)、chr(9)、chr(10)、chr(12)、chr(13)以外の非ASCII文字および出力不可能なASCII文字をエスケープする必要がある場合は、1 (デフォルト)に設定します。それ以外の場合、これらの文字はエスケープされません。
valの1文字目からstart_offset
までの文字を戻り値の先頭に追加する場合は、1に設定します。それ以外の場合、これらの文字は戻り値の先頭に追加されません。
使用上の注意
SEM_MATCH表関数のoptions
パラメータで、DO_UNESCAPE
キーワードを使用する際の詳細は、「セマンティク・データに対する問合せでのSEM_MATCH表関数の使用」を参照してください。
例
次の例では、タブ文字と改行文字を含む入力文字列をエスケープします。
SELECT SEM_APIS.ESCAPE_CLOB_VALUE('abc' || chr(9) || 'def' || chr(10) || 'hij') FROM DUAL;
書式
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文字をエスケープして返します。
パラメータ
使用上の注意
SEM_MATCH表関数のoptions
パラメータで、DO_UNESCAPE
キーワードを使用する際の詳細は、「セマンティク・データに対する問合せでの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( 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文字がエスケープされた入力CLOB値が返されます。
パラメータ
使用上の注意
SEM_MATCH表関数のoptions
パラメータで、DO_UNESCAPE
キーワードを使用する際の詳細は、「セマンティク・データに対する問合せでのSEM_MATCH表関数の使用」を参照してください。
例
次の例では、タブ文字と改行文字を含む入力文字列をエスケープします。
SELECT SEM_APIS.ESCAPE_RDF_VALUE('abc' || chr(9) || 'def' || chr(10) || 'hij') FROM DUAL;
書式
SEM_APIS.EXPORT_ENTAILMENT_STATS ( entailment_name IN VARCHAR2, stattab IN VARCHAR2, statid IN VARCHAR2 DEFAULTNULL, cascade IN BOOLEAN DEFAULT TRUE, statown IN VARCHAR2 DEFAULT NULL, stat_category IN VARCHAR2 DEFAULT 'OBJECT_STATS');
説明
指定された伴意の統計をエクスポートして、ユーザー統計表に格納します。
パラメータ
使用上の注意
DBMS_STATSパッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。
「セマンティク・モデルおよびセマンティク・ネットワークの統計の管理」を参照してください。
例
次の例では、伴意OWLTST_IDX
の統計をエクスポートして、表STAT_TABLE
に格納します。
EXECUTE SEM_APIS.EXPORT_ENTAILMENT_STATS('owltst_idx', 'stat_table');
書式
SEM_APIS.EXPORT_MODEL_STATS ( model_name IN VARCHAR2, stattab IN VARCHAR2, statid IN VARCHAR2 DEFAULT NULL, cascade IN BOOLEAN DEFAULT TRUE, statown IN VARCHAR2 DEFAULT NULL, stat_category IN VARCHAR2 DEFAULT 'OBJECT_STATS');
説明
指定されたモデルの統計をエクスポートして、ユーザー統計表に格納します。
パラメータ
使用上の注意
DBMS_STATSパッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。
「セマンティク・モデルおよびセマンティク・ネットワークの統計の管理」を参照してください。
例
次の例では、モデルFAMILY
の統計をエクスポートして、表STAT_TABLE
に格納します。
EXECUTE SEM_APIS.EXPORT_MODEL_STATS('family', 'stat_table');
書式
SEM_APIS.EXPORT_RDFVIEW_MODEL( model_name IN VARCHAR2, rdf_table_owner IN VARCHAR2 DEFAULT NULL, rdf_table_name IN VARCHAR2 DEFAULT NULL, options IN VARCHAR2 DEFAULT NULL);
説明
RDFビューの仮想RDFトリプルをステージング表にエクスポート(マテリアライズ)します。
パラメータ
使用上の注意
データベース・ビューSEMM_<model_name>のSELECT権限を持つ必要があります。
RDFビューの詳細は、「RDFビュー: RDFとしてのリレーショナル・データ」を参照してください。RDFビューのエクスポートの詳細は、「ステージング表へのRDFビューの仮想内容のエクスポート」を参照してください。
例
次の例では、RDFビューempdb_model
からステージング表SCOTT.RDFTABにRDFトリプルをエクスポートします。
BEGIN sem_apis.export_rdfview_model( model_name => 'empdb_model', rdf_table_owner => 'SCOTT', rdf_table_name => 'RDFTAB' ); END; /
書式
SEM_APIS.GET_CHANGE_TRACKING_INFO( model_name IN VARCHAR2, enabled OUT BOOLEAN, tracking_start_time OUT TIMESTAMP);
説明
モデルの変更トラッキング情報を戻します。
パラメータ
使用上の注意
model_name
の値は、MDSYS.SEM_MODEL$ビュー(「モデルのメタデータ」を参照)のMODEL_NAME列の値と一致している必要があります。
モデルのセットの変更トラッキングを有効にするには、SEM_APIS.ENABLE_CHANGE_TRACKINGプロシージャを使用します。
増分推論の説明(使用方法の情報を含む)は、「増分推論の実行」を参照してください。
例
次の例では、モデルの変更トラッキング情報を表示します。
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( entailment_name IN VARCHAR2, enabled OUT BOOLEAN, prev_inf_start_time OUT TIMESTAMP);
説明
伴意の増分推論情報を戻します。
パラメータ
使用上の注意
伴意に対する増分推論を有効にするには、SEM_APIS.ENABLE_INC_INFERENCEプロシージャを使用します。
増分推論の説明(使用方法の情報を含む)は、「増分推論の実行」を参照してください。
例
次の例では、伴意の増分推論情報を表示します。
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( model_name IN VARCHAR2 ) RETURN NUMBER;
説明
セマンティク・テクノロジ・モデルのモデルID番号を戻します。
使用上の注意
model_name
の値は、MDSYS.SEM_MODEL$ビュー(「モデルのメタデータ」を参照)のMODEL_NAME列の値と一致している必要があります。
例
次の例では、モデルarticles
のモデルID番号を戻します。(この例は、「例: 家系の情報」の例1-89の抜粋です。)
SELECT SEM_APIS.GET_MODEL_ID('articles') AS model_id FROM DUAL; MODEL_ID ---------- 1
書式
SEM_APIS.GET_MODEL_NAME( model_id IN NUMBER ) RETURN VARCHAR2;
説明
セマンティク・テクノロジ・モデルのモデル名を戻します。
使用上の注意
model_id
の値は、MDSYS.SEM_MODEL$ビュー(「モデルのメタデータ」を参照)のMODEL_ID列の値と一致している必要があります。
例
次の例では、IDの値に1を持つモデルのモデルID番号を戻します。(この例は、「例: 家系の情報」の例1-89の抜粋です。)
SQL> SELECT SEM_APIS.GET_MODEL_NAME(1) AS model_name FROM DUAL; MODEL_NAME -------------------------------------------------------------------------------- ARTICLES
書式
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値を戻します)。
パラメータ
セマンティク・テクノロジ・モデルのID番号。MDSYS.SEM_MODEL$ビュー(「モデルのメタデータ」を参照)のMODEL_ID列の値と一致している必要があります。
セマンティク・テクノロジ・モデルの名前。MDSYS.SEM_MODEL$ビュー(「モデルのメタデータ」を参照)のMODEL_NAME列の値と一致している必要があります。
主語。MDSYS.RDF_VALUE$表(「文」を参照)のVALUE_NAME列の値と一致している必要があります。
プロパティ。MDSYS.RDF_VALUE$表(「文」を参照)のVALUE_NAME列の値と一致している必要があります。
オブジェクト。MDSYS.RDF_VALUE$表(「文」を参照)のVALUE_NAME列の値と一致している必要があります。
使用上の注意
この関数には、2つの書式があり、モデル番号またはモデル名でセマンティク・テクノロジ・モデルを指定できます。
例
次の例では、トリプルのID番号を戻します。(この例は、 「例: 家系の情報」の例1-89の抜粋です。)
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( 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値に対してデフォルトのタイムゾーンとして使用されます。
パラメータ
使用上の注意
パフォーマンスを向上させるには、このファンクションでファンクション・ベース索引を作成することを検討します。詳細は、「型付きリテラルを含むFILTER構成要素のファンクション・ベースの索引」を参照してください。
例
次の例では、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( 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値に対してデフォルトのタイムゾーンとして使用されます。
パラメータ
使用上の注意
パフォーマンスを向上させるには、このファンクションでファンクション・ベース索引を作成することを検討します。詳細は、「型付きリテラルを含むFILTER構成要素のファンクション・ベースの索引」を参照してください。
例
次の例では、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( 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値を戻します。
パラメータ
使用上の注意
パフォーマンスを向上させるには、このファンクションでファンクション・ベース索引を作成することを検討します。詳細は、「型付きリテラルを含むFILTER構成要素のファンクション・ベースの索引」を参照してください。
例
次の例では、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( 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)は、空のリテラルに対して戻されます。
パラメータ
使用上の注意
パフォーマンスを向上させるには、このファンクションでファンクション・ベース索引を作成することを検討します。詳細は、「型付きリテラルを含むFILTER構成要素のファンクション・ベースの索引」を参照してください。
例
次の例では、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( 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がデフォルトの日付として使用されます。
パラメータ
使用上の注意
パフォーマンスを向上させるには、このファンクションでファンクション・ベース索引を作成することを検討します。詳細は、「型付きリテラルを含むFILTER構成要素のファンクション・ベースの索引」を参照してください。
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.IMPORT_ENTAILMENT_STATS ( entailment_name IN VARCHAR2, stattab IN VARCHAR2, statid IN VARCHAR2 DEFAULT NULL, cascade IN BOOLEAN DEFAULT TRUE, statown IN VARCHAR2 DEFAULT NULL, no_invalidate IN BOOLEAN DEFAULT FALSE, force IN BOOLEAN DEFAULT FALSE, stat_category IN VARCHAR2 DEFAULT 'OBJECT_STATS');
説明
ユーザー統計表から伴意の統計を取得して、ディクショナリに格納します。
パラメータ
使用上の注意
DBMS_STATSパッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。
「セマンティク・モデルおよびセマンティク・ネットワークの統計の管理」を参照してください。
例
次の例では、表STAT_TABLE
から伴意OWLTST_IDX
の統計をインポートします。
EXECUTE SEM_APIS.IMPORT_ENTAILMENT_STATS('owltst_idx', 'stat_table');
書式
SEM_APIS.IMPORT_MODEL_STATS ( model_name IN VARCHAR2, stattab IN VARCHAR2, statid IN VARCHAR2 DEFAULT NULL, cascade IN BOOLEAN DEFAULT TRUE, statown IN VARCHAR2 DEFAULT NULL, no_invalidate IN BOOLEAN DEFAULT FALSE, force IN BOOLEAN DEFAULT FALSE, stat_category IN VARCHAR2 DEFAULT 'OBJECT_STATS);
説明
指定されたモデルの統計をユーザー統計表から取得して、ディクショナリに格納します。
パラメータ
使用上の注意
DBMS_STATSパッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。
「セマンティク・モデルおよびセマンティク・ネットワークの統計の管理」を参照してください。
例
次の例では、表STAT_TABLE
からモデルFAMILY
の統計をインポートして、ディクショナリに格納します。
EXECUTE SEM_APIS.IMOPRT_MODEL_STATS('family', 'stat_table');
書式
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;
説明
文がデータベースの指定されたモデルの既存のトリプルであるかどうかをチェックします。
パラメータ
セマンティク・テクノロジ・モデルのID番号。MDSYS.SEM_MODEL$ビュー(「モデルのメタデータ」を参照)のMODEL_ID列の値と一致している必要があります。
セマンティク・テクノロジ・モデルの名前。MDSYS.SEM_MODEL$ビュー(「モデルのメタデータ」を参照)のMODEL_NAME列の値と一致している必要があります。
主語。MDSYS.RDF_VALUE$表(「文」を参照)のVALUE_NAME列の値と一致している必要があります。
プロパティ。MDSYS.RDF_VALUE$表(「文」を参照)のVALUE_NAME列の値と一致している必要があります。
オブジェクト。MDSYS.RDF_VALUE$表(「文」を参照)のVALUE_NAME列の値と一致している必要があります。
使用上の注意
この関数は、文字列値FALSE
、TRUE
またはTRUE (EXACT)
を戻します。
FALSE
: 文はデータベースの指定したモデルのトリプルではありません。
TRUE
: 文はデータベースの指定したモデルのトリプル値に一致しているか、トリプル値の正規形表現と同じです。
TRUE (EXACT)
: 指定したsubject
、property
およびobject
の値は、データベースの指定したモデルのトリプルと完全に一致しています。
例
次の例では、文がデータベースのトリプルであるかどうかをチェックします。この場合、完全一致するトリプルが存在します。(この例は、「例: 家系の情報」の例1-89の抜粋です。)
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( 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形式の入力ファイルにマップされた外部表から、ステージング表にデータをロードします。
パラメータ
使用上の注意
詳細および例は、「外部表を使用してN-Quad形式データをステージング表にロードする方法」を参照してください。
例
次の例では、ステージング表をロードします。(この例は、「外部表を使用してN-Quad形式データをステージング表にロードする方法」の例1-82から抜粋したものです。)
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 ( models IN SEM_MODELS, rulebases IN SEM_RULEBASES ) RETURN VARCHAR2;
説明
指定されたモデルおよびルールベースに基づいて伴意(ルール索引)の名前を戻します。
パラメータ
1つ以上のモデル名。そのデータ型は、TABLE OF VARCHAR2(25)
という定義を持つSEM_MODELSです。
1つ以上のルールベース名。そのデータ型はSEM_RULEBASESであり、TABLE OF VARCHAR2(25)
として定義されます。ルールおよびルールベースの詳細は、「推論: ルールとルールベース」を参照してください。
使用上の注意
ルールベース索引が戻されるには、その索引が指定したすべてのモデルおよびルールベースに基づいている必要があります。
例
次の例では、family
モデルとRDFS
およびfamily_rb
ルールベースに基づく伴意を検出します。(この例は、「例: 家系の情報」の例1-90からの抜粋です。)
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( 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);
説明
ソース・モデルから宛先モデルに内容を挿入し、宛先アプリケーション表を更新します。
パラメータ
ソース・モデルの名前。
宛先モデルの名前。
TRUE
は、モデルがマージされた後、宛先のアプリケーション表上の索引を再作成し、FALSE
は、どの索引も再作成しません。
TRUE
は、モデルがマージされた後、ソース・モデル(source_model
)を削除し、FALSE
(デフォルト)は、ソース・モデルを削除しません。
プロシージャのデフォルトの動作を上書きするオプションのカンマ区切りの文字列。現在、このプロシージャのパラレル実行を有効にして、操作に関連付ける並列度を指定する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対応またはバージョン対応のセマンティク・モデルでは使用できません。
このプロシージャは、仮想モデル(「仮想モデル」を参照)ではサポートされません。
表の制約は、宛先のアプリケーション表では許容されません。
例
次の例では、モデル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(
command IN VARCHAR2 DEFAULT 'GRANT',
privilege IN VARCHAR2 DEFAULT 'SELECT');
説明
MDSYSに対して、起動側が所有する全RDFモデルに対応するアプリケーション表へのSELECT権限またはINSERT権限の付与(または取消し)を実行します。
パラメータ
使用上の注意
(なし)
例
次の例では、MDSYSに、起動側が所有する全RDFモデルに対応するアプリケーション表へのSELECT権限を付与します。
EXECUTE SEM_APIS.PRIVILEGE_ON_APP_TABLES('grant', 'select');
書式
SEM_APIS.PURGE_UNUSED_VALUES( flags IN VARCHAR2 DEFAULT NULL);
説明
セマンティク・ネットワークから無効なジオメトリ・リテラル値をパージします。
パラメータ
次のキーワード指定が1つ以上含まれる、引用符で囲んだオプションの文字列。
MBV_METHOD=SHADOW
を指定すると、値の別のロード方法を使用できるため、大量の値をパージする必要がある場合に、処理がより高速になる可能性があります。
PARALLEL=
<integer>
を指定すると、この処理のほとんどを、integer
で指定した、操作に関連付けられている並列度を使用してパラレルに実行できます。並列度なしでPARALLEL
のみを指定すると、デフォルトの並列度が使用されます。
PUV_COMPUTE_VIDS_USED
を指定すると、別の方法を使用できるため、ほとんどの値がパージされると予測される場合に、処理がより高速になる可能性があります。
使用上の注意
このプロシージャをコールする前に、MDSYSに、既存の全RDFモデルのアプリケーション表へのSELECT権限を付与する必要があります。
使用方法と使用例の詳細は、「未使用値のパージ」を参照してください。
例
次の例では、並列度4を使用して、未使用値をパージします。
EXECUTE SEM_APIS.PURGE_UNUSED_VALUES(flags => 'PARALLEL=4');
書式
SEM_APIS.REFRESH_SEM_NETWORK_INDEX_INFO( options IN VARCHAR2 DEFAULT NULL);
説明
セマンティク・ネットワーク索引に関する情報をリフレッシュします。
使用上の注意
このプロシージャは、MDSYS.SEM_NETWORK_INDEX_INFOビュー(「MDSYS.SEM_NETWORK_INDEX_INFOビュー」を参照)の情報を更新します。
例
次の例では、セマンティク・ネットワーク索引に関する情報をリフレッシュします。
EXECUTE sem_apis.refresh_sem_network_index_info;
書式
SEM_APIS.REMOVE_DUPLICATES( model_name IN VARCHAR2, threshold IN FLOAT DEFAULT 0.3, rebuild_apptab_index IN BOOLEAN DEFAULT TRUE);
説明
モデルから重複トリプルを削除します。
パラメータ
モデルの名前。
削除操作が実行されるために、どれだけ多くのトリプルが必要かを決定する値。このプロシージャは、モデルのトリプルの数が次の計算式を上回る場合にのみ、トリプルを削除します(トリプルの合計 - 一意のトリプルの合計 + 0.01) / (一意のトリプルの合計 + 0.01)。デフォルト値の0.3とトリプルの合計1000 (重複を含む)を含むモデルの場合、重複の数がおよそ230を超える場合にのみ、重複トリプルが削除されます。
しきい値が低くなるほど、プロシージャが重複を削除するのに必要な重複の数は少なくなり、しきい値が高くなるほど、プロシージャが重複を削除するのに必要な重複の数は多くなります。
TRUE
(デフォルト)は、重複トリプルの削除後、この操作によって影響された表の使用可能なすべての索引を再作成し、FALSE
は、索引を再作成しません。
使用上の注意
重複トリプルが削除されると、トリプル列以外の列の情報など、削除された行のすべての情報が失われます。
このプロシージャは、仮想モデル(「仮想モデル」を参照)ではサポートされません。
このプロシージャは、バージョン対応モデル(「RDFデータに対するWorkspace Managerサポート」を参照)ではサポートされません。
モデルが空の場合、または、重複トリプルが存在しないか(threshold
値を使用して計算されるような)十分な重複トリプルが存在しない場合、このプロシージャはどのような削除操作も実行しません。
操作を実行するには(threshold
値を使用して計算されるような)十分な重複がない場合、情報メッセージが表示されます。
使用不可な索引が含まれる場合、SKIP_UNUSABLE_INDEXESシステム・パラメータがTRUE
に設定されているかどうかを確認してください。TRUE
はこのパラメータのデフォルト値ですが、いくつかの本番データベースは値FALSE
を使用することがあるため、これを変更する必要がある場合は、次を入力します。
SQL> alter session set skip_unusable_indexes=true;
1つ以上のユーザー定義のトリガーを持つアプリケーション表でこのプロシージャを使用するには、DBAユーザーとして接続する必要があり、次のように、ALTER ANY TRIGGER権限をMDSYSユーザーに付与する必要があります。
SQL> grant alter any trigger to MDSYS;
例
次の例では、family
という名前のモデルから重複したトリプルを削除します。デフォルトのしきい値0.3が適用され、重複が削除された後、索引が再構築されます(デフォルトの動作)。
EXECUTE SEM_APIS.REMOVE_DUPLICATES('family');
書式
SEM_APIS.RENAME_ENTAILMENT( old_name IN VARCHAR2, new_name IN VARCHAR2);
説明
伴意(ルール索引)の名前を変更します。
使用上の注意
「RDFデータに対してWorkspace Managerサポートを使用する場合の特別な考慮事項」の説明にあるとおり、このプロシージャはバージョン対応RDFモデルではサポートされません。
例
次の例では、伴意OWLTST_IDX
の名前をMY_OWLTST_IDX
に変更します。
EXECUTE sem_apis.rename_entailment('owltst_idx', 'my_owltst_idx');
書式
SEM_APIS.RENAME_MODEL( old_name IN VARCHAR2, new_name IN VARCHAR2);
説明
モデルの名前を変更します。
使用上の注意
このプロシージャを使用する場合、次の考慮事項が適用されます。
既存のモデルの所有者である必要があります。
このプロシージャは、VPD対応またはバージョン対応のセマンティク・モデルでは使用できません。
このプロシージャは、仮想モデル(「仮想モデル」を参照)ではサポートされません。
このプロシージャは、2つの既存のモデルの名前を交換するSEM_APIS.SWAP_NAMESとは対照的です。
例
次の例では、モデルMODEL1
の名前をMODEL2
に変更します。
EXECUTE sem_apis.rename_model('model1', 'model2');
書式
SEM_APIS.SET_ENTAILMENT_STATS ( entailment_name IN VARCHAR2, numrows IN NUMBER DEFAULT NULL, numblks IN NUMBER DEFAULT NULL, avgrlen IN NUMBER DEFAULT NULL, flags IN NUMBER DEFAULT NULL, no_invalidate IN BOOLEAN DEFAULT DBMS_STATS.AUTO_INVALIDATE, cachedblk IN NUMBER DEFAULT NULL, cachehit IN NUMBER DEFAULT NULL, force IN BOOLEAN DEFAULT FALSE);
説明
指定された伴意の統計を設定します。
パラメータ
使用上の注意
DBMS_STATSパッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。
「セマンティク・モデルおよびセマンティク・ネットワークの統計の管理」を参照してください。
例
次の例では、伴意OWLTST_IDX
の統計を設定します。
EXECUTE SEM_APIS.SET_ENTAILMENT_STATS('owltst_idx', numrows => 100);
書式
SEM_APIS.SET_MODEL_STATS ( model_name IN VARCHAR2, numrows IN NUMBER DEFAULT NULL, numblks IN NUMBER DEFAULT NULL, avgrlen IN NUMBER DEFAULT NULL, flags IN NUMBER DEFAULT NULL, no_invalidate IN BOOLEAN DEFAULT DBMS_STATS.AUTO_INVALIDATE, cachedblk IN NUMBER DEFAULT NULL, cachehit IN NUMBER DEFAULT NULL, force IN BOOLEAN DEFAULT FALSE);
説明
指定されたモデルの統計を設定します。
パラメータ
使用上の注意
DBMS_STATSパッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。
「セマンティク・モデルおよびセマンティク・ネットワークの統計の管理」を参照してください。
例
次の例では、モデルFAMILY
の統計を設定します。
EXECUTE SEM_APIS.SET_MODEL_STATS('family', numrows => 100);
書式
SEM_APIS.SWAP_NAMES( model1 IN VARCHAR2, model2 IN VARCHAR2);
説明
2つの既存のモデルの名前を交換します。
使用上の注意
このプロシージャの結果として、モデルmodel1
の名前はmodel2
の(古い)名前に変更され、モデルmodel2
の名前はmodel1
の(古い)名前に変更されます。
名前の順序は、結果に影響しません。たとえば、model1
に対してTEST
およびmodel2
に対してPRODUCTION
、または、model1
に対してPRODUCTION
およびmodel2
に対してTEST
を指定できますが、結果は同じになります。
「RDFデータに対してWorkspace Managerサポートを使用する場合の特別な考慮事項」の説明にあるとおり、このプロシージャはバージョン対応RDFモデルではサポートされません。
このプロシージャは、既存のモデルの名前を変更するSEM_APIS.RENAME_MODELとは対照的です。
例
次の例では、(古い)TESTモデルの名前をPRODUCTIONに、(古い)PRODUCTIONモデルの名前をTESTに変更します。
EXECUTE sem_apis.swap_names('test', 'production');
書式
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文字をアンエスケープして返します。
使用上の注意
SEM_MATCH表関数のoptions
パラメータで、DO_UNESCAPE
キーワードを使用する際の詳細は、「セマンティク・データに対する問合せでのSEM_MATCH表関数の使用」を参照してください。
例
次の例では、タブ文字と改行文字を含む入力RDF語句をアンエスケープします。
SEM_APIS.UNESCAPE_CLOB_TERM('"abc\tdef\nhij"^^<http://www.w3.org/2001/XMLSchema#string>') FROM DUAL;
書式
SEM_APIS.UNESCAPE_CLOB_VALUE( val IN CLOB 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文字をアンエスケープして返します。
パラメータ
使用上の注意
SEM_MATCH表関数のoptions
パラメータで、DO_UNESCAPE
キーワードを使用する際の詳細は、「セマンティク・データに対する問合せでのSEM_MATCH表関数の使用」を参照してください。
例
次の例では、タブ文字と改行文字を含む入力文字列をアンエスケープします。
SELECT SEM_APIS.UNESCAPE_CLOB_VALUE('abc\tdef\nhij') FROM DUAL;
書式
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文字をアンエスケープして返します。
使用上の注意
SEM_MATCH表関数のoptions
パラメータで、DO_UNESCAPE
キーワードを使用する際の詳細は、「セマンティク・データに対する問合せでの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( val IN VARCHAR2 CHARACTER SET ANY_CS ) RETURN VARCHAR2 CHARACTER SET val%CHARSET;
説明
W3CのN-Triples形式(http://www.w3.org/TR/rdf-testcases/#ntriples
)で指定された入力CLOB値を、特殊文字および非ASCII文字をアンエスケープして返します。
パラメータ
使用上の注意
SEM_MATCH表関数のoptions
パラメータで、DO_UNESCAPE
キーワードを使用する際の詳細は、「セマンティク・データに対する問合せでのSEM_MATCH表関数の使用」を参照してください。
例
次の例では、タブ文字と改行文字を含む入力文字列をアンエスケープします。
SELECT SEM_APIS.UNESCAPE_RDF_VALUE('abc\tdef\nhij') FROM DUAL;
書式
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推論を実行する際に使用できる伴意(ルール索引)を検証します。
パラメータ
1つ以上のモデル名。そのデータ型は、TABLE OF VARCHAR2(25)
という定義を持つSEM_MODELSです。
1つ以上のルールベース名。そのデータ型は、TABLE OF VARCHAR2(25)
という定義を持つSEM_RULEBASESです。ルールおよびルールベースの詳細は、「推論: ルールとルールベース」を参照してください。
実行する検証チェックのカンマ区切りの文字列。このパラメータを指定しない場合、デフォルトで次のすべてのチェックが実行されます。
UNSAT
: 充足不可能なクラスを検出します。
EMPTY
: 充足不可能なクラスに属するインスタンスを検出します。
SYNTAX_S
: URIでも空白ノードでもない主語を含むトリプルを検出します。
SYNTAX_P
: URIではない述語を含むトリプルを検出します。
SELF_DIF
: 自己自身と異なる個体を検出します。
INST
: 同時に2つの排他クラスに属する個体を検出します。
SAM_DIF
: 同じであり(owl:sameAs)かつ異なる(owl:differentFrom)個体のペアを検出します。
デフォルトより少ない数のチェックを指定するには、実行するチェックの文字列のみを指定します。たとえば、criteria_in => 'UNSAT'
と指定すると、検証プロセスでは充足不可能なクラスのみが検索されます。
検証プロセスを停止する前に検出する競合の最大数。デフォルト値は100です。
(現在は使用されていません。Oracleで使用するために予約済。)
使用上の注意
このプロシージャは、元の伴意の非一貫性を検出するために使用できます。詳細は、「OWLモデルおよび伴意の検証」を参照してください。
このプロシージャは、エラーが検出されなかった場合はNULL値を戻し、エラーが検出された場合はVARRAY(32767) OF VARCHAR2(4000)
という定義を持つRDF_LONGVARCHARARRAY型のオブジェクトを戻します。
伴意を作成するには、SEM_APIS.CREATE_ENTAILMENTプロシージャを使用します。
例
このプロシージャの例は、「OWLモデルおよび伴意の検証」の例2-5を参照してください。
書式
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つ以上のモデルを検証します。
パラメータ
1つ以上のモデル名。そのデータ型は、TABLE OF VARCHAR2(25)
という定義を持つSEM_MODELSです。
実行する検証チェックのカンマ区切りの文字列。このパラメータを指定しない場合、デフォルトで次のすべてのチェックが実行されます。
UNSAT
: 充足不可能なクラスを検出します。
EMPTY
: 充足不可能なクラスに属するインスタンスを検出します。
SYNTAX_S
: URIでも空白ノードでもない主語を含むトリプルを検出します。
SYNTAX_P
: URIではない述語を含むトリプルを検出します。
SELF_DIF
: 自己自身と異なる個体を検出します。
INST
: 同時に2つの排他クラスに属する個体を検出します。
SAM_DIF
: 同じであり(owl:sameAs)かつ異なる(owl:differentFrom)個体のペアを検出します。
デフォルトより少ない数のチェックを指定するには、実行するチェックの文字列のみを指定します。たとえば、criteria_in => 'UNSAT'
と指定すると、検証プロセスでは充足不可能なクラスのみが検索されます。
検証プロセスを停止する前に検出する競合の最大数。デフォルト値は100です。
(現在は使用されていません。Oracleで使用するために予約済。)
使用上の注意
このプロシージャは、元のデータ・モデルの非一貫性を検出するために使用できます。詳細は、「OWLモデルおよび伴意の検証」を参照してください。
このプロシージャは、エラーが検出されなかった場合はNULL値を戻し、エラーが検出された場合はVARRAY(32767) OF VARCHAR2(4000)
という定義を持つRDF_LONGVARCHARARRAY型のオブジェクトを戻します。
例
次の例では、モデルfamily
を検証します。
SELECT SEM_APIS.VALIDATE_MODEL(SEM_MODELS('family')) FROM DUAL;
書式
SEM_APIS.VALUE_NAME_PREFIX ( value_name IN VARCHAR2, value_type IN VARCHAR2 ) RETURN VARCHAR2;
説明
指定された値名と値タイプのペアに対応するMDSYS.RDF_VALUE$表のVNAME_PREFIX列の値を戻します。
パラメータ
使用上の注意
この関数では、通常、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 ( value_name IN VARCHAR2, value_type IN VARCHAR2 ) RETURN VARCHAR2;
説明
指定された値名と値タイプのペアに対応するMDSYS.RDF_VALUE$表のVNAME_SUFFIX列の値を戻します。
パラメータ
使用上の注意
この関数では、通常、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