Guide de l’utilisateur

Index
Préparations Créer un type de fichier personnalisé Icône Identification d'un fichier Description Application préférée Attributs supplémentaires Indexation Remplir les données Interrogation de la base de données

# Atelier : Types de fichiers, Attributs, Index et Requêtes

Cet atelier est consacré à l’utilisation des attributs, requêtes, de l’indexation et des types de fichiers personnalisés. Pour illustrer leur utilisation, nous allons construire une base de données pour cataloguer notre collection de DVD.

## Préparations

Décidons d’abord du type de fichiers et des attributs dont nous allons nous servir. Au départ, je voulais utiliser pour chaque film un fichier lien vers sa description sur le site web IMdB, mais Haiku ne dispose pas encore de navigateur supportant ces liens, contrairement à BeOS qui avait NetPositive, donc j’ai choisi de conserver des fichiers d’image JPEG de la boîte du DVD.
Nous allons également ajouter quelques attributs. Nous devons décider ici de ceux qui serviront à faire des requêtes (et que nous devrons ajouter à l’index) et si besoin est, quel type d’attribut utiliser. Les nombres (entiers ou flottants) sont en effet comparés différemment du texte (</=/> au lieu de est/contient/commence par).

Voici donc les attributs que je voudrais utliser pour mes DVD :

- Titre du film
- Genre
- URL vers par exemple IMdB
- Réalisateur/Acteurs
- Intrigue
- Ma note de 1 à 10
- Emplacement dans l’étagère (A2, ou B3 par exemple) afin de pouvoir trouver le DVD dans la Vraie Vie :)
- Si quelqu’un a emprunté le disque, et qui…

## Créer un type de fichier personnalisé

Démarrez le panneau de préférences Filetypes et cliquez sur le bouton Add... (Ajouter) sous la liste hiérarchique de gauche. Une boîte de dialogue s’ouvre dans laquelle vous pouvez spécifier dans quel groupe MIME votre type de fichier va résider. Plaçons-le dans « applications » et réglons son nom (« Internal Name ») à DVDdb.

Ensuite, un panneau de réglages pour votre nouveau type DVDdb s’affiche :

### Icône (Icon)

Double-cliquer sur la boîte d’icône pour ouvrir Icon-O-Matic et ainsi pouvoir dessiner un icône pour votre type de fichier. Vous pouvez aussi glisser-déposer un icône d’un autre type, afin de l’utiliser comme base pour votre version modifiée.

### Identification d'un fichier (File Recognition)

Vous pouvez définir des suffixes comme .txt, .jpg, .mp3 pour que les fichiers ayant cette extensions soient reconnus. Ceci est utile pour les systèmes de fichiers ne reconnaissant pas les types MIME. Nous n’avons pas besoin de cela pour notre exemple.

### Description

- Type Name (Nom de type) - Est notamment affiché dans le menu Attribute des fenêtres du Tracker et dans l’attribut "Kind" des fichiers.
- Description - Une description plus détaillée.

### Application préférée (Preferred Application)

Ce menu déroulant affiche une liste des application qui peuvent gérer ce type de fichier particulier. Vous pouvez y choisir quel programme ouvrira ce fichier spécifique lorsqu’il est double-cliqué.

Select... |  | ouvre une boîte de dialogue où vous pouvez choisir avec quelle application ouvrir ce type de fichier. Ici, nous choisissons ShowImage pour afficher la couverture du DVD.
Same as... |  | ouvre une boîte de dialogue où vous pouvez choisir n’importe quel fichier qui s’ouvre avec l’application que vous avez choisie.

### Attributs supplémentaires (Extra Attributes)

Nous entrons ici tous les attributs personnalisés que nous avons choisi auparavant. En cliquant sur le bouton Add... (Ajouter), un panneau s’ouvre :

- Attribute Name (Nom d’attribut) - Apparaît notamment dans l’en-tête des fenêtres du Tracker.

- Internal Name (Nom interne) - Utilisé pour l’indexation et les requêtes sur l’attribut.

- Type - Indique la valeur que l’attribut peut stocker et donc comment il peut être consulté.
  - String (Chaîne de caractères) pour du texte simple
  - Boolean (Booléen) pour une donnée binaire : 0 ou 1
  - Integer (Entier) pour des nombres entiers de différents intervalles:
    - 8 bit : ± 255
    - 16 bit : ± 65 535
    - 32 bit : ± 4 294 967 295
    - 64 bit : ± 18 446 744 073 709 551 615
  - Float (Flottant) pour des nombres décimaux, simple précision
  - Double pour des nombres décimaux, double précision
  - Time (Temps) pour stocker des dates et heures

