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