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

SEM_APISパッケージには、Oracle DatabaseのResource Description Framework (RDF)およびWeb Ontology Language (OWL)とともに使用できるサブプログラム(関数とプロシージャ)が含まれます。

この章のサブプログラムを使用するには、「RDFセマンティク・グラフの概要」「OWLの概要」に記載されている概念および使用情報について理解しておく必要があります。

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

11.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形式を使用する索引作成のオプションを指定する文字列。空間索引の作成に関してサポートされるオプションは、SRIDTOLERANCEおよびDIMENSIONSです。実体化された空間索引の作成には、MATERIALIZE=Tを作成します。テキスト索引の作成に関連してサポートされるオプションは、PREFIX_INDEXPREFIX_MIN_LENGTHPREFIX_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);

11.2 SEM_APIS.ADD_SEM_INDEX

書式

SEM_APIS.ADD_SEM_INDEX(
     index_code  IN VARCHAR2);

説明

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

パラメータ

index_code

索引コード文字列。

使用上のノート

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

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

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

EXECUTE SEM_APIS.ADD_SEM_INDEX('pscm');

11.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);

説明

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

パラメータ

datatype

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

options

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

tablespace_name

索引作成先の表領域。

parallel

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

online

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

使用上のノート

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

データ型索引の詳細は、「データ型索引の使用」を参照してください。

次の例では、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);

11.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');

11.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');

11.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');

11.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');

11.8 SEM_APIS.ALTER_SEM_INDEXES

書式

SEM_APIS.ALTER_SEM_INDEXES(
     attr_name  IN VARCHAR2,
     new_val    IN VARCHAR2,
     options    IN VARCHAR2 DEFAULT NULL);

説明

MDSYS.RDF_VALUE$表およびMDSYS.RDF_LINK$表で、すべての索引の属性を変更します。

パラメータ

attr_name

変更する属性。

new_val

属性の新しい値。

options

(現在は使用されていません。)

使用上のノート

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

現在、サポートされているattr_name値はVISIBILITYのみで、サポートされているnew_val値はY (可視索引)およびN (不可視索引)のみです。

セマンティク・ネットワーク索引の詳細は、「セマンティク・ネットワーク索引の使用」および不可視索引の使用に関するサブトピックを参照してください。

次の例では、すべてのセマンティク・ネットワーク索引を不可視にしています。

EXECUTE SEM_APIS.ALTER_SEM_INDEXES(‘VISIBILITY’, 'N');

11.9 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');

11.10 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');

11.11 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');

11.12 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=RSCBを指定すると、モデルに対して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');

11.13 SEM_APIS.CLEANUP_BNODES

書式

SEM_APIS.CLEANUP_BNODES(
     model_name      IN VARCHAR2, 
     tablespace_name IN VARCHAR2 DEFAULT NULL, 
     options         IN VARCHAR2 DEFAULT NULL);

説明

指定したモデルの空白ノードについて、空白ノード識別子を修正します。

パラメータ

model_name

モデルの名前。

tablespace_name

中間データを保管する表領域の名前です。

options

プロシージャの動作に影響を与える1つ以上のオプションを指定する文字列。使用可能なオプション値については、使用上のノートを参照してください。

使用上のノート

「空白のノード: SPARQL更新で特に留意する点」を参照してください。

optionsパラメータには、次のキーワードを1つまたは複数含めることができます。

  • APPEND: 空白ノードの修正中、表に値を格納する際、APPENDヒントが使用されます。

  • PARALLEL(n): 空白ノードの修正で、nが並列度として使用されます。

  • RECOVER_FAILED=T: 以前に試行された空白ノードの修正が中断され、中間データを含む一時的な表が削除されていない場合に、このオプションを含めます。

次の例では、electronicsセマンティク・モデルに対して、空白ノード識別子の修正を行っています。

EXECUTE SEM_APIS.CLEANUP_BNODES('electronics');

11.14 SEM_APIS.CLEANUP_FAILED

書式

SEM_APIS.CLEANUP_FAILED(
     rdf_object_type  IN VARCHAR2, 
     rdf_object_name  IN VARCHAR2);

説明

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

パラメータ

rdf_object_type

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

rdf_object_name

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

使用上のノート

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

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

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

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

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

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

11.15 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>

11.16 SEM_APIS.CONVERT_TO_GML311_LITERAL

書式

SEM_APIS.CONVERT_TO_GML311_LITERAL(
     geom         IN SDO_GEOMETRY, 
     options      IN VARCHAR2 default NULL
     )RETURN CLOB;

説明

SDO_GEOMETRYオブジェクトをogc:gmlLiteral値にシリアライズします。

パラメータ

geom

シリアライズするSDO_GEOMETRYオブジェクト。

options

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

使用上のノート

プロシージャ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>

11.17 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値にシリアライズします。

パラメータ

geom

シリアライズするSDO_GEOMETRYオブジェクト。

srid_prefix

デフォルトのかわりにogc:wktLiteralで使用する空間参照システムURI接頭辞。結果のSRID URIの形式は、<srid_prefix/{srid}>です。

options

変換のオプションを指定する文字列。使用可能なオプションは次のとおりです。

  • ORACLE_PREFIX=T。<http://xmlns.oracle.com/rdf/geo/srid/{srid}>形式のSRID URIを生成します。

使用上のノート

プロシージャ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>

