Format specification of .fieldproperties files(DRAFT)
======================================================================================

[Field]
Uri=$URI
ParentUri=$PARENTURI
Name=$NAME
Name[$LANG]=$LOCALIZED_NAME
Description=$DESCRIPTION
Description[$LANG]=$LOCALIZED_DESCRIPTION
TypeUri=$TYPE
Values=$VALUES
Values[$LANG]=$LOCALIZED_VALUES
Range=$RANGE
MinCardinality=$MIN_CARDINALITY
MaxCardinality=$MAX_CARDINALITY
Binary=$BINARY
Compressed=$COMPRESSED
Indexed=$INDEXED
Stored=$STORED
Tokenized=$TOKENIZED
Indexing=$INDEXING
Relevance=$RELEVANCE
Comment=$COMMENT

$URI(required)
  Unique resource identifier of the property. Internally properties are identified by this ID.
  Alternative to this would be [$URI] instead of [Field].

$PARENTURI
  URI of parent property. Parent relation is similar to inheritance. Usually child property
  introduces some specifics/limitations/implications compared to its parent.

$NAME(required), $LOCALIZED NAME
  Short user-friendly name. This is the name users will see when file metadata is displayed to them.

$DESCRIPTION(required), $LOCALIZED_DESCRIPTION
  User-friendly property description. This is the description of property suitable for tooltips.

$TYPE(required)
  Property data type.
  Valid values: string, string_enum, string_enum_ext, integer, float, boolean, datetime, binary.
  string_enum type is a property that can only take one of the list of valid values provided by $VALUES.
  string_enum_ext type is a property that can take any string value, however $values list provides
  suggested values of this property.

$VALUES(required if $TYPE=string_enum or string_enum_ext), $LOCALIZED_VALUES
  Property value constraints. Default =  no constraints.
  if $TYPE=integer|datetime|float, $VALUES=value1|value2|value3
  if $TYPE=string, $VALUES=validation regexp
  if $TYPE=string_enum, $VALUES=value1|value2|value3
  if $TYPE=string_enum_ext, $VALUES=value1|value2|value3|*(or)
  This syntax lets us directly use $VALUES as a regexp for validating user input. Yet it's syntax
  is developer- and translator- friendly.
  Suggestions on regex subset are welcome. KDE and Strigi is going to use QValidator and QRegExp for this.

$RANGE
  Numeric property allowed value range. Default = no constraints.
  $RANGE=[minValue,maxValue>
  [ and ] = inclusive. < and > = exclusive.

$MIN_CARDINALITY
  Minimum cardinality. Minimum number of properties of this type you must set for a given file.
  Lets specify mandatory properties. Default is 0.

$MAX_CARDINALITY
  Maximum cardinality. Maximum number of properties of this type you can set for a given file.
  Default is infinity.

$INDEXING
  Values=fulltext, atomic, none, TBD. Default = TBD.
  This is now replaced by $INDEXED, $BINARY, $COMPRESSED, $STORED, $TOKENIZED

$INDEXED
  Boolean property.
  Optional control over indexing procedure. Can be ignored or respected by certain search engine backends.
  Defines whether the field is indexed by the backed or not.
    Default=true

$BINARY
  Boolean property.
  Optional control over indexing procedure. Can be ignored or respected by certain search engine backends.
  Defines whether the field should be stored as binary data (true) or text (false)
    Default=false

$COMPRESSED
  Boolean property.
  Optional control over indexing procedure. Can be ignored or respected by certain search engine backends.
  Defines whether the field should be compressed.
    Default=false

$STORED
  Boolean property.
  Optional control over indexing procedure. Can be ignored or respected by certain search engine backends.
  Defines if the contents of the field value should be stored (true) or just indexed and not stored (false).
  If it is not stored, it can not be further retrieved from the backend.
    Default=true

$TOKENIZED
  Boolean property.
  Optional control over indexing procedure. Can be ignored or respected by certain search engine backends.
  Defines whether the field value is tokenized or indexed as an atomic string.
  Very important for identifiers which contain space delimiters or any other special characters which could 
  facilitate tokenizing. Identifiers should have it set to false.
    Default=true
  
$RELEVANCE
  Defines how relevance of the file is affected if a match is found in this field. Default = 1.0

$COMMENT
  Developer comment. Users won't see this.
