2 Copyright (c) 2012 Frank Lahm <franklahm@gmail.com>
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
17 #endif /* HAVE_CONFIG_H */
19 #ifndef SPOTLIGHT_SPARQL_MAP_H
20 #define SPOTLIGHT_SPARQL_MAP_H
23 ssmt_bool, /* a boolean value that doesn't requires a SPARQL FILTER */
24 ssmt_num, /* a numeric value that requires a SPARQL FILTER */
25 ssmt_str, /* a string value that requieres a SPARQL FILTER */
26 ssmt_fts, /* a string value that will be queried with SPARQL 'fts:match' */
27 ssmt_date, /* date values are handled in a special map function map_daterange() */
28 ssmt_type /* kMDItemContentType, requires special mapping */
32 kMDTypeMapNotSup, /* not supported */
33 kMDTypeMapRDF, /* query with rdf:type */
34 kMDTypeMapMime /* query with nie:mimeType */
37 struct spotlight_sparql_map {
38 const char *ssm_spotlight_attr;
39 enum ssm_type ssm_type;
40 const char *ssm_sparql_attr;
44 const char *mdtm_value; /* MD query value of attributes '_kMDItemGroupId' and 'kMDItemContentTypeTree' */
45 enum kMDTypeMap mdtm_type; /* whether SPARQL query must search attribute rdf:type or nie:mime_Type */
46 const char *mdtm_sparql; /* the SPARQL query match string */
49 extern struct spotlight_sparql_map spotlight_sparql_map[];
50 extern struct spotlight_sparql_map spotlight_sparql_date_map[];
51 extern struct MDTypeMap MDTypeMap[];