15.49 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, network_owner IN VARCHAR2 DEFAULT NULL, network_name IN VARCHAR2 DEFAULT NULL);
説明
指定されたセマンティク・モデルや伴意を含む仮想モデルを作成します。伴意は、次のいずれかの方法で指定できます。
-
1つ以上のモデルおよび1つ以上のルールベースを指定する。この場合、仮想モデルは、指定されたモデルおよびルールベースの正確な組合せに対応する単一の伴意を使用して作成されます。このような伴意が存在しない場合はエラーが発生します。
-
0 (ゼロ)以上のモデルおよび1つ以上の伴意を指定する。この場合、モデルと伴意の関係にかかわらず、モデルと伴意の内容が組み合されます。
最初のメソッドを使用すると、確実に適切で完全なデータセットになり、2つ目のメソッドを使用すると、適切で完全な制約が緩和され、より柔軟になります。
パラメータ
- vm_name
-
作成する仮想モデルの名前。
- models
-
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
パラメータも指定することはできません。 - network_owner
-
セマンティク・ネットワークの所有者。(表1-2を参照してください。)
- network_name
-
セマンティク・ネットワークの名前。(表1-2を参照してください。)
使用に関するノート
仮想モデルの説明(使用方法の情報を含む)は、「仮想モデル」を参照してください。
指定されたセマンティク・モデルとルールベースの組合せごとに、伴意が存在する必要があります。
仮想モデルを作成するには、(A)指定された各モデルおよび対応する伴意の所有者、または(B) DBA権限を持つユーザーである必要があります。
仮想モデルを置き換えるには、仮想モデルの所有者またはDBA権限を持つユーザーである必要があります。
オプションINMEMORY=T
は、適切なライセンスがある場合にのみ使用してください。
このプロシージャは、次の書式の名前を持つビューを作成します。
-
SEMV_vm_name。これは、各モデルおよび伴意内のトリプルのUNION ALLに対応します。このビューには重複が含まれることがあります。
-
SEMU_vm_nameは、各モデルおよび伴意内のトリプルのUNIONに対応します。このビューには重複は含まれません(このため、SEMUのUはunique(一意)を表します)。
モデルm1、m2、m3から作成された仮想モデルvm1の「仮想モデル」の例を、モデルm1、m2、m3用にOWLPrimeルールベースを使用して作成した伴意で使用するために、このプロシージャは次の2つのビューを作成します(m1、m2、m3およびOWLPRIME伴意が内部のmodel_id値1、2、3、4を保持すると想定しています)。
CREATE VIEW RDFUSER.NET1#.SEMV_VM1 AS SELECT p_value_id, start_node_id, canon_end_node_id, end_node_id, g_id, model_id FROM RDFUSER.NET1#.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 RDFUSER.NET1#.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 RDFUSER.NET1#.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 RDFUSER.NET1#.rdf_link$ partition (MODEL_4); CREATE VIEW RDFUSER.NET1#.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 RDFUSER.NET1#.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権限を持っている必要があります。
セマンティク・ネットワークのタイプおよびオプションの詳細は、「RDFネットワーク」を参照してください。
例
次の例では、仮想モデルVM1
を作成します。
EXECUTE sem_apis.create_virtual_model('VM1', sem_models('model_1', 'model_2'), sem_rulebases('OWLPRIME'), network_owner=>'RDFUSER', network_name=>'NET1');
次の例では、緩和された伴意の指定を使用して、仮想モデルVM1
を作成します。
EXECUTE sem_apis.create_virtual_model('VM1', models=>sem_models('model_1', 'model_2'), entailments=>sem_entailments('entailment1','entailment2'), network_owner=>'RDFUSER', network_name=>'NET1');
次の例では、REPLACE=T
オプションを使用して、仮想モデルVM1
を効果的に再定義します。
EXECUTE sem_apis.create_virtual_model('VM1', models=>sem_models('model_1', 'model_2'), entailments=>sem_entailments('entailment1'), options=>'REPLACE=T', network_owner=>'RDFUSER', network_name=>'NET1');
親トピック: SEM_APISパッケージのサブプログラム