9.47 OPG_APIS.PR

形式

OPG_APIS.PR(
     edge_tab_name   IN VARCHAR2,
     d               IN NUMBER DEFAULT 0.85,
     num_iterations  IN NUMBER DEFAULT 10,
     convergence     IN NUMBER DEFAULT 0.1,
     dop             IN INTEGER DEFAULT 4,
     wt_node_pr      IN OUT VARCHAR2,
     wt_node_nextpr  IN OUT VARCHAR2,
     wt_edge_tab_deg IN OUT VARCHAR2,
     wt_delta        IN OUT VARCHAR2,
     tablespace      IN VARCHAR2 DEFAULT NULL,
     options         IN VARCHAR2 DEFAULT NULL,
     num_vertices    OUT NUMBER);

説明

ページ・ランクの計算の準備を行います。

パラメータ

edge_tab_name

プロパティ・グラフ・エッジ表の名前。

d

減衰係数。

num_iterations

ページ・ランク値の計算の反復回数。

convergence

しきい値。現在の反復のページ・ランク値と次の反復のページ・ランク値の違いがこのしきい値よりも小さい場合、計算は停止します。

dop

操作の並列度。

wt_node_pr

頂点のページ・ランク値を保持する作業表の名前。

wt_node_pr

頂点のページ・ランク値を保持する作業表の名前。

wt_node_next_pr

次の反復の頂点のページ・ランク値を保持する作業表の名前。

wt_edge_tab_deg

エッジとノードの並列度情報を保持する作業表の名前。

wt_delta

いくつかの特別な頂点に関する情報を保持する作業表の名前。

tablespace

すべてのグラフ・データおよび索引データを保持する表領域の名前。

options

操作に対する追加の設定。次の値が1つ以上含まれる(カンマ区切り)オプションの文字列。

  • CREATE_UNDIRECTED=T

  • REUSE_UNDIRECTED_TAB=T

num_vertices

ページ・ランクの計算により処理される頂点の数。

使用上のノート

プロパティ・グラフ・エッジ表はデータベースに存在している必要があり、OPG_APIS.PR_PREPプロシージャはコール済である必要があります。

次の例は、準備を実行してから、mypgという名前のプロパティ・グラフの頂点のページ・ランク値を計算します。

set serveroutput on
DECLARE
    wt_pr  varchar2(2000); -- name of the table to hold PR value of the current iteration
    wt_npr varchar2(2000); -- name of the table to hold PR value for the next iteration
    wt3    varchar2(2000); 
    wt4    varchar2(2000); 
    wt5    varchar2(2000); 
    n_vertices number;
BEGIN
    wt_pr := 'mypgPR';
    opg_apis.pr_prep('mypgGE$', wt_pr, wt_npr, wt3, wt4, null);
    dbms_output.put_line('Working table names  ' || wt_pr 
       || ', wt_npr ' || wt_npr || ', wt3 ' || wt3 || ', wt4 '|| wt4);
    opg_apis.pr('mypgGE$', 0.85, 10, 0.01, 4, wt_pr, wt_npr, wt3, wt4, 'SYSAUX', null, n_vertices)
;
END;
/

出力は、次のようになります。

Working table names  "MYPGPR", wt_npr "MYPGGE$$TWPRX277", wt3
"MYPGGE$$TWPRE277", wt4 "MYPGGE$$TWPRD277"

計算されたページ・ランク値は、次の定義およびデータを含むmypgpr表に格納されます。

SQL> desc mypgpr;
 Name					   Null?    Type
 ----------------------------------------- -------- ----------------------------
 NODE					   NOT NULL NUMBER
 PR						            NUMBER
 C						              NUMBER

SQL> select node, pr from mypgpr;

      NODE	   PR
---------- ----------
       101	.1925
       201	.2775
       102	.1925
       104  .74383125
       105  .313625
       103	.1925
       100	.15
       200	.15