情報処理学会 インタラクション 2014
IPSJ Interaction 2014

C4-7
2014/3/1

NeighborNote：ユーザ操作履歴に基づくノート連想機能を有する Evernote アプリケーション
高橋 悠紀1

新堀 道信1

鎌田 賢2

概要：本稿では，Evernote を利用する際にユーザが行う操作に着目して関連するノートを見つけ出すアプ
リケーション「NeighborNote」について述べる．「NeighborNote」は，ユーザが同時に開いていたノートに関連性があるかもしれないこと，ノート間のコピー&ペーストがそれらのノートの関連性を意味するという考えに基づいてノート間の関連度を算出する．ユーザがノートを開いた際に関連するノートを併せて表示することによりユーザのノート検索を支援する．本研究では，さらにこのシステムを一般人が便利に使えるよう再設計して仕上げた上で Evernote の派生サービスとして公開し，その意義と有効性の評価を行うことを目指す．

NeighborNote : An Evernote Application with Capability
to Find Related Notes Based on User Operation History
Yuki Takahashi1Michitoshi Niibori1

Masaru Kamada2

Abstract: This paper presents an application “NeighborNote” which extends Evernote to include the capability of ﬁnding related notes based on the user operation history. “NeighborNote” calculates the relativenessbetween the notes based on the idea that the notes, which the user opened at the same time or copied &pasted across, may denote the relativeness of those notes. It supports note searching by displaying related
notes besides the note which is currently opened. In this study, we release this system as a derivative serviceof Evernote after re-designing it for ordinary people to use conveniently, and aim to evaluate its signiﬁcanceand eﬀectiveness.

1. はじめにタグ付けを行い，あとで見つけやすいように分類しておくのが一般的であるが，1 つひとつのノートにタグを貼り付

Evernote[1] は，ユーザが残しておきたいと思った情報をけていく作業はユーザへの負担となる．キーワード検索もノートという単位でインターネット上のサーバに蓄積してできるが，キーワードを含まないが関連しているノートをおき，自宅や外出先からパソコンや携帯電話を利用してい検索するのは困難であるという問題がある．

つでもデータの閲覧・編集ができるクラウド型 Web サー

Evernote ではこれらの問題への解決法として，ノートにビスである．Evernote を利用すると，これまで個々の端末含まれている文字列，作成日時，場所などの類似性に基づに散在していた情報を整理して一元的に管理できる．

いて関連するノートを提示する「関連ノート」機能を提供

ノートの数は日々増加していくため，効率的にノートをしている．この機能を利用すると，ユーザはノートの分類管理できる仕組みが必要となる．Evernote では，ノートにをきちんとしていなくても，関連するノートを簡単に見つけられるようになる．しかし，探しているノートが必ずし12

茨城大学大学院 理工学研究科
Graduate School of Science and Engineering, Ibaraki
University
茨城大学 工学部情報工学科
Department of Computer and Information Sciences, Ibaraki
University© 2014 Information Processing Society of Japanも内容的に類似しているとは限らず，この機能では見つけられないが実際には関連しているノートというのも存在しうる．
そこで本研究ではユーザがアプリケーション上で行う

694

図 2

システムの概要図

図 1 Evernote for Mac 関連ノート機能 *1

操作に着目し，ユーザが同時に開いていたノートに関連性があるかもしれないこと，ノート間でのコピー&ペーストがそれらのノートの関連性を意味するという考えに基づいて，ノート間の関連度を算出するアプリケーション「NeighborNote」を開発した．

図 3

NeighborNote のメイン画面

ユーザの操作履歴に着目して関連ファイルを探し出す
研究としては，すでに 2005 年に大澤らが開発した俺デス
ク [2] がある．俺デスクでは，OS と一部の対応アプリケー

2.2 ユーザ操作履歴の利用ションで発生したイベントを取得するが，未対応のアプリユーザの操作履歴に着目した研究として，近藤らによるケーション上のファイルを扱うことができなかった．本研

NecoLogger と Retrospector[4] が挙げられる．NecoLogger

究の NeighborNote は，Evernote をプラットフォームに選は OS 上で発生する様々なイベントを取得して蓄積してい択することによって，文章，画像，音声といった様々な形

き，Retrospector を使って時間範囲やキーワードから関連式のファイルを扱えるようにした．

する情報を取得することができる．
大澤らが開発した俺デスクでは，OS 上のイベントに加2. 関連研究

えて，いくつかの外部アプリケーション上で発生した操作

2.1 ファイル類似性に基づく関連度算出も取得できる．これにより，関連するファイルの検索をよEvernote では，蓄積されたノートの検索手法の 1 つとしり高精度に行えるようになった．しかし，外部アプリケーて「関連ノート」機能が提供されている．この機能では，あション上の操作を取得するにはアプリケーションごとに開らかじめノートが作成された場所や日時などの情報を解析発されたプラグインの導入が必要で，未対応のアプリケーしておき，算出された関連ノートがノートの閲覧時やキーション上で行われた操作は取得できないという問題があっ

ワード検索時に併せて表示される．この機能の動作例を図た．本研究では Evernote をプラットフォームとして選択

1 に示す．

することで，テキスト，画像，音声といった様々なファイ増井らは，ファイルの内容，時刻，場所の情報からファイル形式に対応することができ，さらにプラグインに依存せル間の関連度を算出する近傍検索システム [3] を提案した．

ずにアプリケーション固有の細かい操作まで取得すること

このシステムでは，ある情報をもとにして，それに内容がができる．

近い情報や作成日時が近い情報を選択するという操作をく

3. システム概要り繰り返すことで必要な情報への到達を可能にしている．
本章では NeighborNote のシステム概要について述べる．
*1

Evernote for Mac アップデート: 関連ノートとユーザビリティ改
善 — Evernote 日本語版ブログ, http://blog.evernote.com/jp/2012/12/14/11692 (最終アクセス: 2013/10/16)© 2014 Information Processing Society of Japan

システムの概要図を図 2 に，実際に開発したシステムのメイン画面を図 3 に示す．

695

表 1

取得できる操作

操作種類

補足説明

ノートの同時閲覧タブまたは外部ウィンドウ上で複数のノートを同時に開いて閲覧する

コピー&ペースト

2 つのノート間でテキストをコピー（カッ新規ノート追加

ノートを 1 つ以上開いている状態で新たにト）&ペーストする
ノートを追加する
連想ノートクリック

連想ノートリストに表示された関連ノー
トをクリックして開く

タグ追加

ノートに新たなタグを追加する

ノートブック変更

ノートが属するノートブックを変更する

ノートマージ

2 つ以上のノートをマージして 1 つのノーノート複製1 つのノートを 2 つに複製する

トにする

3.1 ノートの閲覧・編集
メイン画面上部にはノート一覧が表示される．表示するノートは，タグやノートブックを指定するか，キーワード検索で絞り込むことができる．ノート一覧からノートを選んでクリックするとその内容がメイン画面下部のブラウザウィンドウに表示され，そのまま内容を編集できる．編集した内容は自動的に保存される．

3.2 Evernote 連携
NeighborNote 単体でメモアプリとして使うことができ

図 4

連想ノートリスト

2 つのノート間の関連度を定義する．まず，2 つのノート間の関連ポイント P は，操作種類の番号を k = 1, 2, · · · , n，
重み付け係数を Wk ，操作回数を Nk とした時

P =n∑

Wk Nk

(1)

k=1

るが，Evernote アカウントと連携すれば，Evernote で作で表される．その後，この関連ポイント P を全体の合計成したノートや Web ページのクリップを NeighborNote でが 100%となる百分率の形式に変換してから関連度として閲覧したり，NeighborNote で作成したノートをスマートユーザに提示する．操作種類ごとの重み付け係数は，シスフォンの Evernote アプリで閲覧したりできるようになる．