11.18 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_COMPRESSDEST_MODELDISTANCE,DOPENTAIL_ANYWAYHASH_PARTINCLOCAL_NG_INFOPT_SAMEASRAW8PROOFおよび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に含められることを意味します。

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

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

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

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

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

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

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

キーワード 説明

CHAIN

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

COMPH

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

DIF

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

DISJ

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

DISJH

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

DOM

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

DOMH

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

EQCH

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

EQPH

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

FP

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

FPH

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

HASKEY

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

IFP

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

IFPH

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

INTERSECT

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

INTERSECTSCOH

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

INV

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

INVH

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

MBRLST

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

ONEOF

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

PROPDISJH

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

RANH

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

RDFP*

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

RDFS2, ... RDFS13

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

SAM

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

SAMH

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

SCO

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

SCOH

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

SKOSAXIOMS

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

SNOMED

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

SPIH

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

SPO

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

SPOH

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

SVFH

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

SYMM

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

SYMH

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

THINGH

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

THINGSAM

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

TRANS

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

UNION

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

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

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

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

    デフォルトでは、COL_COMPRESS=Tは「問合せのための圧縮レベルが低い」設定を使用しますが、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)」を参照してください。

  • MODEL_PARTITIONS=nは、コンポジット・パーティション化セマンティク・ネットワーク内のサブパーティションのデフォルト数をオーバーライドし、指定した数(n)のサブパーティションをMDSYS.RDF_LINK$の最後の伴意パーティション内に作成します。

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

  • RAW8=Tは、補助推論表にRAW8データ型を使用します。このオプションは、場合によっては、伴意のパフォーマンスを最大30%向上できます。

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

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

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

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

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

定数 説明

SEM_RDFSA.LABELGEN_SUBJECT

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

SEM_RDFSA.LABELGEN_PREDICATE

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

SEM_RDFSA.LABELGEN_OBJECT

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

SEM_RDFSA.LABELGEN_RULE

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

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

11.19 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');

11.20 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_string        IN CLOB     DEFAULT NULL,
     r2rml_string_fmt    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ビューの作成例9-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ビューの作成例9-1を参照してください。

  • SCALAR_COLUMNS_ONLY=Tは、指定された表またはビューのスカラー列にのみR2RMLマッピングを生成します。表またはビューの他の非スカラー列は、無視されます。このオプションを指定しない場合、ユーザー定義型またはLOBの列がある表に直接マッピングを作成しようとすると、エラーが発生します。

r2rml_string

RDFビューを作成するために使用できるTurtleまたはN-Triple形式のR2RMLマッピング文字列。

r2rml_string_fmt

r2rml_stringで指定されるR2RMLマッピング文字列の形式。指定できる値は、TURTLEおよびN-TRIPLEです。

使用上のノート

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;
/

次の例では、文字列として直接指定されるR2RMLマッピングを使用してRDFビューを作成します。

DECLARE
  r2rmlStr CLOB;
BEGIN

  r2rmlStr := 
   '@prefix rr: <http://www.w3.org/ns/r2rml#>. '||
   '@prefix xsd: <http://www.w3.org/2001/XMLSchema#>. '||
   '@prefix ex: <http://example.com/ns#>. '||'
    
    ex:TriplesMap_Emp
        rr:logicalTable [ rr:tableName "EMP" ];
        rr:subjectMap [
            rr:template "http://data.example.com/employee/{EMPNO}";
            rr:class ex:Employee;
        ];
        rr:predicateObjectMap [
            rr:predicate ex:empNum;
            rr:objectMap [ rr:column "EMPNO" ; rr:datatype xsd:integer ];
        ];
        rr:predicateObjectMap [
            rr:predicate ex:empName;
            rr:objectMap [ rr:column "ENAME" ];
        ];
        rr:predicateObjectMap [
            rr:predicate ex:jobType;
            rr:objectMap [ rr:column "JOB" ];
        ];
        rr:predicateObjectMap [
            rr:predicate ex:worksForDeptNum;
            rr:objectMap [ rr:column "DEPTNO" ; rr:dataType xsd:integer ];
        ].';

  sem_apis.create_rdfview_model(
    model_name => 'empdb_model_R2RML',
    tables => NULL,
    r2rml_string => r2rmlStr,
    r2rml_string_fmt => 'TURTLE'
  );

END;
/

11.21 SEM_APIS.CREATE_RULEBASE

書式

SEM_APIS.CREATE_RULEBASE(
     rulebase_name  IN VARCHAR2);

説明

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

パラメータ

rulebase_name

ルールベースの名前。

使用上のノート

このプロシージャは、ユーザー定義のルールベースを作成します。ルールベースの作成後、そのルールベースにルールを追加できます。RDFデータの問合せでルールベースのルールを適用するには、SEM_MATCH表関数のコールでルールベースを指定します。

ルールおよびルールベースの詳細は、「推論: ルールとルールベース」を参照してください。(SEM_MATCH表関数については、「SEM_MATCH表関数を使用したセマンティク・データの問合せ」を参照してください。)

次の例では、ルールベースfamily_rbを作成します。(この例は、「例: 家系の情報」例1-111からの抜粋です。)

EXECUTE SEM_APIS.CREATE_RULEBASE('family_rb');

11.22 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=RSCBを指定すると、モデルに対してMDSYS.RDF_LINK$パーティションで、ROW STORE COMPRESS BASICが使用されます。

  • MODEL_PARTITIONS=nは、コンポジット・パーティション化セマンティク・ネットワーク内のサブパーティションのデフォルト数をオーバーライドし、指定した数(n)のサブパーティションをモデルのMDSYS.RDF_LINK$パーティション内に作成します。

使用上のノート

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

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

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

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

オプションCOMPRESS=CSCQHCOMPRESS=CSCQLおよびCOMPRESS=RSCAは、適正なライセンスがある場合にのみ使用してください。

次の例では、セマンティク・テクノロジ・モデルarticlesを作成します。モデルのトリプル・データへの参照は、ARTICLES_RDF_DATA表のTRIPLE列に格納されます。(この例は、 「例: 家系の情報」例1-110の抜粋です。)

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

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

CREATE TABLE articles_rdf_data (triple SDO_RDF_TRIPLE_S);

11.23 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=RSCBを指定すると、MDSYS.RDF_LINK$表およびMDSYS.RDF_VALUE$表で、ROW STORE COMPRESS BASICが使用されます。これはデフォルトの圧縮レベルです。

  • MODEL_PARTITIONING=BY_HASH_Pは、リスト-ハッシュ・コンポジット・パーティション化を使用して、MDSYS.RDF_LINK$をモデルID別にパーティション化し、さらに各モデルを述語IDのハッシュによってサブパーティションします。

  • MODEL_PARTITIONS=nは、各モデルで使用するサブパーティションのデフォルト数(n)を設定します。このオプションは、MODEL_PARTITIONING=BY_HASH_Pとともに使用されます。

使用上のノート

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

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

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

セマンティク・データの永続的な記憶域のこれらの構造を削除するには、DBA権限を持つユーザーとして接続し、SEM_APIS.DROP_SEM_NETWORKをコールする必要があります。

オプションCOMPRESS=CSCQHCOMPRESS=CSCQLおよび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', options=>'MODEL_PARTITIONING=BY_HASH_P MODEL_PARTITIONS=16');

11.24 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;

11.25 SEM_APIS.CREATE_SPARQL_UPDATE_TABLES

書式

SEM_APIS.CREATE_SPARQL_UPDATE_TABLES();

説明

SPARQL更新操作で使用するために、呼出し側のスキーマにグローバルな表を一時的に作成します。

パラメータ

ありません。

使用上のノート

SEM_APIS.UPDATE_MODELSTREAMING=FFORCE_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;

11.26 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

作成のオプションは次のとおりです。

  • PXN=Tは、仮想モデルのUNION ALLベースのビュー定義を強制します。これは、16個以下のコンポーネントを持つ仮想モデルのデフォルトです。

  • PXN=Fは、仮想モデルのIN LISTベースのビュー定義を強制します。これは、16個を超えるコンポーネントを持つ仮想モデルのデフォルトです。

  • PXN=F INMEMORY=T (組み合せて使用)を指定すると、インメモリー仮想モデルを作成できます。

    INMEMORY=Tを指定し、PXN=Fは指定しなかった場合、インメモリー仮想列は作成されますが、パフォーマンスが損なわれます。INMEMORY=Tを指定しない場合は、インメモリー仮想列が作成されません。(「RDFでのインメモリー仮想列の使用」も参照してください。)

  • REPLACE=Tを指定すると、仮想モデルを、削除することなく置き換えます。(このオプションを使用することは、ビューでCREATE OR REPLACE VIEWを使用することと似ています。)

entailments

1つ以上の伴意名。そのデータ型は、TABLE OF VARCHAR2(25)という定義を持つSEM_ENTAILMENTSです。このパラメータがNULLの場合、仮想モデル定義に伴意は含まれません。伴意の詳細は、「OWL推論の使用方法」を参照してください。

このパラメータを指定する場合、rulebasesパラメータも指定することはできません。

使用上のノート

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

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

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

仮想モデルを置き換えるには、仮想モデルの所有者またはDBA権限を持つユーザーである必要があります。

オプションINMEMORY=Tは、適切なライセンスがある場合にのみ使用してください。

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

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

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

モデル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 p_value_id, start_node_id, canon_end_node_id, end_node_id, g_id, model_id
  FROM MDSYS.rdf_link$ partition (MODEL_1)
UNION ALL
  SELECT p_value_id, start_node_id, canon_end_node_id, end_node_id, g_id, model_id
  FROM MDSYS.rdf_link$ partition (MODEL_2)
UNION ALL
  SELECT p_value_id, start_node_id, canon_end_node_id, end_node_id, g_id, model_id
  FROM MDSYS.rdf_link$ partition (MODEL_3)
UNION ALL
  SELECT p_value_id, start_node_id, canon_end_node_id, end_node_id, g_id, model_id
  FROM MDSYS.rdf_link$ partition (MODEL_4);

CREATE VIEW MDSYS.SEMU_VM1 AS
  SELECT p_value_id, start_node_id, canon_end_node_id, MIN(end_node_id) end_node_id, g_id, MIN(model_id) model_id 
  FROM MDSYS.rdf_link$ 
  WHERE model_id in (1, 2, 3, 4)
  GROUP BY p_value_id, start_node_id, canon_end_node_id, g_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');

11.27 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');

11.28 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');

11.29 SEM_APIS.DISABLE_CHANGE_TRACKING

書式

SEM_APIS.DISABLE_CHANGE_TRACKING(
     models_in IN SEM_MODELS);

説明

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

パラメータ

models_in

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

使用上のノート

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

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

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

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

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

11.30 SEM_APIS.DISABLE_INC_INFERENCE

書式

SEM_APIS.DISABLE_INC_INFERENCE(
     entailment_name IN VARCHAR2);

