User Guide

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 Attribute, Queries, der Index und eigene Dateitypen sein können. Als Beispiel werden wir eine DVD-Datenbank erstellen.

## 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 damals noch keinen Browser hatte, der mit solchen Bookmark-Dateien umgehen konnte (im Gegensatz zu NetPositive unter BeOS), verwenden wir ein JPEG-Bild für das DVD-Cover.
Mit WebPositive hat Haiku nun allerdings wieder einen Browser, der Bookmark-Dateien benutzt. Jetzt ließe sich also auch ein Lesezeichen anstatt eines Bilds als Basis-Dateityp für unsere Datenbankdateien verwenden.
Auf alle Fälle hängen wir an diese Dateien 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:

- Film-Titel
- Genre
- URL zur IMDb
- Regisseur / Schauspieler
- Handlung
- Wertung (von 1 bis 10)
- Koordinaten im DVD-Regal, sodass die DVD auch tatsächlich gefunden werden kann.
- Wenn nötig, wer die DVD ausgeliehen hat.

## Erstellung eines eigenen Dateityps

In Dateitypen klicken wir auf Hinzu... 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 ("Interner Name") DVDdb bekommen und unter "applications" abgelegt werden.

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

### 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.

### Dateierkennung

Unter "Dateierkennung" 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.

### Beschreibung

- Typname - Erscheint unter anderem im Attribut-Menü eines Tracker-Fensters.
- Beschreibung - eine etwas ausführlichere Beschreibung

### 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.

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

### Zusätzliche Attribute

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

- Attributname - Erscheint als Spaltenkopf im Tracker-Fenster

- Interner Name - Wird für die Indizierung und Suche verwendet.

- Typ - Beschreibt die Art des Attributs und entsprechend wie es gesucht werden kann.
  - String - normaler Text
  - Boolean - für die binären Werte 0 und 1
  - Integerfür ganzzahlige Werte diesen Umfangs:
    - 8 bit: ± 255
    - 16 bit: ± 65,535
    - 32 bit: ± 4,294,967,295
    - 64 bit: ± 18,446,744,073,709,551,615
  - Float - Fließkommazahlen einfacher Genauigkeit
  - Double - Fließkommazahlen doppelter Genauigkeit
  - Time - Zeit und Datum-Werte

- Sichtbar - Nur wenn diese Option markiert ist, kann das Attribut im Tracker gesehen / angezeigt werden; da unsere DVD-Datenbank angezeigt werden soll, setzten wir das Kreuz mit diesen Einstellungen:
  - Anzeigen als - auf "Default" (Standard) belassen. Zukünftig sind hier weitere Möglichkeiten wie Fortschrittsbalken oder Sterne geplant
  - Editierbar - hiermit kann das Attribut direkt im Tracker ergänzt werden
  - Breite - die Breite der Spalte des Attributs im Tracker-Fenster
  - Ausrichtung - die Ausrichtung des Attribut-Wertes in der Spalte im Tracker: linksbündig, zentriert oder rechtsbündig

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

Interner Name | Attributtyp | indiziert? | Beschreibung
--- | --- | --- | ---
DVDdb:title | text | Ja | Film-Titel
DVDdb:genre | text | Ja | Genre
DVDdb:url | text | Nein | URL
DVDdb:cast | text | Ja | Regisseur / Schauspieler
DVDdb:plot | text | Nein | Handlung
DVDdb:rating | int-32 | Ja | Wertung von 1 bis 10
DVDdb:coord | text | Nein | DVD-Regal
DVDdb:lent | text | Ja | Ausgeliehen an

## 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:

Interner Name | Attributtyp
--- | ---
DVDdb:title | text
DVDdb:genre | text
DVDdb:cast | text
DVDdb:rating | int-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"

## 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-ons | FileType setzen wir nun den Dateityp dieses Bildes auf `application/DVDdb`. Näheres zu den Dateitypen hier: Dateitypen

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

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 "Datei | Neu..." 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 Tracker-Fenster unter Neu... ein neuer Eintrag neben dem standardmäßigen "Neuer Ordner".

## 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 Attribute | Anordnung kopieren.

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 Attribute | Anordnung einfügen. Voilà: