Guida dell'utente
La traduzione di questa pagina non è stata completata. Per questo motivo le parti non tradotte sono visibili in inglese.

L'indice del filesystem
Preparativi Creare un filetype personalizzato Icon Riconoscimento dei file Descrizione Applicazione preferita Attributi Extra Indicizzazione Inserire i dati Effettuare query nel database

# Workshop: filetype, attributi, indici e query

Questo è un workshop, una sezione in cui verrà mostrato l'uso degli Attributi, delle Query, dell'Indice del filesystem e dei Filetype. Si costruirà a titolo di esempio un database per tenere traccia di una collezione di DVD.

## Preparativi

Let's first decide what filetype and attributes would serve our needs. Originally, I planned to use a bookmark file with a link to the movie's IMdB page, but since Haiku didn't have a "bookmarkable" browser like BeOS' NetPositive at that time, I came up with this: The file itself will be a JPEG image for the movie cover.
With WebPositive, Haiku now has a browser using bookmark files again, so you could as well use a bookmark file instead of an image as basic filetype for our database files.
In any case, to these files we add a couple of attributes. Here we have to decide if we want to query it later (then we have to add it to the index) and if so, what type of attribute it should be. Numbers (int, float) can be evaluated differently than text (</=/> vs. is/contains/starts with).

Ecco alcuni attributi utili per classificare i DVD:

- Titolo del film
- Genere
- URL, per esempio, su IMdB
- Direttore e Regia
- Trama
- Il proprio giudizio da 1 a 10
- Coordinate nello scaffale, ad esempio A2, B3, in modo da reperire i DVD anche nella realtà
- Se e a chi è stato prestato il DVD

## Creare un filetype personalizzato

Prima di tutto si apra il pannello delle preferenze Filetypes cliccando sul pulsante Add... sotto la lista gerarchica a sinistra. Si aprirà una piccola finestra di dialogo dove verrà richiesto tra quali MIME Group verrà collocato il filetype, è sufficiente scegliere "applications" impostando l'"Internal Name" come DVDdb. Si ricorda che è anche possibile creare un gruppo completamente nuovo.

A questo punto si aprirà un pannello per il nuovo filetype DVDdb:

### Icona

Facendo doppio clic sull'icona si aprirà Icon-O-Matic che permette di disegnare un'icona per il proprio filetype, è anche possibile trascinare sopra un'icona da un altro tipo, da usare magari come punto di partenza per crearne una versione modificata.

### Riconoscimento dei file

È possibile specificare dei suffissi come .txt, .jpg, .mp3 in modo da permettere l'identificazione dei file a partire dalla loro estensione. Questo può risultare utile quando si ha a che fare con file di sistemi che non prevedono il MIME Type. Non è necessario fare uso dei suffissi ai fini dell'esempio.

### Descrizione

- Type Name - Apparirà ad esempio nel menù Attributi della finestra del Tracker e come attributo "Kind" di un file.
- Description - Una descrizione un po' più dettagliata.

### Applicazione preferita

Questo menù pop-up mostra una lista di tutte le applicazioni che supportano questo particolare filetype. Da qui è possibile selezionare quale programma dovrà aprire il file specifico quando ci si effettuerà un doppio-click.

Seleziona... |  | apre una finestra di dialogo dove è possibile selezionare un'applicazione per aprire il tipo di file. Nel nostro esempio è stato impostato ShowImage per visualizzare la copertina del DVD.
Uguale a... |  | apre una finestra di dialogo dove è possibile selezionare qualsiasi file che abbia già come applicazione preferita quella che si sta cercando.

### Attributi Extra

Questo è il luogo dove verranno inseriti tutti gli attributi personalizzati stabiliti durante la preparazione. Cliccando sul pulsante Add... si aprirà un pannello:

- Attribute Name - Appare ad esempio come colonna in alto nella finestra di Tracker.

- Internal Name - È utilizzato per indicizzare l'attributo.

- Type - Definisce che tipo di valore può essere conservato dall'attributo e come può essere richiesto.
  - String per il semplice testo
  - Boolean per dati binari: 0 oppure 1
  - Integer per i numeri interi, si dividono in base ai valori rappresentabili:
    - 8 bit: ± 255
    - 16 bit: ± 65,535
    - 32 bit: ± 4,294,967,295
    - 64 bit: ± 18,446,744,073,709,551,615
  - Float per i numeri a virgola mobile con precisione singola
  - Double per i numeri a virgola mobile con precisione doppia
  - Time per i formati di date e orari