テム側に用意されているプリセットモードの中から選択す

Evernote 連携を行うには，初回起動時に NeighborNote をるか，1 つひとつユーザが任意に設定することができる．

経由してユーザの Evernote アカウントを認証する．

3.5 連想ノートリスト
3.3 ユーザ操作の取得

メイン画面右側に表示されているのが連想ノートリスト

ユーザがアプリケーション上でノートに対する特定の操である．ここには現在開いているノートに関連するノート作を行った際に，その操作種類と，関わった 2 つのノートが，関連度の高い順に表示される．ノートの情報としてタを取得する．例えばユーザがノート A の文章の一部をコイトル，関連度，作成日時，内容，サムネイルが含まれてピーしてノート B にペーストした場合，操作種類はコピーいる．ユーザはリストに表示されたノートに対して開く，&ペースト，関わった 2 つのノートはノート A とノート Bスターを付ける，除外するという操作が行える．スターがということになる．アプリケーション上でユーザが行う操付けられたノートはその関連度に関わらず最上位に表示さ作は多種多様であるが，本研究では多くのユーザが頻繁にれ，除外されたノートは以後，リストに表示されなくなる．

行うと考えられる操作で，かつノート間の関連度算出に利

連想ノートリストの画面を図 4 に示す．

用できそうなものとして表 1 に示す 8 種類の操作を取得することとした．操作の取得はユーザが特に意識せずに利用できるよう，バックグラウンドで自動的に行われる．

3.6 タブブラウザ
タブごとに異なるノートを同時に開いておき，閲覧・編集ができる．コンテキストメニューから「新しいタブで開3.4 ノート間の関連度算出

く」をクリックすると対象ノートが新しいタブに表示され3.3 節で取得した操作履歴に基づいて，ノート間の関連度る．表示タブの切り替え，タブのクローズ，ドラッグ&ドを算出する．本研究では，全ての操作種類において，そのロップによるタブの入れ替え操作にも対応している．タブ操作を行った回数に比例して関連度が増加すると仮定してブラウザ画面を図 5 に示す．この機能によってユーザの© 2014 Information Processing Society of Japan696

4.2 NixNote
本システムを既存の Evernote ユーザに違和感なく使ってもらえるようにするためには，Evernote 公式アプリケーションと同等の機能と使用感を有する環境が必要となる．

Evernote には非常に多くの機能があり，すべての機能を利用できる環境をゼロから構築するのは困難であるため，オープンソースソフトウェアの利用を検討した．

NixNote[5] は Randy Baumgarte 氏が中心となって開発しているオープンソースの Evernote アプリケーションクローンである．Qt Jambi[6] フレームワークを利用して開発されており，クロスプラットフォームで動作し，Evernote公式アプリケーションとほぼ同等の機能を有している．本
研究ではこの NixNote をベースに，本システムの機能を追加実装した．

図 5

タブブラウザ画面

4.3 データベース
システムが扱うユーザ操作のデータは，高速に蓄積と取得が行われる必要がある．これを実現するために，H2ノートの同時閲覧を促し，より多くの操作履歴を収集でき

Database Engine[7] を利用してローカル環境で動作するるようにする狙いがある．

データベースを構築して情報管理を行う．H2 Database

Engine はオープンソースの DBMS であり，サーバ不要の
3.7 プライバシ保護
データベースには，ユーザが行った操作に関する情報が保存されているため，ユーザのプライバシを侵害する恐れがある．NeighborNote ではその解決法として，データ組込みモードが利用でき，非常に高速に動作するという特徴がある．

5. 検証準備

ベースの暗号化とログ取得の一時停止機能を提供してい本システムの有効性を評価するために，NeighborNote

る．データベースを暗号化すると，正しいパスワードを入を無料サービスとして公開し，一般利用者の獲得を目指

