+ *
+ *)
+let apply_func f value =
+ match f with
+ MQName -> func_name value
+ | MQTheory -> func_theory value
+ | MQTitle -> func_dc (value, "title")
+ | MQContributor -> func_dc (value, "contributor")
+ | MQCreator -> func_dc (value, "creator")
+ | MQPublisher -> func_dc (value, "publisher")
+ | MQSubject -> func_dc (value, "subject")
+ | MQDescription -> func_dc (value, "description")
+ | MQDate -> func_dc (value, "date")
+ | MQType -> func_dc (value, "type")
+ | MQFormat -> func_dc (value, "format")
+ | MQIdentifier -> func_dc (value, "identifier")
+ | MQLanguage -> func_dc (value, "language")
+ | MQRelation -> func_dc (value, "relation")
+ | MQSource -> func_dc (value, "source")
+ | MQCoverage -> func_dc (value, "coverage")
+ | MQRights -> func_dc (value, "rights")
+ | MQInstitution -> func_dc (value, "institution")
+ | MQContact -> func_dc (value, "contact")
+ | MQFirstVersion -> func_dc (value, "firstversion")
+ | MQModified -> func_dc (value, "modified")
+;;
+