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.

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 Haiku damals aber noch keinen Browser hatte, der mit solchen Bookmark-Dateien hätte umgehen können (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 Attribute. Hier müssen wir uns entscheiden, welche Art von Attribute 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 Dateitypen klicken wir auf Hinzu... unterhalb der hierarchischen Liste der Dateitypen. In dem Sich ö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.

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 bestehendes Icon in das Feld gezogen werden.

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

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.

Auswählen... öffnet ein Dialogfenster zur Auswahl der Anwendung; in unserem Beispiel wählen wir ShowImage 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.

index Zusätzliche Attribute

Unter "Extra Attribute" geben wir alle zusätzlichen Attribute ein, die wir oben festgelegt haben. Ein Klick auf Hinzu... öffnet ein Fenster, in dem alle Daten für das neue Attribut eingetragen werden. Vorhandene Attribute lassen sich per Doppelklick bearbeiten.

filetype-extra-attribute.png

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

Interner NameAttributtypindiziert?Beschreibung
DVDdb:title Zeichenkette Ja Film-Titel
DVDdb:genre Zeichenkette Ja Genre
DVDdb:url Zeichenkette Nein URL
DVDdb:cast Zeichenkette Ja Regisseur / Schauspieler
DVDdb:plot Zeichenkette Nein Handlung
DVDdb:rating Integer 32-bit Ja Wertung von 1 bis 10
DVDdb:coord Zeichenkette Nein DVD-Regal
DVDdb:lent Zeichenkette Ja 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:

Interner NameAttributtyp
DVDdb:titleZeichenkette
DVDdb:genreZeichenkette
DVDdb:castZeichenkette
DVDdb:ratingInteger 32-bit

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

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

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 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 "application_DVDdb".

Öffne den neuen Ordner und kopiere das Attibute-Layout mit Attribute | Anordnung einfügen. Voilà:

query-dvddb.png