KDEを入れたらまずnepomukを止める!、なんて人もいるやも知れませんが、それはちょっと悲しいぜ。
nepomukを使うことでKDEはタグとかレーティングとかを手に入れることができます。しかもそれが、dolphinなんかでそのまま使えてしまう。
ただ、いまいち対応したソフトが少ないなーと言う気もします。ざっと見たところではdolphin、gwenviewとかでしょうか。ただ、やってることはKIO経由なので実は対応しているしていないに限らずKDEのアプリケーションなら全体的に使えんこともない、と言うことにもなりますな。
てなわけで、ざざっとコード的な話とか。
タグとかを付ける話から。
nepomuk自体は色々複雑なしくみだったりしよるんやも知れませんが、ファイルなんかに追加情報を付けるのは至って簡単です。
#include <KDE/Nepomuk/Resource> #include <KDE/Nepomuk/Tag> { Nepomuk::Resource r("/file/name.txt"); Nepomuk::Tag tag("ぶにぶに"); r.addTag(tag); }
とまあ、こんな感じ。簡単です。タグ以外にもsetAnnotationやらsetRatingなんてのがあります。簡単ですよね?。
次。読み出し。
これも要は書き出しと同じことです。
#include <KDE/Nepomuk/Resource> #include <KDE/Nepomuk/Tag> { Nepomuk::Resource r("/file/name.txt"); QListIterator<Nepomuk::Tag> tags(r.tags()); while(tags.hasNext()) qDebug() << tags.next().genericLabel(); }
とまあ、こんな感じ。ファイルが特定されているのであればこうやって読み出したり書き込んだりできます。
ではファイルが特定されていない場合はどうなのか。
例えば「ぶにぶに」タグが付いているファイルどこにあるの?と言うのを探し出したいとか言う場合。ぶっちゃけこの用途が最も多いと思うのですが。
このページの「Query Examples」ってとこにいろいろと細かく書いてあるのですが、これだけ見ると「え?ややこしくね?」と言う話にもなろうかと。だがしかし、最後の方を見ていただければ。要はKIO経由なわけでございます。
実際にdolphin(konquerorでもいいよ)で「nepomuksearch:」から始まるURLを叩いてただければ同じことができるわけです。Nepomuk::Queryでそれら検索用のクエリを作って.toSearchUrl()で検索クエリを含むURLを出せば…と言う話。
だから最初に言った「KIO経由なのでKDEアプリケーションなら…」と言う話になるわけです。
試しにkwriteなんかのファイルを開くダイアログでファイル名なんかに「nepomuksearch://?query=hasTag:ぶにぶに」なんて叩いてやると、実はちゃんと「ぶにぶに」タグの付いたファイルリストが出ます。
…っと、query=でやるのは時代遅れで最近はsparqlっつーSQLみたいなのを使うのが主流のようですが。「nepomuksearch:/?sparql=select ?r where {?r nao:hasTag <nepomuk:/ぶにぶに>}」とかになるようです。
とまあ、意外に使うのは簡単だと思います。もしもKDEアプリケーションを作る予定があるのであれば、ちょっとこの辺も考慮してnepomuk対応を実装しちゃったりするとかっこいいんじゃないかな?なんて思う次第ですよ。
てか日本語の資料がほとんどないのよね。