説明

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

パラメータ

entailment_name

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

使用上のノート

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

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

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

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

EXECUTE sem_apis.disable_inc_inference('rdfs_rix_family');

11.31 SEM_APIS.DISABLE_INMEMORY

書式

SEM_APIS.DISABLE_INMEMORY();

説明

セマンティク・ネットワークでのRDFデータのインメモリー移入を無効にします。

パラメータ

(ありません。)

使用上のノート

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

詳細は、「RDFによるOracle Database In-Memoryのサポート」を参照してください。

次の例では、セマンティク・ネットワークでのRDFデータのインメモリー移入を無効にします。

EXECUTE SEM_APIS.DISABLE_INMEMORY;

11.32 SEM_APIS.DROP_DATATYPE_INDEX

書式

SEM_APIS.DROP_DATATYPE_INDEX(
     datatype    IN VARCHAR2, 
     force_drop  IN BOOLEAN default FALSE);

説明

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

パラメータ

datatype

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

force_drop

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

使用上のノート

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

データ型索引の詳細は、「データ型索引の使用」を参照してください。

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

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

11.33 SEM_APIS.DROP_ENTAILMENT

書式

SEM_APIS.DROP_ENTAILMENT(
     entailment_name_in IN VARCHAR2, 
     named_g_in         IN SEM_GRAPHS DEFAULT NULL, 
     dop                IN INT DEFAULT 1);

説明

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

パラメータ

entailment_name_in

削除する伴意の名前。

named_g_in

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

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

dop

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

使用上のノート

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

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

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

EXECUTE sem_apis.drop_entailment('owltst_idx');

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

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

11.34 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ビュー・モデルを削除します。

パラメータ

model_name

削除するRDFビュー・モデルの名前。

pg_stag_tab

ステージング表の名前。(TRUNCATE=Tオプションも参照してください。)

options

OPTION_NAME=option_value形式を使用する索引作成のオプションを指定する文字列。サポートされているオプションは次のとおりです。

  • TRUNCATE=T (ステージング表は削除されずに、切り詰められます)

使用上のノート

詳細は、「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');

11.35 SEM_APIS.DROP_PG_RDFVIEW_INDEXES

書式

