kDB: Knowledge DataBase
Loading...
Searching...
No Matches
NodesDefs.h
1#define KDB_SPARQL_ALGEBRA_EXECUTE_MEMBERS(_KLASS_NAME_, F) \
2 F(_KLASS_NAME_, knowCore::Uri, uri)
3
4KDB_SPARQL_ALGEBRA_GENERATE(Execute, KDB_SPARQL_ALGEBRA_EXECUTE_MEMBERS)
5
6#define KDB_SPARQL_ALGEBRA_LIST_MEMBERS(_KLASS_NAME_, F) \
7 F(_KLASS_NAME_, QList<NodeCSP>, list)
8
9KDB_SPARQL_ALGEBRA_GENERATE(List, KDB_SPARQL_ALGEBRA_LIST_MEMBERS)
10
11#define KDB_SPARQL_ALGEBRA_VARIABLE_MEMBERS(_KLASS_NAME_, F) \
12 F(_KLASS_NAME_, QString, name) \
13 F(_KLASS_NAME_, NodeCSP, expression)
14
15KDB_SPARQL_ALGEBRA_GENERATE(Variable, KDB_SPARQL_ALGEBRA_VARIABLE_MEMBERS)
16
17#define KDB_SPARQL_ALGEBRA_DATASET_MEMBERS(_KLASS_NAME_, F) \
18 F(_KLASS_NAME_, DatasetType, datasetType) \
19 F(_KLASS_NAME_, knowCore::Uri, uri)
20
21KDB_SPARQL_ALGEBRA_GENERATE(Dataset, KDB_SPARQL_ALGEBRA_DATASET_MEMBERS)
22
23#define KDB_SPARQL_ALGEBRA_ASK_QUERY_MEMBERS(_KLASS_NAME_, F) \
24 F(_KLASS_NAME_, QList<DatasetCSP>, datasets) \
25 F(_KLASS_NAME_, NodeCSP, where)
26
27KDB_SPARQL_ALGEBRA_GENERATE(AskQuery, KDB_SPARQL_ALGEBRA_ASK_QUERY_MEMBERS)
28
29#define KDB_SPARQL_ALGEBRA_CONSTRUCT_QUERY_MEMBERS(_KLASS_NAME_, F) \
30 F(_KLASS_NAME_, QList<TripleCSP>, constructTemplate) \
31 F(_KLASS_NAME_, QList<DatasetCSP>, datasets) \
32 F(_KLASS_NAME_, NodeCSP, where) \
33 F(_KLASS_NAME_, GroupClausesCSP, groupClauses) \
34 F(_KLASS_NAME_, HavingClausesCSP, havingClauses) \
35 F(_KLASS_NAME_, OrderClausesCSP, orderClauses) \
36 F(_KLASS_NAME_, LimitOffsetClauseCSP, limitOffsetClause)
37
38KDB_SPARQL_ALGEBRA_GENERATE(ConstructQuery, KDB_SPARQL_ALGEBRA_CONSTRUCT_QUERY_MEMBERS)
39
40#define KDB_SPARQL_ALGEBRA_DESCRIBE_TERM(_KLASS_NAME_, F) \
41 F(_KLASS_NAME_, VariableCSP, variable) \
42 F(_KLASS_NAME_, knowCore::Uri, uri)
43
44KDB_SPARQL_ALGEBRA_GENERATE(DescribeTerm, KDB_SPARQL_ALGEBRA_DESCRIBE_TERM)
45
46#define KDB_SPARQL_ALGEBRA_DESCRIBE_QUERY_MEMBERS(_KLASS_NAME_, F) \
47 F(_KLASS_NAME_, QList<DescribeTermCSP>, terms) \
48 F(_KLASS_NAME_, QList<DatasetCSP>, datasets) \
49 F(_KLASS_NAME_, NodeCSP, where) \
50 F(_KLASS_NAME_, GroupClausesCSP, groupClauses) \
51 F(_KLASS_NAME_, HavingClausesCSP, havingClauses) \
52 F(_KLASS_NAME_, OrderClausesCSP, orderClauses) \
53 F(_KLASS_NAME_, LimitOffsetClauseCSP, limitOffsetClause)
54
55KDB_SPARQL_ALGEBRA_GENERATE(DescribeQuery, KDB_SPARQL_ALGEBRA_DESCRIBE_QUERY_MEMBERS)
56
57#define KDB_SPARQL_ALGEBRA_SELECT_QUERY_MEMBERS(_KLASS_NAME_, F) \
58 F(_KLASS_NAME_, SelectModifier, modifier) \
59 F(_KLASS_NAME_, QList<VariableCSP>, variables) \
60 F(_KLASS_NAME_, QList<DatasetCSP>, datasets) \
61 F(_KLASS_NAME_, NodeCSP, where) \
62 F(_KLASS_NAME_, GroupClausesCSP, groupClauses) \
63 F(_KLASS_NAME_, HavingClausesCSP, havingClauses) \
64 F(_KLASS_NAME_, OrderClausesCSP, orderClauses) \
65 F(_KLASS_NAME_, LimitOffsetClauseCSP, limitOffsetClause)
66
67KDB_SPARQL_ALGEBRA_GENERATE(SelectQuery, KDB_SPARQL_ALGEBRA_SELECT_QUERY_MEMBERS)
68
69KDB_SPARQL_ALGEBRA_GENERATE(GroupClauses, KDB_SPARQL_ALGEBRA_LIST_MEMBERS)
70KDB_SPARQL_ALGEBRA_GENERATE(HavingClauses, KDB_SPARQL_ALGEBRA_LIST_MEMBERS)
71
72#define KDB_SPARQL_ALGEBRA_ORDER_CLAUSES_MEMBERS(_KLASS_NAME_, F) \
73 F(_KLASS_NAME_, QList<OrderClauseCSP>, list)
74
75KDB_SPARQL_ALGEBRA_GENERATE(OrderClauses, KDB_SPARQL_ALGEBRA_ORDER_CLAUSES_MEMBERS)
76
77#define KDB_SPARQL_ALGEBRA_ORDER_CLAUSE_MEMBERS(_KLASS_NAME_, F) \
78 F(_KLASS_NAME_, OrderDirection, orderDirection) \
79 F(_KLASS_NAME_, NodeCSP, node)
80
81KDB_SPARQL_ALGEBRA_GENERATE(OrderClause, KDB_SPARQL_ALGEBRA_ORDER_CLAUSE_MEMBERS)
82
83#define KDB_SPARQL_ALGEBRA_LIMIT_OFFSET_CLAUSE_MEMBERS(_KLASS_NAME_, F) \
84 F(_KLASS_NAME_, int, limit) \
85 F(_KLASS_NAME_, int, offset)
86
87KDB_SPARQL_ALGEBRA_GENERATE(LimitOffsetClause, KDB_SPARQL_ALGEBRA_LIMIT_OFFSET_CLAUSE_MEMBERS)
88
89#define KDB_SPARQL_ALGEBRA_TRIPLE_MEMBERS(_KLASS_NAME_, F) \
90 F(_KLASS_NAME_, NodeCSP, subject) \
91 F(_KLASS_NAME_, NodeCSP, predicate) \
92 F(_KLASS_NAME_, NodeCSP, object)
93
94KDB_SPARQL_ALGEBRA_GENERATE(Triple, KDB_SPARQL_ALGEBRA_TRIPLE_MEMBERS)
95
96#define KDB_SPARQL_ALGEBRA_VARIABLE_REFERENCE_MEMBERS(_KLASS_NAME_, F) \
97 F(_KLASS_NAME_, QString, name)
98
99KDB_SPARQL_ALGEBRA_GENERATE(VariableReference, KDB_SPARQL_ALGEBRA_VARIABLE_REFERENCE_MEMBERS)
100
101#define KDB_SPARQL_ALGEBRA_GRAPH_REFERENCE_MEMBERS(_KLASS_NAME_, F) \
102 F(_KLASS_NAME_, knowCore::Uri, name)
103
104KDB_SPARQL_ALGEBRA_GENERATE(GraphReference, KDB_SPARQL_ALGEBRA_GRAPH_REFERENCE_MEMBERS)
105
106#define KDB_SPARQL_ALGEBRA_TERM_MEMBERS(_KLASS_NAME_, F) \
107 F(_KLASS_NAME_, knowCore::Uri, term)
108
109KDB_SPARQL_ALGEBRA_GENERATE(Term, KDB_SPARQL_ALGEBRA_TERM_MEMBERS)
110
111#define KDB_SPARQL_ALGEBRA_BLANK_NODE_MEMBERS(_KLASS_NAME_, F) \
112 F(_KLASS_NAME_, knowRDF::BlankNode, blankNode)
113
114KDB_SPARQL_ALGEBRA_GENERATE(BlankNode, KDB_SPARQL_ALGEBRA_BLANK_NODE_MEMBERS)
115
116#define KDB_SPARQL_ALGEBRA_SERVICE_MEMBERS(_KLASS_NAME_, F) \
117 F(_KLASS_NAME_, Alternative<KNOWCORE_LIST(VariableReference, Term)>, service) \
118 F(_KLASS_NAME_, QList<Alternative<KNOWCORE_LIST(VariableReference, Term)>>, froms) \
119 F(_KLASS_NAME_, GroupGraphPatternCSP, groupGraph) \
120 F(_KLASS_NAME_, OrderClausesCSP, orderClauses) \
121 F(_KLASS_NAME_, LimitOffsetClauseCSP, limitOffsetClause)
122
123KDB_SPARQL_ALGEBRA_GENERATE(Service, KDB_SPARQL_ALGEBRA_SERVICE_MEMBERS)
124
125#define KDB_SPARQL_ALGEBRA_GROUP_GRAPH_PATTERN_MEMBERS(_KLASS_NAME_, F) \
126 F(_KLASS_NAME_, QList<NodeCSP>, graphPatterns) \
127 F(_KLASS_NAME_, QList<NodeCSP>, filters) \
128 F(_KLASS_NAME_, QList<ServiceCSP>, services) \
129 F(_KLASS_NAME_, NodeCSP, source)
130
131KDB_SPARQL_ALGEBRA_GENERATE(GroupGraphPattern, KDB_SPARQL_ALGEBRA_GROUP_GRAPH_PATTERN_MEMBERS)
132
133#define KDB_SPARQL_ALGEBRA_VALUE_MEMBERS(_KLASS_NAME_, F) \
134 F(_KLASS_NAME_, knowRDF::Literal, value)
135
136KDB_SPARQL_ALGEBRA_GENERATE(Value, KDB_SPARQL_ALGEBRA_VALUE_MEMBERS)
137
138#define KDB_SPARQL_ALGEBRA_OPTIONAL_MEMBERS(_KLASS_NAME_, F) \
139 F(_KLASS_NAME_, GroupGraphPatternCSP, group)
140
141KDB_SPARQL_ALGEBRA_GENERATE(Optional, KDB_SPARQL_ALGEBRA_OPTIONAL_MEMBERS)
142
143#define KDB_SPARQL_ALGEBRA_BINARY_MEMBERS(_KLASS_NAME_, F) \
144 F(_KLASS_NAME_, NodeCSP, left) \
145 F(_KLASS_NAME_, NodeCSP, right)
146
147KDB_SPARQL_ALGEBRA_GENERATE(Union, KDB_SPARQL_ALGEBRA_BINARY_MEMBERS)
148KDB_SPARQL_ALGEBRA_GENERATE(Minus, KDB_SPARQL_ALGEBRA_BINARY_MEMBERS)
149KDB_SPARQL_ALGEBRA_GENERATE(LogicalOr, KDB_SPARQL_ALGEBRA_BINARY_MEMBERS)
150KDB_SPARQL_ALGEBRA_GENERATE(LogicalAnd, KDB_SPARQL_ALGEBRA_BINARY_MEMBERS)
151KDB_SPARQL_ALGEBRA_GENERATE(RelationalEqual, KDB_SPARQL_ALGEBRA_BINARY_MEMBERS)
152KDB_SPARQL_ALGEBRA_GENERATE(RelationalDifferent, KDB_SPARQL_ALGEBRA_BINARY_MEMBERS)
153KDB_SPARQL_ALGEBRA_GENERATE(RelationalInferior, KDB_SPARQL_ALGEBRA_BINARY_MEMBERS)
154KDB_SPARQL_ALGEBRA_GENERATE(RelationalSuperior, KDB_SPARQL_ALGEBRA_BINARY_MEMBERS)
155KDB_SPARQL_ALGEBRA_GENERATE(RelationalInferiorEqual, KDB_SPARQL_ALGEBRA_BINARY_MEMBERS)
156KDB_SPARQL_ALGEBRA_GENERATE(RelationalSuperiorEqual, KDB_SPARQL_ALGEBRA_BINARY_MEMBERS)
157
158KDB_SPARQL_ALGEBRA_GENERATE(Addition, KDB_SPARQL_ALGEBRA_BINARY_MEMBERS)
159KDB_SPARQL_ALGEBRA_GENERATE(Substraction, KDB_SPARQL_ALGEBRA_BINARY_MEMBERS)
160KDB_SPARQL_ALGEBRA_GENERATE(Multiplication, KDB_SPARQL_ALGEBRA_BINARY_MEMBERS)
161KDB_SPARQL_ALGEBRA_GENERATE(Division, KDB_SPARQL_ALGEBRA_BINARY_MEMBERS)
162
163#define KDB_SPARQL_ALGEBRA_BINARY_IN_MEMBERS(_KLASS_NAME_, F) \
164 F(_KLASS_NAME_, NodeCSP, left) \
165 F(_KLASS_NAME_, QList<NodeCSP>, right)
166
167KDB_SPARQL_ALGEBRA_GENERATE(RelationalIn, KDB_SPARQL_ALGEBRA_BINARY_IN_MEMBERS)
168KDB_SPARQL_ALGEBRA_GENERATE(RelationalNotIn, KDB_SPARQL_ALGEBRA_BINARY_IN_MEMBERS)
169
170#define KDB_SPARQL_ALGEBRA_UNARY_MEMBERS(_KLASS_NAME_, F) \
171 F(_KLASS_NAME_, NodeCSP, value)
172
173KDB_SPARQL_ALGEBRA_GENERATE(LogicalNegation, KDB_SPARQL_ALGEBRA_UNARY_MEMBERS)
174KDB_SPARQL_ALGEBRA_GENERATE(Negation, KDB_SPARQL_ALGEBRA_UNARY_MEMBERS)
175
176
177#define KDB_SPARQL_ALGEBRA_FUNCTION_CALL_MEMBERS(_KLASS_NAME_, F) \
178 F(_KLASS_NAME_, knowCore::Uri, name) \
179 F(_KLASS_NAME_, QList<NodeCSP>, parameters)
180
181KDB_SPARQL_ALGEBRA_GENERATE(FunctionCall, KDB_SPARQL_ALGEBRA_FUNCTION_CALL_MEMBERS)
182
183// An empty Uri for the graph indicates the default graph
184#define KDB_SPARQL_ALGEBRA_QUADS_MEMBERS(_KLASS_NAME_, F) \
185 F(_KLASS_NAME_, QList<TripleCSP>, triples) \
186 F(_KLASS_NAME_, NodeCSP, source)
187
188KDB_SPARQL_ALGEBRA_GENERATE(Quads, KDB_SPARQL_ALGEBRA_QUADS_MEMBERS)
189
190#define KDB_SPARQL_ALGEBRA_QUADS_DATA_MEMBERS(_KLASS_NAME_, F) \
191 F(_KLASS_NAME_, QList<QuadsCSP>, quads)
192
193KDB_SPARQL_ALGEBRA_GENERATE(QuadsData, KDB_SPARQL_ALGEBRA_QUADS_DATA_MEMBERS)
194
195#define KDB_SPARQL_ALGEBRA_INSERT_DELETE_DATA_MEMBERS(_KLASS_NAME_, F) \
196 F(_KLASS_NAME_, QuadsDataCSP, quadsData)
197
198KDB_SPARQL_ALGEBRA_GENERATE(InsertData, KDB_SPARQL_ALGEBRA_INSERT_DELETE_DATA_MEMBERS)
199KDB_SPARQL_ALGEBRA_GENERATE(DeleteData, KDB_SPARQL_ALGEBRA_INSERT_DELETE_DATA_MEMBERS)
200
201#define KDB_SPARQL_ALGEBRA_INSERT_DELETE_INSERT_MEMBERS(_KLASS_NAME_, F) \
202 F(_KLASS_NAME_, knowCore::Uri, withUri) \
203 F(_KLASS_NAME_, QuadsDataCSP, deleteTemplate) \
204 F(_KLASS_NAME_, QuadsDataCSP, insertTemplate) \
205 F(_KLASS_NAME_, QList<DatasetCSP>, datasets) \
206 F(_KLASS_NAME_, NodeCSP, where) \
207
208KDB_SPARQL_ALGEBRA_GENERATE(DeleteInsert, KDB_SPARQL_ALGEBRA_INSERT_DELETE_INSERT_MEMBERS)
209
210#define KDB_SPARQL_ALGEBRA_LOAD_MEMBERS(_KLASS_NAME_, F) \
211 F(_KLASS_NAME_, knowCore::Uri, uri) \
212 F(_KLASS_NAME_, knowCore::Uri, graph) \
213 F(_KLASS_NAME_, bool, silent)
214
215KDB_SPARQL_ALGEBRA_GENERATE(Load, KDB_SPARQL_ALGEBRA_LOAD_MEMBERS)
216
217#define KDB_SPARQL_ALGEBRA_DROP_CLEAR_MEMBERS(_KLASS_NAME_, F) \
218 F(_KLASS_NAME_, bool, silent) \
219 F(_KLASS_NAME_, GraphType, graphType) \
220 F(_KLASS_NAME_, knowCore::Uri, graph)
221
222KDB_SPARQL_ALGEBRA_GENERATE(Drop, KDB_SPARQL_ALGEBRA_DROP_CLEAR_MEMBERS)
223KDB_SPARQL_ALGEBRA_GENERATE(Clear, KDB_SPARQL_ALGEBRA_DROP_CLEAR_MEMBERS)
224
225#define KDB_SPARQL_ALGEBRA_CREATE_MEMBERS(_KLASS_NAME_, F) \
226 F(_KLASS_NAME_, bool, silent) \
227 F(_KLASS_NAME_, knowCore::Uri, graph)
228
229KDB_SPARQL_ALGEBRA_GENERATE(Create, KDB_SPARQL_ALGEBRA_CREATE_MEMBERS)
230
231#define KDB_SPARQL_ALGEBRA_BIND(_KLASS_NAME_, F) \
232 F(_KLASS_NAME_, QString, name) \
233 F(_KLASS_NAME_, NodeCSP, expression)
234
235KDB_SPARQL_ALGEBRA_GENERATE(Bind, KDB_SPARQL_ALGEBRA_BIND)
236
237#define KDB_SPARQL_ALGEBRA_EXPLAIN_QUERY(_KLASS_NAME_, F) \
238 F(_KLASS_NAME_, QString, options) \
239 F(_KLASS_NAME_, NodeCSP, query)
240
241KDB_SPARQL_ALGEBRA_GENERATE(ExplainQuery, KDB_SPARQL_ALGEBRA_EXPLAIN_QUERY)
242
243// PL/SPARQL Nodes
244
245#define KDB_SPARQL_ALGEBRA_PL_SPARQL_QUERY(_KLASS_NAME_, F) \
246 F(_KLASS_NAME_, ListCSP, statements)
247
248KDB_SPARQL_ALGEBRA_GENERATE(PLQuery, KDB_SPARQL_ALGEBRA_PL_SPARQL_QUERY)
249
250#define KDB_SPARQL_ALGEBRA_PL_SPARQL_IF_UNLESS(_KLASS_NAME_, F) \
251 F(_KLASS_NAME_, AskQueryCSP, condition) \
252 F(_KLASS_NAME_, ListCSP, ifStatements) \
253 F(_KLASS_NAME_, ListCSP, elseStatements)
254
255KDB_SPARQL_ALGEBRA_GENERATE(If, KDB_SPARQL_ALGEBRA_PL_SPARQL_IF_UNLESS)
256KDB_SPARQL_ALGEBRA_GENERATE(Unless, KDB_SPARQL_ALGEBRA_PL_SPARQL_IF_UNLESS)