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タイプの構成」の説明のとおりに、事前にこのタイプをデータベース・インスタンスに対して構成する必要があります。