SEM_APIS.DROP_PG_RDFVIEW_INDEXES(
     pg_name         IN VARCHAR2, 

説明

SEM_APIS.BUILD_PG_RDFVIEW_INDEXESプロシージャを使用して作成された索引を削除します。

パラメータ

pg_name

索引に対するプロパティ・グラフの名前。

options

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

使用上のノート

詳細は、「Oracle Databaseに格納されたプロパティ・グラフ・データとのRDF統合」を参照してください。

次の例では、プロパティ・グラフG1に対する索引が削除されます。

EXECUTE SEM_APIS.DROP_PG_RDFVIEW_INDEXES('G1');

11.36 SEM_APIS.DROP_RDFVIEW_MODEL

書式

SEM_APIS.DROP_RDFVIEW_MODEL(
     model_name IN VARCHAR2, 
     options    IN VARCHAR2 DEFAULT NULL);

説明

RDFビューを削除します。

パラメータ

model_name

削除するRDFビューの名前。

options

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

使用上のノート

削除するRDFビューの所有者である必要があります。

RDFビューの詳細は、RDFビュー: RDFとしてのリレーショナル・データを参照してください。

次の例では、RDFビューを削除します。

BEGIN
  sem_apis.drop_rdfview_model(
    model_name => 'empdb_model'
  );
END;
/

11.37 SEM_APIS.DROP_RULEBASE

書式

SEM_APIS.DROP_RULEBASE(
     rulebase_name  IN VARCHAR2);

説明

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

パラメータ

rulebase_name

ルールベースの名前。

使用上のノート

このプロシージャは、指定されたルールベースを削除します。削除されたルールベースは、SEM_MATCH表関数のコールで使用できなくなります。ルールベースの詳細は、「推論: ルールとルールベース」を参照してください。

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

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

EXECUTE SEM_APIS.DROP_RULEBASE('family_rb');

11.38 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');

11.39 SEM_APIS.DROP_SEM_MODEL

書式

SEM_APIS.DROP_SEM_MODEL(
     model_name  IN VARCHAR2);

説明

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

パラメータ

model_name

モデルの名前。

使用上のノート

このプロシージャで、MDSYS.SEM_MODEL$ビュー(「モデルのメタデータ」を参照)からモデルが削除されます。

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

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

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

EXECUTE SEM_APIS.DROP_SEM_MODEL('articles');

11.40 SEM_APIS.DROP_SEM_NETWORK

書式

SEM_APIS.DROP_SEM_NETWORK(
     cascade  IN BOOLEAN DEFAULT FALSE);

説明

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

パラメータ

cascade

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

使用上のノート

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

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

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

EXECUTE SEM_APIS.DROP_SEM_NETWORK;

11.41 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;

11.42 SEM_APIS.DROP_USER_INFERENCE_OBJS

書式

SEM_APIS.DROP_USER_INFERENCE_OBJS(
     uname  IN VARCHAR2);

説明

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

パラメータ

uname

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

使用上のノート

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

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

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

EXECUTE SEM_APIS.DROP_USER_INFERENCE_OBJS('SCOTT');
 
PL/SQL procedure successfully completed.

11.43 SEM_APIS.DROP_VIRTUAL_MODEL

書式

SEM_APIS.DROP_VIRTUAL_MODEL(
     vm_name  IN VARCHAR2);

説明

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

パラメータ

vm_name

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

使用上のノート

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

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

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

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

EXECUTE sem_apis.drop_virtual_model('VM1');

11.44 SEM_APIS.ENABLE_CHANGE_TRACKING

書式

SEM_APIS.ENABLE_CHANGE_TRACKING(
     models_in IN SEM_MODELS);

説明

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

パラメータ

models_in

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

使用上のノート

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

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

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

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

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

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

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

11.45 SEM_APIS.ENABLE_INC_INFERENCE

書式

SEM_APIS.ENABLE_INC_INFERENCE(
     entailment_name IN VARCHAR2);

説明

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

パラメータ

entailment_name

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

使用上のノート

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

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

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

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

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

EXECUTE sem_apis.enable_inc_inference('rdfs_rix_family');

11.46 SEM_APIS.ENABLE_INMEMORY

書式

SEM_APIS.ENABLE_INMEMORY(
     populate_wait IN BOOLEAN);

説明

セマンティク・ネットワークのRDFデータをメモリーにロードします。

パラメータ

populate_wait

すべてのRDFデータがメモリーにロードされるまで終了を待機するかどうかを示すブール値。

  • true: すべてのRDFデータがメモリーにロードされるまで待機します。

  • false: RDFデータがメモリーにロードされるのを待機しません。

使用上のノート

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

詳細は、「RDFによるOracle Database In-Memoryのサポート」を参照してください。

セマンティク・ネットワークでのRDFデータのインメモリー移入を無効にするには、SEM_APIS.DISABLE_INMEMORYを使用します。

次の例では、RDFデータのインメモリー移入を有効にして、すべてのRDFデータがメモリーにロードされるまで終了を待機します。

EXECUTE SEM_APIS.ENABLE_INMEMORY(true);

11.47 SEM_APIS.ESCAPE_CLOB_TERM

書式

SEM_APIS.ESCAPE_CLOB_TERM(
     term        IN  CLOB CHARACTER SET ANY_CS, 
     utf_encode  IN NUMBER DEFAULT 1 
     ) RETURN CLOB CHARACTER SET val%CHARSET;

説明

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

パラメータ

term

エスケープするRDF語句。

utf_encode

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

使用上のノート

SEM_MATCH表関数のoptionsパラメータで、DO_UNESCAPEキーワードを使用する際の詳細は、「セマンティク・データに対する問合せでの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;

11.48 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;

11.49 SEM_APIS.ESCAPE_RDF_TERM

書式

SEM_APIS.ESCAPE_RDF_TERM(
     term       IN  VARCHAR2 CHARACTER SET ANY_CS, 
     utf_encode IN NUMBER DEFAULT 1 
     ) RETURN VARCHAR2 CHARACTER SET val%CHARSET;

説明

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

パラメータ

term

エスケープするRDF語句。

utf_encode

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

使用上のノート

SEM_MATCH表関数のoptionsパラメータで、DO_UNESCAPEキーワードを使用する際の詳細は、「セマンティク・データに対する問合せでの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;

11.50 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値が返されます。

パラメータ

val

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

utf_encode

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

使用上のノート

SEM_MATCH表関数のoptionsパラメータで、DO_UNESCAPEキーワードを使用する際の詳細は、「セマンティク・データに対する問合せでのSEM_MATCH表関数の使用」を参照してください。

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

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

11.51 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');

Description

指定された伴意の統計をエクスポートして、ユーザー統計表に格納します。

パラメータ

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

11.52 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');

11.53 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トリプルをステージング表にエクスポート(マテリアライズ)します。

パラメータ

model_name

エクスポートするRDFビューの名前。

rdf_table_owner

RDFビューから取得されたRDFトリプルが格納されるステージング表を所有するスキーマの名前。

rdf_table_name

RDFビューから取得されたRDFトリプルが格納されるステージング表の名前。

options

(今後使用予定)

使用上のノート

データベース・ビュー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;
/

11.54 SEM_APIS.GET_CHANGE_TRACKING_INFO

書式

SEM_APIS.GET_CHANGE_TRACKING_INFO(
     model_name           IN VARCHAR2, 
     enabled              OUT BOOLEAN, 
     tracking_start_time  OUT TIMESTAMP);

説明

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

パラメータ

model_name

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

enabled

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

timestamp

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

使用上のノート

model_nameの値は、MDSYS.SEM_MODEL$ビュー(「モデルのメタデータ」を参照)の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;
/

11.55 SEM_APIS.GET_INC_INF_INFO

書式

SEM_APIS.GET_INC_INF_INFO(
     entailment_name     IN VARCHAR2, 
     enabled             OUT BOOLEAN, 
     prev_inf_start_time OUT TIMESTAMP);

説明

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

パラメータ

entailment_name

伴意の名前。

enabled

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

timestamp

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

使用上のノート

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

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

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

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
/

11.56 SEM_APIS.GET_MODEL_ID

書式

SEM_APIS.GET_MODEL_ID(
     model_name  IN VARCHAR2 
     ) RETURN NUMBER;

説明

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

パラメータ

model_name

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

使用上のノート

model_nameの値は、MDSYS.SEM_MODEL$ビュー(「モデルのメタデータ」を参照)のMODEL_NAME列の値と一致している必要があります。

次の例では、モデルarticlesのモデルID番号を戻します。(この例は、 「例: 家系の情報」例1-110の抜粋です。)

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

11.57 SEM_APIS.GET_MODEL_NAME

書式

SEM_APIS.GET_MODEL_NAME(
     model_id  IN NUMBER 
     ) RETURN VARCHAR2;

説明

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

パラメータ

model_id

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

使用上のノート

model_idの値は、MDSYS.SEM_MODEL$ビュー(「モデルのメタデータ」を参照)のMODEL_ID列の値と一致している必要があります。

次の例では、IDの値に1を持つモデルのモデルID番号を戻します。(この例は、 「例: 家系の情報」例1-110の抜粋です。)

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

11.58 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-110の抜粋です。)

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

11.59 SEM_APIS.GETV$DATETIMETZVAL

書式

SEM_APIS.GETV$DATETIMETZVAL(
     value_type     IN VARCHAR2, 
     vname_prefix   IN VARCHAR2, 
     vname_suffix   IN VARCHAR2, 
     literal_type   IN VARCHAR2, 
     language_type  IN VARCHAR2, 
     ) RETURN NUMBER;

説明

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

パラメータ

value_type

RDF語句のタイプ。

vname_prefix

RDF語句の接頭辞の値。

vname_suffix

RDF語句の接尾辞の値。

literal_type

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

language_type

RDF語句の言語タイプ。

使用上のノート

パフォーマンスを向上させるには、このファンクションでファンクション・ベース索引を作成することを検討します。詳細は、「型付きリテラルを含む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$;

11.60 SEM_APIS.GETV$DATETZVAL

書式

SEM_APIS.GETV$DATETZVAL(
     value_type     IN VARCHAR2, 
     vname_prefix   IN VARCHAR2, 
     vname_suffix   IN VARCHAR2, 
     literal_type   IN VARCHAR2, 
     language_type  IN VARCHAR2, 
     ) RETURN TIMESTAMP WITH TIME ZONE;

説明

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

パラメータ

value_type

RDF語句のタイプ。

vname_prefix

RDF語句の接頭辞の値。

vname_suffix

RDF語句の接尾辞の値。

literal_type

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

language_type

RDF語句の言語タイプ。

使用上のノート

パフォーマンスを向上させるには、このファンクションでファンクション・ベース索引を作成することを検討します。詳細は、「型付きリテラルを含む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$;

11.61 SEM_APIS.GETV$GEOMETRYVAL

書式

SEM_APIS.GETV$GEOMETRYVAL(
     value_type    IN VARCHAR2, 
     vname_prefix  IN VARCHAR2, 
     vname_suffix  IN VARCHAR2, 
     literal_type  IN VARCHAR2, 
     language_type IN VARCHAR2, 
     long_value    IN CLOB, 
     srid          IN NUMBER, 
     ) RETURN SDO_GEOMETRY;

説明

ogc:wktLiteral型またはogc:gmlLiteral型のリテラルの入力SRIDによって識別される空間参照システム内のSDO_GEOMETRYオブジェクトを返し、他のすべてのRDF語句にNULL値を返します。

パラメータ

value_type

RDF語句のタイプ。

vname_prefix

RDF語句の接頭辞の値。

vname_suffix

RDF語句の接尾辞の値。

literal_type

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

language_type

RDF語句の言語タイプ。

long_value

ロング・リテラルのCLOB値。

srid

返されるSDO_GEOMETRYオブジェクトのターゲット座標系(空間参照システム)識別子。

使用上のノート

ogc:wktLiteral値およびogc:gmlLiteral値は、リテラル値自体(ソースSRIDとも呼ぶ)の空間参照システム情報をエンコードします。

sridパラメータ値(ターゲットSRID)がソースSRIDと異なる場合、新しく作成されたSDO_GEOMETRYオブジェクトは、返される前にターゲットSRIDに変換されます。

この操作は、パフォーマンスの観点からは高負荷である可能性があります。

SDO_GEOMETRY型の詳細(SRID値を含む)は、Oracle Spatial and Graph開発者ガイドを参照してください。

次の例では、MDSYS.RDF_VALUE$表内のすべてのジオメトリ・リテラルについて、WGS84(経度、緯度)空間参照システム(SRID 8307)のSDO_GEOMETRY値が返されます。

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

11.62 SEM_APIS.GETV$NUMERICVAL

書式

SEM_APIS.GETV$NUMERICVAL(
     value_type     IN VARCHAR2, 
     vname_prefix   IN VARCHAR2, 
     vname_suffix   IN VARCHAR2, 
     literal_type   IN VARCHAR2, 
     language_type  IN VARCHAR2, 
     ) RETURN NUMBER;

説明

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

パラメータ

value_type

RDF語句のタイプ。

vname_prefix

RDF語句の接頭辞の値。

vname_suffix

RDF語句の接尾辞の値。

literal_type

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

language_type

RDF語句の言語タイプ。

使用上のノート

パフォーマンスを向上させるには、このファンクションでファンクション・ベース索引を作成することを検討します。詳細は、「型付きリテラルを含むFILTER構成要素のファンクション・ベースの索引」を参照してください。

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

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

11.63 SEM_APIS.GETV$STRINGVAL

書式

SEM_APIS.GETV$STRINGVAL(
     value_type     IN VARCHAR2, 
     vname_prefix   IN VARCHAR2, 
     vname_suffix   IN VARCHAR2, 
     literal_type   IN VARCHAR2, 
     language_type  IN VARCHAR2, 
     ) RETURN TIMESTAMP WITH TIME ZONE;

