SEM_APISパッケージには、Oracle DatabaseのResource Description Framework (RDF)およびWeb Ontology Language (OWL)とともに使用できるサブプログラム(ファンクションとプロシージャ)が含まれます。この章のサブプログラムを使用するには、第1章「Oracle Databaseセマンティク・テクノロジの概要」と第2章「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で、これらはすべて空間索引の作成(1.6.6.2項「空間データの索引付け」を参照)に関連付けられています。オプション名のキーワードは大/小文字の区別があるため、大文字で指定する必要があります。
書式
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);
パラメータ
索引付けするデータ型のURI。
実行するコマンドを指定する文字列です(データ型索引を再構築する場合はREBUILD、データ型索引を使用不能としてマークする場合はUNUSABLEを指定します)。このパラメータの値には、大/小文字の区別がありません。
索引作成先の表領域。
索引を再構築する場合に使用する並列度。
TRUEに設定すると、索引の再構築時に索引に影響を与えるDML操作が許可され、FALSE (デフォルト)に設定すると、索引の再構築時に索引に影響を与えるDML操作は許可されません。
書式
SEM_APIS.ALTER_ENTAILMENT(
entailment_name IN VARCHAR2,
command IN VARCHAR2,
tablespace_name IN VARCHAR2,
parallel IN NUMBER(38) DEFAULT NULL);
書式
SEM_APIS.ALTER_MODEL(
model_name IN VARCHAR2,
command IN VARCHAR2,
tablespace_name IN VARCHAR2,
parallel IN NUMBER(38) DEFAULT NULL);
パラメータ
モデルの名前。
文字列MOVEである必要があります。
宛先表領域の名前。
操作に関連付けられている並列度。パラレル実行の詳細は、『Oracle Database VLDBおよびパーティショニング・ガイド』を参照してください。
使用方法
モデルの詳細は、1.2項「セマンティク・データのモデル化」および1.3項「データベースのセマンティク・データ」を参照してください。
6.5項「RDFデータに対してWorkspace Managerサポートを使用する場合の特別な考慮事項」の説明にあるとおり、このプロシージャはバージョン対応RDFモデルではサポートされません。
書式
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操作は許可されません。
書式
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操作は許可されません。
書式
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: Oracleにより、列のデータ配分とワークロードに基づいて、ヒストグラムを収集する列が決定されます。- SKEWONLY: Oracleにより、列のデータ配分に基づいて、ヒストグラムを収集する列が決定されます。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パッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。
伴意の詳細は、1.3.7項を参照してください。
書式
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: Oracleにより、列のデータ配分とワークロードに基づいて、ヒストグラムを収集する列が決定されます。- SKEWONLY: Oracleにより、列のデータ配分に基づいて、ヒストグラムを収集する列が決定されます。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 (デフォルト)に設定すると、モデルがロックされている場合は統計が収集されません。
書式
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つ以上含まれる、引用符で囲んだオプションの文字列。
COLLECT_PRELOAD_STATS=<scope>、ここで<scope>は、VALUES_ONLY、MODEL_ONLY、VALUES_AND_MODELまたはNONE (デフォルト)を指定でき、データをロードする前に、RDF_VALUE$またはターゲットRDFモデルあるいはその両方の統計の収集を実行します。(NONEを指定すると統計の収集を実行しません。)
<stats_scope>_<stats_param>=<number>、ここで、
<stats_scope>は、STATS、STATS_VALUES、STATS_BATCH_VALUES、STATS_MODELおよびSTATS_BATCH_TRIPLESのいずれかで、それぞれは、デフォルト、RDF_VALUE$表、バッチ値表、ターゲットRDFモデルおよびバッチ・トリプル表に対応しています。
<stats_param>は、MIN_CNT、MIN_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です。
(将来使用するために予約済)
ロード操作の開始についてのオプションのコメント。
ロード操作の終了についてのオプションのコメント。
使用方法
このプロシージャをコールする前に、ステージング表にセマンティク・データをロードする必要があります。詳細は、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列は重要ではなく、バルク・ロード操作の後に削除される場合があります。
パラメータ
RDFオブジェクトのタイプです(RULEBASE(ルールベースの場合)またはRULES_INDEX(伴意(ルール索引)の場合))。
rdf_object_typeタイプのRDFオブジェクトの名前。
使用方法
このプロシージャは、指定したRDFオブジェクトが失敗の状態にあるかどうかをチェックし、オブジェクトが失敗の状態にある場合、プロシージャはそのオブジェクトを削除します。
ルールベースまたは伴意が失敗の状態になるのは、そのオブジェクトの作成中にシステム障害が発生した場合です。ルールベースまたは伴意が失敗の状態にあるかどうかをチェックするには、それぞれSDO_RULEBASE_INFOビュー(1.3.6項を参照)またはSDO_RULES_INDEX_INFOビュー(1.3.7項を参照)のSTATUS列の値がFAILEDであるかどうかを確認します。
ルールベースまたは伴意が失敗の状態にない場合、このプロシージャは何のアクションも実行せず、成功のステータスを戻します。
RDFオブジェクトが現在使用されている場合、例外が生成されます。
書式
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;
パラメータ
値名。MDSYS.RDF_VALUE$表(1.3.2項を参照)のVALUE_NAME列の値またはSEM_MATCHテーブル・ファンクションから戻されたvar属性の値と一致している必要があります。
テキスト情報のタイプ。MDSYS.RDF_VALUE$表(1.3.2項を参照)のVALUE_TYPE列の値またはSEM_MATCHテーブル・ファンクションから戻されたvar$RDFVTYP属性の値と一致している必要があります。
型付きリテラルの場合は型情報、それ以外の場合はNULL。またはNULL値であるか、またはMDSYS.RDF_VALUE$表(1.3.2項を参照)のLITERAL_TYPE列の値またはSEM_MATCHテーブル・ファンクションから戻されたvar$RDFLTYP属性の値と一致している必要があります。
言語タグ。MDSYS.RDF_VALUE$表(1.3.2項を参照)のLANGUAGE_TYPE列の値またはSEM_MATCHテーブル・ファンクションから戻されたvar$RDFLANG属性の値と一致している必要があります。
字句の値の長さが4000バイトを超える場合の文字列。MDSYS.RDF_VALUE$表(1.3.2項を参照)の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);
パラメータ
作成する伴意の名前。
1つ以上のモデル名。そのデータ型は、TABLE OF VARCHAR2(25)という定義を持つSEM_MODELSです。
1つ以上のルールベース名。そのデータ型は、TABLE OF VARCHAR2(25)という定義を持つSEM_RULEBASESです。ルールおよびルールベースの詳細は、1.3.6項を参照してください。
推論エンジンを実行する回数。デフォルト値は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内の最初のモデルのトリプルがmodels_in内の最初のモデルにコピーされ、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(前件ラベルの使用の場合)のいずれかを指定します。各定数の詳細は、5.2.2.4項を参照してください。
カスタム・ラベル・ジェネレータを使用する場合、カスタム・ラベル・ジェネレータ・タイプを指定します。カスタム・ラベル・ジェネレータの作成および実装の詳細は、5.2.2.5項を参照してください。
(すべてのソース・モデル全体で)指定された名前付きグラフからのすべてのトリプルを、名前付きグラフ・ベースのグローバル推論(NGGI、2.2.11.1項を参照)に加えます。たとえばinclude_named_g => sem_graphs('<urn:G1>','<urn:G2>')は、名前付きグラフG1およびG2からのトリプルがNGGIに含められることを意味します。
指定されたモデルのグラフ名がNULLであるすべてのトリプルを、名前付きグラフ・ベースのグローバル推論(NGGI、2.2.11.1項を参照)に加えます。たとえば、include_default_g => sem_models('m1')は、モデルM1からのグラフ名がNULLであるすべてのトリプルをNGGIに含めます。
指定されたモデルのグラフ名の値にかかわらず、すべてのトリプルを、名前付きグラフ・ベースのグローバル推論(NGGI、2.2.11.1項を参照)に加えます。たとえば、include_all_g => sem_models('m2')は、モデルM2のすべてのトリプルをNGGIに含めます。
名前付きグラフ・ベースのグローバル推論(NGGI、2.2.11.1項を参照)で推論された新しいトリプルすべてに、指定されたグラフ名を割り当てます。
使用方法
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。これらのキーワードの意味の説明は、キーワードのアルファベット順のリストである表9-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ルールベースや既存のルールベースには、デフォルトでは前述の新しいコンポーネントは含まれていないため、これらの新しいコンポーネントを使用するには、明示的に設定する必要があります(これらを表9-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');
表9-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の詳細は、 |
|
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は、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 |
トリプルのラベルとして、推論されたトリプルを直接生成したルールに関連付けられているラベルを適用するラベル・ジェネレータ。このオプションを指定する場合、 |
|
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: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_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プロシージャのコールで指定された表領域です。
使用方法
このプロシージャをコールしてセマンティク・テクノロジ・モデルを作成する前に、セマンティク・テクノロジ・データへの参照を保持する表を作成する必要があります。詳細は、1.10項を参照してください。
このプロシージャは、モデルをMDSYS.SEM_MODEL$ビュー(1.3.1項を参照)に追加します。
このプロシージャは、モデルを作成する際にサポートされる唯一の方法です。MDSYS.SEM_MODEL$ビューにSQLのINSERT文を使用しないでください。
モデルを削除するには、SEM_APIS.DROP_SEM_MODELプロシージャを使用します。
パラメータ
このプロシージャにより作成される表で使用する表領域の名前。この表領域は、作成されるすべてのモデルのデフォルトになりますが、モデルの作成時にSEM_APIS.CREATE_SEM_MODELプロシージャのコールでmodel_tablespaceパラメータを指定することで、このデフォルトを上書きできます。
使用方法
このプロシージャは、セマンティク・テクノロジ・サポートで使用されるシステム表および他のデータベース・オブジェクトを作成します。
このプロシージャのコールでセマンティク・テクノロジのシステム表の表領域を作成し、表領域名を指定する必要があります。(SYSTEM表領域は指定しないでください。)作成する表領域に必要なサイズは、格納するセマンティク・テクノロジ・データの量に応じて変化します。
このプロシージャをコールするには、DBA権限を持つユーザーとしてデータベースに接続する必要があり、プロシージャは、データベースに対して1回のみコールできます。
セマンティク・データの永続的な記憶域のこれらの構造を削除するには、DBA権限を持つユーザーとして接続し、SEM_APIS.DROP_SEM_NETWORKをコールする必要があります。
書式
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);
パラメータ
作成する外部表の名前。
入力ファイルがあるデータベース・ディレクトリ。このステージング表からロードするには、このディレクトリに対するREAD権限を持っている必要があります。
外部表からのロード時にログ・ファイルが生成されるデータベース・ディレクトリ。指定しない場合、def_directoryパラメータの値が使用されます。外部表からのロードする場合は、このディレクトリに対するWRITE権限を持っている必要があります。
外部表からのロード時に不良ファイルが生成されるデータベース・ディレクトリ。指定しない場合、def_directoryパラメータの値が使用されます。外部表からのロードする場合は、このディレクトリに対するWRITE権限を持っている必要があります。
ログ・ファイルの名前。指定しない場合、名前はロード操作中に自動的に生成されます。
不良ファイルの名前。指定しない場合、名前はロード操作中に自動的に生成されます。
作成中の外部表に関連付けられている並列度。
作成中の外部表の所有者。指定しない場合、起動側は所有者になります。
(将来使用するために予約済)
例
次の例では、ソース外部表を作成します。(この例は、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(
vm_name IN VARCHAR2,
models IN SEM_MODELS,
rulebases IN SEM_RULEBASES DEFAULT NULL,
options IN VARCHAR2 DEFAULT NULL);
パラメータ
作成する仮想モデルの名前。
1つ以上のセマンティク・モデル名。そのデータ型は、TABLE OF VARCHAR2(25)という定義を持つSEM_MODELSです。少なくとも1つのセマンティク・モデルを指定する必要があります。
1つ以上のルールベース名。そのデータ型は、TABLE OF VARCHAR2(25)という定義を持つSEM_RULEBASESです。このパラメータがNULLの場合、仮想モデル定義にルールベースは含まれません。ルールおよびルールベースの詳細は、1.3.6項を参照してください。
(将来使用するために予約済)
使用方法
(使用方法の情報を含む)仮想モデルの説明は、1.3.8項を参照してください。
指定されたセマンティク・モデルとルールベースの組合せごとに、伴意が存在する必要があります。
仮想モデルを作成するには、(A)指定された各モデルおよび対応する伴意の所有者、または(B) DBA権限を持つユーザーである必要があります。
このプロシージャは、次の書式の名前を持つビューを作成します。
SEMV_vm_name。これは、各モデルおよび伴意内のトリプルのUNION ALLに対応します。このビューには重複が含まれることがあります。
SEMU_vm_nameは、各モデルおよび伴意内のトリプルのUNIONに対応します。このビューには重複は含まれません(このため、SEMUのUはunique(一意)を表します)。
ただし、仮想モデルに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権限を持っている必要があります。
使用方法
モデルの変更トラッキングを無効にすることにより、そのモデルを使用するすべての伴意の増分推論が自動的に無効になります。
このプロシージャを使用するには、指定したモデルの所有者である必要があり、あらかじめ増分推論を有効にしておく必要があります。
(使用方法の情報を含む)増分推論の説明は、2.2.9項を参照してください。
使用方法
このプロシージャを使用するには、指定した伴意の所有者である必要があり、SEM_APIS.ENABLE_INC_INFERENCEプロシージャによって、あらかじめ増分推論を有効にしておく必要があります。
このプロシージャをコールすることにより、起動ユーザーが所有する、この特定の推論によってのみ変更を追跡していたすべてのモデルの変更トラッキングが自動的に無効になります。
(使用方法の情報を含む)増分推論の説明は、2.2.9項を参照してください。
書式
SEM_APIS.DROP_ENTAILMENT(
entailment_name_in IN VARCHAR2,
named_g_in IN SEM_GRAPHS DEFAULT NULL,
dop IN INT DEFAULT 1);
パラメータ
削除する伴意の名前。
伴意の指定されたグラフ名を持つトリプルのみを削除します。NULL値(デフォルト)は伴意全体を削除します。
たとえば、named_g_in => sem_graphs('<urn:G1>','<urn:G2>')は、グラフ名G1およびG2を持つ伴意のトリプルのみを削除し、残りの伴意グラフは削除されません。
トリプル削除のパラレル実行の並列度。named_g_inパラメータがNULLでない場合にのみ適用されます。
使用方法
SEM_APIS.CREATE_ENTAILMENTプロシージャを使用して作成した伴意をこのプロシージャで削除できます。
VALIDまたはINCOMPLETEステータスの伴意における指定された名前付きグラフを持つ伴意のサブセットのみを削除する場合(つまり、named_g_inがNULLでない場合)、削除後の伴意の結果のステータスはINCOMPLETEに設定されます。
使用方法
このプロシージャは、指定されたルールベースを削除します。削除されたルールベースは、SEM_MATCHテーブル・ファンクションのコールで使用できなくなります。ルールベースの詳細は、1.3.6項を参照してください。
ルールベースを削除できるのは、そのルールベースの作成者のみです。
使用方法
このプロシージャは、モデルをMDSYS.SEM_MODEL$ビュー(1.3.1項を参照)から削除します。
このプロシージャは、モデルを削除する際にサポートされる唯一の方法です。MDSYS.SEM_MODEL$ビューにSQLのDELETE文を使用しないでください。
モデルを削除できるのは、そのモデルの作成者のみです。
パラメータ
TRUEに設定すると、既存のすべてのセマンティク・テクノロジ・モデルおよびルールベースを削除して、セマンティク・データの永続的な記憶域に使用される構造を削除し、FALSE(デフォルト)を設定すると、セマンティク・テクノロジ・モデルまたはルールベースが存在する場合、操作が失敗します。
使用方法
このプロシージャを使用すると、SEM_APIS.CREATE_VIRTUAL_MODELプロシージャを使用して作成した仮想モデルを削除できます。仮想モデルのコンポーネント・モデル、ルールベースまたは伴意が削除されると、その仮想モデルは自動的に削除されます。
このプロシージャを使用するには、指定した仮想モデルの所有者である必要があります。
(使用方法の情報を含む)仮想モデルの説明は、1.3.8項を参照してください。
使用方法
モデルを使用するすべての伴意で増分推論を有効にする前に、そのモデルで変更トラッキングを有効にする必要があります。
このプロシージャを使用するには、指定した1つ以上のモデルの所有者である必要があります。
伴意の所有者が、基礎となるモデルの所有者でもある場合、(SEM_APIS.ENABLE_INC_INFERENCEプロシージャをコールすることによって)伴意で増分推論を有効にすることにより、そのユーザーが所有するそれらのモデルで変更トラッキングが自動的に有効になります。
モデルのセットの変更トラッキングを無効にするには、SEM_APIS.DISABLE_CHANGE_TRACKINGプロシージャを使用します。
(使用方法の情報を含む)増分推論の説明は、2.2.9項を参照してください。
使用方法
このプロシージャを使用するには、指定した伴意の所有者である必要があります。
このプロシージャが実行される前に、伴意に関連するすべての基礎となるモデルで変更トラッキングを有効にしておく必要があります。伴意の所有者が、基礎となるモデルの所有者でもある場合、このプロシージャをコールすることにより、それらのモデルで変更トラッキングが自動的に有効になります。ただし、いくつかの基礎となるモデルが伴意の所有者によって所有されない場合、それらのモデルで変更トラッキングを有効にするには、適切なモデル所有者が最初にSEM_APIS.ENABLE_CHANGE_TRACKINGプロシージャをコールする必要があります。
伴意に対する増分推論を無効にするには、SEM_APIS.DISABLE_INC_INFERENCEプロシージャを使用します。
(使用方法の情報を含む)増分推論の説明は、2.2.9項を参照してください。
書式
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文字をエスケープして戻します。
パラメータ
エスケープするRDF語句。
chr(8)、chr(9)、chr(10)、chr(12)、chr(13)以外の非ASCII文字および出力不可能なASCII文字をエスケープする必要がある場合は、1 (デフォルト)に設定します。それ以外の場合、これらの文字はエスケープされません。
使用方法
SEM_MATCHテーブル・ファンクションのoptionsパラメータでDO_UNESCAPEキーワードを使用する方法の詳細は、1.6項「SEM_MATCHテーブル・ファンクションを使用したセマンティク・データの問合せ」を参照してください。
書式
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文字をエスケープして戻します。
パラメータ
エスケープする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キーワードを使用する方法の詳細は、1.6項「SEM_MATCHテーブル・ファンクションを使用したセマンティク・データの問合せ」を参照してください。
書式
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文字をエスケープして戻します。
パラメータ
エスケープするRDF語句。
chr(8)、chr(9)、chr(10)、chr(12)、chr(13)以外の非ASCII文字および出力不可能なASCII文字をエスケープする必要がある場合は、1 (デフォルト)に設定します。それ以外の場合、これらの文字はエスケープされません。
使用方法
SEM_MATCHテーブル・ファンクションのoptionsパラメータでDO_UNESCAPEキーワードを使用する方法の詳細は、1.6項「SEM_MATCHテーブル・ファンクションを使用したセマンティク・データの問合せ」を参照してください。
書式
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文字をエスケープして戻します。
パラメータ
エスケープするテキスト。
chr(8)、chr(9)、chr(10)、chr(12)、chr(13)以外の非ASCII文字および出力不可能なASCII文字をエスケープする必要がある場合は、1 (デフォルト)に設定します。それ以外の場合、これらの文字はエスケープされません。
使用方法
SEM_MATCHテーブル・ファンクションのoptionsパラメータでDO_UNESCAPEキーワードを使用する方法の詳細は、1.6項「SEM_MATCHテーブル・ファンクションを使用したセマンティク・データの問合せ」を参照してください。
書式
SEM_APIS.GET_CHANGE_TRACKING_INFO(
model_name IN VARCHAR2,
enabled OUT BOOLEAN,
tracking_start_time OUT TIMESTAMP);
パラメータ
セマンティク・テクノロジ・モデルの名前。
プロシージャから戻されるブール値。TRUE (変更トラッキングがモデルで有効になっている場合)またはFALSE (変更トラッキングがモデルで有効になっていない場合)。
変更トラッキングがモデルで有効にされた日時を示すタイムスタンプ(有効になっている場合)。
使用方法
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(
entailment_name IN VARCHAR2,
enabled OUT BOOLEAN,
prev_inf_start_time OUT TIMESTAMP);
パラメータ
伴意の名前。
プロシージャから戻されるブール値(TRUE (増分推論が伴意で有効になっている場合)またはFALSE (増分推論が伴意で有効になっていない場合))。
伴意が最後に更新された日時を示すタイムスタンプ(増分推論が有効になっている場合)。
使用方法
伴意に対する増分推論を有効にするには、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_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番号。MDSYS.SEM_MODEL$ビュー(1.3.1項を参照)のMODEL_ID列の値と一致している必要があります。
セマンティク・テクノロジ・モデルの名前。MDSYS.SEM_MODEL$ビュー(1.3.1項を参照)のMODEL_NAME列の値と一致している必要があります。
主語。MDSYS.RDF_VALUE$表(1.3.2項を参照)のVALUE_NAME列の値と一致している必要があります。
プロパティ。MDSYS.RDF_VALUE$表(1.3.2項を参照)のVALUE_NAME列の値と一致している必要があります。
目的語。MDSYS.RDF_VALUE$表(1.3.2項を参照)のVALUE_NAME列の値と一致している必要があります。
例
次の例では、トリプルの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(
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値に対してデフォルトのタイムゾーンとして使用されます。
書式
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値に対してデフォルトのタイムゾーンとして使用されます。
書式
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;
書式
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)は、空のリテラルに対して戻されます。
書式
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がデフォルトの日付として使用されます。
パラメータ
RDF語句のタイプ。
RDF語句の接頭辞の値。
RDF語句の接尾辞の値。
RDF語句のリテラル・タイプ。
RDF語句の言語タイプ。
使用方法
パフォーマンスを向上させるには、このファンクションでファンクション・ベース索引を作成することを検討してください。詳細は、1.6.7.2項を参照してください。
xsd:time値には日付ではなく時刻のみが含まれているため、戻されたTIMESTAMP WITH TIME ZONE値(日付コンポーネントを含む)には、2009-06-26が日付として追加されています。これは、戻された値が内部的に索引付けできるように、また、日付がすべての戻された値で同じになるように実行されます。
書式
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$ビュー(1.3.1項を参照)のMODEL_ID列の値と一致している必要があります。
セマンティク・テクノロジ・モデルの名前。MDSYS.SEM_MODEL$ビュー(1.3.1項を参照)のMODEL_NAME列の値と一致している必要があります。
主語。MDSYS.RDF_VALUE$表(1.3.2項を参照)のVALUE_NAME列の値と一致している必要があります。
プロパティ。MDSYS.RDF_VALUE$表(1.3.2項を参照)のVALUE_NAME列の値と一致している必要があります。
目的語。MDSYS.RDF_VALUE$表(1.3.2項を参照)のVALUE_NAME列の値と一致している必要があります。
使用方法
このファンクションは、文字列値FALSE、TRUEまたはTRUE (EXACT)を戻します。
FALSE: 文はデータベースの指定したモデルのトリプルではありません。
TRUE: 文はデータベースの指定したモデルのトリプル値に一致しているか、トリプル値の正規形表現と同じです。
TRUE (EXACT): 指定したsubject、propertyおよび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(
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。
ロード中に使用する並列度。
作成中のステージング表の所有者。指定しない場合、起動側は所有者であると想定されます。
ソース表の所有者。指定しない場合、起動側は所有者であると想定されます。
(将来使用するために予約済)
例
次の例では、ステージング表をロードします。(この例は、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;
パラメータ
1つ以上のモデル名。そのデータ型は、TABLE OF VARCHAR2(25)という定義を持つSEM_MODELSです。
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(
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対応またはバージョン対応のセマンティク・モデルでは使用できません。
このプロシージャは、仮想モデル(1.3.8項を参照)ではサポートされません。
表の制約は、宛先のアプリケーション表では許容されません。
書式
SEM_APIS.PRIVILEGE_ON_APP_TABLES(
command IN VARCHAR2 DEFAULT 'GRANT',
privilege IN VARCHAR2 DEFAULT 'SELECT');
パラメータ
次のキーワード指定を1つ以上含めることができる、引用符で囲んだオプションの文字列。
MBV_METHOD=SHADOWを指定すると、値の別のロード方法を使用できるため、大量の値をパージする必要がある場合に、処理がより高速になる可能性があります。
PARALLEL=<integer>を指定すると、この処理のほとんどを、integerで指定した、操作に関連付けられている並列度を使用してパラレルに実行できます。並列度なしでPARALLELのみを指定すると、デフォルトの並列度が使用されます。
PUV_COMPUTE_VIDS_USEDを指定すると、別の方法を使用できるため、ほとんどの値がパージされると予測される場合に、処理がより高速になる可能性があります。
使用方法
このプロシージャをコールする前に、MDSYSに、既存の全RDFモデルのアプリケーション表へのSELECT権限を付与する必要があります。
使用方法と使用例の詳細は、1.7.5項「未使用値のパージ」を参照してください。
書式
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は、索引を再作成しません。
使用方法
6.5項「RDFデータに対してWorkspace Managerサポートを使用する場合の特別な考慮事項」の説明にあるとおり、このプロシージャはバージョン対応RDFモデルではサポートされません。
使用方法
このプロシージャを使用する場合、次の考慮事項が適用されます。
既存のモデルの所有者である必要があります。
このプロシージャは、VPD対応またはバージョン対応のセマンティク・モデルでは使用できません。
このプロシージャは、仮想モデル(1.3.8項を参照)ではサポートされません。
このプロシージャは、2つの既存のモデルの名前を交換するSEM_APIS.SWAP_NAMESとは対照的です。
使用方法
このプロシージャの結果として、モデルmodel1の名前はmodel2の(古い)名前に変更され、モデルmodel2の名前はmodel1の(古い)名前に変更されます。
名前の順序は、結果に影響しません。たとえば、model1に対してTESTおよびmodel2に対してPRODUCTION、または、model1に対してPRODUCTIONおよびmodel2に対してTESTを指定できますが、結果は同じになります。
6.5項「RDFデータに対してWorkspace Managerサポートを使用する場合の特別な考慮事項」の説明にあるとおり、このプロシージャはバージョン対応RDFモデルではサポートされません。
このプロシージャは、既存のモデルの名前を変更するSEM_APIS.RENAME_MODELとは対照的です。
書式
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キーワードを使用する方法の詳細は、1.6項「SEM_MATCHテーブル・ファンクションを使用したセマンティク・データの問合せ」を参照してください。
書式
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文字をアンエスケープして戻します。
パラメータ
アンエスケープするCLOBテキスト。
valの中で文字のアンエスケープを開始する位置のオフセット。デフォルト(1)は、valの最初の文字でエスケープを開始します。
valの中で文字のアンエスケープを終了する位置のオフセット。デフォルト(0)は、valの末尾からエスケープを継続します。
valの1文字目からstart_offsetまでの文字を戻り値の先頭に追加する場合は、1に設定します。それ以外の場合、これらの文字は戻り値の先頭に追加されません。
使用方法
SEM_MATCHテーブル・ファンクションのoptionsパラメータでDO_UNESCAPEキーワードを使用する方法の詳細は、1.6項「SEM_MATCHテーブル・ファンクションを使用したセマンティク・データの問合せ」を参照してください。
書式
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キーワードを使用する方法の詳細は、1.6項「SEM_MATCHテーブル・ファンクションを使用したセマンティク・データの問合せ」を参照してください。
書式
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文字をアンエスケープして戻します。
使用方法
SEM_MATCHテーブル・ファンクションのoptionsパラメータでDO_UNESCAPEキーワードを使用する方法の詳細は、1.6項「SEM_MATCHテーブル・ファンクションを使用したセマンティク・データの問合せ」を参照してください。
書式
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つ以上のモデル名。そのデータ型は、TABLE OF VARCHAR2(25)という定義を持つSEM_MODELSです。
1つ以上のルールベース名。そのデータ型は、TABLE OF VARCHAR2(25)という定義を持つSEM_RULEBASESです。ルールおよびルールベースの詳細は、1.3.6項を参照してください。
実行する検証チェックのカンマ区切りの文字列。このパラメータを指定しない場合、デフォルトで次のすべてのチェックが実行されます。
UNSAT: 充足不可能なクラスを検出します。
EMPTY: 充足不可能なクラスに属するインスタンスを検出します。
SYNTAX_S: URIでも空白ノードでもない主語を含むトリプルを検出します。
SYNTAX_P: URIではない述語を含むトリプルを検出します。
SELF_DIF: 自己自身と異なる個体を検出します。
INST: 同時に2つの排他クラスに属する個体を検出します。
SAM_DIF: 同じであり(owl:sameAs)かつ異なる(owl:differentFrom)個体のペアを検出します。
デフォルトより少ない数のチェックを指定するには、実行するチェックの文字列のみを指定します。たとえば、criteria_in => 'UNSAT'と指定すると、検証プロセスでは充足不可能なクラスのみが検索されます。
検証プロセスを停止する前に検出する競合の最大数。デフォルト値は100です。
(現在は未使用。Oracleで使用するために予約済。)
使用方法
このプロシージャは、元の伴意の非一貫性を検出するために使用できます。詳細は、2.2.5項を参照してください。
このプロシージャは、エラーが検出されなかった場合はNULL値を戻し、エラーが検出された場合はVARRAY(32767) OF VARCHAR2(4000)という定義を持つRDF_LONGVARCHARARRAY型のオブジェクトを戻します。
伴意を作成するには、SEM_APIS.CREATE_ENTAILMENTプロシージャを使用します。
書式
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つ以上のモデル名。そのデータ型は、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で使用するために予約済。)
使用方法
このプロシージャは、元のデータ・モデルの非一貫性を検出するために使用できます。詳細は、2.2.5項を参照してください。
このプロシージャは、エラーが検出されなかった場合はNULL値を戻し、エラーが検出された場合はVARRAY(32767) OF VARCHAR2(4000)という定義を持つRDF_LONGVARCHARARRAY型のオブジェクトを戻します。
例
次の問合せでは、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.
例
次の問合せでは、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