5.1 ドキュメントのセマンティク索引付け用の情報エクストラクタ
情報エクストラクタは、通常、オントロジで支援された自然言語処理エンジンを使用して、構造化されていないドキュメントを処理し、そこから意味のある情報を抽出します。
ドキュメントから抽出される情報の品質と完全性は、エクストラクタごとに異なります。一部のエクストラクタは単にエンティティを識別するのみですが(ドキュメントに基づく人、組織および地理的場所の名前など)、他のエクストラクタは識別したエンティティ間の関係やそれらのエンティティの追加記述の識別を試みます。ドキュメントから抽出された情報がセマンティク索引として管理されている場合、大規模なセットから特定のドキュメントを検索できます。
情報エクストラクタを使用して、リレーショナル表の列に格納されたドキュメントに対してセマンティク索引を作成できます。拡張可能なフレームワークによって、データベースからアクセス可能なサードパーティの情報エクストラクタをデータベースにプラグインできます。エクストラクタ用に作成されたオブジェクト型は、抽出ロジックをカプセル化し、エクストラクタを構成してRDF/XML形式の特定のドキュメントから抽出された情報を受信するメソッドを持ちます。
抽象タイプMDSYS.RDFCTX_EXTRACTORは、すべての情報エクストラクタに共通のインタフェースを定義します。この抽象タイプの実装は、特定の情報エクストラクタと対話して特定のドキュメントのRDF/XMLを生成します。このタイプの実装は、データベース・アプリケーションとして使用できるか、ネットワークにインストールされている(Webサービス・コールアウトを使用してアクセスされる)サードパーティの情報エクストラクタにアクセスできます。例5-1に、RDFCTX_EXTRACTOR抽象タイプの定義を示します。
例5-1 RDFCTX_EXTRACTOR抽象タイプの定義
create or replace type rdfctx_extractor authid current_user as object ( extr_type VARCHAR2(32), member function getDescription return VARCHAR2, member function rdfReturnType return VARCHAR2, member function getContext(attribute VARCHAR2) return VARCHAR2, member procedure startDriver, member function extractRDF(document CLOB, docId VARCHAR2) return CLOB, member function extractRdf(document CLOB, docId VARCHAR2, params VARCHAR2, options VARCHAR2 default NULL) return CLOB member function batchExtractRdf(docCursor SYS_REFCURSOR, extracted_info_table VARCHAR2, params VARCHAR2, partition_name VARCHAR2 default NULL, docId VARCHAR2 default NULL, preferences SYS.XMLType default NULL, options VARCHAR2 default NULL) return CLOB, member procedure closeDriver ) not instantiable not final /
RDFCTX_EXTRACTORタイプの特定の実装は、extr_type
属性にこのエクストラクタ・タイプの識別子を設定し、getDescription
メソッドを使用してこのエクストラクタ・タイプの短い説明を戻します。この抽象タイプのすべての実装で、抽出情報がRDFトリプルとして戻されます。現在のリリースでは、RDFトリプルはRDF/XML形式でシリアライズされることが期待されるため、rdfReturnType
メソッドは'RDF/XML
'を戻す必要があります。
エクストラクタ・タイプの実装は、extractRDF
メソッドを使用して抽出ロジックをカプセル化し(おそらく独自のインタフェースを使用して外部情報エクストラクタを起動することによって)、抽出情報をRDF/XML形式で戻します。サード・パーティのエクストラクタがいくつかの独自のXMLスキーマを使用して抽出情報を取得する場合は、同等のRDF/XMLを生成するためにXMLスタイル・シートを使用できます。startDriver
およびcloseDriver
メソッドは、情報エクストラクタに関係するハウスキーピング操作を実行できます。オプションのparams
パラメータを使用すると、エクストラクタが必要な抽出タイプ(たとえば、目的の抽出品質)に関する追加情報を取得できます。
必要に応じて、batchExtractRdf
メンバー関数の実装を提供することによって、エクストラクタ・タイプの実装でバッチ・インタフェースをサポートする場合があります。この関数は入力パラメータdocCursor
を介してカーソルを受け入れ、通常はそのカーソルを使用して各ドキュメントを取得し、ドキュメントから情報を抽出し、その抽出情報をextracted_info_table
表のpartition_name
パーティションで識別される指定されたパーティションに挿入します。preferences
パラメータは、ポリシーに関連付けられたプリファレンス値の取得に使用されます(「外部ドキュメントの索引付け」およびSEM_RDFCTX.CREATE_POLICYのリファレンスの項を参照してください)。
getContext
メンバー関数は属性名を受け入れ、その属性の値を戻します。現在、この関数は、バッチ・インタフェースをサポートしているエクストラクタに対してのみ使用されます。属性名と、それに対応する可能な戻り値を次に示します。
-
BATCH_SUPPORT
属性: 戻り値は、エクストラクタがバッチ・インタフェースをサポートするかどうかに応じて、YES
またはNO
です。 -
DBUSER
属性: 戻り値は、カーソル(docCursor
パラメータによって識別される)から行を取得するためにデータベースに接続し、表extracted_info_table
に書き込むデータベース・ユーザーの名前です。
この情報は、索引付けされる表および表extracted_info_table
に適切な権限を付与するために使用されます。
startDriver
およびcloseDriver
メソッドは、情報エクストラクタに関係するハウスキーピング操作を実行できます。
General Architecture for Text Engineering (GATE)エンジンのエクストラクタ・タイプは、RDFCTX_EXTRACTORタイプのサブタイプとして定義されます。このエクストラクタ・タイプの実装は、TCP接続を介してGATEエンジンにドキュメントを送信し、エンジンによって抽出された注釈をXML形式で受信して、その独自のXMLドキュメントをRDF/XMLドキュメントに変換します。Oracle DatabaseでGATEエンジンを使用する構成の詳細は、「General Architecture for Text Engineering (GATE)の使用」を参照してください。新しい情報エクストラクタを作成する例は、「新たなエクストラクタ・タイプの作成」を参照してください。
Webサービスとしてデプロイされる情報エクストラクタは、RDFCTX_WS_EXTRACTORタイプ(RDFCTX_EXTRACTORタイプのサブタイプ)を拡張することでデータベースから起動できます。RDFCTX_WS_EXTRACTORタイプはextractRDF
メソッドでWebサービス・コールアウトをカプセル化します(関連する属性値をタイプ・コンストラクタで設定することによって、ネットワークベースのエクストラクタの特定の実装でこの実装を再利用できます)。
Thomson Reuters Calaisは、Webサービス・コールアウトを使用してアクセスできるネットワーク・ベースの情報エクストラクタの一例です。RDFCTX_WS_EXTRACTORタイプのサブタイプであるCALAIS_EXTRACTORタイプは、Calais抽出ロジックをカプセル化し、それを使用してドキュメントにセマンティクに索引付けできます。CALAIS_EXTRACTORタイプをセマンティク索引の作成に使用するには、「CALAIS_EXTRACTORタイプの構成」の説明のとおりに、事前にこのタイプをデータベース・インスタンスに対して構成する必要があります。
親トピック: ドキュメントのセマンティク索引付け