Xesam meta-meta-data spec needs attention.

Phreedom phreedom.stdin at gmail.com
Tue May 1 00:40:37 EEST 2007


I'm writing this on behalf of Strigi project.

It's important to finish Xesam specs as soon as possible since lots of code 
and work starts to depend on meta-meta- and meta- data spec and it gets more 
and more complicated to make changes.

I believe Xesam metadata bainstorm wiki page has shown that proposals mostly 
split along .desktop vs RDF representation line, with the essense being very 
similar. So it's about time to finish meta-meta-data and start actively 
working on meta-data spec.

Another concern is KDE feature freeze on 1th june which is also going to 
affect our ability to implement Xesam.

At the end of the e-mail is our lastest proposal for meta-meta-data 
specification.

Best wishes,
Evgeny

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

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



More information about the xdg mailing list