Skip to content

KnowledgeTreeプラグイン作成3?

KnowledgeTreeプラグイン作成3? published on KnowledgeTreeプラグイン作成3? へのコメントはまだありません

とりあえずプラグインが完成したので、ボチボチ解説していく。ソースはSubversionのリポジトリからどうぞ。
http://kazu.tv/svn/docdiff/trunk/

DocumentDiffActionには重要なメソッドが2つある。

  • do_main
  • do_viewComparison

文書を選択して、画面右のDiffをクリックした時に呼ばれるのが前者で、差分を取りたいバージョンをクリックした時に呼ばれるのが後者。

まずはdo_mainから。

Continue reading KnowledgeTreeプラグイン作成3?

プラグインとりあえず完成

プラグインとりあえず完成 published on プラグインとりあえず完成 へのコメントはまだありません

本当は解説をもう少し書くつもりだったけど、その前にプラグインが完成してしまった。まぁとりあえず動くレベルだけど。
プラグインの機能は現在のバージョンと過去のバージョンの差分を取るというもの。
ダウンロードは↓から。
docdiff.zip
たいした内容ではないけど、プラグインの解説も時間があるときに書いていく予定。
追記
最新版は以下のSubversionレポジトリに。
http://kazu.tv/svn/docdiff/trunk/

KnowledgeTreeのPHPでPEARやPECLを使う

KnowledgeTreeのPHPでPEARやPECLを使う published on KnowledgeTreeのPHPでPEARやPECLを使う へのコメントはまだありません

引き続きKnowledgeTreeのプラグインを作ってる。

PHPでプログラミングをしてると、PEARPECLのライブラリを使いたくなる事があるけど、ちょっとだけファイルの修正が必要だった。

KnowledgeTreeはPHPやMySQLなど、必要なのは全てパッケージに含まれていて、PHPはデフォルトだと/opt/ktdms/php以下にインストールされる。で、試しにPECLを実行してみると以下のようなエラーが出る。PEARも同様。

# /opt/ktdms/php/bin/pecl
/opt/ktdms/php/bin/pecl: line 28: /bitrock/knowledgetree/linux/build/output/php/bin/php: No such file or directory
/opt/ktdms/php/bin/pecl: line 28: exec: /bitrock/knowledgetree/linux/build/output/php/bin/php: cannot execute: No such file or directory

どうやらPHPをビルドした環境のパスが使われているらしい。

修正すべきファイルは以下の3つ

  • /opt/ktdms/php/bin/pecl
  • /opt/ktdms/php/lib/php/pearcmd.php
  • /opt/ktdms/php/lib/php/peclcmd.php

Continue reading KnowledgeTreeのPHPでPEARやPECLを使う

ドキュメントのインデックス生成

ドキュメントのインデックス生成 published on ドキュメントのインデックス生成 へのコメントはまだありません

最近KnowledgeTreeのプラグインを書いてるので、ソースコードを色々追っている。今回はインデックス生成の話。

KnowledgeTreeはご存じの通り全文検索が出来るのだが、その仕組みを大雑把に書くと

  1. Word、PDF等の異なる形式の文書からテキスト要素だけ抜き出し
  2. 抜き出したテキストに対してインデックスを生成

1.を行うのがExtractorと呼ばれるクラス。

/opt/ktdms/knowledgeTree/search2/indexing/extractorCore.inc.phpにDocumentExtractorという抽象クラスが定義されており、その孫クラスあたりにWordExtractor,PDFExtractorなどがある。それらの実体は/opt/ktdms/knowledgeTree/search2/indexing/extractorsの下にある。

各extractorはcatdocなどの外部コマンドを呼び出して、ファイルからテキスト情報を抽出しているらしい。

さて、それらのクラスがどうやって呼び出されるんだろう?と疑問に思ってたんだけど、mime_typesとmime_extractorsという2つのテーブルを発見。後者に先ほどのExtractorの情報が格納されていて、前者にはmime typeの一覧と、各Mime typeに対応するExtractorの情報が入ってる。

インデックス生成の仕組みについてはもう少し調べてから、もう少し詳しい説明を書こうと思う。

Class ‘KTOnDiskHashedStorageManager’ not found

Class ‘KTOnDiskHashedStorageManager’ not found published on Class ‘KTOnDiskHashedStorageManager’ not found へのコメントはまだありません

