Link

C-APIへのアクセス

C-API

現在、C-APIは公開されていませんが、at your own riskにて利用することは可能です。 GETAssocにおける連想計算ライブラリは、libnwam.a (もしくはlibnwam.so) です。 libnwamが提供するいくつかの機能はGETA3.2uのライブラリにある同名のものと同一の機能を提供しますが、同じ名前でも機能が異なるものも少なくないため、全体としての互換性はありません。また、仕様は研究の進展に伴い、変更されることがあります。

定義が変更されたデータ型

struct syminfo

メンバvが追加されました.これは、assvにベクトルを渡すためのものです。 wshを呼出す場合にはこのメンバを明示的にNULLにセットしなければなりません。

動作が異なる関数

wam_open

wam_initを呼ばない、もしくはwam_initにNULLを渡した場合、wam_openはこれまでより一つ余分に引数を受け取り、それを$GETAROOTとして扱います。この余分の引数にNULLを渡すと、handleはパスとして扱われます。絶対パス、相対パスのいずれも指定可能です。

引数が異なるが動作はほぼ同じ関数

wam_total_elem_num, wam_total_freq_sum, wsh

wam_total_elem_numおよびwam_total_freq_sumは、GETA3.2uでも第3引数はdon’t careでしたが、GETAssocでは、第3引数が省略可能になりました。wshは、ユーザ利用のための引数(cookie)が追加されました。ブール式や全文一致の問い合わせ式等もこのクッキーを利用して渡します。

大幅に変更された関数

bex_wsh, csb

ブール式のデータ構造が、bex_t から bxue_t に変更になりました。csbは、HBC(階層的ベイジアンクラスタリング)しかできなくなりました。

GETA3.2uにしかない関数

GETAssocにしかない関数

assv, fssx, fss_wsh, wam_update, wam_rename, wam_drop

assvは、wshの高機能版で、任意のベクトルを受け取ることができます。fssxは全文一致検索、fss_wshは全文一致検索で制約をかけた上での連想計算機能です。 wam_updateは、既存もしくは新規のWAMに記事を追加したり、既存のWAMから記事を削除します。wam_rename, wam_dropはそれぞれWAMの名前変更、削除を行います。 これらは、非分散版では、ディレクトリの名前変更、削除とほぼ同じです。

gss3

gss3を処理する関数群はライブラリ化されておらず、getassocに直接組込まれています。コードの大部分は、gss3.q(またはgss3.c)に集約されていますから切り出しは可能ですが、libnwamもしくはGETA32uに強く依存していることに注意してください。

参考になるコード

xgetassoc.c、gss3.qが参考になるでしょう。