Index
Vorbereitungen
Erstellung des Dateityps
Icon
Dateierkennung
Beschreibung
Bevorzugte Anwendung
Zusätzliche Attribute
Indexing
Daten eingeben
Suchanfragen

Workshop: Dateitypen, Attribute, Index und Queries

In diesem Workshop wird gezeigt, wie sinnvoll Attributes, Queries, der Index und eigene Filetypes sein können. Als Beispiel werden wir eine DVD-Datenbank erstellen.

index Vorbereitungen

Zuerst sollten wir uns Gedanken machen, welche Dateitypen und Attribute benötigt werden. Ursprünglich war geplant, Bookmark-Dateien mit einem Link zum Eintrag des Films in der IMdB zu verwenden. Da aber Haiku bislang noch keinen Browser hat, der mit solchen Bookmark-Dateien umgehen kann (im Gegensatz zu NetPositive unter BeOS), verwenden wir ein JPEG-Bild für das DVD-Cover.
An dieses Bild hängen wir eine Reihe von Attributen. Hier müssen wir uns entscheiden, welche Art von Attributen wir verwenden - Zahlen oder Text - und welche davon in einer Suchabfrage gefunden werden sollen.

Sinnvoll sind zum Beispiel diese Attribute:

index Erstellung eines eigenen Dateityps

In Filetypes klicken wir auf Add... unterhalb der hierarchischen Liste der Dateitypen. In dem dann öffnenden Dialogfenster legen wir fest, zu welcher MIME-Gruppe der neue Dateityp gehört oder ob es sich um eine gänzlich neue Gruppe handelt. Unser Dateityp soll die interne Bezeichnung ("Internal Name") DVDdb bekommen und unter "applications" abgelegt werden.

filetypes-new-file-type.png

Jetzt öffnet sich ein neues Fenster für den neu angelegten Dateityp DVDdb:

filetypes-dvddb.png

index Icon

Ein Doppelklick auf das Icon öffnet Icon-O-Matic um darin ein neues Icon zu erstellen. Natürlich kann auch ein bereits bestehenden Icon in das Feld gezogen werden.

index Dateierkennung

Unter "File Recognitions" können Dateiendungen eingegeben werden, die typisch für diesen Dateityp sind. Da wir in unserem Beispiel dies nicht benötigen, wird es außer Acht gelassen.

index Beschreibung

index Bevorzugte Anwendung

Dieses Auswahlmenü zeigt alle Anwendungen, die diesen Dateityp verwenden können. Hier kann ausgewählt werden, welches Programm gestartet wird, wenn eine Datei diesen Typs doppelt angeklickt wird.

Select... öffnet ein Dialogfenster zur Auswahl der Anwendung; in unserem Beispiel wählen wir ShowImage um das DVD-Cover anzuzeigen.
Same as... öffnet ein Dialogfenster, in dem man eine Datei auswählen kann, die bereits die bevorzugte Anwendung verwendet, die auch hier verwendet werden soll.

index Zusätzliche Attribute

Unter "Extra Attributes" geben wir alle zusätzlichen Attribute ein, die wir oben festgelegt haben. Ein Klick auf Add... öffnet dieses Fenster:

filetype-extra-attribute.png

Jetzt müssen diese Werte für die Attribute eingegeben werden:

Internal NameAttribute typeindexed?Description
DVDdb:title text yes Film-Titel
DVDdb:genre text yes Genre
DVDdb:url text no URL
DVDdb:cast text yes Regisseur / Schauspieler
DVDdb:plot text no Handlung
DVDdb:rating int-32 yes Wertung von 1 bis 10
DVDdb:coord text no DVD-Regal
DVDdb:lent text yes Ausgeliehen an

index Indizierung

Bevor wir unsere DVD-Datenbank mit Daten befüllen, müssen wir noch einige Attribute in den Index aufnehmen. Nur so stehen sie für die Suche in Haiku, den Queries zur Verfügung.
Um mit Scott Hacker, dem Autor der BeOS-Bible zu sprechen: "Es können so viele Attribute wie nur gewünscht in den Index aufgenommen werden, Doch man sollte es nicht übertreiben." - eine sinnvolle Auswahl sollte also getroffen werden.

Wir nehmen diese Attribute in den Index auf:

Internal NameAttribute type
DVDdb:titletext
DVDdb:genretext
DVDdb:casttext
DVDdb:ratingint-32

Um dies zu erreichen, müssen wir im Terminal die folgenden Befehle der Reihe nach eingeben:

mkindex -t string DVDdb:title
mkindex -t string DVDdb:genre
mkindex -t string DVDdb:cast
mkindex -t int DVDdb:rating

Mit der Option -t wird die Art des Attributs festgelegt. Bis auf die Wertung (Zahl) sind alle "Text"

index Daten eingeben

Nachdem nun alles vorbereitet ist, können wir damit beginnen, die Datenbank zu befüllen.
Da jeder Eintrag eine Bilddatei mit dem DVD-Cover sein soll, speichern wir zu jedem Film, den wir in die Datenbank (einem Ordner) aufnehmen eine dazugehörige JPEG-Datei.

Wenn wir den Ordner öffnen, sehen wird ein ganz normales Tracker-Fenster mit einer Bild-Datei darin. Mit einem Rechtsklick auf diese Datei und der Auswahl Add On | FileType setzen wir nun den Dateityp dieses Bildes auf application/DVDdb. Näheres zu den Dateitypen hier: Filetypes

Jetzt aktivieren wir alle DVDdb-Attribute aus dem Menü Attributes und sortieren sie nach unseren Vorlieben:

filetypes-dvddb-empty.png

Mit einem Klick auf ein leeres Attribut (oder ALT E) können wir die entsprechenden Werte eingeben. Mittels TAB und SHIFT TAB können wir von Attribut zu Attribut springen.

Um einen neuen Eintrag anzulegen kopieren wir entweder ein neues Bild in das Verzeichnis, oder wir verwenden den Menüpunkt "File | New..." indem wir eine leere Datei mit dem Dateityp "applications/DVDdb" und dem Dateinamen "DVDdb" im Ordner /boot/home/config/settings/Tracker/Tracker New Templates anlegen.

Jetzt befindet sich bei eine Rechtsklick im Trackerfenster unter New... ein neuer Eintrag neben dem standardmäßigen "New folder".

index Suchanfragen

Nach mehreren Stunden stupidem Befüllen der Attribute haben wir nun eine kleine Datenbank, in der wir nach Herzenslust suchen können. Zum Beispiel nach allen Filmen mit Christina Ricci, die wir mit "7" oder besser bewertet haben.

Für die Suchergebnisse kann man ebenfalls eine sinnvolles Layout der Attribute festlegen.
Nachdem die Spalten im DVDdb-Ordner so eingestellt wurden, wie sie für das Suchergebnis sinnvoll sind, kopiert man diese mittels Attributes | Copy Layout.

Darauf hin ist in /boot/home/config/settings/Tracker/DefaultQueryTemplates ein neuer Ordner anzulegen, der nach group/filetype benannt wird, wobei der Schrägstrich durch einen Unterstrich zu ersetzten ist; in unserem Fall also "applications_DVDdb".

Öffne den neuen Ordner und kopiere das Attibute-Layout mit Attributes | Paste Layout. Voilà:

query-dvddb.png