- Visible - Questa casella di controllo determina se l'attributo è visibile all'interno della finestra del Tracker. Dato che il Tracker si interfaccerà col database dei DVD, sarà necessario spuntare la casella e definire il loro aspetto con:
  - Display As - Lasciare su "Default". In seguito saranno rese disponibili più opzioni, per esempio una barretta o delle stelline per i voti ecc.
  - Editable - Determina se l'attributo sarà modificabile dal Tracker.
  - Width - La larghezza di default della colonna degli attributi nella finestra del Tracker.
  - Alignment - L'attributo può essere posizionato a sinistra, al centro o a destra.

Ora, bisogna inserire tutte le informazioni sugli attributi:

Nome interno | Tipo attributo | Indicizzato? | Descrizione
--- | --- | --- | ---
DVDdb:titolo | testo | si | Titolo del film
DVDdb:genere | testo | si | Genere
DVDdb:url | testo | no | URL
DVDdb:cast | testo | si | Direttore e Regia
DVDdb:trama | testo | no | Trama
DVDdb:voto | intero - 32 bit | si | Voto da 1 a 10
DVDdb:coordinate | testo | no | Scaffale
DVDdb:prestato | testo | si | Prestato a

## Indicizzazione

Prima di iniziare con l'immissione dei dati nel piccolo database dei DVD, è necessario aggiungere gli attributi all'Indice, solo gli attributi indicizzati potranno essere raggiunti da Haiku tramite una Query.
Allora, cosa si dovrà cercare in futuro? Probabilmente non ci si chiederà "Cosa c'è nella coordinata B4 dello scaffale?" o "In quale film la parola 'pope-shenooda' è contenuta nell'url di IMdB o nella trama?".

Questa scelta porta a usare solo questi attributi:

Nome interno | Tipo attributo
--- | ---
DVDdb:titolo | testo
DVDdb:genere | testo
DVDdb:cast | testo
DVDdb:voto | intero - 32 bit

Per indicizzarli, si deve aprire un terminale aggiungendo semplicemente un attributo dopo l'altro:

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

L'opzione -t specifica il tipo dell'attributo, in questo caso "string" per tutti, fa eccezione il voto che è un numero intero.

## Inserire i dati

Ora che tutto è sistemato, è possibile cominciare ad inserire alcuni dati all'interno del database.
Dal momento che il file di base è l'immagine della copertina, ci si collegherà a qualche risorsa online come IMdB per reperire la copertina o la locandina del primo film salvandola in una nuova cartella dove si vuole posizionare il database dei file DVDdb.

Aprendo questa cartella ci si troverà davanti la solita finestra di Tracker contenente un file JPEG. Cliccandoci su col tasto destro, è possibile impostare il suo filetype come `application/DVDdb` con l' Addon Filetype. Maggiori informazioni sull'argomento sono reperibili nel capitolo sui Filetype.

A questo punto è necessario attivare tutti gli attributi di DVDdb dal menù Attributes della finestra di Tracker e risistemare a piacere le colonne:

Cliccando su un attributo ancora vuoto (o premendo ALT E) si passa alla modalità per la modifica nella quale è possibile inserire ciascun attributo. E' possibile spostarsi tra gli attributi con la scorciatoia TAB e SHIFT TAB.

Nell'esempio visto, solitamente si cominciava scaricando un file JPG e cambiando il suo filetype in applications/DVDdb. Esiste un altro metodo elegante per produrre analoghi risultati. Basta copiare un file vuoto che abbia il filetype desiderato in /boot/home/config/settings/Tracker/Tracker New Templates e rinominarlo come DVDdb.

Cliccando col tasto destro all'interno della finestra di Tracker ci sarà una nuova voce sotto New... accanto alla voce predefinita "New folder".

## Effettuare query nel database

Dopo un paio d'ore di duro lavoro, si avrà un piccolo database nel quale è possibile ricercare tutti i film di Christina Ricci che hanno un bel 7+...

È possibile determinare il layout dei risultati di uno specifico filetype.
Per fare questo aprire la cartella contenente i file DVDdb e sistemare a piacere i risultati come dovrebbero essere presentati. In fine copiare questo layout con Attributes | Copy Layout.

Continuando, aprire la cartella /boot/home/config/settings/Tracker/DefaultQueryTemplates, creandone una nuova e rinominandola group/filetype, rimpiazzando il carattere slash con degli underscore; nel nostro caso sarà "applications_DVDdb".

Per finire si apra una nuova cartella e ci si incolli il layout con Attributes | Paste Layout. Ed ecco il risultato: