10 SEM_APISパッケージのサブプログラム
SEM_APISパッケージには、Oracle DatabaseのResource Description Framework (RDF)およびWeb Ontology Language (OWL)とともに使用できるサブプログラム(関数とプロシージャ)が含まれます。
この章のサブプログラムを使用するには、「RDFセマンティク・グラフの概要」と「OWLの概要」に記載されている概念および使用情報について理解しておく必要があります。
この章では、サブプログラムに関するリファレンス情報を示します(サブプログラムのリストはアルファベット順です)。
- SEM_APIS.ADD_DATATYPE_INDEX
- SEM_APIS.ADD_SEM_INDEX
- SEM_APIS.ALTER_DATATYPE_INDEX
- SEM_APIS.ALTER_ENTAILMENT
- SEM_APIS.ALTER_MODEL
- SEM_APIS.ALTER_SEM_INDEX_ON_ENTAILMENT
- SEM_APIS.ALTER_SEM_INDEX_ON_MODEL
- SEM_APIS.ANALYZE_ENTAILMENT
- SEM_APIS.ANALYZE_MODEL
- SEM_APIS.BUILD_PG_RDFVIEW_INDEXES
- SEM_APIS.BULK_LOAD_FROM_STAGING_TABLE
- SEM_APIS.CLEANUP_BNODES
- SEM_APIS.CLEANUP_FAILED
- SEM_APIS.COMPOSE_RDF_TERM
- SEM_APIS.CONVERT_TO_GML311_LITERAL
- SEM_APIS.CONVERT_TO_WKT_LITERAL
- SEM_APIS.CREATE_ENTAILMENT
- SEM_APIS.CREATE_PG_RDFVIEW
- SEM_APIS.CREATE_RDFVIEW_MODEL
- SEM_APIS.CREATE_RULEBASE
- SEM_APIS.CREATE_SEM_MODEL
- SEM_APIS.CREATE_SEM_NETWORK
- SEM_APIS.CREATE_SOURCE_EXTERNAL_TABLE
- SEM_APIS.CREATE_SPARQL_UPDATE_TABLES
- SEM_APIS.CREATE_VIRTUAL_MODEL
- SEM_APIS.DELETE_ENTAILMENT_STATS
- SEM_APIS.DELETE_MODEL_STATS
- SEM_APIS.DISABLE_CHANGE_TRACKING
- SEM_APIS.DISABLE_INC_INFERENCE
- SEM_APIS.DROP_DATATYPE_INDEX
- SEM_APIS.DROP_ENTAILMENT
- SEM_APIS.DROP_PG_RDFVIEW
- SEM_APIS.DROP_PG_RDFVIEW_INDEXES
- SEM_APIS.DROP_RDFVIEW_MODEL
- SEM_APIS.DROP_RULEBASE
- SEM_APIS.DROP_SEM_INDEX
- SEM_APIS.DROP_SEM_MODEL
- SEM_APIS.DROP_SEM_NETWORK
- SEM_APIS.DROP_SPARQL_UPDATE_TABLES
- SEM_APIS.DROP_USER_INFERENCE_OBJS
- SEM_APIS.DROP_VIRTUAL_MODEL
- SEM_APIS.ENABLE_CHANGE_TRACKING
- SEM_APIS.ENABLE_INC_INFERENCE
- SEM_APIS.ESCAPE_CLOB_TERM
- SEM_APIS.ESCAPE_CLOB_VALUE
- SEM_APIS.ESCAPE_RDF_TERM
- SEM_APIS.ESCAPE_RDF_VALUE
- SEM_APIS.EXPORT_ENTAILMENT_STATS
- SEM_APIS.EXPORT_MODEL_STATS
- SEM_APIS.EXPORT_RDFVIEW_MODEL
- SEM_APIS.GET_CHANGE_TRACKING_INFO
- SEM_APIS.GET_INC_INF_INFO
- SEM_APIS.GET_MODEL_ID
- SEM_APIS.GET_MODEL_NAME
- SEM_APIS.GET_TRIPLE_ID
- SEM_APIS.GETV$DATETIMETZVAL
- SEM_APIS.GETV$DATETZVAL
- SEM_APIS.GETV$NUMERICVAL
- SEM_APIS.GETV$STRINGVAL
- SEM_APIS.GETV$TIMETZVAL
- SEM_APIS.IMPORT_ENTAILMENT_STATS
- SEM_APIS.IMPORT_MODEL_STATS
- SEM_APIS.IS_TRIPLE
- SEM_APIS.LOAD_INTO_STAGING_TABLE
- SEM_APIS.LOOKUP_ENTAILMENT
- SEM_APIS.MERGE_MODELS
- SEM_APIS.MIGRATE_DATA_TO_CURRENT
- SEM_APIS.PRIVILEGE_ON_APP_TABLES
- SEM_APIS.PURGE_UNUSED_VALUES
- SEM_APIS.REFRESH_SEM_NETWORK_INDEX_INFO
- SEM_APIS.REMOVE_DUPLICATES
- SEM_APIS.RENAME_ENTAILMENT
- SEM_APIS.RENAME_MODEL
- SEM_APIS.RES2VID
- SEM_APIS.SET_ENTAILMENT_STATS
- SEM_APIS.SET_MODEL_STATS
- SEM_APIS.SPARQL_TO_SQL
- SEM_APIS.SWAP_NAMES
- SEM_APIS.UNESCAPE_CLOB_TERM
- SEM_APIS.UNESCAPE_CLOB_VALUE
- SEM_APIS.UNESCAPE_RDF_TERM
- SEM_APIS.UNESCAPE_RDF_VALUE
- SEM_APIS.UPDATE_MODEL
- SEM_APIS.VALIDATE_ENTAILMENT
- SEM_APIS.VALIDATE_GEOMETRIES
- SEM_APIS.VALIDATE_MODEL
- SEM_APIS.VALUE_NAME_PREFIX
- SEM_APIS.VALUE_NAME_SUFFIX
親トピック: リファレンスおよび補足情報
10.1 SEM_APIS.ADD_DATATYPE_INDEX
書式
SEM_APIS.ADD_DATATYPE_INDEX( datatype IN VARCHAR2, tablespace_name IN VARCHAR2 default NULL, parallel IN PLS_INTEGER default NULL, online IN BOOLEAN default FALSE, options IN VARCHAR2 default NULL);
説明
指定されたデータ型のデータ型索引をセマンティク・ネットワークに追加します。
パラメータ
- datatype
-
索引付けするデータ型のURI。
- tablespace_name
-
索引作成先の表領域。
- parallel
-
索引作成時に使用する並列度。
- online
-
TRUEに設定すると、索引作成時に索引に影響を及ぼすDML操作が許可されます。FALSE(デフォルト)に設定すると、索引作成時に索引に影響を及ぼすDML操作は許可されません。 - options
-
OPTION_NAME=option_value形式を使用する索引作成のオプションを指定する文字列。空間索引の作成に関してサポートされるオプションは、
SRID、TOLERANCEおよびDIMENSIONSです。実体化された空間索引の作成には、MATERIALIZE=Tを作成します。テキスト索引の作成に関連してサポートされるオプションは、PREFIX_INDEX、PREFIX_MIN_LENGTH、PREFIX_MAX_LENGTHおよびSUBSTRING_INDEXです。関数ベースの数値索引またはdateTime索引の作成には、FUNCTION=Tを使用します。キーワードの名前は大/小文字が区別されるため、大文字で指定してください。
使用上の注意
このプロシージャをコールするには、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パッケージのサブプログラム
10.2 SEM_APIS.ADD_SEM_INDEX
書式
SEM_APIS.ADD_SEM_INDEX( index_code IN VARCHAR2);
説明
セマンティク・ネットワーク索引を作成することにより、セマンティク・ネットワークの既存のモデルおよび伴意それぞれに対して、一意でないBツリー索引がUNUSABLEステータスで作成されます。
例
次の例では、索引コード文字列pcsmを使用して、セマンティク・ネットワークのモデルおよび伴意に対するセマンティク・ネットワーク索引を作成します。
EXECUTE SEM_APIS.ADD_SEM_INDEX('pscm');親トピック: SEM_APISパッケージのサブプログラム
10.3 SEM_APIS.ALTER_DATATYPE_INDEX
書式
SEM_APIS.ALTER_DATATYPE_INDEX( datatype IN VARCHAR2, command IN VARCHAR2, tablespace_name IN VARCHAR2 default NULL, parallel IN PLS_INTEGER default NULL, online IN BOOLEAN default FALSE);
説明
データ型索引を変更します。
パラメータ
例
次の例では、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パッケージのサブプログラム
10.4 SEM_APIS.ALTER_ENTAILMENT
書式
SEM_APIS.ALTER_ENTAILMENT( entailment_name IN VARCHAR2, command IN VARCHAR2, tablespace_name IN VARCHAR2, parallel IN NUMBER(38) DEFAULT NULL);
説明
伴意(ルール索引)を変更します。現在、サポートされている唯一のアクションは、指定された表領域に伴意を移動することです。
パラメータ
- entailment_name
-
伴意の名前。
- command
-
文字列
MOVEを指定する必要があります。 - tablespace_name
-
宛先表領域の名前。
- parallel
-
操作に関連付けられている並列度。パラレル実行の詳細は、『Oracle Database VLDBおよびパーティショニング・ガイド』を参照してください。
使用上の注意
伴意の詳細は、「伴意(ルール索引)」を参照してください。
例
次の例では、伴意rdfs_rix_familyを表領域my_tbsに移動します。
EEXECUTE SEM_APIS.ALTER_ENTAILMENT('rdfs_rix_family', 'MOVE', 'my_tbs');親トピック: SEM_APISパッケージのサブプログラム
10.5 SEM_APIS.ALTER_MODEL
書式
SEM_APIS.ALTER_MODEL( model_name IN VARCHAR2, command IN VARCHAR2, tablespace_name IN VARCHAR2, parallel IN NUMBER(38) DEFAULT NULL);
説明
モデルを変更します。現在、サポートされている唯一のアクションは、指定したデータベースにモデルを移動することです。
パラメータ
- model_name
-
モデルの名前。
- command
-
文字列
MOVEを指定する必要があります。 - tablespace_name
-
宛先表領域の名前。
- parallel
-
操作に関連付けられている並列度。パラレル実行の詳細は、『Oracle Database VLDBおよびパーティショニング・ガイド』を参照してください。
使用上の注意
モデルの詳細は、「セマンティク・データのモデル化」および「データベースのセマンティク・データ」を参照してください。
例
次の例では、モデルfamilyを表領域my_tbsに移動します。
EEXECUTE SEM_APIS.ALTER_MODEL('family', 'MOVE', 'my_tbs');親トピック: SEM_APISパッケージのサブプログラム
10.6 SEM_APIS.ALTER_SEM_INDEX_ON_ENTAILMENT
書式
SEM_APIS.ALTER_SEM_INDEX_ON_ENTAILMENT( entailment_name IN VARCHAR2, index_code IN VARCHAR2, command IN VARCHAR2, tablespace_name IN VARCHAR2 DEFAULT NULL, use_compression IN BOOLEAN DEFAULT NULL, parallel IN NUMBER(38) DEFAULT NULL, online IN BOOLEAN DEFAULT FALSE);
説明
伴意のセマンティク・ネットワーク索引を変更します。
パラメータ
- entailment_name
-
伴意の名前。
- index_code
-
索引コード文字列。
- command
-
次のコマンドのいずれかを含む文字列値。
REBUILD(伴意のセマンティク・ネットワーク索引を再作成する場合)またはUNUSABLE(伴意のセマンティク・ネットワーク索引に使用不可としてマークを付ける場合)。このパラメータの値には、大/小文字の区別がありません。 - tablespace_name
-
再構築操作先の表領域の名前。
- use_compression
-
索引を再構築する場合に圧縮を使用するかどうかを指定します。
- parallel
-
操作に関連付けられている並列度。パラレル実行の詳細は、『Oracle Database VLDBおよびパーティショニング・ガイド』を参照してください。
- online
-
TRUEに設定すると、索引再作成時に索引に影響を及ぼすDML操作が許可され、FALSE(デフォルト)に設定すると、索引再作成時に索引に影響を及ぼすDML操作は許可されません。
使用上の注意
セマンティク・ネットワーク索引の詳細は、「セマンティク・ネットワーク索引の使用」を参照してください。
例
次の例では、伴意rdfs_rix_familyのセマンティク・ネットワーク索引を再作成します(また、使用不可になっている場合は使用可能にします)。
EXECUTE SEM_APIS.ALTER_SEM_INDEX_ON_ENTAILMENT('rdfs_rix_family', 'pscm', 'rebuild');親トピック: SEM_APISパッケージのサブプログラム
10.7 SEM_APIS.ALTER_SEM_INDEX_ON_MODEL
書式
SEM_APIS.ALTER_SEM_INDEX_ON_MODEL( model_name IN VARCHAR2, index_code IN VARCHAR2, command IN VARCHAR2, tablespace_name IN VARCHAR2 DEFAULT NULL, use_compression IN BOOLEAN DEFAULT NULL, parallel IN NUMBER(38) DEFAULT NULL, online IN BOOLEAN DEFAULT FALSE);
説明
モデルのセマンティク・ネットワーク索引を変更します。
パラメータ
- model_name
-
モデルの名前。
- index_code
-
索引コード文字列。
- command
-
次のコマンドのいずれかを含む文字列値。
REBUILD(モデルのセマンティク・ネットワーク索引を再作成する場合)またはUNUSABLE(モデルのセマンティク・ネットワーク索引に使用不能としてマークを付ける場合)。このパラメータの値には、大/小文字の区別がありません。 - tablespace_name
-
再構築操作先の表領域の名前。
- use_compression
-
索引を再構築する場合に圧縮を使用するかどうかを指定します。
- parallel
-
操作に関連付けられている並列度。パラレル実行の詳細は、『Oracle Database VLDBおよびパーティショニング・ガイド』を参照してください。
- online
-
TRUEに設定すると、索引再作成時に索引に影響を及ぼすDML操作が許可され、FALSE(デフォルト)に設定すると、索引再作成時に索引に影響を及ぼすDML操作は許可されません。
使用上の注意
セマンティク・ネットワーク索引の詳細は、「セマンティク・ネットワーク索引の使用」を参照してください。
例
次の例では、モデルfamilyのセマンティク・ネットワーク索引を再作成します(また、使用不可になっている場合は使用可能にします)。
EXECUTE SEM_APIS.ALTER_SEM_INDEX_ON_MODEL('family', 'pscm', 'rebuild');親トピック: SEM_APISパッケージのサブプログラム
10.8 SEM_APIS.ANALYZE_ENTAILMENT
書式
SEM_APIS.ANALYZE_ENTAILMENT(
entailment_name IN VARCHAR2,
estimate_percent IN NUMBER DEFAULT to_estimate_percent_type (get_param('ESTIMATE_PERCENT')),
method_opt IN VARCHAR2 DEFAULT get_param('METHOD_OPT'),
degree IN NUMBER DEFAULT to_degree_type(get_param('DEGREE')),
cascade IN BOOLEAN DEFAULT to_cascade_type(get_param('CASCADE')),
no_invalidate IN BOOLEAN DEFAULT to_no_invalidate_type (get_param('NO_INVALIDATE')),
force IN BOOLEAN DEFAULT FALSE);説明
指定された伴意(ルール索引)の統計を収集します。
パラメータ
- entailment_name
-
伴意の名前。
- estimate_percent
-
伴意の情報を含む内部表パーティション内の、評価される行の割合(
NULLは計算を意味します)。有効なレンジは、[0.000001,100]です。定数DBMS_STATS.AUTO_SAMPLE_SIZEを使用すると、有効な統計を生成するための適切なサンプル・サイズがOracleにより決定されます。これが通常のデフォルトです。 - method_opt
-
伴意の情報を含む内部表パーティションに対して、次のいずれかのオプション(または両方の組合せ)を受け入れます。
-
FOR ALL [INDEXED | HIDDEN] COLUMNS[size_clause] -
FOR COLUMNS[size clause] column|attribute [size_clause] [,column|attribute [size_clause]...]
size_clauseは、size_clause := SIZE {integer | REPEAT | AUTO | SKEWONLY}として定義されます。columnは、column := column_name | (extension)として定義されます。- integer: ヒストグラム・バケット数。範囲は[1,254]である必要があります。- REPEAT: すでにヒストグラムがある列に対してのみ、ヒストグラムを収集します。- AUTO: 列のデータ分布とワークロードに基づいて、ヒストグラムを収集する列が決まります。- SKEWONLY: 列のデータ分布に基づいてヒストグラムを収集する列が決まります。- -
column_name: 列の名前。 - -
extension: 式または(column_name,column_name[, ...])の形式で指定された列グループ。
通常のデフォルトは、
FOR ALL COLUMNS SIZE AUTOです。 -
- degree
-
伴意の情報を含む内部表パーティションに関する並列度です。通常、
degreeのデフォルト値はNULLで、CREATE TABLE文またはALTER TABLE文のDEGREE句で指定された表のデフォルト値が使用されます。初期化パラメータに基づいてデフォルト値を指定するには、定数DBMS_STATS.DEFAULT_DEGREEを使用します。値にAUTO_DEGREEを指定すると、並列度が自動的に決定されます。オブジェクトのサイズに応じて、1(シリアル実行)またはDEFAULT_DEGREE(CPU数と初期化パラメータに基づくシステム・デフォルト値)になります。 - cascade
-
伴意の情報を含む内部表パーティションの索引に関する統計を収集します。定数
DBMS_STATS.AUTO_CASCADEを使用すると、索引統計を収集するかどうかがOracleにより決定されます。これが通常のデフォルトです。 - no_invalidate
-
TRUEに設定した場合、依存カーソルは無効化されません。FALSEに設定した場合、依存カーソルは即時に無効化されます。DBMS_STATS.AUTO_INVALIDATE.を使用すると、従属カーソルを無効化するかどうかがOracleにより決定されます。これが通常のデフォルトです。 - force
-
TRUEに設定すると、伴意がロックされている場合でも統計が収集されます。FALSE(デフォルト)に設定すると、伴意がロックされている場合は統計が収集されません。
使用上の注意
クラスタ、ドメインおよび結合索引を除いて、索引統計コレクションはパラレル化できます。
このプロシージャは、伴意の情報を含む内部表パーティションの統計を収集するDBMS_STATS.GATHER_TABLE_STATSプロシージャを内部的にコールします。DBMS_STATS.GATHER_TABLE_STATSプロシージャについては、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。
「セマンティク・モデルおよびセマンティク・ネットワークの統計の管理」を参照してください。
「伴意」の詳細は、「伴意(ルール索引)」を参照してください。
例
次の例では、伴意rdfs_rix_familyの統計を収集します。
EXECUTE SEM_APIS.ANALYZE_ENTAILMENT('rdfs_rix_family');親トピック: SEM_APISパッケージのサブプログラム
10.9 SEM_APIS.ANALYZE_MODEL
書式
SEM_APIS.ANALYZE_MODEL(
model_name IN VARCHAR2,
estimate_percent IN NUMBER DEFAULT to_estimate_percent_type (get_param('ESTIMATE_PERCENT')),
method_opt IN VARCHAR2 DEFAULT get_param('METHOD_OPT'),
degree IN NUMBER DEFAULT to_degree_type(get_param('DEGREE')),
cascade IN BOOLEAN DEFAULT to_cascade_type(get_param('CASCADE')),
no_invalidate IN BOOLEAN DEFAULT to_no_invalidate_type (get_param('NO_INVALIDATE')),
force IN BOOLEAN DEFAULT FALSE);説明
指定されたモデルのオプティマイザ統計を収集します。
パラメータ
- model_name
-
モデルの名前。
- estimate_percent
-
モデルの情報を含む内部表パーティション内の、評価される行の割合(
NULLは計算を意味します)。有効なレンジは、[0.000001,100]です。定数DBMS_STATS.AUTO_SAMPLE_SIZEを使用すると、有効な統計を生成するための適切なサンプル・サイズがOracleにより決定されます。これが通常のデフォルトです。 - method_opt
-
モデルの情報を含む内部表パーティションに対して、次のいずれかのオプション(または両方の組合せ)を受け入れます。
-
FOR ALL [INDEXED | HIDDEN] COLUMNS[size_clause] -
FOR COLUMNS[size clause] column|attribute [size_clause] [,column|attribute [size_clause]...]
size_clauseは、size_clause := SIZE {integer | REPEAT | AUTO | SKEWONLY}として定義されます。columnは、column := column_name | (extension)として定義されます。- integer: ヒストグラム・バケット数。範囲は[1,254]である必要があります。- REPEAT: すでにヒストグラムがある列に対してのみ、ヒストグラムを収集します。- AUTO: 列のデータ分布とワークロードに基づいて、ヒストグラムを収集する列が決まります。- SKEWONLY: 列のデータ分布に基づいてヒストグラムを収集する列が決まります。- -
column_name: 列の名前。 - -
extension: 式または(column_name,column_name[, ...])の形式で指定された列グループ。
通常のデフォルトは、
FOR ALL COLUMNS SIZE AUTOです。 -
- degree
-
モデルの情報を含む内部表パーティションの索引に関する並列度です。通常、
degreeのデフォルト値はNULLで、CREATE TABLE文またはALTER TABLE文のDEGREE句で指定された表のデフォルト値が使用されます。初期化パラメータに基づいてデフォルト値を指定するには、定数DBMS_STATS.DEFAULT_DEGREEを使用します。値にAUTO_DEGREEを指定すると、並列度が自動的に決定されます。オブジェクトのサイズに応じて、1(シリアル実行)またはDEFAULT_DEGREE(CPU数と初期化パラメータに基づくシステム・デフォルト値)になります。 - cascade
-
モデルの情報を含む内部表パーティションの索引に関する統計を収集します。定数
DBMS_STATS.AUTO_CASCADEを使用すると、索引統計を収集するかどうかがOracleにより決定されます。これが通常のデフォルトです。 - no_invalidate
-
TRUEに設定した場合、依存カーソルは無効化されません。FALSEに設定した場合、依存カーソルは即時に無効化されます。DBMS_STATS.AUTO_INVALIDATE.を使用すると、従属カーソルを無効化するかどうかがOracleにより決定されます。これが通常のデフォルトです。 - force
-
TRUEに設定すると、モデルがロックされている場合でも統計が収集されます。FALSE(デフォルト)に設定すると、モデルがロックされている場合は統計が収集されません。
使用上の注意
クラスタ、ドメインおよび結合索引を除いて、索引統計コレクションはパラレル化できます。
このプロシージャは、モデルに関する情報を含む内部表パーティションのオプティマイザ統計を収集するDBMS_STATS.GATHER_TABLE_STATSプロシージャを内部的にコールします。DBMS_STATS.GATHER_TABLE_STATSプロシージャについては、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。
「セマンティク・モデルおよびセマンティク・ネットワークの統計の管理」を参照してください。
例
次の例では、セマンティク・モデルfamilyの統計を収集します。
EXECUTE SEM_APIS.ANALYZE_MODEL('family');親トピック: SEM_APISパッケージのサブプログラム
10.10 SEM_APIS.BUILD_PG_RDFVIEW_INDEXES
書式
SEM_APIS.BUILD_PG_RDFVIEW_INDEXES( pg_name IN VARCHAR2, tsblespace_name IN VARCHAR2 DEFAULT NULL, options IN VARCHAR2 DEFAULT NULL);
または
SEM_APIS.BUILD_PG_RDFVIEW_INDEXES( pg_name IN VARCHAR2, tsblespace_name IN VARCHAR2 DEFAULT NULL, pg_edge_kv_tab IN VARCHAR2, pg_node_kv_tab IN VARCHAR2, pg_edge_tab IN VARCHAR2, options IN VARCHAR2 DEFAULT NULL);
説明
プロパティ・グラフのRDFビューに対する問合せ速度を向上させるために、デフォルトの索引セットを作成します。
パラメータ
- pg_name
-
索引に対するプロパティ・グラフの名前。
- tablespace_name
-
索引の宛先表領域。
- pg_edge_kv_tab
-
エッジ・プロパティを格納する表の名前
- pg_node_kv_tab
-
ノード・プロパティを格納する表の名前。
- pg_edge_tab
-
異なるエッジを格納する表の名前。
- options
-
OPTION_NAME=option_value形式を使用する索引作成のオプションを指定する文字列。サポートされているオプションは次のとおりです。
-
SUB_K=N, SUB_EL=N (プロパティのキー名またはエッジ・ラベルに対するN文字のサブストリングを使用します)
-
GT_TABLE=T (GT$表に値が格納されていることを仮定します)
-
PARALLEL=N (索引作成時に並行度Nを使用します)
-
SKIP_VAL_IDX=T (交点やエッジのプロパティ値に対する索引作成をスキップします)
-
SKIP_FUNC_IDX=T (エッジの開始および終了交点のURIに基づく関数ベース索引の作成をスキップします)
-
SUB_V_IDX=N (文字列値を持つ交点プロパティおよびエッジ・プロパティに索引を付ける際、N文字のサブ文字列を使用します)
-
使用上の注意
RDFビューに対する問合せで高いパフォーマンスを得るには、プロパティ・グラフ表に索引を作成する必要があります。そうした表には索引スキームをいくつでも作成できますが、便宜上、SEM_APIS.BUILD_PG_RDFVIEW_INDEXESプロシージャが用意されています。
SEM_APIS.BUILD_PG_RDFVIEW_INDEXESプロシージャによって、索引がデフォルトで複数個作成されます。プロパティの名前と型に基づいて、交点およびエッジのプロパティを検索するには、次の索引を使用します。
create index g1$ntk on g1vt$( T , substr(K,1,200)) compress local nologging; create index g1$etk on g1ge$( T , substr(k,1,200)) compress local nologging;
グラフ・トラバースには次の索引を使用します。options => ‘GT_TABLE=T’を指定してG1LGT$表に値が格納されていることを明示した場合、この索引は、G1GE$表に対してではなく、G1GT$表に対して作成されます。
create index g1$lsd on g1ge$( substr(el,1,200) , svid , dvid , eid) compress local nologging; create index g1$lds on g1ge$( substr(el,1,200) , dvid , svid , eid) compress local nologging;
交点URIに基づくグラフ・トラバースには、次の関数ベース索引を使用します。この関数ベースの索引は、'SKIP_FUNC_IDX=T'オプションを使用してスキップできます。options => ‘GT_TABLE=T’を指定してG1LGT$表に値が格納されていることを明示した場合、この索引は、G1GE$表に対してではなく、G1GT$表に対して作成されます。
create index g1$lsd on g1ge$( substr(el,1,200) , svid , dvid , eid) compress local nologging; create index g1$lds on g1ge$( substr(el,1,200) , dvid , svid , eid) compress local nologging;
URIに基づいて交点およびエッジを検索するには、次の関数ベース索引を使用します。
create index g1$idf on g1ge$(
'<http://xmlns.oracle.com/pg/edge/e'||TO_CHAR("EID")||'>')
compress local nologging;
create index g1$vid on g1vt$(
'<http://xmlns.oracle.com/pg/vertex/v'||TO_CHAR("VID")||'>')
compress local nologging;
プロパティ値に基づいて交点およびエッジを検索するには、次の索引を使用します。この索引は、SKIP_VAL_IDX=Tオプションを使用してスキップできます。
-- varchar -- create index g1$nvt on g1vt$( substr(to_char(V),1,200) , T compress local nologging; -- number -- create index g1$nnt on g1vt$( VN , T compress local nologging; -- date -- create index g1$ndt on g1vt$( VT , T compress local nologging; -- varchar -- create index g1$evt on g1ge$( substr(to_char(V),1,200) , T compress local nologging; -- number -- create index g1$ent on g1ge$( VN , T compress local nologging; -- date -- create index g1$edt on g1ge$( VT , T compress local nologging;
詳細は、「Oracle Databaseに格納されたプロパティ・グラフ・データとのRDF統合」を参照してください。
例
次の例では、表領域MY_TBSのプロティ・グラフG1に対して索引をビルドし、値索引の作成をスキップしています。
EXECUTE SEM_APIS.BUILD_PG_RDFVIEW_INDEXES('G1', 'MY_TBS', ' SKIP_VAL_IDX=T ');次の例では、表領域MY_TBSのプロティ・グラフG1に対して、プロパティ・グラフ表MY_EDGE_KV_TAB、MY_NODE_KV_TABおよびMY_EDGE_TABを使用して、索引をビルドしています。さらに、互いに異なるエッジが格納された表が指定されています。
EXECUTE SEM_APIS.BUILD_PG_RDFVIEW_INDEXES('G1', 'MY_TBS', 'MY_EDGE_KV_TAB', 'MY_NODE_KV_TAB', 'MY_EDGE_TAB', 'GT_TABLE=T');親トピック: SEM_APISパッケージのサブプログラム
10.11 SEM_APIS.BULK_LOAD_FROM_STAGING_TABLE
書式
SEM_APIS.BULK_LOAD_FROM_STAGING_TABLE( model_name IN VARCHAR2, table_owner IN VARCHAR2, table_name IN VARCHAR2, flags IN VARCHAR2 DEFAULT NULL, debug IN INTEGER DEFAULT NULL, start_comment IN VARCHAR2 DEFAULT NULL, end_comment IN VARCHAR2 DEFAULT NULL);
説明
ステージング表からセマンティク・データをロードします。
パラメータ
- model_name
-
モデルの名前。
- table_owner
-
ロードされるセマンティク・データを保持するステージング表を所有するスキーマの名前。
- table_name
-
ロードされるセマンティク・データを保持するステージング表の名前。
- flags
-
次のキーワード指定が1つ以上含まれる、引用符で囲んだオプションの文字列。
-
COMPRESS=CSCQHを指定すると、モデルに対してMDSYS.RDF_LINK$パーティションで、COLUMN STORE COMPRESS FOR QUERY HIGHが使用されます。 -
COMPRESS=CSCQLを指定すると、モデルに対してMDSYS.RDF_LINK$パーティションで、COLUMN STORE COMPRESS FOR QUERY LOWが使用されます。 COMPRESS=RSCAを指定すると、モデルに対してMDSYS.RDF_LINK$でROW STORE COMPRESS ADVANCEDが使用されます。COMPRESS=RSCABを指定すると、モデルに対してMDSYS.RDF_LINK$パーティションで、ROW STORE COMPRESS BASICが使用されます。-
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。です。
-
- debug
-
(今後使用予定)
- start_comment
-
ロード操作の開始についてのオプションのコメント。
- end_comment
-
ロード操作の終了についてのオプションのコメント。
使用上の注意
このプロシージャをコールする前に、ステージング表にセマンティク・データをロードする必要があります。詳細は「ステージング表を使用したセマンティク・データのバルク・ロード」を参照してください。
BULK_LOAD_FROM_STAGING_TABLEとファイングレイン・アクセス制御(OLS)
OLSを使用するネットワーク全体に対してファイングレイン・アクセス制御(「RDFデータに対するファイングレイン・アクセス制御」を参照)を有効にした場合、関連ポリシーへの完全なアクセス権限を持つユーザーのみがバルク・ロード操作を実行できます。OLSが有効な場合、OLSポリシーへの完全なアクセス権限はSA_USER_ADMIN.SET_USER_PRIVSプロシージャを使用して付与されます。
OLSを使用している場合、RDFトリプルを格納する表のラベル列は保持する必要があります。デフォルトでは、OLSを有効にしている場合、RDFトリプルを格納する表のラベル列はNULLに設定されます。完全なアクセス権限がある場合、適切なサブプログラム(SEM_RDFSA.SET_RESOURCE_LABELおよびSEM_RDFSA.SET_PREDICATE_LABEL)を使用して、新しく挿入されたトリプルおよびトリプルの新しいバッチで導入されたすべてのリソースのラベルをリセットできます。
オプションで、ステージング表とアプリケーション表にRDF$STC_CTXT1という数値列を定義し、データが目的のモデルにロードされる前にトリプルの機密性ラベルを割り当てることができます。このようなラベルは、MDSYS.RDF_LINK$表に格納される、対応するトリプルに、自動的に適用されます。新しく導入されたリソースのラベルはロードの前または後にまだ個別に適用する必要がある場合があり、システムはバルク・ロード操作の間、割り当てられるラベルを検証しません。
アプリケーション表のRDF$STC_CTXT1列は重要ではなく、バルク・ロード操作の後に削除される場合があります。
SEM_APIS.BULK_LOAD_FROM_STAGING_TABLEでは、モデルに対してセマンティク・ネットワーク圧縮の設定(MDSYS.RDF_PARAMETER表に保管されています)が、デフォルトで使用されます。
例
次の例では、スキーマ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パッケージのサブプログラム
10.12 SEM_APIS.CLEANUP_BNODES
書式
SEM_APIS.CLEANUP_BNODES( model_name IN VARCHAR2, tablespace_name IN VARCHAR2 DEFAULT NULL, options IN VARCHAR2 DEFAULT NULL);
説明
指定したモデルの空白ノードについて、空白ノード識別子を修正します。
パラメータ
使用上の注意
「空白のノード: SPARQL更新で特に留意する点」を参照してください。
optionsパラメータには、次のキーワードを1つまたは複数含めることができます。
-
APPEND: 空白ノードの修正中、表に値を格納する際、APPENDヒントが使用されます。 -
PARALLEL(n): 空白ノードの修正で、nが並列度として使用されます。 -
RECOVER_FAILED=T: 以前に試行された空白ノードの修正が中断され、中間データを含む一時的な表が削除されていない場合に、このオプションを含めます。
例
次の例では、electronicsセマンティク・モデルに対して、空白ノード識別子の修正を行っています。
EXECUTE SEM_APIS.CLEANUP_BNODES('electronics');親トピック: SEM_APISパッケージのサブプログラム
10.13 SEM_APIS.CLEANUP_FAILED
書式
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パッケージのサブプログラム
10.14 SEM_APIS.COMPOSE_RDF_TERM
書式
SEM_APIS.COMPOSE_RDF_TERM( value_name IN VARCHAR2, value_type IN VARCHAR2, literal_type IN VARCHAR2, language_type IN VARCHAR2 ) RETURN VARCHAR2;
または
SEM_APIS.COMPOSE_RDF_TERM( value_name IN VARCHAR2, value_type IN VARCHAR2, literal_type IN VARCHAR2, language_type IN VARCHAR2, long_value IN CLOB, options IN VARCHAR2 DEFAULT NULL, ) RETURN CLOB;
説明
指定したパラメータを使用してRDF語句を作成して戻します。
パラメータ
- value_name
-
値の名前。MDSYS.RDF_VALUE$表(「文」を参照)のVALUE_NAME列の値、またはSEM_MATCHテーブル・ファンクションから戻されたvar属性の値と一致する必要があります。
- value_type
-
テキスト情報のタイプ。MDSYS.RDF_VALUE$表(「文」を参照)のVALUE_TYPE列の値、またはSEM_MATCHテーブル・ファンクションから戻されたvar$RDFVTYP属性の値と一致している必要があります。
- literal_type
-
型付きリテラルの場合は型情報、それ以外の場合はNULL。NULL値か、MDSYS.RDF_VALUE$表(「文」を参照)のLITERAL_TYPE列の値、またはSEM_MATCHテーブル・ファンクションから戻されたvar$RDFLTYP属性の値と一致している必要があります。
- language_type
-
言語タグ。MDSYS.RDF_VALUE$表(「文」を参照)のLANGUAGE_TYPE列の値、またはSEM_MATCHテーブル・ファンクションから戻されたvar$RDFLANG属性の値と一致している必要があります。
- long_value
-
字句の値の長さが4000バイトを超える場合の文字列。MDSYS.RDF_VALUE$表(「文」を参照)のLONG_VALUE列の値、またはSEM_MATCHテーブル・ファンクションから戻されたvar$RDFCLOB属性の値と一致している必要があります。
- options
-
(将来使用するために予約済)
使用上の注意
一貫性のない値の組合せをパラメータに指定すると、この関数はNULL値を戻します。NULL値が戻されても、パラメータの値が適切である(MDSYS.RDF_VALUE$表の同じ行の列、または同じ変数のSEM_MATCH問合せの列を反映している)と思われる場合は、Oracleサポートまでご連絡ください。
例
次の例では、身長がわかっている家族のメンバーごとに、身長のRDF語句だけでなく身長の値部分も戻します。
SELECT x, SEM_APIS.COMPOSE_RDF_TERM(h, h$RDFVTYP, h$RDFLTYP, h$RDFLANG)
h_rdf_term, h
FROM TABLE(SEM_MATCH(
'{?x :height ?h}',
SEM_Models('family'),
null,
SEM_ALIASES(SEM_ALIAS('','http://www.example.org/family/')),
null))
ORDER BY x;
X
--------------------------------------------------------------------------------
H_RDF_TERM
--------------------------------------------------------------------------------
H
--------------------------------------------------------------------------------
http://www.example.org/family/Cathy
"5.8"^^<http://www.w3.org/2001/XMLSchema#decimal>
5.8
http://www.example.org/family/Cindy
"6"^^<http://www.w3.org/2001/XMLSchema#decimal>
6
http://www.example.org/family/Jack
"6"^^<http://www.w3.org/2001/XMLSchema#decimal>
6
http://www.example.org/family/Tom
"5.75"^^<http://www.w3.org/2001/XMLSchema#decimal>
5.75
4 rows selected.
次の例では、MDSYS.RDF_VALUE$表に格納されている値のRDF語句を戻します。
SELECT SEM_APIS.COMPOSE_RDF_TERM(value_name, value_type, literal_type,
language_type)
FROM MDSYS.RDF_VALUE$ WHERE ROWNUM < 5;
SEM_APIS.COMPOSE_RDF_TERM(VALUE_NAME,VALUE_TYPE,LITERAL_TYPE,LANGUAGE_TYPE)
--------------------------------------------------------------------------------
<http://www.w3.org/1999/02/22-rdf-syntax-ns#object>
<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
<http://www.w3.org/1999/02/22-rdf-syntax-ns#subject>
<http://www.w3.org/1999/02/22-rdf-syntax-ns#Property>親トピック: SEM_APISパッケージのサブプログラム
10.15 SEM_APIS.CONVERT_TO_GML311_LITERAL
書式
SDO_RDF.CONVERT_TO_GML311_LITERAL(
geom IN SDO_GEOMETRY,
options IN VARCHAR2 default NULL
)RETURN CLOB;
説明
SDO_GEOMETRYオブジェクトをogc:gmlLiteral値にシリアライズします。
使用上の注意
プロシージャSDO_UTIL.TO_GML311GEOMETRYを内部的に使用して、特定の空間参照システムURIでジオメトリ・リテラルを作成します。
ジオメトリ・シリアライズの詳細は、SDO_UTIL.TO_GML311GEOMETRYに関する項を参照してください。
例
次の例では、SRID 8307のジオメトリにこの関数を使用する方法を示します。COLA_MARKETS表は『Oracle Spatial and Graph開発者ガイド』の簡単な例のものです。
INSERT INTO cola_markets VALUES(
10,
'cola_x',
SDO_GEOMETRY(
2003,
8307, -- SRID
NULL,
SDO_ELEM_INFO_ARRAY(1,1003,3),
SDO_ORDINATE_ARRAY(1,1, 6,13)
)
);
commit;
SELECT
sem_apis.convert_to_gml311_literal(shape) as gml1
FROM cola_markets;
"<gml:Polygon srsName=\"SDO:8307\" xmlns:gml=\"http://www.opengis.net/gml\"><gml
:exterior><gml:LinearRing><gml:posList srsDimension=\"2\">1.0 1.0 6.0 1.0 6.0 13.0 1.0 13.0 1.0 1.0 </gml:posList></gml:LinearRing></gml:exterior></gml:Polygon>
"^^<http://www.opengis.net/ont/geosparql#gmlLiteral>
親トピック: SEM_APISパッケージのサブプログラム
10.16 SEM_APIS.CONVERT_TO_WKT_LITERAL
書式
SEM_APIS.CONVERT_TO_WKT_LITERAL(
geom IN SDO_GEOMETRY,
srid_prefix IN VARCHAR2 default NULL,
options IN VARCHAR2 default NULL
)RETURN CLOB;
説明
SDO_GEOMETRYオブジェクトをogc:wktLiteral値にシリアライズします。
パラメータ
使用上の注意
プロシージャSDO_UTIL.TO_WKTGEOMETRYを内部的に使用して、特定の空間参照システムURIでジオメトリ・リテラルを作成します。
デフォルトでは、標準SRID URIが使用されます(<http://www.opengis.net/def/crs/EPSG/0/{srid}>または<http://www.opengis.net/def/crs/OGC/1.3/CRS84>>)。
ジオメトリ・シリアライズの詳細は、SDO_UTIL.TO_WKTGEOMETRYに関する項を参照してください。
例
次の例では、SRID 8307のジオメトリにこの関数を使用する3つの異なる方法を示します。COLA_MARKETS表は『Oracle Spatial and Graph開発者ガイド』の簡単な例のものです。
INSERT INTO cola_markets VALUES(
10,
'cola_x',
SDO_GEOMETRY(
2003,
8307, -- SRID
NULL,
SDO_ELEM_INFO_ARRAY(1,1003,3),
SDO_ORDINATE_ARRAY(1,1, 6,13)
)
);
commit;
SELECT
sem_apis.convert_to_wkt_literal(shape) as wkt1,
sem_apis.convert_to_wkt_literal(shape,'http://my.org/') as wkt2,
sem_apis.convert_to_wkt_literal(shape,null,' ORACLE_PREFIX=T ') as wkt3
FROM cola_markets;
"<http://www.opengis.net/def/crs/OGC/1.3/CRS84> POLYGON ((1.0 1.0, 6.0 1.0, 6.0 13.0, 1.0 13.0, 1.0 1.0))"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
"<http://my.org/8307> POLYGON ((1.0 1.0, 6.0 1.0, 6.0 13.0, 1.0 13.0, 1.0 1.0))"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
"<http://xmlns.oracle.com/rdf/geo/srid/8307> POLYGON ((1.0 1.0, 6.0 1.0, 6.0 13.0, 1.0 13.0, 1.0 1.0))"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
親トピック: SEM_APISパッケージのサブプログラム
10.17 SEM_APIS.CREATE_ENTAILMENT
書式
SEM_APIS.CREATE_ENTAILMENT( entailment_name_in IN VARCHAR2, models_in IN SEM_MODELS, rulebases_in IN SEM_RULEBASES, passes IN NUMBER DEFAULT SEM_APIS.REACH_CLOSURE, inf_components_in IN VARCHAR2 DEFAULT NULL, options IN VARCHAR2 DEFAULT NULL, delta_in IN SEM_MODELS DEFAULT NULL, label_gen IN RDFSA_LABELGEN DEFAULT NULL, include_named_g IN SEM_GRAPHS DEFAULT NULL, include_default_g IN SEM_MODELS DEFAULT NULL, include_all_g IN SEM_MODELS DEFAULT NULL, inf_ng_name IN VARCHAR2 DEFAULT NULL, inf_ext_user_func_name IN VARCHAR2 DEFAULT NULL);
説明
OWLまたはRDFS推論を実行する(およびオプションでユーザー定義ルールを使用する)際に使用できる伴意(ルール索引)を作成します。
パラメータ
- entailment_name_in
-
作成する伴意の名前。
- models_in
-
1つ以上のモデル名。そのデータ型は、
TABLE OF VARCHAR2(25)という定義を持つSEM_MODELSです。 - rulebases_in
-
1つ以上のルールベース名。そのデータ型は、
TABLE OF VARCHAR2(25)という定義を持つSEM_RULEBASESです。ルールおよびルールベースの詳細は、「推論: ルールとルールベース」を参照してください。 - passes
-
推論エンジンを実行する回数。デフォルト値は
SEM_APIS.REACH_CLOSUREであり、推論エンジンは閉包に到達するまで実行されます。指定した実行回数が、閉包に到達するのに必要な実際の実行回数より少ない場合、伴意のステータスはINCOMPLETEに設定されます。 - inf_components_in
-
選択的またはコンポーネント・ベースの推論を実行する場合の推論コンポーネントを示すキーワードのカンマ区切りの文字列。このパラメータがNULLの場合、推論コンポーネントのデフォルト・セットが使用されます。推論コンポーネントの詳細は、「使用方法」を参照してください。
- options
-
カンマ区切りの文字列で、デフォルトの推論の動作をオーバーライドすることにより推論プロセスを制御するためのオプション。オプションを有効化するには、
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です。各値の詳細は、「使用方法」を参照してください。 - delta_in
-
増分推論が有効な場合は、増分推論を実行する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パラメータは無効です。) - label_gen
-
MDSYS.RDFSA_LABELGENのインスタンスまたはそのサブタイプで、推論されたトリプルに対するOracle Label Security (OLS)ラベルの生成の論理を定義します。このパラメータに何を指定するかは、デフォルトのラベル・ジェネレータまたはカスタム・ラベル・ジェネレータを使用するかどうかによって応じて異なります。
-
デフォルトのラベル・ジェネレータを使用する場合、次の定数のいずれかを指定します。
SEM_RDFSA.LABELGEN_RULE(ルール・ラベルの使用の場合)、SEM_RDFSA.LABELGEN_SUBJECT(主語ラベルの使用の場合)、SEM_RDFSA.LABELGEN_PREDICATE(述語ラベルの使用の場合)、SEM_RDFSA.LABELGEN_OBJECT(目的語ラベルの使用の場合)、SEM_RDFSA.LABELGEN_DOMINATING(優位ラベルの使用の場合)、SEM_RDFSA.LABELGEN_ANTECED(前件ラベルの使用の場合)。各定数の詳細な説明は、「推論されたトリプルのラベルの生成」を参照してください。 -
カスタム・ラベル・ジェネレータを使用する場合、カスタム・ラベル・ジェネレータ・タイプを指定します。カスタム・ラベル・ジェネレータの作成および実装の詳細は、「アプリケーション・ロジックに基づくラベルの使用」を参照してください。
-
- include_named_g
-
指定された名前付きグラフからのすべてのトリプル(すべてのソース・モデル全体)を、名前付きグラフ・ベースのグローバル推論(NGGI、「名前付きグラフ・ベースのグローバル推論(NGGI)」を参照)に加えます。たとえば
include_named_g => sem_graphs('<urn:G1>','<urn:G2>')は、名前付きグラフG1およびG2からのトリプルがNGGIに含められることを意味します。 - include_default_g
-
指定されたモデルのグラフ名がNULLであるすべてのトリプルを、名前付きグラフ・ベースのグローバル推論(NGGI、「名前付きグラフ・ベースのグローバル推論」を参照)に加えます。たとえば、
include_default_g => sem_models('m1')は、モデルM1からのグラフ名がNULLであるすべてのトリプルをNGGIに含めます。 - include_all_g
-
指定されたモデル内にあるすべてのトリプルを、そのグラフ名の値に関わらず、名前付きグラフ・ベースのグローバル推論(NGGI、「名前付きグラフ・ベースのグローバル推論」を参照)に加えます。たとえば、
include_all_g => sem_models('m2')は、モデルM2のすべてのトリプルをNGGIに含めます。 - inf_ng_name
-
名前付きグラフ・ベースのグローバル推論(NGGI、「名前付きグラフ・ベースのグローバル推論(NGGI)」を参照)で推論された新しいトリプルすべてに、指定されたグラフ名を割り当てます。
- inf_ext_user_func_name
-
ユーザー定義の推論ファンクションの名前、またはユーザー定義ファンクションの名前のカンマ区切りのリスト。特定のパラメータの形式要件やオプションなど、ユーザー定義の推論ファンクションの作成の詳細は、「ユーザー定義の推論のAPIサポート」を参照してください。(例を含むユーザー定義の推論の詳細は、「ユーザー定義の推論と問合せ」を参照してください。)
使用上の注意
inf_components_inパラメータには、キーワードSCOHCOMPH、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の任意の組合せを指定できます。これらのキーワードの意味の説明は、キーワードのアルファベット順のリストである表10-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ルールベースや既存のルールベースには、デフォルトでは前述の新しいコンポーネントは含まれていないため、これらの新しいコンポーネントを使用するには、明示的に設定する必要があります(これらを表10-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');
表10-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ラベル・ジェネレータを使用する場合、表10-2から適切なSEM_RDFSAパッケージ定数値を指定します。
表10-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)で考慮すべき点
OLSを使用するネットワーク全体に対してファイングレイン・アクセス制御を有効にした場合、関連ポリシーに対してFULLアクセス権限を持つユーザーのみが伴意を作成できます。OLSが有効な場合、OLSポリシーへの完全なアクセス権限はSA_USER_ADMIN.SET_USER_PRIVSプロシージャを使用して付与されます。
生成されたラベルを通じてアクセスされる推論されたトリプルは、ユーザー・アクセス可能なトリプルおよびルールから直接推論される概念上のトリプルとは異なることがあります。トリプルのコンポーネントのサブセットを使用して生成されるラベルは、意図していたものよりも弱い場合があります。たとえば、推論されたトリプルの前件の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パッケージのサブプログラム
10.18 SEM_APIS.CREATE_PG_RDFVIEW
書式
SEM_APIS.CREATE_PG_RDFVIEW( model_name IN VARCHAR2, pg_name IN VARCHAR2, tsblespace_name IN VARCHAR2 DEFAULT NULL, options IN VARCHAR2 DEFAULT NULL);
または
SEM_APIS.CREATE_PG_RDFVIEW( model_name IN VARCHAR2, pg_name IN VARCHAR2, tsblespace_name IN VARCHAR2 DEFAULT NULL, pg_stag_tab IN VARCHAR2, pg_edge_kv_tab IN VARCHAR2, pg_node_kv_tab IN VARCHAR2, pg_edge_tab IN VARCHAR2, options IN VARCHAR2 DEFAULT NULL);
説明
Oracle Databaseに格納されたプロパティ・グラフに対して、RDFビュー・モデルを作成します。
パラメータ
- model_name
-
作成するRDFビュー・モデルの名前。
- pg_name
-
RDFビューに対するプロパティ・グラフの名前。
- tablespace_name
-
RDFビュー・モデルおよびR2RMLステージング表に対する宛先表領域。
- pg_stag_tab
-
ステージング表の名前。(詳細は、「使用上の注意」を参照してください。)
- pg_edge_kv_tab
-
エッジ・プロパティを格納する表の名前
- pg_node_kv_tab
-
ノード・プロパティを格納する表の名前。
- pg_edge_tab
-
異なるエッジを格納する表の名前。
- options
-
OPTION_NAME=option_value形式を使用する索引作成のオプションを指定する文字列。サポートされているオプションは次のとおりです。
-
SUB_K=N, SUB_EL=N (プロパティのキー名またはエッジ・ラベルに対するN文字のサブストリングを使用します)
-
GT_TABLE=T (GT$表に値が格納されていることを仮定します)
-
RECREATE=T (既存のプロパティ・グラフRDFビュー・モデルを再作成します)
-
使用上の注意
このプロシージャには2つの書式があります。1つ目の書式は、最小限のインプットで構成されており、ステージング表およびプロパティ・グラフ・スキーマに対する各表にはデフォルトの名前が使用され、ステージング表が存在しない場合にはステージング表が自動で作成されます。2つ目の書式では、ステージング表およびプロパティ・グラフ表にカスタムの名前を指定できます。
2つ目の書式を使用する場合は、ステージング表がすでに存在していることが必要です。ステージング表が空でない場合は、RECREATE=Tオプションを指定する必要があります。(2つ目の書式で、ステージング表が空ではなく、なおかつRECREATE=Tオプションが指定されていない場合、エラーが発生します。)
詳細は、「Oracle Databaseに格納されたプロパティ・グラフ・データとのRDF統合」を参照してください。
例
次の例では、表領域MY_TBSで、M1というRDFビューを、G1というプロパティ・グラフに対して作成しています。また、互いに異なるエッジが格納された表を指定しています。
EXECUTE SEM_APIS.CREATE_PG_RDFVIEW('M1', 'G1', 'MY_TBS', ' GT_TABLE=T ');次の例では、表領域表領域MY_TBSで、G1というプロパティ・グラフに対して、プロパティ・グラフ表MY_EDGE_KV_TAB、MY_NODE_KV_TABおよびMY_EDGE_TABと、ステージング表MY_STABを使用して、M1というRDFビューを作成しています。
EXECUTE SEM_APIS.CREATE_PG_RDFVIEW('M1', 'G1', 'MY_TBS', 'MY_STAB', 'MY_EDGE_KV_TAB', 'MY_NODE_KV_TAB', 'MY_EDGE_TAB');親トピック: SEM_APISパッケージのサブプログラム
10.19 SEM_APIS.CREATE_RDFVIEW_MODEL
書式
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ビューを作成します。
パラメータ
- model_name
-
作成するRDFビューの名前。
- tables
-
直接マッピングを使用して作成されるRDFビューのリレーショナル・データのソースである表またはビューのリスト。R2RMLマッピングを使用する場合、このパラメータはNULLである必要があります。
- prefix
-
RDFビューでURIの先頭に追加される、ベースとなる接頭辞。
- r2rml_table_owner
-
R2MLマッピングの場合、このパラメータは必須であり、RDFビューの作成に使用されるR2RMLマッピング(N-triple形式)を保持するステージング表を所有するスキーマの名前を指定します。
直接マッピングの場合、このパラメータはオプションで、直接マッピングから生成されるR2RMLマッピング(N-triple形式)が格納されるステージング表を所有するスキーマの名前を指定します。
- r2rml_table_name
-
R2MLマッピングの場合、このパラメータは必須であり、RDFビューの作成に使用されるR2RMLマッピング(N-triple形式)を保持するステージング表の名前を指定します。
直接マッピングの場合、このパラメータはオプションで、直接マッピングから生成されるR2RMLマッピング(N-triple形式)が格納されるステージング表の名前を指定します。
- schema_table_owner
-
RDFビューのために生成されたRDFスキーマが格納されるステージング表を所有するスキーマの名前。
- schema_table_name
-
RDFビューのために生成されたRDFスキーマが格納されるステージング表の名前。
- options
-
直接マッピングでは、次の任意の組合せ(何も含めない場合を含む)をオプションで指定できます。
-
CONFORMANCE=Tは、RDFの述語名を構築するためのデータベース制約名およびスキーマ修飾された表名またはビュー名など、デフォルトでは含まれない一部の情報を抑止します。詳細は、「直接マッピングによるRDFビューの作成」の例8-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ビューの作成」の例8-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パッケージのサブプログラム
10.20 SEM_APIS.CREATE_RULEBASE
書式
SEM_APIS.CREATE_RULEBASE( rulebase_name IN VARCHAR2);
説明
ルールベースを作成します。
使用上の注意
このプロシージャは、ユーザー定義のルールベースを作成します。ルールベースの作成後、そのルールベースにルールを追加できます。RDFデータの問合せでルールベースのルールを適用するには、SEM_MATCH表関数のコールでルールベースを指定します。
ルールおよびルールベースの詳細は、「推論: ルールとルールベース」を参照してください。(SEM_MATCH表関数については、「SEM_MATCH表関数を使用したセマンティク・データの問合せ」を参照してください。)
例
次の例では、ルールベースfamily_rbを作成します。(この例は、「例: 家系の情報」の 例1-110からの抜粋です。)
EXECUTE SEM_APIS.CREATE_RULEBASE('family_rb');親トピック: SEM_APISパッケージのサブプログラム
10.21 SEM_APIS.CREATE_SEM_MODEL
書式
SEM_APIS.CREATE_SEM_MODEL( model_name IN VARCHAR2, table_name IN VARCHAR2, column_name IN VARCHAR2, model_tablespace IN VARCHAR2 DEFAULT NULL, options IN VARCHAR2 DEFAULT NULL);
説明
セマンティク・テクノロジ・モデルを作成します。
パラメータ
- model_name
-
モデルの名前。
- table_name
-
このモデルのセマンティク・テクノロジ・データへの参照を保持する表の名前。
- column_name
-
table_nameのSDO_RDF_TRIPLE_S型の列の名前。 - model_tablespace
-
このモデルをサポートするためにOracleで使用される表および他のデータベース・オブジェクト用の表領域の名前。デフォルト値は、SEM_APIS.CREATE_SEM_NETWORKプロシージャのコールで指定された表領域です。
- options
-
次のモデル作成オプションを1つ以上含む引用符で囲まれたオプションの文字列。
-
COMPRESS=CSCQHを指定すると、モデルに対してMDSYS.RDF_LINK$パーティションで、COLUMN STORE COMPRESS FOR QUERY HIGHが使用されます。 -
COMPRESS=CSCQLを指定すると、モデルに対してMDSYS.RDF_LINK$パーティションで、COLUMN STORE COMPRESS FOR QUERY LOWが使用されます。 -
COMPRESS=RSCAを指定すると、モデルに対してMDSYS.RDF_LINK$でROW STORE COMPRESS ADVANCEDが使用されます。 -
COMPRESS=RSCABを指定すると、モデルに対してMDSYS.RDF_LINK$パーティションで、ROW STORE COMPRESS BASICが使用されます。
-
使用上の注意
このプロシージャをコールしてセマンティク・テクノロジ・モデルを作成する前に、セマンティク・テクノロジ・データへの参照を保持する表を作成する必要があります。詳細は、「セマンティク・データを使用するためのクイック・スタート」を参照してください。
このプロシージャは、モデルをMDSYS.SEM_MODEL$ビュー(「モデルのメタデータ」を参照)に追加します。
このプロシージャは、モデルを作成する際にサポートされる唯一の方法です。MDSYS.SEM_MODEL$ビューにSQLのINSERT文を使用しないでください。
モデルを削除するには、SEM_APIS.DROP_SEM_MODELプロシージャを使用します。
オプションCOMPRESS=RSCA、COMPRESS=RSCAおよびCOMPRESS=RSCAは、適正なライセンスがある場合にのみ使用してください。
例
次の例では、セマンティク・テクノロジ・モデルarticlesを作成します。モデルのトリプル・データへの参照は、ARTICLES_RDF_DATA表のTRIPLE列に格納されます。((この例は、 「例: 家系の情報」の例1-109の抜粋です。)
EXECUTE SEM_APIS.CREATE_SEM_MODEL('articles', 'articles_rdf_data', 'triple');
ARTICLES_RDF_DATA表の定義は、次のとおりです。
CREATE TABLE articles_rdf_data (triple SDO_RDF_TRIPLE_S);
親トピック: SEM_APISパッケージのサブプログラム
10.22 SEM_APIS.CREATE_SEM_NETWORK
書式
SEM_APIS.CREATE_SEM_NETWORK( tablespace_name IN VARCHAR2, options IN VARCHAR2 DEFAULT NULL);
説明
セマンティク・データの永続的な記憶域の構造を作成します。
パラメータ
- tablespace_name
-
このプロシージャにより作成される表で使用する表領域の名前。この表領域は、作成されるすべてのモデルのデフォルトになりますが、モデルの作成時にSEM_APIS.CREATE_SEM_MODELプロシージャのコールで
model_tablespaceパラメータを指定することで、このデフォルトを上書きできます。 - options
-
次のネットワーク作成オプションを1つ以上含む引用符で囲まれたオプションの文字列。
-
COMPRESS=CSCQHを指定すると、MDSYS.RDF_LINK$表およびMDSYS.RDF_VALUE$表で、COLUMN STORE COMPRESS FOR QUERY HIGHが使用されます。 -
COMPRESS=CSCQLを指定すると、MDSYS.RDF_LINK$表およびMDSYS.RDF_VALUE$表で、COLUMN STORE COMPRESS FOR QUERY LOWが使用されます。 -
COMPRESS=RSCAを指定すると、MDSYS.RDF_LINK$表およびMDSYS.RDF_VALUE$表で、ROW STORE COMPRESS ADVANCEDが使用されます。 -
COMPRESS=RSCABを指定すると、MDSYS.RDF_LINK$表およびMDSYS.RDF_VALUE$表で、ROW STORE COMPRESS BASICが使用されます。これはデフォルトの圧縮レベルです。
-
使用上の注意
このプロシージャは、セマンティク・テクノロジ・サポートで使用されるシステム表および他のデータベース・オブジェクトを作成します。
このプロシージャのコールでセマンティク・テクノロジのシステム表の表領域を作成し、表領域名を指定する必要があります。(SYSTEM表領域を指定しないでください。)作成する表領域に必要なサイズは、格納するセマンティク・テクノロジ・データの量に応じて変化します。
このプロシージャをコールするには、DBA権限を持つユーザーとしてデータベースに接続する必要があり、プロシージャは、データベースに対して1回のみコールできます。
セマンティク・データの永続的な記憶域のこれらの構造を削除するには、DBA権限を持つユーザーとして接続し、SEM_APIS.DROP_SEM_NETWORKをコールする必要があります。
オプションCOMPRESS=RSCA、COMPRESS=RSCAおよびCOMPRESS=RSCAは、適正なライセンスがある場合にのみ使用してください。
セマンティク・ネットワークの作成後、NAMESPACE = 'NETWORK'およびATTRIBUTE = 'COMPRESSION'のあるMDSYS.RDF_PARAMETER表の列で、セマンティク・ネットワークで使用される圧縮タイプが示されるようになります。
例
次の例では、セマンティク・テクノロジのシステム表の表領域を作成して、この表領域でセマンティク・データの永続的な記憶域の構造を作成します。セマンティク・ネットワークに高度な圧縮が使用されます。
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パッケージのサブプログラム
10.23 SEM_APIS.CREATE_SOURCE_EXTERNAL_TABLE
書式
SEM_APIS.CREATE_SOURCE_EXTERNAL_TABLE( source_table IN VARCHAR2, def_directory IN VARCHAR2, log_directory IN VARCHAR2 DEFAULT NULL, bad_directory IN VARCHAR2 DEFAULT NULL, log_file IN VARCHAR2 DEFAULT NULL, bad_file IN VARCHAR2 DEFAULT NULL, parallel IN INTEGER DEFAULT NULL, source_table_owner IN VARCHAR2 DEFAULT NULL, flags IN VARCHAR2 DEFAULT NULL);
説明
表にN-TripleまたはN-Quad形式ファイルをマップするために外部表を作成します。
パラメータ
- source_table
-
作成する外部表の名前。
- def_directory
-
入力ファイルがあるデータベース・ディレクトリ。このステージング表からロードするには、このディレクトリに対するREAD権限を持っている必要があります。
- log_directory
-
外部表からのロード時にログ・ファイルが生成されるデータベース・ディレクトリ。指定されない場合、
def_directoryパラメータの値が使用されます。外部表からのロード時に、このディレクトリに対するWRITE権限を持っている必要があります。 - bad_directory
-
外部表からのロード時に不良ファイルが生成されるデータベース・ディレクトリ。指定されない場合、
def_directoryパラメータの値が使用されます。外部表からのロード時に、このディレクトリに対するWRITE権限を持っている必要があります。 - log_file
-
ログ・ファイルの名前。指定しない場合、名前はロード操作中に自動的に生成されます。
- bad_file
-
不良ファイルの名前。指定しない場合、名前はロード操作中に自動的に生成されます。
- parallel
-
作成中の外部表に関連付けられている並列度。
- source_table_owner
-
作成中の外部表の所有者。指定しない場合、起動側は所有者になります。
- flags
-
(今後使用予定)
使用上の注意
詳細および例は、「外部表を使用してN-Quad形式データをステージング表にロードする方法」を参照してください。
例
次の例では、ソース外部表を作成します。(この例は、「外部表を使用してN-Quad形式データをステージング表にロードする方法」の例1-91から抜粋したものです。)
BEGIN
sem_apis.create_source_external_table(
source_table => 'stage_table_source'
,def_directory => 'DATA_DIR'
,bad_file => 'CLOBrows.bad'
);
END;親トピック: SEM_APISパッケージのサブプログラム
10.24 SEM_APIS.CREATE_SPARQL_UPDATE_TABLES
書式
SEM_APIS.CREATE_SPARQL_UPDATE_TABLES();
説明
SPARQL更新操作で使用するために、呼出し側のスキーマにグローバルな表を一時的に作成します。
パラメータ
ありません。
使用上の注意
SEM_APIS.UPDATE_MODELをSTREAMING=F、FORCE_BULK=TまたはDEL_AS_INS=Tオプションを使用して呼び出すには、呼出し側のスキーマにRDF_UPD_DEL$、RDF_UPD_INS$およびRDF_UPD_INS_CLOB$が、一時的な表として存在している必要があります。これらの表は、次のように定義して作成します。
CREATE GLOBAL TEMPORARY TABLE RDF_UPD_DEL$ (
RDF$STC_GRAPH VARCHAR2(4000),
RDF$STC_SUB VARCHAR2(4000),
RDF$STC_PRED VARCHAR2(4000),
RDF$STC_OBJ VARCHAR2(4000),
RDF$STC_CLOB CLOB
) ON COMMIT PRESERVE ROWS';
CREATE GLOBAL TEMPORARY TABLE RDF_UPD_INS$ (
RDF$STC_GRAPH VARCHAR2(4000),
RDF$STC_SUB VARCHAR2(4000),
RDF$STC_PRED VARCHAR2(4000),
RDF$STC_OBJ VARCHAR2(4000)
) ON COMMIT PRESERVE ROWS';
CREATE GLOBAL TEMPORARY TABLE RDF_UPD_INS_CLOB$ (
RDF$STC_GRAPH VARCHAR2(4000),
RDF$STC_SUB VARCHAR2(4000),
RDF$STC_PRED VARCHAR2(4000),
RDF$STC_OBJ VARCHAR2(4000),
RDF$STC_CLOB CLOB
) ON COMMIT PRESERVE ROWS';
これらの表を削除する必要がある場合には、SEM_APIS.DROP_SPARQL_UPDATE_TABLESを使用します。
詳細は、「セマンティク・モデルに対するSPARQL更新操作のサポート」を参照してください。
例
次の例では、SPARQL更新操作で使用するために、呼出し側のスキーマにグローバルな表を一時的に作成します。
EXECUTE SEM_APIS.CREATE_SPARQL_UPDATE_TABLES;
親トピック: SEM_APISパッケージのサブプログラム
10.25 SEM_APIS.CREATE_VIRTUAL_MODEL
書式
SEM_APIS.CREATE_VIRTUAL_MODEL( vm_name IN VARCHAR2, models IN SEM_MODELS, rulebases IN SEM_RULEBASES DEFAULT NULL, options IN VARCHAR2 DEFAULT NULL, entailments IN SEM_ENTAILMENTS DEFAULT NULL);
説明
指定されたセマンティク・モデルや伴意を含む仮想モデルを作成します。伴意は、次のいずれかの方法で指定できます。
-
1つ以上のモデルおよび1つ以上のルールベースを指定する。この場合、仮想モデルは、指定されたモデルおよびルールベースの正確な組合せに対応する単一の伴意を使用して作成されます。このような伴意が存在しない場合はエラーが発生します。
-
0 (ゼロ)以上のモデルおよび1つ以上の伴意を指定する。この場合、モデルと伴意の関係にかかわらず、モデルと伴意の内容が組み合されます。
最初のメソッドを使用すると、確実に適切で完全なデータセットになり、2つ目のメソッドを使用すると、適切で完全な制約が緩和され、より柔軟になります。
パラメータ
- vm_name
-
作成する仮想モデルの名前。
- モデル
-
1つ以上のセマンティク・モデル名。そのデータ型は、
TABLE OF VARCHAR2(25)という定義を持つSEM_MODELSです。このパラメータがNULLの場合、仮想モデル定義にモデルは含まれません。 - rulebases
-
1つ以上のルールベース名。そのデータ型は、
TABLE OF VARCHAR2(25)という定義を持つSEM_RULEBASESです。このパラメータがNULLの場合、仮想モデル定義にルールベースは含まれません。ルールおよびルールベースの詳細は、「推論: ルールとルールベース」を参照してください。このパラメータを指定する場合、
entailmentsパラメータも指定することはできません。 - options
-
REPLACE=Tを指定すると、仮想モデルを、削除することなく置き換えます。(このオプションを使用することは、ビューでCREATE OR REPLACE VIEWを使用することと似ています。) - entailments
-
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パッケージのサブプログラム
10.26 SEM_APIS.DELETE_ENTAILMENT_STATS
書式
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);
説明
指定された伴意の統計を削除します。
パラメータ
- entailment_name
-
伴意の名前。
- (その他のパラメータ)
-
DBMS_STATS.DELETE_TABLE_STATSプロシージャのパラメータの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。なお、ここでの
forceは伴意統計に適用されます。
使用上の注意
DBMS_STATSパッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。
「セマンティク・モデルおよびセマンティク・ネットワークの統計の管理」を参照してください。
例
次の例では、伴意OWLTST_IDXの統計を削除します。
EXECUTE SEM_APIS.DELETE_ENTAILMENT_STATS('owltst_idx');親トピック: SEM_APISパッケージのサブプログラム
10.27 SEM_APIS.DELETE_MODEL_STATS
書式
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);
説明
指定されたモデルの統計を削除します。
パラメータ
- model_name
-
モデルの名前。
- (その他のパラメータ)
-
DBMS_STATS.DELETE_TABLE_STATSプロシージャのパラメータに関する詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。なお、ここでの
forceは伴意統計に適用されます。
使用上の注意
モデル所有者またはDBA権限を持つユーザーのみが、このプロシージャを実行できます。
DBMS_STATSパッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。
「セマンティク・モデルおよびセマンティク・ネットワークの統計の管理」を参照してください。
例
次の例では、モデルFAMILYの統計を削除します。
EXECUTE SEM_APIS.DELETE_MODEL_STATS('family');親トピック: SEM_APISパッケージのサブプログラム
10.28 SEM_APIS.DISABLE_CHANGE_TRACKING
書式
SEM_APIS.DISABLE_CHANGE_TRACKING( models_in IN SEM_MODELS);
説明
指定されたモデルのセットの変更トラッキングを無効にします。
使用上の注意
モデルの変更トラッキングを無効にすることにより、そのモデルを使用するすべての伴意の増分推論が自動的に無効になります。
このプロシージャを使用するには、指定したモデルの所有者である必要があり、あらかじめ増分推論を有効にしておく必要があります。
増分推論の説明(使用方法の情報を含む)は、「増分推論の実行」を参照してください。
例
次の例では、familyモデルの変更トラッキングを無効にします。
EXECUTE sem_apis.disable_change_tracking(sem_models('family'));親トピック: SEM_APISパッケージのサブプログラム
10.29 SEM_APIS.DISABLE_INC_INFERENCE
書式
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パッケージのサブプログラム
10.30 SEM_APIS.DROP_DATATYPE_INDEX
書式
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パッケージのサブプログラム
10.31 SEM_APIS.DROP_ENTAILMENT
書式
SEM_APIS.DROP_ENTAILMENT( entailment_name_in IN VARCHAR2, named_g_in IN SEM_GRAPHS DEFAULT NULL, dop IN INT DEFAULT 1);
説明
伴意(ルール索引)を削除します。
パラメータ
使用上の注意
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パッケージのサブプログラム
10.32 SEM_APIS.DROP_PG_RDFVIEW
書式
SEM_APIS.DROP_PG_RDFVIEW( model_name IN VARCHAR2, options IN VARCHAR2 DEFAULT NULL);
または
SEM_APIS.CDROP_PG_RDFVIEW( model_name IN VARCHAR2, pg_stag_tab IN VARCHAR2, options IN VARCHAR2 DEFAULT NULL);
説明
Oracle Databaseに格納されたプロパティ・グラフに対するRDFビュー・モデルを削除します。
パラメータ
使用上の注意
詳細は、「Oracle Databaseに格納されたプロパティ・グラフ・データとのRDF統合」を参照してください。
例
次の例では、RDFビューM1が削除されます。
EXECUTE SEM_APIS.DROP_PG_RDFVIEW('M1');次の例では、ステージング表MY_STABを使用したRDFビューが削除され、ステージング表は削除されずに切り詰められます。
EXECUTE SEM_APIS.DROP_PG_RDFVIEW('M1', 'MY_STAB', 'TRUNCATE_STAB=T');親トピック: SEM_APISパッケージのサブプログラム
10.33 SEM_APIS.DROP_PG_RDFVIEW_INDEXES
書式
SEM_APIS.DROP_PG_RDFVIEW_INDEXES( pg_name IN VARCHAR2,
説明
SEM_APIS.BUILD_PG_RDFVIEW_INDEXESプロシージャを使用して作成された索引を削除します。
使用上の注意
詳細は、「Oracle Databaseに格納されたプロパティ・グラフ・データとのRDF統合」を参照してください。
例
次の例では、プロパティ・グラフG1に対する索引が削除されます。
EXECUTE SEM_APIS.DROP_PG_RDFVIEW_INDEXES('G1');親トピック: SEM_APISパッケージのサブプログラム
10.34 SEM_APIS.DROP_RDFVIEW_MODEL
書式
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パッケージのサブプログラム
10.35 SEM_APIS.DROP_RULEBASE
書式
SEM_APIS.DROP_RULEBASE( rulebase_name IN VARCHAR2);
説明
ルールベースを削除します。
使用上の注意
このプロシージャは、指定されたルールベースを削除します。削除されたルールベースは、SEM_MATCH表関数のコールで使用できなくなります。ルールベースの詳細は、「推論: ルールとルールベース」を参照してください。
ルールベースを削除できるのは、そのルールベースの作成者のみです。
例
次の例では、ルールベースfamily_rbを削除します。
EXECUTE SEM_APIS.DROP_RULEBASE('family_rb');親トピック: SEM_APISパッケージのサブプログラム
10.36 SEM_APIS.DROP_SEM_INDEX
書式
SEM_APIS.DROP_SEM_INDEX( index_code IN VARCHAR2);
説明
セマンティク・ネットワークのモデルおよび伴意に対するセマンティク・ネットワーク索引を削除します。
パラメータ
- index_code
-
索引コード文字列。前のSEM_APIS.ADD_SEM_INDEXプロシージャのコールで指定された
index_code値と一致している必要があります。
使用上の注意
セマンティク・ネットワーク索引の詳細は、「セマンティク・ネットワーク索引の使用」を参照してください。
例
次の例では、索引コード文字列pcsmを使用して、セマンティク・ネットワークのモデルおよび伴意に対するセマンティク・ネットワーク索引を削除します。
EXECUTE SEM_APIS.DROP_SEM_INDEX('pscm');親トピック: SEM_APISパッケージのサブプログラム
10.37 SEM_APIS.DROP_SEM_MODEL
書式
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パッケージのサブプログラム
10.38 SEM_APIS.DROP_SEM_NETWORK
書式
SEM_APIS.DROP_SEM_NETWORK( cascade IN BOOLEAN DEFAULT FALSE);
説明
セマンティク・データの永続的な記憶域に使用される構造を削除します。
パラメータ
使用上の注意
セマンティク・データの永続的な記憶域に使用される構造を削除するには、DBA権限を持つユーザーとして接続し、このプロシージャをコールします。
バージョン対応モデルが存在する場合、cascadeパラメータの値に関係なく、このプロシージャは失敗します。
例
次の例では、セマンティク・データの永続的な記憶域に使用される構造を削除します。
EXECUTE SEM_APIS.DROP_SEM_NETWORK;
親トピック: SEM_APISパッケージのサブプログラム
10.39 SEM_APIS.DROP_SPARQL_UPDATE_TABLES
書式
SEM_APIS.DROP_SPARQL_UPDATE_TABLES();
説明
呼出し側のスキーマに一時的に作成された、SPARQL更新操作で使用するためのグローバルな表を削除します。
パラメータ
ありません。
使用上の注意
SEM_APIS.CREATE_SPARQL_UPDATE_TABLESプロシージャで一時的に作成されたグローバルな表が、このプロシージャで削除されます。
詳細は、「セマンティク・モデルに対するSPARQL更新操作のサポート」を参照してください。
例
次の例では、呼出し側のスキーマに一時的に作成されていた、SPARQL更新操作で使用するためのグローバルな表を削除します。
EXECUTE SEM_APIS.DROP_SPARQL_UPDATE_TABLES;
親トピック: SEM_APISパッケージのサブプログラム
10.40 SEM_APIS.DROP_USER_INFERENCE_OBJS
書式
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パッケージのサブプログラム
10.41 SEM_APIS.DROP_VIRTUAL_MODEL
書式
SEM_APIS.DROP_VIRTUAL_MODEL( vm_name IN VARCHAR2);
説明
仮想モデルを削除します。
使用上の注意
このプロシージャを使用すると、SEM_APIS.CREATE_VIRTUAL_MODELプロシージャを使用して作成した仮想モデルを削除できます。仮想モデルのコンポーネント・モデル、ルールベースまたは伴意が削除されると、その仮想モデルは自動的に削除されます。
このプロシージャを使用するには、指定した仮想モデルの所有者である必要があります。
仮想モデルの説明(使用方法の情報を含む)は、「仮想モデル」を参照してください。
例
次の例では、仮想モデルVM1を削除します。
EXECUTE sem_apis.drop_virtual_model('VM1');親トピック: SEM_APISパッケージのサブプログラム
10.42 SEM_APIS.ENABLE_CHANGE_TRACKING
書式
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パッケージのサブプログラム
10.43 SEM_APIS.ENABLE_INC_INFERENCE
書式
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パッケージのサブプログラム
10.44 SEM_APIS.ESCAPE_CLOB_TERM
書式
SEM_APIS.ESCAPE_CLOB_TERM( term IN CLOB CHARACTER SET ANY_CS, utf_encode IN NUMBER DEFAULT 1 ) RETURN CLOB CHARACTER SET val%CHARSET;
説明
W3CのN-Triples形式(http://www.w3.org/TR/rdf-testcases/#ntriples)で指定された入力RDF語句について、特殊文字および非ASCII文字をエスケープして返します。
パラメータ
使用上の注意
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パッケージのサブプログラム
10.45 SEM_APIS.ESCAPE_CLOB_VALUE
書式
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値が返されます。
パラメータ
- val
-
エスケープするCLOBテキスト。
- start_offset
-
valの中で文字のエスケープを開始する位置のオフセット。デフォルト(1)は、valの最初の文字でエスケープを開始します。 - end_offset
-
valの中で文字のエスケープを終了する位置のオフセット。デフォルト(0)は、valの末尾からエスケープを継続します。 - utf_encode
-
chr(8)、chr(9)、chr(10)、chr(12)、chr(13)以外の非ASCII文字および出力不可能なASCII文字をエスケープする必要がある場合は、1 (デフォルト)に設定します。それ以外の場合、これらの文字はエスケープされません。
- include_start
-
valの1文字目から
start_offsetまでの文字を戻り値の先頭に追加する場合は、1に設定します。それ以外の場合、これらの文字は戻り値の先頭に追加されません。
使用上の注意
SEM_MATCH表関数のoptionsパラメータで、DO_UNESCAPEキーワードを使用する際の詳細は、「セマンティク・データに対する問合せでのSEM_MATCH表関数の使用」を参照してください。
例
次の例では、タブ文字と改行文字を含む入力文字列をエスケープします。
SELECT SEM_APIS.ESCAPE_CLOB_VALUE('abc' || chr(9) || 'def' || chr(10) || 'hij')
FROM DUAL;親トピック: SEM_APISパッケージのサブプログラム
10.46 SEM_APIS.ESCAPE_RDF_TERM
書式
SEM_APIS.ESCAPE_RDF_TERM( term IN VARCHAR2 CHARACTER SET ANY_CS, utf_encode IN NUMBER DEFAULT 1 ) RETURN VARCHAR2 CHARACTER SET val%CHARSET;
説明
W3CのN-Triples形式(http://www.w3.org/TR/rdf-testcases/#ntriples)で指定された入力RDF語句について、特殊文字および非ASCII文字をエスケープして返します。
パラメータ
使用上の注意
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パッケージのサブプログラム
10.47 SEM_APIS.ESCAPE_RDF_VALUE
書式
SEM_APIS.ESCAPE_RDF_VALUE( val IN VARCHAR2 CHARACTER SET ANY_CS, utf_encode IN NUMBER DEFAULT 1 ) RETURN VARCHAR2 CHARACTER SET val%CHARSET;
説明
W3CによるN-Triples形式の規定(http://www.w3.org/TR/rdf-testcases/#ntriples)に従って、特殊文字と非ASCII文字がエスケープされた入力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パッケージのサブプログラム
10.48 SEM_APIS.EXPORT_ENTAILMENT_STATS
書式
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');
説明
指定された伴意の統計をエクスポートして、ユーザー統計表に格納します。
パラメータ
- entailment_name
-
伴意の名前。
- (その他のパラメータ)
-
DBMS_STATS.EXPORT_TABLE_STATSプロシージャのパラメータの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。なお、ここでの
forceは伴意統計に適用されます。また、
cascadeを指定しても、伴意に関連付けられているすべての索引統計をエクスポートします。
使用上の注意
DBMS_STATSパッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。
「セマンティク・モデルおよびセマンティク・ネットワークの統計の管理」を参照してください。
例
次の例では、伴意OWLTST_IDXの統計をエクスポートして、表STAT_TABLEに格納します。
EXECUTE SEM_APIS.EXPORT_ENTAILMENT_STATS('owltst_idx', 'stat_table');親トピック: SEM_APISパッケージのサブプログラム
10.49 SEM_APIS.EXPORT_MODEL_STATS
書式
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');
説明
指定されたモデルの統計をエクスポートして、ユーザー統計表に格納します。
パラメータ
- entailment_name
-
伴意の名前。
- (その他のパラメータ)
-
DBMS_STATS.EXPORT_TABLE_STATSプロシージャのパラメータの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。
また、
cascadeを指定しても、モデルに関連付けられているすべての索引統計をエクスポートします。
使用上の注意
DBMS_STATSパッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。
「セマンティク・モデルおよびセマンティク・ネットワークの統計の管理」を参照してください。
例
次の例では、モデルFAMILYの統計をエクスポートして、表STAT_TABLEに格納します。
EXECUTE SEM_APIS.EXPORT_MODEL_STATS('family', 'stat_table');親トピック: SEM_APISパッケージのサブプログラム
10.50 SEM_APIS.EXPORT_RDFVIEW_MODEL
形式
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パッケージのサブプログラム
10.51 SEM_APIS.GET_CHANGE_TRACKING_INFO
書式
SEM_APIS.GET_CHANGE_TRACKING_INFO( model_name IN VARCHAR2, enabled OUT BOOLEAN, tracking_start_time OUT TIMESTAMP);
Description
モデルの変更トラッキング情報を戻します。
パラメータ
使用上の注意
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パッケージのサブプログラム
10.52 SEM_APIS.GET_INC_INF_INFO
書式
SEM_APIS.GET_INC_INF_INFO( entailment_name IN VARCHAR2, enabled OUT BOOLEAN, prev_inf_start_time OUT TIMESTAMP);
説明
伴意の増分推論情報を戻します。
パラメータ
使用上の注意
伴意に対する増分推論を有効にするには、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パッケージのサブプログラム
10.53 SEM_APIS.GET_MODEL_ID
書式
SEM_APIS.GET_MODEL_ID( model_name IN VARCHAR2 ) RETURN NUMBER;
説明
セマンティク・テクノロジ・モデルのモデルID番号を戻します。
使用上の注意
model_nameの値は、MDSYS.SEM_MODEL$ビュー(「モデルのメタデータ」を参照)のMODEL_NAME列の値と一致している必要があります。
例
次の例では、モデルarticlesのモデルID番号を戻します。((この例は、 「例: 家系の情報」の例1-109の抜粋です。)
SELECT SEM_APIS.GET_MODEL_ID('articles') AS model_id FROM DUAL;
MODEL_ID
----------
1親トピック: SEM_APISパッケージのサブプログラム
10.54 SEM_APIS.GET_MODEL_NAME
書式
SEM_APIS.GET_MODEL_NAME( model_id IN NUMBER ) RETURN VARCHAR2;
説明
セマンティク・テクノロジ・モデルのモデル名を戻します。
使用上の注意
model_idの値は、MDSYS.SEM_MODEL$ビュー(「モデルのメタデータ」を参照)のMODEL_ID列の値と一致している必要があります。
例
次の例では、IDの値に1を持つモデルのモデルID番号を戻します。(この例は、 「例: 家系の情報」の例1-109の抜粋です。)
SQL> SELECT SEM_APIS.GET_MODEL_NAME(1) AS model_name FROM DUAL; MODEL_NAME -------------------------------------------------------------------------------- ARTICLES
親トピック: SEM_APISパッケージのサブプログラム
10.55 SEM_APIS.GET_TRIPLE_ID
書式
SEM_APIS.GET_TRIPLE_ID( model_id IN NUMBER, subject IN VARCHAR2, property IN VARCHAR2, object IN VARCHAR2 ) RETURN VARCHAR2;
または
SEM_APIS.GET_TRIPLE_ID( model_name IN VARCHAR2, subject IN VARCHAR2, property IN VARCHAR2, object IN VARCHAR2 ) RETURN VARCHAR2;
説明
指定されたセマンティク・テクノロジ・モデルのトリプルのIDを戻します(トリプルが存在しない場合、NULL値を戻します)。
パラメータ
- model_id
-
セマンティク・テクノロジ・モデルのID番号。MDSYS.SEM_MODEL$ビュー(「モデルのメタデータ」を参照)のMODEL_ID列の値と一致している必要があります。
- model_name
-
セマンティク・テクノロジ・モデルの名前。MDSYS.SEM_MODEL$ビュー(「モデルのメタデータ」を参照)のMODEL_NAME列の値と一致している必要があります。
- subject
-
主語。MDSYS.RDF_VALUE$表(「文」を参照)のVALUE_NAME列の値と一致している必要があります。
- property
-
プロパティ。MDSYS.RDF_VALUE$表(「文」を参照)のVALUE_NAME列の値と一致している必要があります。
- object
-
目的語。MDSYS.RDF_VALUE$表(「文」を参照)のVALUE_NAME列の値と一致している必要があります。
使用上の注意
この関数には、2つの書式があり、モデル番号またはモデル名でセマンティク・テクノロジ・モデルを指定できます。
例
次の例では、トリプルのID番号を戻します。((この例は、 「例: 家系の情報」の例1-109の抜粋です。)
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パッケージのサブプログラム
10.56 SEM_APIS.GETV$DATETIMETZVAL
書式
SEM_APIS.GETV$DATETIMETZVAL( value_type IN VARCHAR2, vname_prefix IN VARCHAR2, vname_suffix IN VARCHAR2, literal_type IN VARCHAR2, language_type IN VARCHAR2, ) RETURN NUMBER;
説明
xsd:dateTime型付きリテラルに対してTIMESTAMP WITH TIME ZONE値を戻し、その他のRDF語句に対してはNULL値を戻します。グリニッジ標準時は、タイムゾーンなしのxsd:dateTime値に対してデフォルトのタイムゾーンとして使用されます。
パラメータ
使用上の注意
パフォーマンスを向上させるには、このファンクションでファンクション・ベース索引を作成することを検討します。詳細は、「型付きリテラルを含む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パッケージのサブプログラム
10.57 SEM_APIS.GETV$DATETZVAL
書式
SEM_APIS.GETV$DATETZVAL( value_type IN VARCHAR2, vname_prefix IN VARCHAR2, vname_suffix IN VARCHAR2, literal_type IN VARCHAR2, language_type IN VARCHAR2, ) RETURN TIMESTAMP WITH TIME ZONE;
説明
xsd:date型付きリテラルに対してTIMESTAMP WITH TIME ZONE値を戻し、その他のRDF語句に対してはNULL値を戻します。グリニッジ標準時は、タイムゾーンなしのxsd:date値に対してデフォルトのタイムゾーンとして使用されます。
パラメータ
使用上の注意
パフォーマンスを向上させるには、このファンクションでファンクション・ベース索引を作成することを検討します。詳細は、「型付きリテラルを含む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パッケージのサブプログラム
10.58 SEM_APIS.GETV$NUMERICVAL
書式
SEM_APIS.GETV$NUMERICVAL( value_type IN VARCHAR2, vname_prefix IN VARCHAR2, vname_suffix IN VARCHAR2, literal_type IN VARCHAR2, language_type IN VARCHAR2, ) RETURN NUMBER;
説明
XMLスキーマの数値型のリテラルに対して数値を戻し、他のすべてのRDF語句に対してNULL値を戻します。
パラメータ
使用上の注意
パフォーマンスを向上させるには、このファンクションでファンクション・ベース索引を作成することを検討します。詳細は、「型付きリテラルを含む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パッケージのサブプログラム
10.59 SEM_APIS.GETV$STRINGVAL
書式
SEM_APIS.GETV$STRINGVAL( value_type IN VARCHAR2, vname_prefix IN VARCHAR2, vname_suffix IN VARCHAR2, literal_type IN VARCHAR2, language_type IN VARCHAR2, ) RETURN TIMESTAMP WITH TIME ZONE;
説明
プレーン・リテラルおよびxsd:string型付きリテラルの字句形式のVARCHAR2文字列を戻し、他のすべてのRDF語句に対してNULL値を戻します。CHR(0)は、空のリテラルに対して戻されます。
パラメータ
使用上の注意
パフォーマンスを向上させるには、このファンクションでファンクション・ベース索引を作成することを検討します。詳細は、「型付きリテラルを含む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パッケージのサブプログラム
10.60 SEM_APIS.GETV$TIMETZVAL
書式
SEM_APIS.GETV$TIMETZVAL( value_type IN VARCHAR2, vname_prefix IN VARCHAR2, vname_suffix IN VARCHAR2, literal_type IN VARCHAR2, language_type IN VARCHAR2, ) RETURN TIMESTAMP WITH TIME ZONE;
説明
xsd:time型のリテラルに対してTIMESTAMP WITH TIME ZONE値を戻し、他のすべてのRDF語句に対してNULL値を戻します。グリニッジ標準時は、タイムゾーンなしのxsd:time値に対してデフォルトのタイムゾーンとして使用されます。すべてのTIMESTAMP WITH TIME ZONE値で2009-06-26がデフォルトの日付として使用されます。
パラメータ
使用上の注意
パフォーマンスを向上させるには、このファンクションでファンクション・ベース索引を作成することを検討します。詳細は、「型付きリテラルを含む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パッケージのサブプログラム
10.61 SEM_APIS.IMPORT_ENTAILMENT_STATS
書式
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');
説明
ユーザー統計表から伴意の統計を取得して、ディクショナリに格納します。
パラメータ
- entailment_name
-
伴意の名前。
- (その他のパラメータ)
-
DBMS_STATS.IMPORT_TABLE_STATSプロシージャのパラメータの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。なお、ここでの
forceは伴意統計に適用されます。また、
cascadeを指定しても、モデルに関連付けられているすべての索引統計をエクスポートします。
使用上の注意
DBMS_STATSパッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。
「セマンティク・モデルおよびセマンティク・ネットワークの統計の管理」を参照してください。
例
次の例では、表STAT_TABLEから伴意OWLTST_IDXの統計をインポートします。
EXECUTE SEM_APIS.IMPORT_ENTAILMENT_STATS('owltst_idx', 'stat_table');親トピック: SEM_APISパッケージのサブプログラム
10.62 SEM_APIS.IMPORT_MODEL_STATS
書式
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);
説明
指定されたモデルの統計をユーザー統計表から取得して、ディクショナリに格納します。
パラメータ
- model_name
-
伴意の名前。
- (その他のパラメータ)
-
DBMS_STATS.IMPORT_TABLE_STATSプロシージャのパラメータの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。
また、
cascadeを指定しても、モデルに関連付けられているすべての索引統計をインポートします。
使用上の注意
DBMS_STATSパッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。
「セマンティク・モデルおよびセマンティク・ネットワークの統計の管理」を参照してください。
例
次の例では、表STAT_TABLEからモデルFAMILYの統計をインポートして、ディクショナリに格納します。
EXECUTE SEM_APIS.IMOPRT_MODEL_STATS('family', 'stat_table');親トピック: SEM_APISパッケージのサブプログラム
10.63 SEM_APIS.IS_TRIPLE
書式
SEM_APIS.IS_TRIPLE( model_id IN NUMBER, subject IN VARCHAR2, property IN VARCHAR2, object IN VARCHAR2) RETURN VARCHAR2;
または
SEM_APIS.IS_TRIPLE( model_name IN VARCHAR2, subject IN VARCHAR2, property IN VARCHAR2, object IN VARCHAR2) RETURN VARCHAR2;
説明
文がデータベースの指定されたモデルの既存のトリプルであるかどうかをチェックします。
パラメータ
- model_id
-
セマンティク・テクノロジ・モデルのID番号。MDSYS.SEM_MODEL$ビュー(「モデルのメタデータ」を参照)のMODEL_ID列の値と一致している必要があります。
- model_name
-
セマンティク・テクノロジ・モデルの名前。MDSYS.SEM_MODEL$ビュー(「モデルのメタデータ」を参照)のMODEL_NAME列の値と一致している必要があります。
- subject
-
主語。MDSYS.RDF_VALUE$表(「文」を参照)のVALUE_NAME列の値と一致している必要があります。
- property
-
プロパティ。MDSYS.RDF_VALUE$表(「文」を参照)のVALUE_NAME列の値と一致している必要があります。
- object
-
目的語。MDSYS.RDF_VALUE$表(「文」を参照)のVALUE_NAME列の値と一致している必要があります。
使用上の注意
この関数は、文字列値FALSE、TRUEまたはTRUE (EXACT)を戻します。
-
FALSE: 文はデータベースの指定したモデルのトリプルではありません。 -
TRUE: 文はデータベースの指定したモデルのトリプル値に一致しているか、トリプル値の正規形表現と同じです。 -
TRUE (EXACT): 指定したsubject、propertyおよびobjectの値は、データベースの指定したモデルのトリプルと完全に一致しています。
例
次の例では、文がデータベースのトリプルであるかどうかをチェックします。この場合、完全一致するトリプルが存在します。((この例は、 「例: 家系の情報」の例1-109の抜粋です。)
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パッケージのサブプログラム
10.64 SEM_APIS.LOAD_INTO_STAGING_TABLE
書式
SEM_APIS.LOAD_INTO_STAGING_TABLE( stagong_table IN VARCHAR2, source_table IN VARCHAR2, input_format IN VARCHAR2 DEFAULT NULL, parallel IN INTEGER DEFAULT NULL, staging_table_owner IN VARCHAR2 DEFAULT NULL, source_table_owner IN VARCHAR DEFAULT NULL, flags IN VARCHAR DEFAULT NULL);
説明
N-TripleまたはN-Quad形式の入力ファイルにマップされた外部表から、ステージング表にデータをロードします。
パラメータ
使用上の注意
詳細および例は、「外部表を使用してN-Quad形式データをステージング表にロードする方法」を参照してください。
例
次の例では、ステージング表をロードします。(この例は、「外部表を使用してN-Quad形式データをステージング表にロードする方法」の例1-91から抜粋したものです。)
BEGIN
sem_apis.load_into_staging_table(
staging_table => 'STAGE_TABLE'
,source_table => 'stage_table_source'
,input_format => 'N-QUAD');
END;親トピック: SEM_APISパッケージのサブプログラム
10.65 SEM_APIS.LOOKUP_ENTAILMENT
書式
SEM_APIS.LOOKUP_ENTAILMENT ( models IN SEM_MODELS, rulebases IN SEM_RULEBASES ) RETURN VARCHAR2;
説明
指定されたモデルおよびルールベースに基づいて伴意(ルール索引)の名前を戻します。
パラメータ
- models
-
1つ以上のモデル名。そのデータ型は、
TABLE OF VARCHAR2(25)という定義を持つSEM_MODELSです。 - rulebases
-
1つ以上のルールベース名。そのデータ型はSEM_RULEBASESであり、
TABLE OF VARCHAR2(25)として定義されます。ルールおよびルールベースの詳細は、「推論: ルールとルールベース」を参照してください。
使用上の注意
ルールベース索引が戻されるには、その索引が指定したすべてのモデルおよびルールベースに基づいている必要があります。
例
次の例では、familyモデルとRDFSおよびfamily_rbルールベースに基づく伴意を検出します。(この例は、「例: 家系の情報」の 例1-110からの抜粋です。)
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パッケージのサブプログラム
10.66 SEM_APIS.MERGE_MODELS
書式
SEM_APIS.MERGE_MODELS( source_model IN VARCHAR2, destination_model IN VARCHAR2, rebuild_apptab_index IN BOOLEAN DEFAULT TRUE, drop_source_model IN BOOLEAN DEFAULT FALSE, options IN VARCHAR2 DEFAULT NULL);
説明
ソース・モデルから宛先モデルに内容を挿入し、宛先アプリケーション表を更新します。
パラメータ
- source_model
-
ソース・モデルの名前。
- destination_model
-
宛先モデルの名前。
- rebuild_apptab_index
-
TRUEは、モデルがマージされた後、宛先のアプリケーション表上の索引を再作成し、FALSEは、どの索引も再作成しません。 - drop_source_model
-
TRUEは、モデルがマージされた後、ソース・モデル(source_model)を削除し、FALSE(デフォルト)は、ソース・モデルを削除しません。 - options
-
プロシージャのデフォルトの動作を上書きするオプションのカンマ区切りの文字列。現在、このプロシージャのパラレル実行を有効にして、操作に関連付ける並列度を指定する
DOP(並列度)オプションのみがサポートされています。
使用上の注意
モデルをマージする前に、位置パラメータを使用している場合は、1番目および2番目のパラメータに正しいモデル(1番目にソース・モデル、2番目に宛先モデル)を指定しているかを確認します。drop_source_model=TRUEを指定する予定の場合、これは特に重要です。
必要に応じて、マージを実行する前に、宛先モデルまたは両方のモデルのコピーを作成します。モデルのコピーを作成するには、SEM_APIS.CREATE_SEM_MODELを使用して、コピーに必要な名前で空のモデルを作成し、SEM_APIS.MERGE_MODELSを使用して、宛先モデルとして新しく作成されたコピーを移入します。
このプロシージャのいくつかの一般的な用途には次のものがあります。
-
変更するモデルへの読取り専用のアクセス権を持っている場合、完全なアクセス権を持つ空のモデルにそのモデルをクローニングしてから、この後者のモデルを変更できます。
-
複数のモデルを統合する場合、必要に応じてこのプロシージャを使用して、必要なモデルをマージできます。事前にすべてのモデルをマージし、マージしたモデルのみを使用することで、伴意を簡略化し、伴意のパフォーマンスを向上できます。
マルチコアまたはマルチCPUマシンで、DOP (並列度)オプションが効果的なことがあります。DOPオプションを使用する例は、「例」を参照してください。
ソース・モデルが大きい場合、SEM_APIS.ANALYZE_MODELプロシージャをコールすることによって、マージ操作の後にマージ先でオプティマイザ統計を更新できます。
このプロシージャを使用する場合、次の考慮事項が適用されます。
-
宛先モデルの所有者であり、ソース・モデルに対するSELECT権限を持っている必要があります。
drop_second_model=TRUEの場合、ソース・モデルの所有者でもある必要があります。 -
このプロシージャは、仮想モデル(「仮想モデル」を参照)ではサポートされません。
-
表の制約は、宛先のアプリケーション表では許容されません。
例
次の例では、モデル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パッケージのサブプログラム
10.67 SEM_APIS.MIGRATE_DATA_TO_CURRENT
書式
SEM_APIS.MIGRATE_DATA_TO_CURRENT( options IN VARCHAR2 DEFAULT NULL);
説明
Oracle Database リリース12.2よりも前のセマンティク・データを、現在のOracle DatabaseリリースのRDFで使用するために必要な形式に移行させます。
パラメータ
使用上の注意
Oracle Database 11.1、11.2および12.1で作成されたセマンティク・データの移行を行う場合、「リリース12.2よりも前のセマンティク・データに必要な移行作業」で述べられているように、このプロシージャを使用することを強くお薦めします。
このプロシージャを実行しても、すでに現在の形式になっているセマンティク・データに対しては、何の操作も行われません。
optionsについては、移行するデータの量が少なければ、多くの場合、デフォルトの(パラメータを指定しない)状態で十分なパフォーマンスが得られます。ただし、データ量が多い場合は、INS_AS_SEL=Tを指定することでパフォーマンスを著しく向上させることができます。
例
次の例では、ネットワーク上にあるリリース11.2のセマンティク・データが、最新バージョンのOracle Database形式に移行します。このとき、バルク・ロード操作を用いた移行が行われます。
EXECUTE sem_apis.migrate_data_to_current('INS_AS_SEL=T');次の例では、ネットワーク上にあるリリース11.2のセマンティク・データが、最新バージョンのOracle Database形式に移行します。このとき、更新操作を用いた移行(デフォルト)が行われます。
EXECUTE sem_apis.migrate_data_to_current;
親トピック: SEM_APISパッケージのサブプログラム
10.68 SEM_APIS.PRIVILEGE_ON_APP_TABLES
書式
SEM_APIS.PRIVILEGE_ON_APP_TABLES(
command IN VARCHAR2 DEFAULT 'GRANT',
privilege IN VARCHAR2 DEFAULT 'SELECT');
説明
MDSYSに対して、起動側が所有する全RDFモデルに対応するアプリケーション表へのSELECT権限またはINSERT権限の付与(または取消し)を実行します。
パラメータ
使用上の注意
(ありません)
例
次の例では、MDSYSに、起動側が所有する全RDFモデルに対応するアプリケーション表へのSELECT権限を付与します。
EXECUTE SEM_APIS.PRIVILEGE_ON_APP_TABLES('grant', 'select');親トピック: SEM_APISパッケージのサブプログラム
10.69 SEM_APIS.PURGE_UNUSED_VALUES
書式
SEM_APIS.PURGE_UNUSED_VALUES( flags IN VARCHAR2 DEFAULT NULL);
Description
無効なジオメトリ・リテラル値をセマンティク・ネットワークからパージします。
パラメータ
- flags
-
次のキーワード指定が1つ以上含まれる、引用符で囲んだオプションの文字列。
-
MBV_METHOD=SHADOWを指定すると、値の別のロード方法を使用できるため、大量の値をパージする必要がある場合に、処理がより高速になる可能性があります。 -
PARALLEL=<integer>を指定すると、この処理のほとんどを、integerで指定した、操作に関連付けられている並列度を使用してパラレルに実行できます。並列度なしでPARALLELのみを指定すると、デフォルトの並列度が使用されます。 -
PUV_COMPUTE_VIDS_USEDを指定すると、別の方法を使用できるため、ほとんどの値がパージされると予測される場合に、処理がより高速になる可能性があります。
-
使用上の注意
このプロシージャをコールする前に、MDSYSに、既存の全RDFモデルのアプリケーション表へのSELECT権限を付与する必要があります。
使用方法と使用例の詳細は、「未使用値のパージ」を参照してください。
SEM_APIS.VALIDATE_GEOMETRIESを使用して指定モデルのすべてのジオメトリ・リテラルが指定したSRIDおよび許容値について有効であることを確認してから、このプロシージャを実行することをお薦めします。
例
次の例では、並列度4を使用して、未使用値をパージします。
EXECUTE SEM_APIS.PURGE_UNUSED_VALUES(flags => 'PARALLEL=4');
親トピック: SEM_APISパッケージのサブプログラム
10.70 SEM_APIS.REFRESH_SEM_NETWORK_INDEX_INFO
書式
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パッケージのサブプログラム
10.71 SEM_APIS.REMOVE_DUPLICATES
書式
SEM_APIS.REMOVE_DUPLICATES( model_name IN VARCHAR2, threshold IN FLOAT DEFAULT 0.3, rebuild_apptab_index IN BOOLEAN DEFAULT TRUE);
説明
モデルから重複トリプルを削除します。
パラメータ
- model_name
-
モデルの名前。
- threshold
-
削除操作が実行されるために、どれだけ多くのトリプルが必要かを決定する値。このプロシージャは、モデルのトリプルの数が次の計算式を上回る場合にのみ、トリプルを削除します(トリプルの合計 - 一意のトリプルの合計 + 0.01) / (一意のトリプルの合計 + 0.01)。デフォルト値の0.3とトリプルの合計1000 (重複を含む)を含むモデルの場合、重複の数がおよそ230を超える場合にのみ、重複トリプルが削除されます。
しきい値が低くなるほど、プロシージャが重複を削除するのに必要な重複の数は少なくなり、しきい値が高くなるほど、プロシージャが重複を削除するのに必要な重複の数は多くなります。
- rebuild_apptab_index
-
TRUE(デフォルト)は、重複トリプルの削除後、この操作によって影響された表の使用可能なすべての索引を再作成し、FALSEは、索引を再作成しません。
使用上の注意
重複トリプルが削除されると、トリプル列以外の列の情報など、削除された行のすべての情報が失われます。
このプロシージャは、仮想モデル(「仮想モデル」を参照)ではサポートされません。
モデルが空の場合、または、重複トリプルが存在しないか(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パッケージのサブプログラム
10.72 SEM_APIS.RENAME_ENTAILMENT
書式
SEM_APIS.RENAME_ENTAILMENT( old_name IN VARCHAR2, new_name IN VARCHAR2);
説明
伴意(ルール索引)の名前を変更します。
使用上の注意
ありません。
例
次の例では、伴意OWLTST_IDXの名前をMY_OWLTST_IDXに変更します。
EXECUTE sem_apis.rename_entailment('owltst_idx', 'my_owltst_idx');親トピック: SEM_APISパッケージのサブプログラム
10.73 SEM_APIS.RENAME_MODEL
書式
SEM_APIS.RENAME_MODEL( old_name IN VARCHAR2, new_name IN VARCHAR2);
説明
モデルの名前を変更します。
使用上の注意
このプロシージャを使用する場合、次の考慮事項が適用されます。
-
既存のモデルの所有者である必要があります。
-
このプロシージャは、仮想モデル(「仮想モデル」を参照)ではサポートされません。
このプロシージャは、2つの既存のモデルの名前を交換するSEM_APIS.SWAP_NAMESとは対照的です。
例
次の例では、モデルMODEL1の名前をMODEL2に変更します。
EXECUTE sem_apis.rename_model('model1', 'model2');親トピック: SEM_APISパッケージのサブプログラム
10.74 SEM_APIS.RES2VID
書式
SEM_APIS.RES2VID( vTab IN VARCHAR2, uri IN VARCHAR2, lt IN VARCHAR2 DEFAULT NULL, lang IN VARCHAR2 DEFAULT NULL, lval IN CLOB DEFAULT NULL, ) RETURN NUMBER;
説明
RDF語句で正規と認められるものに対するVALUE_IDを返します。語句が値表に存在しない場合はNULLを返します。
パラメータ
使用上の注意
MDSYS.RDF_VALUE$表に格納されるRDF語句の要素に関する詳細は、「セマンティク・メタデータ表およびビュー」を参照してください。
例
次の例では、RDF語句で正規とされるもののVALUE_ID値が返されます。SQL文の前にあるコメントで、文の目的を説明しています。
-- Look up the VALUE_ID for the RDF term <http://www.example.com/a>.
SELECT sem_apis.res2vid('MDSYS.RDF_VALUE$','<http://www.example.com/a>') FROM DUAL;
-- Look up the VALUE_ID for the RDF term "abc".
SELECT sem_apis.res2vid('MDSYS.RDF_VALUE$','"abc"') FROM DUAL;
-- Look up the VALUE_ID for the RDF term "10"^^<http://www.w3.org/2001/XMLSchema#decimal>.
SELECT sem_apis.res2vid('MDSYS.RDF_VALUE$','"10"','http://www.w3.org/2001/XMLSchema#decimal') FROM DUAL;
-- Look up the VALUE_ID for the RDF term "abc"@en.
SELECT sem_apis.res2vid('MDSYS.RDF_VALUE$','"abc"',lang=>'en') FROM DUAL;
-- Look up the VALUE_ID for the long literal RDF term '"a CLOB literal"'.
SELECT sem_apis.res2vid('MDSYS.RDF_VALUE$',null,lval=>'"a CLOB literal"') FROM DUAL;
親トピック: SEM_APISパッケージのサブプログラム
10.75 SEM_APIS.SET_ENTAILMENT_STATS
書式
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);
説明
指定された伴意の統計を設定します。
パラメータ
- entailment_name
-
伴意の名前。
- (その他のパラメータ)
-
DBMS_STATS.SET_TABLE_STATSプロシージャのパラメータに関する詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。なお、ここでの
forceは伴意統計に適用されます。
使用上の注意
DBMS_STATSパッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。
「セマンティク・モデルおよびセマンティク・ネットワークの統計の管理」を参照してください。
例
次の例では、伴意OWLTST_IDXの統計を設定します。
EXECUTE SEM_APIS.SET_ENTAILMENT_STATS('owltst_idx', numrows => 100);親トピック: SEM_APISパッケージのサブプログラム
10.76 SEM_APIS.SET_MODEL_STATS
書式
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);
説明
指定されたモデルの統計を設定します。
パラメータ
- model_name
-
モデルの名前。
- (その他のパラメータ)
-
DBMS_STATS.DELETE_TABLE_STATSプロシージャのパラメータに関する詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。なお、ここでの
forceは伴意統計に適用されます。
使用上の注意
DBMS_STATSパッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。
「セマンティク・モデルおよびセマンティク・ネットワークの統計の管理」を参照してください。
例
次の例では、モデルFAMILYの統計を設定します。
EXECUTE SEM_APIS.SET_MODEL_STATS('family', numrows => 100);親トピック: SEM_APISパッケージのサブプログラム
10.77 SEM_APIS.SPARQL_TO_SQL
書式
SEM_APIS.SPARQL_TO_SQL( sparql_query IN CLOB, models IN RDF_MODELS DEFAULT NULL, rulebases IN RDF_RULEBASES DEFAULT NULL, aliases IN RDF_ALIASES DEFAULT NULL, index_status IN VARCHAR2 DEFAULT NULL, options IN VARCHAR2 DEFAULT NULL graphs IN RDF_GRAPHS DEFAULT NULL, named_graphs IN RDF_GRAPHS DEFAULT NULL) RETURN CLOB;
説明
SPARQL問合せを、アプリケーションプログラムで実行可能なSQL問合せに翻訳します。
パラメータ
- sparql_qurry
-
1つ以上のトリプル・パターンを含む文字列リテラル。通常は変数を含んでいます。
- models
-
使用する1つまたは複数のモデル。
- rulebases
-
そのルールが問合せに適用される1つ以上のルールベース。
- aliases
-
修飾された名前を拡張するために問合せパターンで使用される1つ以上のネームスペース。
- index_status
-
この問い合わせに対する適当な伴意のステータス。
- options
-
問合せ結果に影響を与える可能性のあるオプションです。
- グラフ
-
問合せに対するデフォルトのグラフを構築する元となる名前付きグラフのセットです。
- named_graphs
-
GRAPH句で照合可能な名前付きグラフのセットです。
使用上の注意
このプロシージャを使用する前に、「SEM_APIS.SPARQL_TO_SQL関数を使用したセマンティク・データの問合せ」の資料を理解していることを確認してください。
例
次の例では、SPARQL問合せをSQL問合せ文字列に変換しています。
DECLARE
sparql_stmt clob;
sql_stmt clob;
BEGIN
sparql_stmt := '{?x :grandParentOf ?y . ?x rdf:type :Male}';
sql_stmt := sem_apis.sparql_to_sql(
sparql_stmt,
sem_models('family'),
SEM_Rulebases('RDFS','family_rb'),
SEM_ALIASES(SEM_ALIAS('','http://www.example.org/family/')),
null);
execute immediate
'create table gf_table as
select x grandfather, y grandchild from('|| sql_stmt || ')';
END;
/
親トピック: SEM_APISパッケージのサブプログラム
10.78 SEM_APIS.SWAP_NAMES
書式
SEM_APIS.SWAP_NAMES( model1 IN VARCHAR2, model2 IN VARCHAR2);
説明
2つの既存のモデルの名前を交換します。
使用上の注意
このプロシージャの結果として、モデルmodel1の名前はmodel2の(古い)名前に変更され、モデルmodel2の名前はmodel1の(古い)名前に変更されます。
名前の順序は、結果に影響しません。たとえば、model1に対してTESTおよびmodel2に対してPRODUCTION、または、model1に対してPRODUCTIONおよびmodel2に対してTESTを指定できますが、結果は同じになります。
このプロシージャは、既存のモデルの名前を変更するSEM_APIS.RENAME_MODELとは対照的です。
例
次の例では、(古い)TESTモデルの名前をPRODUCTIONに、(古い)PRODUCTIONモデルの名前をTESTに変更します。
EXECUTE sem_apis.swap_names('test', 'production');親トピック: SEM_APISパッケージのサブプログラム
10.79 SEM_APIS.UNESCAPE_CLOB_TERM
書式
SEM_APIS.UNESCAPE_CLOB_TERM( term IN CLOB CHARACTER SET ANY_CS ) RETURN CLOB CHARACTER SET val%CHARSET;
説明
W3CのN-Triples形式(http://www.w3.org/TR/rdf-testcases/#ntriples)で指定された入力RDF語句を、特殊文字および非ASCII文字をアンエスケープして返します。
使用上の注意
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パッケージのサブプログラム
10.80 SEM_APIS.UNESCAPE_CLOB_VALUE
書式
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パッケージのサブプログラム
10.81 SEM_APIS.UNESCAPE_RDF_TERM
書式
SEM_APIS.UNESCAPE_RDF_TERM( term IN VARCHAR2 CHARACTER SET ANY_CS ) RETURN VARCHAR2 CHARACTER SET val%CHARSET;
説明
W3CのN-Triples形式(http://www.w3.org/TR/rdf-testcases/#ntriples)で指定された入力RDF語句を、特殊文字および非ASCII文字をアンエスケープして返します。
使用上の注意
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パッケージのサブプログラム
10.82 SEM_APIS.UNESCAPE_RDF_VALUE
書式
SEM_APIS.UNESCAPE_RDF_VALUE( val IN VARCHAR2 CHARACTER SET ANY_CS ) RETURN VARCHAR2 CHARACTER SET val%CHARSET;
説明
W3CのN-Triples形式(http://www.w3.org/TR/rdf-testcases/#ntriples)で指定された入力CLOB値を、特殊文字および非ASCII文字をアンエスケープして返します。
パラメータ
使用上の注意
SEM_MATCH表関数のoptionsパラメータで、DO_UNESCAPEキーワードを使用する際の詳細は、「セマンティク・データに対する問合せでのSEM_MATCH表関数の使用」を参照してください。
例
次の例では、タブ文字と改行文字を含む入力文字列をアンエスケープします。
SELECT SEM_APIS.UNESCAPE_RDF_VALUE('abc\tdef\nhij')
FROM DUAL;親トピック: SEM_APISパッケージのサブプログラム
10.83 SEM_APIS.UPDATE_MODEL
書式
SEM_APIS.UPDATE_MODEL( apply_model IN VARCHAR2, update_stmt IN CLOB, match_models IN RDF_MODELS DEFAULT NULL, match_rulebases IN RDF_RULEBASES DEFAULT NULL, match_index_status IN VARCHAR2 DEFAULT NULL, match_options IN VARCHAR2 DEFAULT NULL, options IN VARCHAR2 DEFAULT NULL);
説明
セマンティク・モデルに対してSPARQL更新操作を実行します。
パラメータ
- apply_model
-
更新されるRDFモデルの名前。モデルが、SEM_APIS.CREATE_SEM_MODELプロシージャを使用して作成された際に指定された名前です。
- update_stmt
-
apply_modelモデル上で実行される1つ以上のSPARQL更新コマンドです。コマンドを区切るには、セミコロン(;)を使用します。 - match_models
-
SPARQL更新操作(INSERT WHERE、DELETE WHERE、COPY、MOVE、ADD)で、グラフ・パターンの照合に対する問合せを行うSPARQLデータ・セットを形成するモデルのリスト。仮想モデルまたはRDFビュー、あるいはその両方を含めることができます。このパラメータが指定されていない場合、
apply_modelモデルが使用されます。 - match_rulebases
-
追加のトリプルまたはクワッドを生成する伴意を得るために
match_modelsとともに使用されるルール―ベースのリストで、SPARQL更新操作でグラフ・パターンの照合に使用されます。 - match_index_status
-
SPARQL更新操作でグラフ・パターン照合に使用されるすべての伴意に期待されるステータス。
- match_options
-
SPARQL更新操作でグラフ・パターン照合に影響を与えるヒントを指定する文字列。ここで使用できるヒントのセットは、SEM_MATCHの
optionsパラメータで使用できるヒントのセットとまったく同じです。 - options
-
SPARQL更新操作に影響を与えるヒントを指定する文字列。使用可能なオプションに関する使用上の注意を参照してください。
使用上の注意
このプロシージャを使用する前に、「セマンティク・モデルに対するSPARQL更新操作のサポート」の資料を理解していることを確認してください。
optionsパラメータには、次のオプションを1つまたは複数指定できます。
-
APP_TAB_IDX={INDEX_NAME}を指定すると、アプリケーション表でDML操作が行われる際、IINDEX_NAMEに対してNDEXオプティマイザヒントが使用されます。
-
APPENDを指定すると、DML操作でSQL APPENDヒントが使用されます。
-
AUTOCOMMIT=Fを指定すると、SEM_APIS.UPDATE_MODELの各呼出しに対するトランザクションの開始とコミットが抑止されます。その代わり、このオプションにより、トランザクションの制御が呼出し側に渡されます。SEM_APIS.UPDATE_MODELの各呼出しは、呼出し側で開始、コミットおよびロールバックされるメイン・トランザクションの一部として実行されます。
-
BULK_OPTIONS={OPTIONS_STRING}を指定すると、SEM_APIS.BULK_LOAD_FROM_STAGING_TABLEの呼出し時に、OPTIONS_STRINGが
flagsパラメータとして使用されます。 -
CLOB_UPDATE_SUPPORT=Tを指定すると、CLOB機能が有効になります。
-
DEL_AS_INS=T指定すると、大規模な削除操作の際、削除操作後に保持されるべきすべてのデータが、削除ではなく挿入されます。このオプションを指定すると、大規模な削除操作でパフォーマンスが大幅に向上することがあります。
-
DYNAMIC_SAMPLING(n)指定すると、問合せ操作でDYNAMIC_SAMPLING(n) SQLオプティマイザ・ヒントが使用されます。
-
FORCE_BULK=Tを指定すると、トリプルのバルク挿入でSEM_APIS.BULK_LOAD_FROM_STAGING_TABLEプロシージャが使用されます。このオプションを指定すると、大規模な更新でパフォーマンスが向上する場合があります。
-
LOAD_OPTIONS={ OPTIONS_STRING }を指定すると、LOAD操作の実行時に
OPTIONS_STRINGが追加のファイル名として使用されます。 -
MM_OPTIONS={ OPTIONS_STRING }を指定すると、SEM_APIS.MERGE_MODELSが呼び出される操作で、OPTIONS_STRINGがオプション・パラメータとして使用されます。
-
PARALLEL(n)を指定すると、問合せおよびDMLの操作に対し、SQLの
PARALLEL(n)ヒントが使用されます。 -
RESUME_LOAD=Tを指定すると、中断されたLOAD操作の再開ができるようになります。
-
SERIALIZABLE=Tを指定すると、SEM_APIS.UPDATE_MODEL操作に対し、SERIALIZABLEトランザクション分離レベルが使用されます。READ COMMITTEDが、デフォルトのトランザクション分離レベルです。
-
STREAMING=Fを指定すると、中間データが実体化され、JDBC結果セットを通じたストリーミングではなく、INSERT AS SELECT操作が行われます。このモードを指定すると、大規模またはWHERE句での複雑なパターンでの更新でパフォーマンスが向上する場合があります。
-
STRICT_BNODE=Fを指定すると、ADD、COPYおよびMOVEについて、ID限定の操作が可能になります。(ID限定の操作に関する詳細は、「空白のノード: SPARQL更新で特に留意する点」を参照してください。)
「セッション・レベルでのUPDATE_MODELオプションの設定」で説明されているように、MDSYS.SDO_SEM_UPDATE_CTX.SET_PARAMプロシージャを使用することで、セッション・レベルで上書きのできるオプションがあります。
例
次の例では、6個のトリプルがセマンティク・モデルに挿入されています。
BEGIN
sem_apis.update_model('electronics',
'PREFIX : <http://www.example.org/electronics/>
INSERT DATA {
:camera1 :name "Camera 1" .
:camera1 :price 120 .
:camera1 :cameraType :Camera .
:camera2 :name "Camera 2" .
:camera2 :price 150 .
:camera2 :cameraType :Camera .
} ');
END;
/
親トピック: SEM_APISパッケージのサブプログラム
10.84 SEM_APIS.VALIDATE_ENTAILMENT
書式
SEM_APIS.VALIDATE_ENTAILMENT( models_in IN SEM_MODELS, rulebases_in IN SEM_RULEBASES, criteria_in IN VARCHAR2 DEFAULT NULL, max_conflict IN NUMBER DEFAULT 100, options IN VARCHAR2 DEFAULT NULL ) RETURN RDF_LONGVARCHARARRAY;
説明
1つ以上のモデルでOWLまたはRDFS推論を実行する際に使用できる伴意(ルール索引)を検証します。
パラメータ
- models_in
-
1つ以上のモデル名。そのデータ型は、
TABLE OF VARCHAR2(25)という定義を持つSEM_MODELSです。 - rulebases_in
-
1つ以上のルールベース名。そのデータ型は、
TABLE OF VARCHAR2(25)という定義を持つSEM_RULEBASESです。ルールおよびルールベースの詳細は、「推論: ルールとルールベース」を参照してください。 - criteria_in
-
実行する検証チェックのカンマ区切りの文字列。このパラメータを指定しない場合、デフォルトで次のすべてのチェックが実行されます。
-
UNSAT: 充足不可能なクラスを検出します。 -
EMPTY: 充足不可能なクラスに属するインスタンスを検出します。 -
SYNTAX_S: URIでも空白ノードでもない主語を含むトリプルを検出します。 -
SYNTAX_P: URIではない述語を含むトリプルを検出します。 -
SELF_DIF: 自己自身と異なる個体を検出します。 -
INST: 同時に2つの排他クラスに属する個体を検出します。 -
SAM_DIF: 同じであり(owl:sameAs)かつ異なる(owl:differentFrom)個体のペアを検出します。
デフォルトより少ない数のチェックを指定するには、実行するチェックの文字列のみを指定します。たとえば、
criteria_in => 'UNSAT'と指定すると、検証プロセスでは充足不可能なクラスのみが検索されます。 -
- max_conflict
-
検証プロセスを停止する前に検出する競合の最大数。デフォルト値は100です。
- options
-
(現在は未使用。Oracleで使用するために予約済。)
使用上の注意
このプロシージャは、元の伴意の非一貫性を検出するために使用できます。詳細は、「OWLモデルおよび伴意の検証」を参照してください。
このプロシージャは、エラーが検出されなかった場合はNULL値を戻し、エラーが検出された場合はVARRAY(32767) OF VARCHAR2(4000)という定義を持つRDF_LONGVARCHARARRAY型のオブジェクトを戻します。
伴意を作成するには、SEM_APIS.CREATE_ENTAILMENTプロシージャを使用します。
例
このプロシージャの例は、「OWLモデルおよび伴意の検証」の例2-5を参照してください。
親トピック: SEM_APISパッケージのサブプログラム
10.85 SEM_APIS.VALIDATE_GEOMETRIES
書式
SEM_APIS.VALIDATE_GEOMETRIES(
model_name IN VARCHAR2,
SRID IN NUMBER,
tolerance IN NUMBER,
parallel IN PLS_INTEGER default NULL,
tablespace_name IN VARCHAR2 default NULL,
options IN VARCHAR2 default NULL);
説明
指定モデルのすべてのジオメトリ・リテラルが指定したSRIDおよび許容値について有効であるかどうかを判別します。
パラメータ
- model_name
-
検証するジオメトリ・リテラルが含まれるモデルの名前。ネイティブ・モデルのみ指定できます。
- SRID
-
空間参照システムのSRID。
- tolerance
-
検証に使用する許容値。
- parallel
-
操作に関連付けられている並列度。パラレル実行の詳細は、『Oracle Database VLDBおよびパーティショニング・ガイド』を参照してください。
- tablespace_name
-
表{model_name}_IVG$、{model_name}_FXT$および{model_name}_NFT$の宛先表領域。
- options
-
検証のオプションを指定する文字列。サポートされているオプションは次のとおりです。
-
RECTIFY=T。ステージング表{model_name}_FXT$および{model_name}_NFT$が作成され、それぞれ修正できるトリプルと修正できないトリプルが含まれます。これらの表を使用してモデルを修正できます。
-
AUTOCORRECT=T。無効でも修正できるジオメトリが含まれるトリプルが修正されます。また、修正できないジオメトリが含まれるトリプルが入っている表{model_name}_NFT$が、そのようなトリプルを手動で修正できるように作成されます。
-
STANDARD_CRS_URI=T。標準CRS (座標参照システム) URIを使用します。
-
GML_LIT_SRL=T。ogc:gmlLiteralシリアライズを修正されたジオメトリ・リテラルに使用します。ogc:wktLiteralシリアライズがデフォルトです。
-
使用上の注意
このプロシージャは、SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXT関数のラッパーです。
無効なWKTリテラルが含まれる表{model_name}_IVG$が作成されます。オプションで、ステージング表{model_name}_FXT$および{model_name}_NFT$を作成でき、それぞれ修正できるトリプルと修正できないトリプルが含まれます。ステージング表を使用すると、ユーザーは無効なジオメトリを修正できます。モデルの無効でも修正できるジオメトリ・リテラルは、指定した場合、自動的に修正することもできます。
モデルの無効なジオメトリの修正後、SEM_APIS.PURGE_UNUSED_VALUESを実行してセマンティク・ネットワークから無効なジオメトリ・リテラル値をパージすることをお薦めします。
モデルの詳細は、「セマンティク・データのモデル化」および「データベースのセマンティク・データ」を参照してください。
例
次の例では、無効なジオメトリ・リテラルがいくつか含まれるモデルを作成し、RECTIFY=TオプションおよびSTANDARD_CRS_URI=Tオプションを使用してモデルを検証しています。
-- Create model
CREATE TABLE atab (id int, tri sdo_rdf_triple_s);
GRANT INSERT ON atab TO mdsys;
EXEC sem_apis.create_sem_model('m','atab','tri');
-- Insert invalid geometries
-- Duplicated coordinates - rectifiable
insert into atab(tri) values (sdo_rdf_triple_s('m','<http://my.org/geom1>', '<http://www.opengis.net/rdf#asWKT>', '"POLYGON((1.0 2.0, 3.0 2.0, 1.0 4.0, 1.0 2.0, 1.0 2.0))"^^<http://xmlns.oracle.com/rdf/geo/WKTLiteral>'));
-- Boundary is not closed – rectifiable
insert into atab(tri) values (sdo_rdf_triple_s('m','<http://my.org/geom2>', '<http://www.opengis.net/rdf#asWKT>', '"POLYGON((1.0 2.0, 3.0 2.0, 3.0 4.0, 1.0 4.0))"^^<http://xmlns.oracle.com/rdf/geo/WKTLiteral>'));
-- Less than 4 points – non rectifiable
insert into atab(tri) values (sdo_rdf_triple_s('m:<http://my.org/g2>','<http://my.org/geom3>', '<http://www.opengis.net/rdf#asWKT>', '"POLYGON((1.0 2.0, 3.0 2.0, 1.0 4.0))"^^<http://xmlns.oracle.com/rdf/geo/WKTLiteral>'));
commit;
-- Validate
EXEC sem_apis.validate_geometries(model_name=>'m',SRID=>8307,tolerance=>1.0, options=>'STANDARD_CRS_URI=T RECTIFY=T');
-- Check invalid geometries
SELECT original_vid, error_msg, corrected_geom_literal FROM M_IVG$;
-- Check rectified triples
select RDF$STC_GRAPH, RDF$STC_SUB, RDF$STC_PRED, RDF$STC_OBJ from M_FXT$;
-- Check non-rectified triples
select RDF$STC_GRAPH, RDF$STC_SUB, RDF$STC_PRED, RDF$STC_OBJ, ERROR_MSG from M_NFT$;
親トピック: SEM_APISパッケージのサブプログラム
10.86 SEM_APIS.VALIDATE_MODEL
書式
SEM_APIS.VALIDATE_MODEL( models_in IN SEM_MODELS, criteria_in IN VARCHAR2 DEFAULT NULL, max_conflict IN NUMBER DEFAULT 100, options IN VARCHAR2 DEFAULT NULL ) RETURN RDF_LONGVARCHARARRAY;
説明
1つ以上のモデルを検証します。
パラメータ
- models_in
-
1つ以上のモデル名。そのデータ型は、
TABLE OF VARCHAR2(25)という定義を持つSEM_MODELSです。 - criteria_in
-
実行する検証チェックのカンマ区切りの文字列。このパラメータを指定しない場合、デフォルトで次のすべてのチェックが実行されます。
-
UNSAT: 充足不可能なクラスを検出します。 -
EMPTY: 充足不可能なクラスに属するインスタンスを検出します。 -
SYNTAX_S: URIでも空白ノードでもない主語を含むトリプルを検出します。 -
SYNTAX_P: URIではない述語を含むトリプルを検出します。 -
SELF_DIF: 自己自身と異なる個体を検出します。 -
INST: 同時に2つの排他クラスに属する個体を検出します。 -
SAM_DIF: 同じであり(owl:sameAs)かつ異なる(owl:differentFrom)個体のペアを検出します。
デフォルトより少ない数のチェックを指定するには、実行するチェックの文字列のみを指定します。たとえば、
criteria_in => 'UNSAT'と指定すると、検証プロセスでは充足不可能なクラスのみが検索されます。 -
- max_conflict
-
検証プロセスを停止する前に検出する競合の最大数。デフォルト値は100です。
- options
-
(現在は未使用。Oracleで使用するために予約済。)
使用上の注意
このプロシージャは、元のデータ・モデルの非一貫性を検出するために使用できます。詳細は、「OWLモデルおよび伴意の検証」を参照してください。
このプロシージャは、エラーが検出されなかった場合はNULL値を戻し、エラーが検出された場合はVARRAY(32767) OF VARCHAR2(4000)という定義を持つRDF_LONGVARCHARARRAY型のオブジェクトを戻します。
例
次の例では、モデルfamilyを検証します。
SELECT SEM_APIS.VALIDATE_MODEL(SEM_MODELS('family')) FROM DUAL;親トピック: SEM_APISパッケージのサブプログラム
10.87 SEM_APIS.VALUE_NAME_PREFIX
書式
SEM_APIS.VALUE_NAME_PREFIX ( value_name IN VARCHAR2, value_type IN VARCHAR2 ) RETURN VARCHAR2;
説明
指定された値名と値タイプのペアに対応するMDSYS.RDF_VALUE$表のVNAME_PREFIX列の値を戻します。
パラメータ
使用上の注意
この関数では、通常、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パッケージのサブプログラム
10.88 SEM_APIS.VALUE_NAME_SUFFIX
書式
SEM_APIS.VALUE_NAME_SUFFIX ( value_name IN VARCHAR2, value_type IN VARCHAR2 ) RETURN VARCHAR2;
説明
指定された値名と値タイプのペアに対応するMDSYS.RDF_VALUE$表のVNAME_SUFFIX列の値を戻します。
パラメータ
使用上の注意
この関数では、通常、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親トピック: SEM_APISパッケージのサブプログラム