]> arthur.barton.de Git - netatalk.git/blob - etc/spotlight/slmod_sparql_map.h
250894b1094ad12e4c18ea028915f61199e5575b
[netatalk.git] / etc / spotlight / slmod_sparql_map.h
1 /*
2   Copyright (c) 2012 Frank Lahm <franklahm@gmail.com>
3
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.
8
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.
13 */
14
15 #ifdef HAVE_CONFIG_H
16 #include "config.h"
17 #endif /* HAVE_CONFIG_H */
18
19 #ifndef SPOTLIGHT_SPARQL_MAP_H
20 #define SPOTLIGHT_SPARQL_MAP_H
21
22 enum ssm_type {
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 */
29 };
30
31 enum kMDTypeMap {
32     kMDTypeMapNotSup,           /* not supported */
33     kMDTypeMapRDF,              /* query with rdf:type */
34     kMDTypeMapMime              /* query with nie:mimeType */
35 };
36
37 struct spotlight_sparql_map {
38     const char *ssm_spotlight_attr;
39     enum ssm_type ssm_type;
40     const char *ssm_sparql_attr;
41 };
42
43 struct MDTypeMap {
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 */
47 };
48
49 extern struct spotlight_sparql_map spotlight_sparql_map[];
50 extern struct spotlight_sparql_map spotlight_sparql_date_map[];
51 extern struct MDTypeMap MDTypeMap[];
52 #endif