Ubuntu Weekly Recipe

第275回 Smart Scopesで快適検索生活

この記事を読むのに必要な時間:およそ 3 分

Ubuntu 13.04には間に合わなかった新機能の一つに「Smart Scopes」が存在します。Dashの検索ポテンシャルを大幅に飛躍させるこの機能を,今回は紹介しましょう。

Smart Scopesとは

「Smart Scopes」について説明する前に,Unityにおける「Scope」について説明しておきましょう。

UnityにおけるScope

Ubuntuの標準UIであるUnityにおいて,Superキー(Windowsキー)を押す,もしくは左上のUbuntu Logoボタンを押すときに表示されるインターフェースを「Dash」と呼びます。⁠Dash」はコンピュータ内外のさまざまなリソースを検索・表示・実行するためのインターフェースです。

Dashで検索する場合,検索カテゴリーごとに「Lens」と呼ばれる独立したインターフェースを用意することがあります。たとえばアプリケーションを検索するための「アプリLens」⁠ファイルやフォルダを検索するための「ファイルLens」と言った具合です。

図1 アプリLensにはインストールされたアプリやソフトウェアセンターにあるアプリが表示される

図1 アプリLensにはインストールされたアプリやソフトウェアセンターにあるアプリが表示される

さらにLensの中で実際に検索を行うロジック部分を「Scope」と呼びます。ファイルLensはローカルファイルの検索機能を内蔵していますが,他にも「unity-scope-gdrive」という名前の,⁠Google Drive」上のファイルを検索するためのScopeが存在します。GDrive Scopeを追加したうえで注1)⁠ファイルLens上で検索を行うとScopeがGoogle Drive APIを使って検索してくれるので,Google DriveのファイルもファイルLensの検索結果に現れるようになります。

図2 Googleアカウントを設定するとGoogle Driveも検索できる

図2 Googleアカウントを設定するとGoogle Driveも検索できる

このように,検索インターフェースであるDash/Lensと検索ロジックであるScopeが分離しているため,ユーザはScopeを追加することで自由に検索機能を強化できるのです。

注1)
Ubuntu 13.04であればunity-scope-gdriveは最初からインストールされています。設定の「オンラインアカウント」でGoogleアカウントを登録すると,自動的にGoogle Driveも検索対象になるはずです。

Smart Scopesの開発

WikiでLens/Scopeを実装するためのAPIが公開されていることもあって,いくつものLensやScopeがコミュニティベースで開発されてきました。Lens/Scopeシステムが実装された11.10のリリース後には,これらをまとめるためのOne Hundred Scopesプロジェクトも立ち上がっています。

ただしLensを増やすということはそれだけ常駐サービスを増やすということになり,Dashのインターフェースも複雑になってしまいます。Scopeを増やすと,より多くのサービスへ問い合わせることになるため,実装方法によってはDashの応答性が悪くなります。

そこで立ち上がったのがSmart Scopesプロジェクトです。

Smart Scopesの目標と現状

Smart Scopesは次の内容を実現することを目標としています。

  • できるだけ多くのカテゴリーをDashから検索できるようにすること
  • 検索語にあわせて使用するScopeを自動的に切り替えられること
  • 表示するScopeの優先順位をユーザの操作から賢く推定できること
  • 使用しないScopeはユーザの設定でオフにできること

これらを実現するために,ホームLens(Superキーで表示されるLens )にも,他のLensと同様の「フィルター」が実装されます。

さらに重要なこととして,自動切り替えや推定の精度を上げるために,検索語や地域設定だけでなくフィルターの設定やディスプレイサイズなどもCanonicalのサーバに送信されるようになります注2)⁠

Smart Scopesの機能はほぼ実装されたのですが,実装のタイミングがFeature Freeze以降(2013年3月のvUDSのあと)であったこと,2013年3月末時点で充分なクオリティが確保できなかったことから13.04への導入は見送られました。ただし,機能自体はほぼ実現できているので,13.10には確実に入る予定です。

注2)
13.04のUnityでもいくつかの情報がサーバに送信されます。これらの送信をオフにするには,システム設定のプライバシーから「オンライン検索結果を含める」をオフに変更してください。

インストール方法

13.04にSmart Scopesは導入されませんでしたがPPAが用意されているので,比較的簡単に体験できます。

ただしこのPPAを導入すると,Unity本体や関連ライブラリもアップグレードされて,Smart Scopesに対応していない既存のLensは削除されます。また,正式なUnityではないので環境がより不安定になる可能性があります。自分の環境に導入しても良いかどうかは,あらかじめ熟慮しておくべきでしょう。

Smart Scopesを導入するには,端末を開いて以下のコマンドを実行してください注3)⁠

$ sudo add-apt-repository ppa:ubuntu-unity/experimental-certified
$ sudo apt-get update
$ sudo apt-get dist-upgrade

最後のコマンドでいくつかのパッケージが削除されます。Lens/Scope以外が削除される場合はそれが本当に正しいかどうか今一度確認しておきましょう。

さらに公式リポジトリのUnityが更新されたときも,PPAのUnityを優先して使用するように,Pinningの設定を行います。設定済のファイルがパッケージ化されているのでそれをインストールしてしまいましょう。

$ sudo apt-get install ubuntu-unity-experimental-certified

この後に,再起動すればインストール完了です。

注3)
「ppa:ubuntu-unity/experimental-certified」とは別に「ppa:ubuntu-unity/experimental-prevalidation」というPPAもあります。これは最新のコードをそのままパッケージングしたリポジトリです。prevalidationのパッケージのテストがパスするとcertifiedにコピーされるので,開発者でもない限りはcertifiedを使いましょう。

著者プロフィール

柴田充也(しばたみつや)

Ubuntu Japanese Team Member株式会社 創夢所属。数年前にLaunchpad上でStellariumの翻訳をしたことがきっかけで,Ubuntuの翻訳にも関わるようになりました。

コメント

コメントの記入