力しない限りデータベースの情報に一切アクセスできなくす．現在は，開発した NeighborNote の機能を紹介するなる．ログ取得の一時停止機能では，連想ノートリスト上Web サイト [8] を整備し，実際に NeighborNote をダウン部にあるボタンによってログ取得を行うかどうか切り替えロードできるようになっている．NeighborNote の Web サができ，一時停止中は一切の操作ログ取得が行われなくな

イトを図 6 に示す．また，オープンソースソフトウェア

る．ログに残したくない操作を行う前にこのボタンを押しのリポジトリ管理サービスとして知られる GitHub[9] やておくことで，意に反するログがデータベースに保存されSourceForge.jp[10] を利用して，NeighborNote 本体とそのて連想ノート算出に悪影響を及ぼすのを防げる．

ソースコードを公開している．その他，Evernote 社が開催

4. 実装
4.1 Evernote API
Evernote サービスと連携するためには，Evernote 社が提する Eernote Devcup[11] というアプリコンテストに参加するなど，様々な活動を行っている．

6. おわりに供している Evernote API を利用する．Evernote API には

本研究では，ユーザ操作に基づく関連ファイル抽出シ

ローカル API とクラウド API の 2 種類が存在する．ロー

ステムを Evernote プラットフォーム上で動作するアプリ

カル API は，端末にインストールされた Evernote 公式アケーションとして再設計することで，一般人が便利に使えプリケーションを通してすべての命令が処理されるため，るシステムに仕上げた．これにより，ユーザは Evernote 上

ユーザ認証無しで使えるが，一部の機能にしかアクセスでに蓄積した情報の再発見を効率的に行えるようになる．今きない．一方のクラウド API は，Evernote サービスと直後の課題として，より多くの人に利用してもらうために，接対話することで，ノートの取得・変更等，ほぼ全ての機アプリケーションの使いやすさを向上させる改良を行って能にアクセスできる．ユーザ操作の取得はローカル API でいく．具体的には，インストーラを利用して簡単に導入では実現できないため，本研究ではクラウド API を利用してきるようにしたり，使い方を解説するチュートリアルを提実装を行った．

供することなどを検討している．その上で，ダウンロード© 2014 Information Processing Society of Japan

697

図 6

NeighborNote Web サイト数による人気度と，利用者へのアンケートによる有効性の評価を行う予定である．
参考文献
[1]

Evernote Corporation, Evernote, http://evernote.
com/ (最終アクセス: 2013/10/16)[2]
大澤亮, 高汐一紀, 徳田英幸: 俺デスク:ユーザ操作履歴に基づく情報想起支援ツール, 情報処理学会第 47 回プログ
ラミング・シンポジウム, (2005).
[3]
増井俊之, 塚田浩二, 高林哲: 近傍関係にもとづく情報検索システム, 11th Workshop on Interactive Systems andSoftware(WISS2003), (2003).
[4]
近藤秀樹, 三宅芳雄: 計算機上での活動履歴を利用する記憶の拡張システムの評価, 13th Workshop on Interactive
Systems and Software(WISS2005), (2005).
[5]
Nevernote - An Open Source Evernote Clone,
http://nevernote.sourceforge.net/ (最 終 ア ク
セス: 2013/10/16)[6]
Qt Jambi - Welcome to Qt Jambi s homepage, the mostcomprehensive Java toolkit, http://qt-jambi.org/ (最終アクセス: 2013/10/16)[7]
H2 Database Engine, http://www.h2database.com/html/main.html (最終アクセス: 2013/10/16)[8]NeighborNote,
http://puma.cis.ibaraki.ac.jp/
products/neighbornote/ （最終アクセス:2013/10/16)[9]GitHub, https://github.com/ （ 最 終 ア ク セス:2013/10/16）[10] SourceForge.JP: オープンソース・ソフトウェアの開発とダウンロード - SourceForge.JP, http://sourceforge.jp/（最終アクセス:2013/10/16）[11] Evernote
Devcup2013//HackerLeague,
https://www.hackerleague.org/hackathons/evernote-devcup-2013/ （最終アクセス:2013/10/16）© 2014 Information Processing Society of Japan698