インデックス |
準備 カスタムファイルタイプの作成 アイコン ファイルの認識 説明 優先アプリケーション 拡張属性 インデックス付け データを入力する データベースにクエリを行う |
ワークショップ: ファイルタイプ、属性、インデックス、およびクエリ
このワークショップは、属性 (Attribute)、クエリ (Query)、インデックス (Index)、およびカスタムファイルタイプ (Filetype) の使い方を説明します。例として、DVD ライブラリを記録するデータベースを作成します。
準備
最初に、どのようなファイルタイプおよび属性が私たちのニーズを満たすか決定しましょう。元々、筆者は映画の IMdB ページへのリンクを備えたブックマークファイルを使用したかったが、当時 Haiku には BeOS の NetPositive のような「ブックマークを付けられる」ブラウザーが無かったので、ファイル自身を映画のカバーの JPEG イメージにすることを思いつきました。
WebPositive によって、Haiku は再びブックマークを付けられるブラウザーを持ちました。そのため、データベースファイルには基本的なファイルタイプを備えたファイルの代わりに、ブックマークファイルも使えます。
どの場合でも、これらのファイルに 2、3 の属性を加えます。ここでは、後でそれをクエリするかどうか (次に、インデックスにそれを加えなければなりません) 決定しなければなりません。また、クエリをするなら、属性がどのような型であるべきかを決定しなければなりません。数 (整数、小数) は、テキストとは異なる評価をされます(例: </=/> 対 is/contains/starts with)。
以下は、DVD について見たい属性です:
- 映画のタイトル (Movie title)
- ジャンル (Genre)
- URL 例: IMdB への URL
- 監督/キャスト (Director/Cast)
- あらすじ (Plot)
- 1 から 10 までの点数 (Rating)
- 棚の座標 (例: A2, B3)、実生活でもこれで DVD を探します :)
- もしそうならば、だれが DVD を借りたか…
カスタムファイルタイプの作成
Filetypes プレファレンスを立ち上げて、左の階層化リストの下にある、 ボタンをクリックします。小さなダイアログが開くので、そこで新しいファイルタイプがどの MINE グループに属するか決めます。また、まったく新しいグループも作成できます。では、ファイルタイプを "applications" のグループに入れて、"内部名 (Internal Name)" を DVDdb にしましょう。
さて、新しい DVDdb ファイルタイプ用のダイアログが開きます。
アイコン (Icon)
アイコン (Icon) をダブルクリックすると、Icon-O-Matic が立ち上がり、ユーザーのファイルタイプ用アイコンをデザインできます。また、別のタイプのアイコンウェルからアイコンをドラッグ&ドロップできます。これはたぶん、修正版のスタートポイントとなるでしょう。
ファイルの認識 (File Recognition)
.txt、.jpg、.mp3 のような拡張子を付けて、ファイルを識別できます。MINE タイプ付けの無いシステムからのファイルを使用する時に便利です。今回の例では必要ありません。
説明 (Description)
- タイプ名 (Type name) - 例として、Tracker ウィンドウの "属性 (Attribute)" メニューおよび、ファイルの "種類 (Kind)" 属性に現れます。
- 説明 (Description) - さらに詳しい説明。
優先アプリケーション (Preferred Application)
このポップアップメニューは、特定のファイルタイプを扱えるすべてのアプリケーションのリストを示します。ここから、この特定のファイルがダブルクリックされた時にどのプログラムで開くかを選択できます。
ファイルダイアログを開いて、そこからこのファイルタイプを開くためのアプリケーションを選択します。ここでは DVD のカバーを開くために、画像ビューワ (ShowImage) を設定します。 | ||
ファイルダイアログを開いて、求める優先アプリケーションのセットを持ったファイルを選択します。 |
拡張属性 (Extra Attributes)
ここで、準備のところで決定したすべてのカスタム属性を入力します。
ボタンをクリックするとパネルが開き、新しい属性のデータを登録できます。既存の属性はダブルクリックで編集できます。属性の名前 (Attribute name) - たとえば、Tracker ウィンドウの列ヘッダーに表示されます。
内部名 (Internal name) - 属性のインデックス付けおよびクエリに使われます。
- タイプ (Type) - 属性が持つ値を定義します。それによって、どのようにクエリされるかが決まります
- 通常のテキスト用
- バイナリデータ用: 0 (偽) または >=1 (真)
- : -128 〜 127
- : -32,768 〜 32,767
- : -2,147,483,648 〜 2,147,483,647
- : -9,223,372,036,854,775,808 〜 9,223,372,036,854,775,807
異なる範囲の整数値用:
- 単精度浮動小数値用
- 倍精度浮動小数値用
- 時間と日付のフォーマット用
- 表示する (Visible) - このチェックボックスは、Tracker ウィンドウで属性が表示できるかどうか決定します。Tracker が DVD データベースのインターフェースになるので、これをチェックし、以下の項目で外観を定義します。
- - 2 つのシンボルのうちどちらかを選ぶ際に使えます。以下の を見てください。
- - 整数を 1/60 として表示します。例. "90" は "1:30" と表示されます。
- - 0 から 10 までの星の数で評価を表示します。
- 属性の "型" (例. string/integer/float など) に応じて表示するなら、"Default" のままにしてください。ほかのオプションは以下のとおりです:
- - Tracker 上で属性が編集できるかどうか決定します。
- - チェックボックス表示用に 2 つのシンボルを定義します。たとえば、"xo" は、0 より大きい数に対して "x" を、0 に対して "o" を表示します。
- - Tracker ウィンドウの属性行のデフォルト幅。
- - 属性は左寄せ、中央寄せ、または右寄せで表示できます。
では、属性の情報をすべて挿入しましょう。
内部名 | 属性のタイプ | インデックス付け | 説明 |
---|---|---|---|
DVDdb:title | text | はい | 映画のタイトル (Movie title) |
DVDdb:genre | text | はい | ジャンル (Genre) |
DVDdb:url | text | いいえ | URL |
DVDdb:cast | text | はい | 監督/キャスト (Director/Cast) |
DVDdb:plot | text | いいえ | あらすじ (Plot) |
DVDdb:rating | int-32 | はい | 1 から 10 までの点数 |
DVDdb:coord | text | いいえ | 棚 |
DVDdb:lent | text | はい | 貸し出し先 |
インデックス付け
私たちの小さな DVD データベースにデータを入力する前に、一部の属性にインデックスを付けなければなりません。インデックスの付いた属性だけが、Haiku のすばやいクエリを使えます。
さて、今後何を検索するでしょうか? たぶん、「棚の B4 座標には何があるか?」や「映画の IMdB URL やあらすじに 'pope-shenooda' と言う言葉を含むか?」は検索しないでしょう。
次の属性が残ります。
内部名 | 属性のタイプ |
---|---|
DVDdb:title | text |
DVDdb:genre | text |
DVDdb:cast | text |
DVDdb:rating | int-32 |
これらにインデックスを付けるには、ターミナルを立ち上げて、次々に属性を追加していくだけです。
mkindex -t string DVDdb:title mkindex -t string DVDdb:genre mkindex -t string DVDdb:cast mkindex -t int DVDdb:rating
-t オプションは属性の型を定義します。int (整数) である rating 以外は、"string (文字列)" となります。
データを入力する
さて、すべて設定されたので、データベースにデータを入れ始められます。
基本のファイルはカバーイメージなので、IMdB のようなオンラインリソースへ行き、最初の映画を探してカバーまたは映画のポスターを DVDdb のファイルを保持する新規フォルダーに保存します。
フォルダーを開くと、JPEG ファイルが 1 つある標準的な Tracker ウィンドウが見えます。JPEG ファイルを右クリックして、Filetype アドオンを使って、ファイルタイプを application/DVDdb に変更します。ファイルタイプのドキュメントにこれについて詳しい情報があります。
さて、Tracker ウィンドウの
メニューから DVDdb の属性をすべて有効にし、好きなように Tracker の列を再構成します。まだ空の属性をクリックする (または ALT E を押す) と、編集モードに入り、それぞれの属性を入力します。TAB および SHIFT TAB によって、属性間を移動できます。
今回の例では、通常ダウンロードした JPEG カバーでスタートし、そのタイプを applications/DVDdb に変更します。動作するファイルを作成する、別のエレガントなやりかたがあります。私たちが定義したファイルタイプを持つ空のファイルを /boot/home/config/settings/Tracker/Tracker New Templates にコピーし、それを DVDdb にリネームします。
Tracker ウィンドウ中で右クリックすると、
メニューのデフォルトである、"新規フォルダー (New folder)" の下に新たな項目を見つけるでしょう。データベースにクエリを行う
数時間の単調な仕事の後、クエリによって、すべての Christina Ricci 映画で 7+ の点数があるものを見つけられる小さくすてきなデータベースがあります… :)
特定のファイルタイプのクエリ結果にふさわしい属性レイアウトを割り当てられます。
DVDdb ファイルを含んでいるフォルダーを開き、クエリ結果をどのように示したいかに従い、属性を整えます。このレイアウトを、 でコピーします。
/boot/home/config/settings/Tracker/DefaultQueryTemplates を開いて、新規フォルダーを作成し、その名前を group/filetype に変更します。ここで、/ はアンダースコアに置き換えます。今回の例では、"applications_DVDdb" となります。
新規フォルダーを開いて、
で、レイアウトをウィンドウにペーストします。以下が結果です!