説明

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

パラメータ

value_type

RDF語句のタイプ。

vname_prefix

RDF語句の接頭辞の値。

vname_suffix

RDF語句の接尾辞の値。

literal_type

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

language_type

RDF語句の言語タイプ。

使用上のノート

パフォーマンスを向上させるには、このファンクションでファンクション・ベース索引を作成することを検討します。詳細は、「型付きリテラルを含む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$;

11.64 SEM_APIS.GETV$TIMETZVAL

書式

SEM_APIS.GETV$TIMETZVAL(
     value_type     IN VARCHAR2, 
     vname_prefix   IN VARCHAR2, 
     vname_suffix   IN VARCHAR2, 
     literal_type   IN VARCHAR2, 
     language_type  IN VARCHAR2, 
     ) RETURN TIMESTAMP WITH TIME ZONE;

説明

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

パラメータ

value_type

RDF語句のタイプ。

vname_prefix

RDF語句の接頭辞の値。

vname_suffix

RDF語句の接尾辞の値。

literal_type

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

language_type

RDF語句の言語タイプ。

使用上のノート

パフォーマンスを向上させるには、このファンクションでファンクション・ベース索引を作成することを検討します。詳細は、「型付きリテラルを含む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$;

11.65 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');

11.66 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');

11.67 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列の値と一致している必要があります。

使用上のノート

この関数は、文字列値FALSETRUEまたはTRUE (EXACT)を戻します。

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

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

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

次の例では、文がデータベースのトリプルであるかどうかをチェックします。この場合、完全一致するトリプルが存在します。(この例は、 「例: 家系の情報」例1-110の抜粋です。)

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)

11.68 SEM_APIS.LOAD_INTO_STAGING_TABLE

書式

SEM_APIS.LOAD_INTO_STAGING_TABLE(
     stagong_table    IN VARCHAR2, 
     source_table     IN VARCHAR2, 
     input_format     IN VARCHAR2 DEFAULT NULL, 
     parallel         IN INTEGER DEFAULT NULL, 
     staging_table_owner IN VARCHAR2 DEFAULT NULL, 
     source_table_owner  IN VARCHAR DEFAULT NULL, 
     flags            IN VARCHAR DEFAULT NULL);

説明

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

パラメータ

staging_table

ステージング表の名前。

source_table

ソース外部表の名前。

input_format

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

parallel

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

staging_table_owner

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

source_table_owner

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

flags

(今後使用予定)

使用上のノート

詳細および例は、「外部表を使用して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;

11.69 SEM_APIS.LOOKUP_ENTAILMENT

書式

SEM_APIS.LOOKUP_ENTAILMENT (
     models     IN SEM_MODELS, 
     rulebases  IN SEM_RULEBASES 
     ) RETURN VARCHAR2;

Description

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

パラメータ

models

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

rulebases

1つ以上のルールベース名。そのデータ型はSEM_RULEBASESであり、TABLE OF VARCHAR2(25)として定義されます。ルールおよびルールベースの詳細は、「推論: ルールとルールベース」を参照してください。

使用上のノート

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

次の例では、familyモデルとRDFSおよびfamily_rbルールベースに基づく伴意を検出します。(この例は、「例: 家系の情報」例1-111からの抜粋です。)

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

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

11.70 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');

11.71 SEM_APIS.MIGRATE_DATA_TO_CURRENT

書式

SEM_APIS.MIGRATE_DATA_TO_CURRENT(
     options  IN VARCHAR2 DEFAULT NULL); 

説明

Oracle Database リリース12.2よりも前のセマンティク・データを、現在のOracle DatabaseリリースのRDFで使用するために必要な形式に移行させます。

パラメータ

options

INS_AS_SEL=Tを指定すると、移行はバルク・ロード操作で実行されます。その値が指定されていない場合、デフォルトで更新操作が実行されます。詳細は、「使用上のノート」を参照してください。

使用上のノート

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;

11.72 SEM_APIS.PRIVILEGE_ON_APP_TABLES

書式

SEM_APIS.PRIVILEGE_ON_APP_TABLES(

     command  IN VARCHAR2 DEFAULT 'GRANT',
     privilege     IN VARCHAR2 DEFAULT 'SELECT');

説明

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

パラメータ

command

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

privilege

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

使用上のノート

(ありません)

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

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

11.73 SEM_APIS.PURGE_UNUSED_VALUES

書式

SEM_APIS.PURGE_UNUSED_VALUES(
     flags  IN VARCHAR2 DEFAULT NULL); 

説明

無効なジオメトリ・リテラル値をセマンティク・ネットワークからパージします。

パラメータ

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

11.74 SEM_APIS.REFRESH_SEM_NETWORK_INDEX_INFO

書式

SEM_APIS.REFRESH_SEM_NETWORK_INDEX_INFO(
     options  IN VARCHAR2 DEFAULT NULL);

説明

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

パラメータ

options

(今後使用予定)

使用上のノート

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

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

EXECUTE sem_apis.refresh_sem_network_index_info;

11.75 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');

11.76 SEM_APIS.RENAME_ENTAILMENT

書式

SEM_APIS.RENAME_ENTAILMENT(
     old_name  IN VARCHAR2, 
     new_name  IN VARCHAR2);

説明

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

パラメータ

old_name

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

new_name

伴意の新規の名前。

使用上のノート

ありません。

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

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

11.77 SEM_APIS.RENAME_MODEL

書式