KnowledgeTree 3.5.4aでのバグ。
文書をダウンロードしようとするとエラーが。以下のエラーが。
For more information on the error click here:の横の!マークをクリックすると以下の詳細なメッセージが。

Fatal error: Class ‘KTOnDiskHashedStorageManager’ not found in /opt/ktdms/knowledgeTree/lib/storage/storagemanager.inc.php on line 194

本家フォーラムの書き込みに解決策あり。
/opt/ktdms/knowledgeTree/lib/storage/storagemanager.inc.php(Linux版の場合)の先頭の方に以下の行を付け加えればよい。

require_once(KT_DIR . '/lib/storage/ondiskhashedstoragemanager.inc.php');

KnowledgeTreeプラグイン作成2

KnowledgeTreeプラグイン作成2 published on KnowledgeTreeプラグイン作成2 へのコメントはまだありません

引き続きボチボチやってる。

プラグイン作成とかで難しいのは、そのプラットフォームの仕組みを理解する事。いったん仕組みが分かっちゃえば後は普通のプログラミング。KnowledgeTree (KT)の場合はPHP。

今回はプラグインに関連するテーブルの簡単な解説。

Continue reading KnowledgeTreeプラグイン作成2

KnowledgeTree日本語フォーラム

KnowledgeTree日本語フォーラム published on KnowledgeTree日本語フォーラム へのコメントはまだありません

最近KnowledgeTree関連の動きが活発な気がする。
こないだ紹介したブログ、実は知り合いのブログだった事が判明w
しかもその彼が日本語フォーラムを立ち上げた。とりあえず自分も情報提供をしていこうかなぁと思う。

KnowledgeTree日本語サポート開始

KnowledgeTree日本語サポート開始 published on KnowledgeTree日本語サポート開始 へのコメントはまだありません

最近KnowledgeTreeというドキュメント管理システムを触り始めてるってのは最近のエントリで書いたが、昨日のCNETの記事で、KnowledgeTreeの日本語サポートが始まったらしい。
で、KnowledgeTreeの日本語ページも出来ていたが、かなりしょぼい…機械翻訳ではないと思うけど、日本語を勉強しているアメリカ人学生がアルバイトで翻訳したとかそんな感じ?

あなたのビジネスにシンプルで使いやすい文書管理のソリュージョン管理の悪

(原文ママ)
悪って何なんだよ…
日本語サポートはexxaxonとかいう会社がやっているらしい。

Continue reading KnowledgeTree日本語サポート開始

KnowledgeTreeプラグイン作成1

KnowledgeTreeプラグイン作成1 published on KnowledgeTreeプラグイン作成1 へのコメントはまだありません

KnowledgeTreeを触り始めた。バージョン間の差分が取れればいいなぁと思ってプラグインを書いてみる事にした。

その後気づいたけど、同様の機能は有償版には含まれているらしいね。ただ、KnowledgeTreeの日本語の情報って少ないし、プラグインの情報なんてもっと少ないので、せっかくだし勉強がてらプラグインを書いてその情報を載っけていこうかと。これからプラグイン書こうという人の参考になればいいかな。

今回作るのは「Action」というもの。プラグインには色んな種類があるけど(英語だけどこの辺を参考に)、Actionは文書やフォルダに対する何らかの処理を行うもの。文書を選択すると右の方のメニューで「Archive」とか「Copy」とかが表示されているけど、それらがAction。

Actionの作り方は同じく英語ページのここに載ってるんだけど、正直言ってこれだけじゃよく分からなくて、既存のプラグインのソースを見ながら見よう見まねで作り始めた。

とりあえず2つクラスを作る必要がある必要らしい。

  • KTPluginクラスの子クラス
  • KTDocumentActionクラスの子クラス

Continue reading KnowledgeTreeプラグイン作成1

KnowledgeTree

KnowledgeTree published on KnowledgeTree へのコメントはまだありません

文書管理をしたくていろんなのを試してる。今回はKnowledgeTreeを触ってみた。
とりあえずLinuxのパッケージをインストールして、日本語言語ファイルみたいなのを入れたら普通に使えた。日本語での検索も出来るのでいい感じ。
現状の問題点

  • バージョン間の差分が取れない(プラグインとかある?)
  • 日本語ファイル名が化けた時があった(再現テスト中)
  • それと関連するかもしれないけど、こんな問題が本家のBTSにあった