5.10 General Architecture for Text Engineering (GATE)の使用

General Architecture for Text Engineering (GATE)は、オープン・ソースの自然言語プロセッサおよび情報エクストラクタです。

GATEの詳細は、http://gate.ac.ukを参照してください。

GATEを使用すると、データベースに格納されているドキュメントのセマンティク索引付けを実行できます。エクストラクタ・タイプmdsys.gatenlp_extractorは、RDFCTX_EXTRACTORタイプのサブタイプとして定義されます。このエクストラクタ・タイプの実装は、構造化されていないドキュメントをTCP接続でGATEエンジンに送信し、対応する注釈を受信し、ユーザー指定のXMLスタイル・シートに従ってRDFに変換します。

情報抽出のリクエストはサーバー・ソケット実装によって処理されます(これは、GATEコンポーネントをインスタンス化し、事前に決定されているポートで抽出リクエストをリスニングします)。使用するmdsys.gatenlp_extractorタイプのすべてのインスタンスに対して、次の例に示すように、GATEリスナーのホストおよびポストがデータベースに記録されます。

begin 
  sem_rdfctx.set_extractor_param (
     param_key   => 'GATE_NLP_HOST',
     param_value => 'gateserver.example.com',
     param_desc  => 'Host for GATE NLP Listener ');
       
  sem_rdfctx.set_extractor_param (
     param_key   => 'GATE_NLP_PORT',
     param_value => '7687',
     param_desc  => 'Port for Gate NLP Listener');
end;

サーバー・ソケット・アプリケーションは構造化されていないドキュメントを受信し、目的のタイプの注釈で注釈セットを構築します。入力ドキュメントおよびいくつかのドメイン固有の特性からの関連フレーズなど、このセット内の各注釈は、追加の特性を含むようにカスタマイズできます。結果の注釈セットは(gate.corpora.DocumentXmlUtils JavaパッケージのannotationSetToXmlメソッドを使用して) XMLにシリアライズされ、ソケット・クライアントに戻されます。

OTNのコード・サンプルおよび例のページから、GATEリスナーのサンプルJava実装をダウンロードできます(このページの詳細は、「RDFグラフ管理の例(PL/SQLおよびJava)」を参照してください)。

データベース内のmdsys.gatenlp_extractor実装は、XMLでエンコードされる注釈セットを受信し、XMLスタイル・シートを使用してそれをRDF/XMLに変換します。タイプをインスタンス化する際に、mdsys.gatenlp_extractor実装で使用されるデフォルト・スタイル・シート(「GATEエクストラクタの出力で使用されるデフォルトのスタイル・シート」を参照)を、カスタム・スタイル・シートと置き換えることができます。

次の例では、カスタム・スタイル・シートを使用するエクストラクタ・ポリシーを作成して、GATEエクストラクタによって生成された注釈セットからRDFを生成しています。

begin
  sem_rdfctx.create_policy (policy_name => 'GATE_EXTR',
                            extractor   => mdsys.gatenlp_extractor(
      sys.XMLType('<?xml version="1.0"?> 
                 <xsl:stylesheet version="2.0" 
                    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
                   ..
                 </xsl:stylesheet>')));
end;
/