- Visible - Cette case à cocher détermine si l’attribut sera visible depuis une fenêtre du Tracker. Comme le Tracker sera l’interface de notre base de données, nous la cochons et réglons l’apparence de l’attribut :
  - Display As (Afficher comme) - Laissez sur "Default" (Par défaut). Dans le future plus d’options seront disponibles, comme une barre ou des étoiles pour la note ou autre.
  - Editable (éditable) - Détermine si l’attribut doit être éditable depuis le Tracker.
  - Width (Largeur) - La largeur par défaut de la colonne de cet attribut dans le Tracker.
  - Alignment (Alignement)- L’attribut peut être affiché aligné à gauche, à droite ou centré.

Maintenant, insérez toutes les infos pour les attributs :

Nom interne | Type d'attribut | indexé ? | Description
--- | --- | --- | ---
DVDdb:title | text | yes | Titre du film
DVDdb:genre | text | yes | Genre
DVDdb:url | text | no | URL
DVDdb:cast | text | yes | Réalisateur/Acteurs
DVDdb:plot | text | no | Intrigue
DVDdb:rating | int-32 | yes | Note de 1 à 10
DVDdb:coord | text | no | Étagère
DVDdb:lent | text | yes | Prêté à

## Indexation

Avant de commencer à entrer des données dans notre petite base de données, nous devrions ajouter certains attributs à l’Index. Seuls les attributs indexés peuvent être utilisés par les requêtes de Haiku.
Donc, qu’allons nous chercher dans le futur ? Nous n’allons probablement pas nous demander « Qu’il y a-t-il dans le coin B4 de mon étagère ? » ou « Est-ce que l’URL de ImDB contient le mot “pope-shenooda” ? ».

Cela laisse les attributs suivants :

Nom interne | Type d'attribut
--- | ---
DVDdb:title | text
DVDdb:genre | text
DVDdb:cast | text
DVDdb:rating | int-32

Pour les indexer, ouvrons un terminal et ajouter chaque attribut :

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

L’option -t définit le type de l’attribut, qui est “string” (chaîne de caractères) pour tout sauf le classement, qui est un entier.

## Remplir les données

Maintenant que tout est configuré nous pouvons commencer à entrer quelques données dans notre base.
Comme notre type de base est une image de couverture, nous allons récupérer celle de notre premier film sur un site web comme IMdB, et l’enregistrer dans un nouveau dossier où nous conserverons tous nos fichiers DVDdb.

Une fois ce dossier ouvert, nous voyons fenêtre Tracker typique avec un fichier JPEG à l’intérieur. En effectuant un clic droit, nous réglons son type de fichier à `application/DVDdb` avec l’extension Filetype. Pour plus d’informations, consultez la page Types de fichiers.

Maintenant, nous pouvons activer tous nos attributs DVDdb via le menu Attributes de la fenêtre du Tracker et les réorganiser à notre goût :

En cliquant sur un attribut vide (ou par la combinaison de touches CMD E) nous passons en mode édition et renseignons chaque attribut. Vous pouvez naviguer entre les attributs avec TAB et MAJ TAB.

Dans notre exemple, nous partons généralement d’une image JPEG téléchargée et changeons son type vers applications/DVDdb. Il existe une autre manière de créer un tel fichier. Copiez un fichier vide utilisant notre type de fichiers dans /boot/home/config/settings/Tracker/Tracker New Templates et renommez le vers DVDdb.

Par la suite, en effectuant un clic droit dans une fenêtre du Tracker, vous trouverez une nouvelle entrée dans le sous-menu New... en plus de l’entrée par défaut “New Folder” (Nouveau dossier).

## Interrogation de la base de données

Plusieurs heures de travail ingrat plus tard, nous obtenons un base de donner que vous pouvez interroger pour obtenir par exemple tous les films avec Christina Ricci notés 7 ou plus… :)

Vous pouvez choisir l'affichage des attributs de la fenêtre de résultats de vos requêtes de recherche.
Ouvrezs le dossier contenant vos fichiers DVDdb et arrangez les attributs comme vous le souhaitez. Copier cette disposition avec Attributes | Copy Layout.

Ouvrez /boot/home/config/settings/Tracker/DefaultQueryTemplates, créez un nouveau dossier et renommez le de la façon suivante groupe/type_de_ficher, en remplaçant les slashs par des caractères de soulignement; dans notre cas, « applications_DVDdb ».

Ouvrez le nouveau dossier et collez la disposition avec Attributes | Paste Layout. Et voilà: