package "audioDB"
version "version 0.8.preview"
purpose "A feature vector database management system for content-based retrieval."
option "help" H "print help on audioDB usage and exit." optional
option "verbosity" v "level of detail of operational information." int typestr="detail" default="1" optional
text "\nDatabase commands are UPPER CASE. Command options are lower case.\n" 
text ""
section "Database Operations" sectiondesc="All database operations require a database argument."

option "database" d "database file required by Database commands." string typestr="filename" optional

section "Database Creation" sectiondesc="Creating a new database file."

option "NEW"    N "make a new (initially empty) database." dependon="database" optional
option "size"   - "size of database file (in MB)" int dependon="NEW" optional hidden
option "datasize" - "size of data table requested (in MB)" int dependon="NEW" default="1355" optional
option "ntracks" - "capacity of database for tracks" int dependon="NEW" default="20000" optional
option "datadim" - "dimensionality of stored data" int dependon="NEW" default="9" optional

section "Database Maintenance" sectiondesc="Tweaking and dumping databases."

option "DUMP"   D "output all entries: index key size." dependon="database" optional
option "output" - "output directory" string dependon="DUMP" default="audioDB.dump" optional
option "L2NORM" L "unit norm vectors and norm all future inserts." dependon="database" optional
option "POWER"  P "turn on power flag for database." dependon="database" optional

section "Database Information" sectiondesc="Information about databases."

option "STATUS" S "output database information to stdout." dependon="database" optional
option "SAMPLE" - "sample statistics for database." dependon="database" optional
option "nsamples" - "number of pairwise samples to take." dependon="SAMPLE" int typestr="number" default="2000" optional

section "Database Insertion" sectiondesc="The following commands insert feature files, with optional keys and timestamps.\n"

option "INSERT"      I "add feature vectors to an existing database." dependon="features" optional
option "UPDATE"      U "replace inserted vectors associated with key with new input vectors." dependon="features" dependon="key" dependon="database" optional hidden
option "features" f "binary series of vectors file {int sz:ieee double[][sz]:eof}." string typestr="filename" dependon="database" optional
option "times"    t "list of time points (ascii) for feature vectors." string typestr="filename" dependon="features" optional
option "power"    w "binary power feature file." string typestr="filename" dependon="database" optional
option "key"      k "unique identifier associated with features." string typestr="identifier" dependon="features" optional
text ""
option "BATCHINSERT" B "add feature vectors named in a --featureList file (with optional keys in a --keyList file) to the named database." dependon="featureList" optional
option "featureList" F "text file containing list of binary feature vector files to process, one per track" string typestr="filename" dependon="database" optional
option "timesList"   T "text file containing list of ascii --times for each --features file in --featureList." string typestr="filename" dependon="featureList" optional
option "powerList"   W "text file containing list of binary power feature file." string typestr="filename" dependon="database" optional
option "keyList"     K "text file containing list of unique identifiers associated with --features." string typestr="filename" optional

option "sequencelength" l "length of sequences for sequence search." int typestr="length" default="16" optional


section "Database Search" sectiondesc="Thse commands control the retrieval behaviour.\n"

option "QUERY" Q "content-based search on --database using --features as a query. Optionally restrict the search to those tracks identified in a --keyList." values="point","track","sequence","nsequence","onetoonensequence" typestr="searchtype" dependon="database" dependon="features" optional
option "qpoint" p "ordinal position of query start point in --features file." int typestr="position" default="0" optional
option "exhaustive" e "exhaustive search: iterate through all query vectors in search. Overrides --qpoint." flag off optional hidden
option "pointnn" n "number of point nearest neighbours to use in retrieval." int typestr="numpoints" default="10" optional
option "radius"  R "radius search, returns all points/tracks/sequences inside given radius. (Overrides --pointnn)." double default="1.0" optional 
option "expandfactor" x "time compress/expand factor of result length to query length [1.0 .. 100.0]." double default="1.1" optional hidden
option "rotate"       o "rotate query vectors for rotationally invariant search." flag off optional hidden
option "resultlength" r "maximum length of the result list." int typestr="length" default="10" optional
option "sequencehop"  h "hop size of sequence window for sequence search." int typestr="hop" default="1" dependon="QUERY" optional
option "absolute-threshold" - "absolute power threshold for consideration of query or target sequence (in Bels)" double dependon="QUERY" optional
option "relative-threshold" - "relative power threshold between query and target sequence (in Bels)" double dependon="QUERY" optional

section "Web Services" sectiondesc="These commands enable the database process to establish a connection via the internet and operate as separate client and server processes.\n"
option "SERVER" s "run as standalone web service on named port." int typestr="port" default="14475" optional
option "client" c "run as a client using named host service." string typestr="hostname:port" optional


text "
Copyright (c) 2007 Michael Casey, Christophe Rhodes
                   Goldsmiths, University of London"
