HOME > さらに使いこなす > ATOKダイレクト API > ATOK 2008 for Windows向け(プラグイン作成)

ATOKダイレクト API プラグイン作成手順(ATOK 2008向け)

共通事項

Perl 、Ruby を用いてプラグインを作成するには

  • PerlまたはRubyで作成したスクリプトファイル(UTF-8 で記述)
  • プラグインの名前などを記述する、XML形式の情報ファイル

を用意する必要があります。
ATOK ダイレクトで検索を実行した場合、入力中の文字列をプラグインで受け取ることができます。
スクリプトプラグインでは、入力中の文字列に対応する候補情報(候補表記、コメント、ツールチップ候補とその種類)を生成し、出力することができます。


TOPへ戻る

Perlスクリプトプラグイン

Perlで記述したプラグインを作成する場合、そのスクリプトファイルに記述しなければならない情報は、以下の通りです。

ソース記述例

#################################################
#
# Perlモジュール用のプラグインインターフェイス
#
# ※このテキストは必ずUTF-8で記述すること
#   扱う文字列は全てUTF-8前提であるとする
#
#################################################

package Atok_plugin;

#################################################
# 宣言

use strict;
use utf8;

#################################################
# 取得処理を実行する
# ・設定した候補を返すことが可能
# ・最大で100個の候補を返すことができる
# ・候補には、
#   1.表記
#   2.コメント
#   3.ツールチップ(確定文字列かURLジャンプ文字列)
#   を設定できる
# ・何もセットしなかった場合、処理結果は何もないと判断される
# ・引数で渡される情報に含まれる文字列は、全てUTF8フラグが付いている
# ・返す情報に含める文字列は必ずUTF8にする必要がある
#   (UTF8フラグは付いていなくても問題ない)

sub run_process
{
 my( $a_request_data ) = @_;

 my %result_data;

 my @candidate_array;

 push( @candidate_array , { 'hyoki'            => "候補1" ,
                            'comment'          => "コメント1" ,
                            'alternative'      => "確定文字1" ,
                            'alternative_type' => 'definite_string' } );

 $result_data{ 'candidate' } = \@candidate_array;

 return( %result_data );
}

#################################################

1; # 重要:モジュールは必ず真と解釈される値を返さなければならない

※「Atok_plugin」パッケージ内に「run_process」を実装する必要があります。

サブルーチン、パッケージ、引数

サブルーチン名
run_process
パッケージ名
Atok_plugin

引数

「run_process」の引数で受け取るオブジェクトはハッシュであり、その構造は以下の通りです。『文字列』は全てUTF-8 で通知され、UTF8フラグが付いています。

キー 種類
composition_string 文字列 入力中の文字列

処理結果の格納

プラグインの処理結果として返すオブジェクトはハッシュであり、その構造は以下の通りです。

キー 種類
candidate 配列 候補として設定する
内容を格納します。

「candidate」で表される配列の個々の内容はハッシュであり、その構造は以下の通りです。『文字列』は全てUTF-8 で指定しますが、UTF8 フラグはなくてもかまいません。

キー 種類
hyoki 文字列 候補文字列
  • 最大100文字
comment 文字列 候補に対応するコメント文字列
  • 最大1024文字
alternative 文字列 候補に対応するツールチップ文字列
  • 最大512 文字
alternative_type 文字列 候補に対応するツールチップの種類を表す文字列。以下のいずれかを設定します。
  • definite_string
    →確定文字列
  • url_jump_string
    →URL 文字列

※文字列が最大値を超える場合、超過した文字列は破棄します。
※URL文字列については、http:// から始まらない場合や最大値を超える場合は、ツールチップ文字列は使用しません。

戻り値

処理結果を格納して返すオブジェクト。(結果なしの場合は空のオブジェクトを返します)


TOPへ戻る

Rubyスクリプトプラグイン

Ruby で記述したプラグインを作成する場合、そのスクリプトファイルに記述しなければならない情報は、以下の通りです。

ソース記述例

#! /usr/bin/ruby -Ku

#################################################
#
# ATOKダイレクトRubyスクリプトモジュールインターフェイス
#
# ※このテキストは必ずUTF-8で記述すること
# 扱う文字列は全てUTF-8前提であるとする
#
#################################################


module Atok_plugin

  #################################################
  # 取得処理を実行する
  # ・設定した候補を返すことが可能
  #   ・最大で100個の候補を返すことができる
  #   ・候補には、
  #     1.表記
  #     2.コメント
  #     3.ツールチップ(確定文字列かURLジャンプ文字列)
  #     を設定できる
  # ・何もセットしなかった場合、処理結果は何もないと判断される
  # ・引数で渡される情報に含まれる文字列は、全てUTF8である
  # ・返す情報に含める文字列は必ずUTF-8にする必要がある

  def run_process( a_request_data )

    result_data = Hash.new

    candidate_array = Array.new

    candidate_array.push( { 'hyoki' => "候補1" ,
                            'comment' => "コメント1" ,
                            'alternative' => "確定文字1" ,
                            'alternative_type' => "definite_string" } )

    result_data[ 'candidate' ] = candidate_array

    result_data

  end

  #################################################

end

※「Atok_plugin」パッケージ内に「run_process」を実装する必要があります。

メソッド、モジュール、引数

メソッド名
run_process
モジュール名
Atok_plugin

引数

「run_process 」の引数で受け取るオブジェクトはHash であり、その構造は以下の通りです。 (『String 』は全てUTF-8 で通知されます)

キー 種類
composition_string String 入力中の文字列

処理結果の格納

プラグインの処理結果として返すオブジェクトはHashであり、その構造は以下の通りです。

キー 種類
candidate Array 候補として設定する
内容を格納します。

「candidate」で表される配列の個々の内容はHashであり、その構造は以下の通りです。 『String』は全てUTF-8 で指定する必要があります。

キー 種類
hyoki String 候補文字列
  • 最大100文字
comment String 候補に対応するコメント文字列
  • 最大1024文字
alternative String 候補に対応するツールチップ文字列
  • 最大512 文字
alternative_type String 候補に対応するツールチップの種類を表す文字列。以下のいずれかを設定します。
  • definite_string
    →確定文字列
  • url_jump_string
    →URL 文字列

※文字列が最大値を超える場合、超過した文字列は破棄します。
※URL文字列については、http:// から始まらない場合や最大値を超える場合は、ツールチップ文字列は使用しません。

戻り値

処理結果を格納して返すオブジェクト。(結果なしの場合は空のオブジェクトを返します)


TOPへ戻る

情報ファイル

プラグインの情報(プラグインの名前、解説、コピーライト、およびバージョン)を記述するXML ファイルを準備します。
情報ファイルのファイル名は、スクリプトファイル名と同名のXMLファイル(スクリプトファイルの拡張子をのぞいた部分+拡張子XML のファイル)となります。

記述例

スクリプトファイルがplugin_sample.rb の場合、情報ファイル名はplugin_sample.xml。

<?xml version="1.0" encoding="UTF-8" ?>

<plugin_info>
  <name>プラグインの名前</name>
  <description>プラグインの解説</description>
  <copyright>プラグインのコピーライト</copyright>

  <major_version>1</major_version>
  <minor_version>0</minor_version>
</plugin_info>

タグの解説

情報ファイルのタグは、以下の内容を示します。

plugin_info
root タグ
name
プラグインの名前 ※最大64 文字
description
プラグインの解説 ※最大64 文字
copyright
プラグインのコピーライト ※最大64 文字
major_version
プラグインのメジャーバージョン ※0 〜 100 (半角)
minor_version
プラグインのマイナーバージョン ※0 〜 100 (半角)

※文字列が最大値を超える場合、超過した文字列は破棄します。

TOPへ戻る

Update:2015.02.06