SEM_APIS.RENAME_MODEL(
     old_name  IN VARCHAR2, 
     new_name  IN VARCHAR2);

説明

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

パラメータ

old_name

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

new_name

モデルの新規の名前。

使用上のノート

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

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

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

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

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

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

11.78 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を返します。

パラメータ

vTab

VALUE_ID値に対する問合せを行う値表。(通常はMDSYS.RDF_VALUE$)

uri

RDF語句の接頭辞の値。

lt

検索を行う型リテラルのデータ型URI。囲むための山カッコ(‘<’ and ‘>’)は含めないでください。

lang

検索を行う言語タグ付きリテラルの言語タグ。

lval

検索を行うロング・リテラルのプレーン・リテラル部分。

使用上のノート

MDSYS.RDF_VALUE$表に格納されるRDF語句の要素に関する詳細は、「セマンティク・メタデータ表およびビュー」を参照してください。

「Oracle Databaseに格納されたプロパティ・グラフ・データとの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; 

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

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

11.81 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;
/

11.82 SEM_APIS.SWAP_NAMES

書式

SEM_APIS.SWAP_NAMES(
     model1  IN VARCHAR2, 
     model2  IN VARCHAR2);

説明

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

パラメータ

model1

モデルの名前。

model2

別のモデルの名前。

使用上のノート

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

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

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

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

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

11.83 SEM_APIS.UNESCAPE_CLOB_TERM

書式

SEM_APIS.UNESCAPE_CLOB_TERM(
     term  IN CLOB CHARACTER SET ANY_CS 
     ) RETURN CLOB CHARACTER SET val%CHARSET;

説明

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

パラメータ

term

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

使用上のノート

SEM_MATCH表関数のoptionsパラメータで、DO_UNESCAPEキーワードを使用する際の詳細は、「セマンティク・データに対する問合せでのSEM_MATCH表関数の使用」を参照してください。

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

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

11.84 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文字をアンエスケープして返します。

パラメータ

val

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

start_offset

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

end_offset

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

include_start

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

使用上のノート

SEM_MATCH表関数のoptionsパラメータで、DO_UNESCAPEキーワードを使用する際の詳細は、「セマンティク・データに対する問合せでのSEM_MATCH表関数の使用」を参照してください。

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

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

11.85 SEM_APIS.UNESCAPE_RDF_TERM

書式

SEM_APIS.UNESCAPE_RDF_TERM(
     term  IN VARCHAR2 CHARACTER SET ANY_CS 
     ) RETURN VARCHAR2 CHARACTER SET val%CHARSET;

説明

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

パラメータ

term

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

使用上のノート

SEM_MATCH表関数のoptionsパラメータで、DO_UNESCAPEキーワードを使用する際の詳細は、「セマンティク・データに対する問合せでのSEM_MATCH表関数の使用」を参照してください。

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

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

11.86 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文字をアンエスケープして返します。

パラメータ

val

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

utf_encode

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

使用上のノート

SEM_MATCH表関数のoptionsパラメータで、DO_UNESCAPEキーワードを使用する際の詳細は、「セマンティク・データに対する問合せでのSEM_MATCH表関数の使用」を参照してください。

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

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

11.87 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プロシージャを使用して作成された際に指定された名前です。

仮想モデル(「仮想モデル」を参照)またはRDFビュー(「RDFビュー」)は指定できません。

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_CLOB_ONLY=Tを指定すると、N-TripleまたはN-Quadドキュメントに対するLOAD操作の実行時に、長さが4000バイトより長いオブジェクト値を持つトリプルまたはクワッドのみがロードされます。

  • 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;
/

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

11.89 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$;

11.90 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;

11.91 SEM_APIS.VALUE_NAME_PREFIX

書式

SEM_APIS.VALUE_NAME_PREFIX (
     value_name  IN VARCHAR2, 
     value_type  IN VARCHAR2 
     ) RETURN VARCHAR2;

説明

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

パラメータ

value_name

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

value_type

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

使用上のノート

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

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

SELECT value_name FROM MDSYS.RDF_VALUE$
  WHERE vname_prefix = SEM_APIS.VALUE_NAME_PREFIX(
    'http://www.w3.org/1999/02/22-rdf-syntax-ns#type','UR');
 
VALUE_NAME
--------------------------------------------------------------------------------
http://www.w3.org/1999/02/22-rdf-syntax-ns#Alt
http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag
http://www.w3.org/1999/02/22-rdf-syntax-ns#List
http://www.w3.org/1999/02/22-rdf-syntax-ns#Property
http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq
http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement
http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral
http://www.w3.org/1999/02/22-rdf-syntax-ns#first
http://www.w3.org/1999/02/22-rdf-syntax-ns#nil
http://www.w3.org/1999/02/22-rdf-syntax-ns#object
http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate
http://www.w3.org/1999/02/22-rdf-syntax-ns#rest
http://www.w3.org/1999/02/22-rdf-syntax-ns#subject
http://www.w3.org/1999/02/22-rdf-syntax-ns#type
http://www.w3.org/1999/02/22-rdf-syntax-ns#value
 
15 rows selected.

11.92 SEM_APIS.VALUE_NAME_SUFFIX

書式

SEM_APIS.VALUE_NAME_SUFFIX (
     value_name  IN VARCHAR2, 
     value_type  IN VARCHAR2 
     ) RETURN VARCHAR2;

説明

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

パラメータ

value_name

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

value_type

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

使用上のノート

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

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

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