1 /* Converted to D from ../FaCT++.C/fact.h by htod */
2 module fact;
3 /* This file is part of the FaCT++ DL reasoner
4 Copyright (C) 2011-2015 Dmitry Tsarkov and The University of Manchester
5 Copyright (C) 2015-2017 Dmitry Tsarkov
6 
7 This library is free software; you can redistribute it and/or
8 modify it under the terms of the GNU Lesser General Public
9 License as published by the Free Software Foundation; either
10 version 2.1 version 2.1 of the License, or (at your option) any later version.
11 
12 This library is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU GNU
15 Lesser General Public License for more details.
16 
17 You should have received a copy of the GNU Lesser General Public
18 License along with this library; if not, write to the Free Software
19 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
20 */
21 
22 //C     #ifndef FACT_H_INCLUDED
23 //C     #define FACT_H_INCLUDED
24 
25 // export specification
26 //C     #if defined(_WIN32)
27 //C     #	if defined(FPP_BUILD_SHARED)	/* build DLL */
28 //C     #		define FPP_EXPORT __declspec(dllexport)
29 //C     #	else /* use DLL */
30 //C     #		define FPP_EXPORT __declspec(dllimport)
31 //C     #	endif
32 //C     #else
33 //C     #	define FPP_EXPORT
34 //C     #endif
35 
36 
37 //C     #ifdef __cplusplus
38 //C     extern "C" {
39 //C     #endif
40 
41 import std.typecons;
42 import core.stdc.stdarg;
43 
44 /* variadic wrapper */
45 extern(D):
46 auto _fact_concept_actor_new(...) {
47 	return fact_concept_actor_new(_argptr);
48 }
49 auto _fact_individual_actor_new(...) {
50 	return fact_individual_actor_new(_argptr);
51 }
52 auto _fact_o_role_actor_new(...) {
53 	return fact_o_role_actor_new(_argptr);
54 }
55 
56 /* type declarations */
57 
58 //C     #define DECLARERUCT(name) typedef struct name ##  name
59 /* FaCT++ kernel */
60 //C     DECLARERUCT(fact_reasoning_kernel);
61 extern (C):
62 //alias fact_reasoning_kernel fact_reasoning_kernel;
63 alias fact_reasoning_kernel = Typedef!(void*);
64 /* progress monitor */
65 //C     DECLARERUCT(fact_progress_monitor);
66 alias fact_progress_monitor = Typedef!(void*); //progress_monitor;
67 /* axiom */
68 //C     DECLARERUCT(fact_axiom);
69 alias fact_axiom = Typedef!(void*); //axiom;
70 /* expression */
71 //C     DECLARERUCT(fact_expression);
72 alias fact_expression = Typedef!(void*); //expression;
73 /* concept expression */
74 //C     DECLARERUCT(fact_concept_expression);
75 alias fact_concept_expression = Typedef!(void*); //concept_expression;
76 /* data- or object-role expression */
77 //C     DECLARERUCT(fact_role_expression);
78 alias fact_role_expression = Typedef!(void*); //role_expression;
79 /* object role expression */
80 //C     DECLARERUCT(fact_o_role_expression);
81 alias fact_o_role_expression = Typedef!(void*); //o_role_expression;
82 /* complex object role expression */
83 //C     DECLARERUCT(fact_o_role_complex_expression);
84 alias fact_o_role_complex_expression = Typedef!(void*); //o_role_complex_expression;
85 /* data role expression */
86 //C     DECLARERUCT(fact_d_role_expression);
87 alias fact_d_role_expression = Typedef!(void*); //d_role_expression;
88 /* individual expression */
89 //C     DECLARERUCT(fact_individual_expression);
90 alias fact_individual_expression = Typedef!(void*); //individual_expression;
91 /* general data expression */
92 //C     DECLARERUCT(fact_data_expression);
93 alias fact_data_expression = Typedef!(void*); //data_expression;
94 /* data type expression */
95 //C     DECLARERUCT(fact_data_type_expression);
96 alias fact_data_type_expression = Typedef!(void*); //data_type_expression;
97 /* data value expression */
98 //C     DECLARERUCT(fact_data_value_expression);
99 alias fact_data_value_expression = Typedef!(void*); //data_value_expression;
100 /* facet expression */
101 //C     DECLARERUCT(fact_facet_expression);
102 alias fact_facet_expression = Typedef!(void*); //facet_expression;
103 /* actor to traverse taxonomy */
104 //C     DECLARERUCT(fact_actor);
105 alias fact_actor = Typedef!(void*); //actor;
106 
107 //C     #undef DECLARERUCT
108 
109 //C     FPP_EXPORT const immutable(char)* fact_get_version ();
110 immutable(char)*  fact_get_version(va_list);
111 
112 //C     FPP_EXPORT fact_reasoning_kernel *fact_reasoning_kernel_new (void);
113 fact_reasoning_kernel * fact_reasoning_kernel_new();
114 //C     FPP_EXPORT void fact_reasoning_kernel_free (fact_reasoning_kernel *);
115 void  fact_reasoning_kernel_free(fact_reasoning_kernel *);
116 
117 /*
118 ifOptionSet* getOptions (  );
119 const ifOptionSet* getOptions (  );
120  */
121 
122 //C     FPP_EXPORT int fact_is_kb_preprocessed (fact_reasoning_kernel *);
123 int  fact_is_kb_preprocessed(fact_reasoning_kernel *);
124 //C     FPP_EXPORT int fact_is_kb_classified (fact_reasoning_kernel *);
125 int  fact_is_kb_classified(fact_reasoning_kernel *);
126 //C     FPP_EXPORT int fact_is_kb_realised (fact_reasoning_kernel *);
127 int  fact_is_kb_realised(fact_reasoning_kernel *);
128 //C     FPP_EXPORT void fact_set_progress_monitor (fact_reasoning_kernel *, fact_progress_monitor *);
129 void  fact_set_progress_monitor(fact_reasoning_kernel *, fact_progress_monitor *);
130 
131 //C     FPP_EXPORT void fact_set_verbose_output (fact_reasoning_kernel *, int value);
132 void  fact_set_verbose_output(fact_reasoning_kernel *, int value);
133 
134 //C     FPP_EXPORT void fact_set_top_bottom_role_names (fact_reasoning_kernel *,
135 //C     		const immutable(char)* top_b_role_name,
136 //C     		const immutable(char)* bot_b_role_name,
137 //C     		const immutable(char)* top_d_role_name,
138 //C     		const immutable(char)* bot_d_role_name);
139 void  fact_set_top_bottom_role_names(fact_reasoning_kernel *, immutable(char)* top_b_role_name, immutable(char)* bot_b_role_name, immutable(char)* top_d_role_name, immutable(char)* bot_d_role_name);
140 
141 //C     FPP_EXPORT void fact_set_operation_timeout (fact_reasoning_kernel *,
142 //C     		unsigned long timeout);
143 void  fact_set_operation_timeout(fact_reasoning_kernel *, uint timeout);
144 
145 //C     FPP_EXPORT int fact_new_kb (fact_reasoning_kernel *);
146 int  fact_new_kb(fact_reasoning_kernel *);
147 //C     FPP_EXPORT int fact_release_kb (fact_reasoning_kernel *);
148 int  fact_release_kb(fact_reasoning_kernel *);
149 //C     FPP_EXPORT int fact_clear_kb (fact_reasoning_kernel *);
150 int  fact_clear_kb(fact_reasoning_kernel *);
151 
152 //C     FPP_EXPORT fact_axiom *fact_declare (fact_reasoning_kernel *, fact_expression *c);
153 fact_axiom * fact_declare(fact_reasoning_kernel *, fact_expression *c);
154 //C     FPP_EXPORT fact_axiom *fact_implies_concepts (fact_reasoning_kernel *,
155 //C     		fact_concept_expression *c,
156 //C     		fact_concept_expression *d);
157 fact_axiom * fact_implies_concepts(fact_reasoning_kernel *, fact_concept_expression *c, fact_concept_expression *d);
158 //C     FPP_EXPORT fact_axiom *fact_equal_concepts (fact_reasoning_kernel *);
159 fact_axiom * fact_equal_concepts(fact_reasoning_kernel *);
160 //C     FPP_EXPORT fact_axiom *fact_disjoint_concepts (fact_reasoning_kernel *);
161 fact_axiom * fact_disjoint_concepts(fact_reasoning_kernel *);
162 //C     FPP_EXPORT fact_axiom *fact_disjoint_union (fact_reasoning_kernel *,
163 //C     		fact_concept_expression *c);
164 fact_axiom * fact_disjoint_union(fact_reasoning_kernel *, fact_concept_expression *c);
165 
166 
167 //C     FPP_EXPORT fact_axiom *fact_set_inverse_roles (fact_reasoning_kernel *,
168 //C     		fact_o_role_expression *r,
169 //C     		fact_o_role_expression *s);
170 fact_axiom * fact_set_inverse_roles(fact_reasoning_kernel *, fact_o_role_expression *r, fact_o_role_expression *s);
171 //C     FPP_EXPORT fact_axiom *fact_implies_o_roles (fact_reasoning_kernel *,
172 //C     		fact_o_role_complex_expression *r,
173 //C     		fact_o_role_expression *s);
174 fact_axiom * fact_implies_o_roles(fact_reasoning_kernel *, fact_o_role_complex_expression *r, fact_o_role_expression *s);
175 //C     FPP_EXPORT fact_axiom *fact_implies_d_roles (fact_reasoning_kernel *,
176 //C     		fact_d_role_expression *r,
177 //C     		fact_d_role_expression *s);
178 fact_axiom * fact_implies_d_roles(fact_reasoning_kernel *, fact_d_role_expression *r, fact_d_role_expression *s);
179 //C     FPP_EXPORT fact_axiom *fact_equal_o_roles (fact_reasoning_kernel *);
180 fact_axiom * fact_equal_o_roles(fact_reasoning_kernel *);
181 //C     FPP_EXPORT fact_axiom *fact_equal_d_roles (fact_reasoning_kernel *);
182 fact_axiom * fact_equal_d_roles(fact_reasoning_kernel *);
183 //C     FPP_EXPORT fact_axiom *fact_disjoint_o_roles (fact_reasoning_kernel *);
184 fact_axiom * fact_disjoint_o_roles(fact_reasoning_kernel *);
185 //C     FPP_EXPORT fact_axiom *fact_disjoint_d_roles (fact_reasoning_kernel *);
186 fact_axiom * fact_disjoint_d_roles(fact_reasoning_kernel *);
187 
188 //C     FPP_EXPORT fact_axiom* fact_set_o_domain (fact_reasoning_kernel *,
189 //C     		fact_o_role_expression *r,
190 //C     		fact_concept_expression *c);
191 fact_axiom * fact_set_o_domain(fact_reasoning_kernel *, fact_o_role_expression *r, fact_concept_expression *c);
192 //C     FPP_EXPORT fact_axiom *fact_set_d_domain (fact_reasoning_kernel *,
193 //C     		fact_d_role_expression *r,
194 //C     		fact_concept_expression *c);
195 fact_axiom * fact_set_d_domain(fact_reasoning_kernel *, fact_d_role_expression *r, fact_concept_expression *c);
196 //C     FPP_EXPORT fact_axiom *fact_set_o_range (fact_reasoning_kernel *,
197 //C     		fact_o_role_expression *r,
198 //C     		fact_concept_expression *c);
199 fact_axiom * fact_set_o_range(fact_reasoning_kernel *, fact_o_role_expression *r, fact_concept_expression *c);
200 //C     FPP_EXPORT fact_axiom *fact_set_d_range (fact_reasoning_kernel *,
201 //C     		fact_d_role_expression *r,
202 //C     		fact_data_expression *e);
203 fact_axiom * fact_set_d_range(fact_reasoning_kernel *, fact_d_role_expression *r, fact_data_expression *e);
204 
205 //C     FPP_EXPORT fact_axiom *fact_set_transitive (fact_reasoning_kernel *,
206 //C     		fact_o_role_expression *r);
207 fact_axiom * fact_set_transitive(fact_reasoning_kernel *, fact_o_role_expression *r);
208 //C     FPP_EXPORT fact_axiom *fact_set_reflexive (fact_reasoning_kernel *,
209 //C     		fact_o_role_expression *r);
210 fact_axiom * fact_set_reflexive(fact_reasoning_kernel *, fact_o_role_expression *r);
211 //C     FPP_EXPORT fact_axiom *fact_set_irreflexive (fact_reasoning_kernel *,
212 //C     		fact_o_role_expression *r);
213 fact_axiom * fact_set_irreflexive(fact_reasoning_kernel *, fact_o_role_expression *r);
214 //C     FPP_EXPORT fact_axiom *fact_set_symmetric (fact_reasoning_kernel *,
215 //C     		fact_o_role_expression *r);
216 fact_axiom * fact_set_symmetric(fact_reasoning_kernel *, fact_o_role_expression *r);
217 //C     FPP_EXPORT fact_axiom *fact_set_asymmetric (fact_reasoning_kernel *,
218 //C     		fact_o_role_expression *r);
219 fact_axiom * fact_set_asymmetric(fact_reasoning_kernel *, fact_o_role_expression *r);
220 //C     FPP_EXPORT fact_axiom *fact_set_o_functional (fact_reasoning_kernel *,
221 //C     		fact_o_role_expression *r);
222 fact_axiom * fact_set_o_functional(fact_reasoning_kernel *, fact_o_role_expression *r);
223 //C     FPP_EXPORT fact_axiom *fact_set_d_functional (fact_reasoning_kernel *,
224 //C     		fact_d_role_expression *r);
225 fact_axiom * fact_set_d_functional(fact_reasoning_kernel *, fact_d_role_expression *r);
226 //C     FPP_EXPORT fact_axiom *fact_set_inverse_functional (fact_reasoning_kernel *,
227 //C     		fact_o_role_expression *r);
228 fact_axiom * fact_set_inverse_functional(fact_reasoning_kernel *, fact_o_role_expression *r);
229 
230 //C     FPP_EXPORT fact_axiom *fact_instance_of (fact_reasoning_kernel *,
231 //C     		fact_individual_expression *i,
232 //C     		fact_concept_expression *c);
233 fact_axiom * fact_instance_of(fact_reasoning_kernel *, fact_individual_expression *i, fact_concept_expression *c);
234 //C     FPP_EXPORT fact_axiom *fact_related_to (fact_reasoning_kernel *,
235 //C     		fact_individual_expression *i,
236 //C     		fact_o_role_expression *r,
237 //C     		fact_individual_expression *j);
238 fact_axiom * fact_related_to(fact_reasoning_kernel *, fact_individual_expression *i, fact_o_role_expression *r, fact_individual_expression *j);
239 //C     FPP_EXPORT fact_axiom *fact_related_to_not (fact_reasoning_kernel *,
240 //C     		fact_individual_expression *i,
241 //C     		fact_o_role_expression *r,
242 //C     		fact_individual_expression *j);
243 fact_axiom * fact_related_to_not(fact_reasoning_kernel *, fact_individual_expression *i, fact_o_role_expression *r, fact_individual_expression *j);
244 //C     FPP_EXPORT fact_axiom *fact_value_of (fact_reasoning_kernel *,
245 //C     		fact_individual_expression *i,
246 //C     		fact_d_role_expression *a,
247 //C     		fact_data_value_expression *v);
248 fact_axiom * fact_value_of(fact_reasoning_kernel *, fact_individual_expression *i, fact_d_role_expression *a, fact_data_value_expression *v);
249 //C     FPP_EXPORT fact_axiom *fact_value_of_not (fact_reasoning_kernel *,
250 //C     		fact_individual_expression *i,
251 //C     		fact_d_role_expression *a,
252 //C     		fact_data_value_expression *v);
253 fact_axiom * fact_value_of_not(fact_reasoning_kernel *, fact_individual_expression *i, fact_d_role_expression *a, fact_data_value_expression *v);
254 //C     FPP_EXPORT fact_axiom *fact_process_same (fact_reasoning_kernel *);
255 fact_axiom * fact_process_same(fact_reasoning_kernel *);
256 //C     FPP_EXPORT fact_axiom *fact_process_different (fact_reasoning_kernel *);
257 fact_axiom * fact_process_different(fact_reasoning_kernel *);
258 //C     FPP_EXPORT fact_axiom *fact_set_fairness_constraint (fact_reasoning_kernel *);
259 fact_axiom * fact_set_fairness_constraint(fact_reasoning_kernel *);
260 
261 //C     FPP_EXPORT void fact_retract (fact_reasoning_kernel *, fact_axiom *axiom);
262 void  fact_retract(fact_reasoning_kernel *, fact_axiom *axiom);
263 
264 //C     FPP_EXPORT int fact_is_kb_consistent (fact_reasoning_kernel *);
265 int  fact_is_kb_consistent(fact_reasoning_kernel *);
266 //C     FPP_EXPORT void fact_preprocess_kb (fact_reasoning_kernel *);
267 void  fact_preprocess_kb(fact_reasoning_kernel *);
268 //C     FPP_EXPORT void fact_classify_kb (fact_reasoning_kernel *);
269 void  fact_classify_kb(fact_reasoning_kernel *);
270 //C     FPP_EXPORT void fact_realise_kb (fact_reasoning_kernel *);
271 void  fact_realise_kb(fact_reasoning_kernel *);
272 
273 //C     FPP_EXPORT int fact_is_o_functional (fact_reasoning_kernel *, fact_o_role_expression *r);
274 int  fact_is_o_functional(fact_reasoning_kernel *, fact_o_role_expression *r);
275 //C     FPP_EXPORT int fact_is_d_functional (fact_reasoning_kernel *,
276 //C     		fact_d_role_expression *r);
277 int  fact_is_d_functional(fact_reasoning_kernel *, fact_d_role_expression *r);
278 //C     FPP_EXPORT int fact_is_inverse_functional (fact_reasoning_kernel *,
279 //C     		fact_o_role_expression *r);
280 int  fact_is_inverse_functional(fact_reasoning_kernel *, fact_o_role_expression *r);
281 //C     FPP_EXPORT int fact_is_transitive (fact_reasoning_kernel *, fact_o_role_expression *r);
282 int  fact_is_transitive(fact_reasoning_kernel *, fact_o_role_expression *r);
283 //C     FPP_EXPORT int fact_is_symmetric (fact_reasoning_kernel *, fact_o_role_expression *r);
284 int  fact_is_symmetric(fact_reasoning_kernel *, fact_o_role_expression *r);
285 //C     FPP_EXPORT int fact_is_asymmetric (fact_reasoning_kernel *, fact_o_role_expression *r);
286 int  fact_is_asymmetric(fact_reasoning_kernel *, fact_o_role_expression *r);
287 //C     FPP_EXPORT int fact_is_reflexive (fact_reasoning_kernel *, fact_o_role_expression *r);
288 int  fact_is_reflexive(fact_reasoning_kernel *, fact_o_role_expression *r);
289 //C     FPP_EXPORT int fact_is_irreflexive (fact_reasoning_kernel *, fact_o_role_expression *r);
290 int  fact_is_irreflexive(fact_reasoning_kernel *, fact_o_role_expression *r);
291 //C     FPP_EXPORT int fact_is_sub_o_roles (fact_reasoning_kernel *, fact_o_role_expression *r,
292 //C     		fact_o_role_expression *s);
293 int  fact_is_sub_o_roles(fact_reasoning_kernel *, fact_o_role_expression *r, fact_o_role_expression *s);
294 //C     FPP_EXPORT int fact_is_sub_d_roles (fact_reasoning_kernel *, fact_d_role_expression *r,
295 //C     		fact_d_role_expression *s);
296 int  fact_is_sub_d_roles(fact_reasoning_kernel *, fact_d_role_expression *r, fact_d_role_expression *s);
297 //C     FPP_EXPORT int fact_is_disjoint_o_roles (fact_reasoning_kernel *,
298 //C     		fact_o_role_expression *r,
299 //C     		fact_o_role_expression *s);
300 int  fact_is_disjoint_o_roles(fact_reasoning_kernel *, fact_o_role_expression *r, fact_o_role_expression *s);
301 //C     FPP_EXPORT int fact_is_disjoint_d_roles (fact_reasoning_kernel *,
302 //C     		fact_d_role_expression *r,
303 //C     		fact_d_role_expression *s);
304 int  fact_is_disjoint_d_roles(fact_reasoning_kernel *, fact_d_role_expression *r, fact_d_role_expression *s);
305 //C     FPP_EXPORT int fact_is_disjoint_roles (fact_reasoning_kernel *);
306 int  fact_is_disjoint_roles(fact_reasoning_kernel *);
307 //C     FPP_EXPORT int fact_is_sub_chain (fact_reasoning_kernel *, fact_o_role_expression *r);
308 int  fact_is_sub_chain(fact_reasoning_kernel *, fact_o_role_expression *r);
309 
310 //C     FPP_EXPORT int fact_is_satisfiable (fact_reasoning_kernel *, fact_concept_expression *c);
311 int  fact_is_satisfiable(fact_reasoning_kernel *, fact_concept_expression *c);
312 //C     FPP_EXPORT int fact_is_subsumed_by (fact_reasoning_kernel *, fact_concept_expression *c,
313 //C     		fact_concept_expression *d);
314 int  fact_is_subsumed_by(fact_reasoning_kernel *, fact_concept_expression *c, fact_concept_expression *d);
315 //C     FPP_EXPORT int fact_is_disjoint (fact_reasoning_kernel *, fact_concept_expression *c,
316 //C     		fact_concept_expression *d);
317 int  fact_is_disjoint(fact_reasoning_kernel *, fact_concept_expression *c, fact_concept_expression *d);
318 //C     FPP_EXPORT int fact_is_equivalent (fact_reasoning_kernel *, fact_concept_expression *c,
319 //C     		fact_concept_expression *d);
320 int  fact_is_equivalent(fact_reasoning_kernel *, fact_concept_expression *c, fact_concept_expression *d);
321 
322 //C     FPP_EXPORT void fact_get_sup_concepts (fact_reasoning_kernel *, fact_concept_expression *c,
323 //C     		int direct, fact_actor **actor);
324 void  fact_get_sup_concepts(fact_reasoning_kernel *, fact_concept_expression *c, int direct, fact_actor **actor);
325 //C     FPP_EXPORT void fact_get_sub_concepts (fact_reasoning_kernel *, fact_concept_expression *c,
326 //C     		int direct, fact_actor **actor);
327 void  fact_get_sub_concepts(fact_reasoning_kernel *, fact_concept_expression *c, int direct, fact_actor **actor);
328 //C     FPP_EXPORT void fact_get_equivalent_concepts (fact_reasoning_kernel *,
329 //C     		fact_concept_expression *c,
330 //C     		fact_actor **actor);
331 void  fact_get_equivalent_concepts(fact_reasoning_kernel *, fact_concept_expression *c, fact_actor **actor);
332 //C     FPP_EXPORT void fact_get_disjoint_concepts (fact_reasoning_kernel *,
333 //C     		fact_concept_expression *c,
334 //C     		fact_actor **actor);
335 void  fact_get_disjoint_concepts(fact_reasoning_kernel *, fact_concept_expression *c, fact_actor **actor);
336 
337 //C     FPP_EXPORT void fact_get_sup_roles (fact_reasoning_kernel *, fact_role_expression *r,
338 //C     		int direct, fact_actor **actor);
339 void  fact_get_sup_roles(fact_reasoning_kernel *, fact_role_expression *r, int direct, fact_actor **actor);
340 //C     FPP_EXPORT void fact_get_sub_roles (fact_reasoning_kernel *, fact_role_expression *r,
341 //C     		int direct, fact_actor **actor);
342 void  fact_get_sub_roles(fact_reasoning_kernel *, fact_role_expression *r, int direct, fact_actor **actor);
343 //C     FPP_EXPORT void fact_get_equivalent_roles (fact_reasoning_kernel *, fact_role_expression *r,
344 //C     		fact_actor **actor);
345 void  fact_get_equivalent_roles(fact_reasoning_kernel *, fact_role_expression *r, fact_actor **actor);
346 //C     FPP_EXPORT void fact_get_o_role_domain (fact_reasoning_kernel *, fact_o_role_expression *r,
347 //C     		int direct, fact_actor **actor);
348 void  fact_get_o_role_domain(fact_reasoning_kernel *, fact_o_role_expression *r, int direct, fact_actor **actor);
349 //C     FPP_EXPORT void fact_get_d_role_domain (fact_reasoning_kernel *, fact_d_role_expression *r,
350 //C     		int direct, fact_actor **actor);
351 void  fact_get_d_role_domain(fact_reasoning_kernel *, fact_d_role_expression *r, int direct, fact_actor **actor);
352 //C     FPP_EXPORT void fact_get_role_range (fact_reasoning_kernel *, fact_o_role_expression *r,
353 //C     		int direct, fact_actor **actor);
354 void  fact_get_role_range(fact_reasoning_kernel *, fact_o_role_expression *r, int direct, fact_actor **actor);
355 //C     FPP_EXPORT void fact_get_direct_instances (fact_reasoning_kernel *,
356 //C     		fact_concept_expression *c, fact_actor **actor);
357 void  fact_get_direct_instances(fact_reasoning_kernel *, fact_concept_expression *c, fact_actor **actor);
358 //C     FPP_EXPORT void fact_get_instances (fact_reasoning_kernel *, fact_concept_expression *c,
359 //C     		fact_actor **actor);
360 void  fact_get_instances(fact_reasoning_kernel *, fact_concept_expression *c, fact_actor **actor);
361 //C     FPP_EXPORT void fact_get_types (fact_reasoning_kernel *, fact_individual_expression *i,
362 //C     		int direct, fact_actor **actor);
363 void  fact_get_types(fact_reasoning_kernel *, fact_individual_expression *i, int direct, fact_actor **actor);
364 //C     FPP_EXPORT void fact_get_same_as (fact_reasoning_kernel *,
365 //C     		fact_individual_expression *i, fact_actor **actor);
366 void  fact_get_same_as(fact_reasoning_kernel *, fact_individual_expression *i, fact_actor **actor);
367 
368 //C     FPP_EXPORT int fact_is_same_individuals (fact_reasoning_kernel *,
369 //C     		fact_individual_expression *i,
370 //C     		fact_individual_expression *j);
371 int  fact_is_same_individuals(fact_reasoning_kernel *, fact_individual_expression *i, fact_individual_expression *j);
372 //C     FPP_EXPORT int fact_is_instance (fact_reasoning_kernel *,
373 //C     		fact_individual_expression *i,
374 //C     		fact_concept_expression *c);
375 int  fact_is_instance(fact_reasoning_kernel *, fact_individual_expression *i, fact_concept_expression *c);
376 /*
377 void fact_get_related_roles (fact_reasoning_kernel *,
378 			     fact_individual_expression *i,
379 			     int data, int needI,
380 			     fact_names_vector **result);
381 void fact_get_role_fillers (fact_reasoning_kernel *,
382 			    fact_individual_expression *i,
383 			    fact_o_role_expression *r,
384 			    fact_individual_set **result);
385  */
386 //C     FPP_EXPORT int fact_is_related (fact_reasoning_kernel *,
387 //C     		 fact_individual_expression *i,
388 //C     		 fact_o_role_expression *r,
389 //C     		 fact_individual_expression *j);
390 int  fact_is_related(fact_reasoning_kernel *, fact_individual_expression *i, fact_o_role_expression *r, fact_individual_expression *j);
391 
392 //C     FPP_EXPORT fact_actor* fact_concept_actor_new();
393 fact_actor * fact_concept_actor_new(va_list);
394 //C     FPP_EXPORT fact_actor* fact_individual_actor_new();
395 fact_actor * fact_individual_actor_new(va_list);
396 //C     FPP_EXPORT fact_actor* fact_o_role_actor_new();
397 fact_actor * fact_o_role_actor_new(va_list);
398 //C     FPP_EXPORT fact_actor* fact_d_role_actor_new();
399 fact_actor * fact_d_role_actor_new(va_list);
400 //C     FPP_EXPORT void fact_actor_free(fact_actor*);
401 void  fact_actor_free(fact_actor *);
402 /* get 1-d NULL-terminated array of synonyms of the 1st entry(necessary for Equivalents, for example) */
403 //C     FPP_EXPORT const char** fact_get_synonyms ( fact_actor* );
404 immutable(char)* * fact_get_synonyms(fact_actor *);
405 /* get NULL-terminated 2D array of all required elements of the taxonomy */
406 //C     FPP_EXPORT const char*** fact_get_elements_2d ( fact_actor* );
407 immutable(char)* ** fact_get_elements_2d(fact_actor *);
408 /* get NULL-terminated 1D array of all required elements of the taxonomy */
409 //C     FPP_EXPORT const char** fact_get_elements_1d ( fact_actor* );
410 immutable(char)* * fact_get_elements_1d(fact_actor *);
411 
412 /* opens new argument list */
413 //C     FPP_EXPORT void fact_new_arg_list ( fact_reasoning_kernel *k );
414 void  fact_new_arg_list(fact_reasoning_kernel *k);
415 /* add argument _a_rG to the current argument list */
416 //C     FPP_EXPORT void fact_add_arg ( fact_reasoning_kernel *k,fact_expression* e );
417 void  fact_add_arg(fact_reasoning_kernel *k, fact_expression *e);
418 
419 /* create expressions methods */
420 
421 /* concepts */
422 
423 /* get _t_o_p concept */
424 //C     FPP_EXPORT fact_concept_expression* fact_top ( fact_reasoning_kernel *k );
425 fact_concept_expression * fact_top(fact_reasoning_kernel *k);
426 /* get _b_o_t_t_o_m concept */
427 //C     FPP_EXPORT fact_concept_expression* fact_bottom ( fact_reasoning_kernel *k );
428 fact_concept_expression * fact_bottom(fact_reasoning_kernel *k);
429 /* get named concept */
430 //C     FPP_EXPORT fact_concept_expression* fact_concept ( fact_reasoning_kernel *k,const char* name );
431 fact_concept_expression * fact_concept(fact_reasoning_kernel *k, immutable(char)* name);
432 /* get negation of a concept c */
433 //C     FPP_EXPORT fact_concept_expression* fact_not ( fact_reasoning_kernel *k,fact_concept_expression* c );
434 fact_concept_expression * fact_not(fact_reasoning_kernel *k, fact_concept_expression *c);
435 /* get an n-ary conjunction expression; take the arguments from the last argument list */
436 //C     FPP_EXPORT fact_concept_expression* fact_and ( fact_reasoning_kernel *k );
437 fact_concept_expression * fact_and(fact_reasoning_kernel *k);
438 /* get an n-ary disjunction expression; take the arguments from the last argument list */
439 //C     FPP_EXPORT fact_concept_expression* fact_or ( fact_reasoning_kernel *k );
440 fact_concept_expression * fact_or(fact_reasoning_kernel *k);
441 /* get an n-ary one-of expression; take the arguments from the last argument list */
442 //C     FPP_EXPORT fact_concept_expression* fact_one_of ( fact_reasoning_kernel *k );
443 fact_concept_expression * fact_one_of(fact_reasoning_kernel *k);
444 
445 /* get self-reference restriction of an object role r */
446 //C     FPP_EXPORT fact_concept_expression* fact_self_reference ( fact_reasoning_kernel *k,fact_o_role_expression* r );
447 fact_concept_expression * fact_self_reference(fact_reasoning_kernel *k, fact_o_role_expression *r);
448 /* get value restriction wrt an object role r and an individual i */
449 //C     FPP_EXPORT fact_concept_expression* fact_o_value ( fact_reasoning_kernel *k,fact_o_role_expression* r, fact_individual_expression* i );
450 fact_concept_expression * fact_o_value(fact_reasoning_kernel *k, fact_o_role_expression *r, fact_individual_expression *i);
451 /* get existential restriction wrt an object role r and a concept c */
452 //C     FPP_EXPORT fact_concept_expression* fact_o_exists ( fact_reasoning_kernel *k,fact_o_role_expression* r, fact_concept_expression* c );
453 fact_concept_expression * fact_o_exists(fact_reasoning_kernel *k, fact_o_role_expression *r, fact_concept_expression *c);
454 /* get universal restriction wrt an object role r and a concept c */
455 //C     FPP_EXPORT fact_concept_expression* fact_o_forall ( fact_reasoning_kernel *k,fact_o_role_expression* r, fact_concept_expression* c );
456 fact_concept_expression * fact_o_forall(fact_reasoning_kernel *k, fact_o_role_expression *r, fact_concept_expression *c);
457 /* get min cardinality restriction wrt number _n, an object role r and a concept c */
458 //C     FPP_EXPORT fact_concept_expression* fact_o_min_cardinality ( fact_reasoning_kernel *k,unsigned int n, fact_o_role_expression* r, fact_concept_expression* c );
459 fact_concept_expression * fact_o_min_cardinality(fact_reasoning_kernel *k, uint n, fact_o_role_expression *r, fact_concept_expression *c);
460 /* get max cardinality restriction wrt number _n, an object role r and a concept c */
461 //C     FPP_EXPORT fact_concept_expression* fact_o_max_cardinality ( fact_reasoning_kernel *k,unsigned int n, fact_o_role_expression* r, fact_concept_expression* c );
462 fact_concept_expression * fact_o_max_cardinality(fact_reasoning_kernel *k, uint n, fact_o_role_expression *r, fact_concept_expression *c);
463 /* get exact cardinality restriction wrt number _n, an object role r and a concept c */
464 //C     FPP_EXPORT fact_concept_expression* fact_o_cardinality ( fact_reasoning_kernel *k,unsigned int n, fact_o_role_expression* r, fact_concept_expression* c );
465 fact_concept_expression * fact_o_cardinality(fact_reasoning_kernel *k, uint n, fact_o_role_expression *r, fact_concept_expression *c);
466 
467 /* get value restriction wrt a data role r and a data value v */
468 //C     FPP_EXPORT fact_concept_expression* fact_d_value ( fact_reasoning_kernel *k,fact_d_role_expression* r, fact_data_value_expression* v );
469 fact_concept_expression * fact_d_value(fact_reasoning_kernel *k, fact_d_role_expression *r, fact_data_value_expression *v);
470 /* get existential restriction wrt a data role r and a data expression e */
471 //C     FPP_EXPORT fact_concept_expression* fact_d_exists ( fact_reasoning_kernel *k,fact_d_role_expression* r, fact_data_expression* e );
472 fact_concept_expression * fact_d_exists(fact_reasoning_kernel *k, fact_d_role_expression *r, fact_data_expression *e);
473 /* get universal restriction wrt a data role r and a data expression e */
474 //C     FPP_EXPORT fact_concept_expression* fact_d_forall ( fact_reasoning_kernel *k,fact_d_role_expression* r, fact_data_expression* e );
475 fact_concept_expression * fact_d_forall(fact_reasoning_kernel *k, fact_d_role_expression *r, fact_data_expression *e);
476 /* get min cardinality restriction wrt number _n, a data role r and a data expression e */
477 //C     FPP_EXPORT fact_concept_expression* fact_d_min_cardinality ( fact_reasoning_kernel *k,unsigned int n, fact_d_role_expression* r, fact_data_expression* e );
478 fact_concept_expression * fact_d_min_cardinality(fact_reasoning_kernel *k, uint n, fact_d_role_expression *r, fact_data_expression *e);
479 /* get max cardinality restriction wrt number _n, a data role r and a data expression e */
480 //C     FPP_EXPORT fact_concept_expression* fact_d_max_cardinality ( fact_reasoning_kernel *k,unsigned int n, fact_d_role_expression* r, fact_data_expression* e );
481 fact_concept_expression * fact_d_max_cardinality(fact_reasoning_kernel *k, uint n, fact_d_role_expression *r, fact_data_expression *e);
482 /* get exact cardinality restriction wrt number _n, a data role r and a data expression e */
483 //C     FPP_EXPORT fact_concept_expression* fact_d_cardinality ( fact_reasoning_kernel *k,unsigned int n, fact_d_role_expression* r, fact_data_expression* e );
484 fact_concept_expression * fact_d_cardinality(fact_reasoning_kernel *k, uint n, fact_d_role_expression *r, fact_data_expression *e);
485 
486 /* individuals */
487 
488 /* get named individual */
489 //C     FPP_EXPORT fact_individual_expression* fact_individual ( fact_reasoning_kernel *k,const char* name );
490 fact_individual_expression * fact_individual(fact_reasoning_kernel *k, immutable(char)* name);
491 
492 /* object roles */
493 
494 /* get _t_o_p object role */
495 //C     FPP_EXPORT fact_o_role_expression* fact_object_role_top ( fact_reasoning_kernel *k );
496 fact_o_role_expression * fact_object_role_top(fact_reasoning_kernel *k);
497 /* get _b_o_t_t_o_m object role */
498 //C     FPP_EXPORT fact_o_role_expression* fact_object_role_bottom ( fact_reasoning_kernel *k );
499 fact_o_role_expression * fact_object_role_bottom(fact_reasoning_kernel *k);
500 /* get named object role */
501 //C     FPP_EXPORT fact_o_role_expression* fact_object_role ( fact_reasoning_kernel *k,const char* name );
502 fact_o_role_expression * fact_object_role(fact_reasoning_kernel *k, immutable(char)* name);
503 /* get an inverse of a given object role expression r */
504 //C     FPP_EXPORT fact_o_role_expression* fact_inverse ( fact_reasoning_kernel *k,fact_o_role_expression* r );
505 fact_o_role_expression * fact_inverse(fact_reasoning_kernel *k, fact_o_role_expression *r);
506 /* get a role chain corresponding to _r1 o ... o _rn; take the arguments from the last argument list */
507 //C     FPP_EXPORT fact_o_role_complex_expression* fact_compose ( fact_reasoning_kernel *k );
508 fact_o_role_complex_expression * fact_compose(fact_reasoning_kernel *k);
509 /* get a expression corresponding to r projected from c */
510 //C     FPP_EXPORT fact_o_role_complex_expression* fact_project_from ( fact_reasoning_kernel *k,fact_o_role_expression* r, fact_concept_expression* c );
511 fact_o_role_complex_expression * fact_project_from(fact_reasoning_kernel *k, fact_o_role_expression *r, fact_concept_expression *c);
512 /* get a expression corresponding to r projected into c */
513 //C     FPP_EXPORT fact_o_role_complex_expression* fact_project_into ( fact_reasoning_kernel *k,fact_o_role_expression* r, fact_concept_expression* c );
514 fact_o_role_complex_expression * fact_project_into(fact_reasoning_kernel *k, fact_o_role_expression *r, fact_concept_expression *c);
515 
516 /* data roles */
517 
518 /* get _t_o_p data role */
519 //C     FPP_EXPORT fact_d_role_expression* fact_data_role_top ( fact_reasoning_kernel *k );
520 fact_d_role_expression * fact_data_role_top(fact_reasoning_kernel *k);
521 /* get _b_o_t_t_o_m data role */
522 //C     FPP_EXPORT fact_d_role_expression* fact_data_role_bottom ( fact_reasoning_kernel *k );
523 fact_d_role_expression * fact_data_role_bottom(fact_reasoning_kernel *k);
524 /* get named data role */
525 //C     FPP_EXPORT fact_d_role_expression* fact_data_role ( fact_reasoning_kernel *k,const char* name );
526 fact_d_role_expression * fact_data_role(fact_reasoning_kernel *k, immutable(char)* name);
527 
528 /* data expressions */
529 
530 /* get _t_o_p data element */
531 //C     FPP_EXPORT fact_data_expression* fact_data_top ( fact_reasoning_kernel *k );
532 fact_data_expression * fact_data_top(fact_reasoning_kernel *k);
533 /* get _b_o_t_t_o_m data element */
534 //C     FPP_EXPORT fact_data_expression* fact_data_bottom ( fact_reasoning_kernel *k );
535 fact_data_expression * fact_data_bottom(fact_reasoning_kernel *k);
536 
537 /* get named data type */
538 //C     FPP_EXPORT fact_data_type_expression* fact_data_type ( fact_reasoning_kernel *k,const char* name );
539 fact_data_type_expression * fact_data_type(fact_reasoning_kernel *k, immutable(char)* name);
540 /* get basic string data type */
541 //C     FPP_EXPORT fact_data_type_expression* fact_getr_data_type ( fact_reasoning_kernel *k );
542 fact_data_type_expression * fact_getr_data_type(fact_reasoning_kernel *k);
543 /* get basic integer data type */
544 //C     FPP_EXPORT fact_data_type_expression* fact_get_int_data_type ( fact_reasoning_kernel *k );
545 fact_data_type_expression * fact_get_int_data_type(fact_reasoning_kernel *k);
546 /* get basic floating point data type */
547 //C     FPP_EXPORT fact_data_type_expression* fact_get_real_data_type ( fact_reasoning_kernel *k );
548 fact_data_type_expression * fact_get_real_data_type(fact_reasoning_kernel *k);
549 /* get basic boolean data type */
550 //C     FPP_EXPORT fact_data_type_expression* fact_get_bool_data_type ( fact_reasoning_kernel *k );
551 fact_data_type_expression * fact_get_bool_data_type(fact_reasoning_kernel *k);
552 /* get basic date-time data type */
553 //C     FPP_EXPORT fact_data_type_expression* fact_get_time_data_type ( fact_reasoning_kernel *k );
554 fact_data_type_expression * fact_get_time_data_type(fact_reasoning_kernel *k);
555 
556 /* get basic boolean data type */
557 //C     FPP_EXPORT fact_data_type_expression* fact_restricted_type ( fact_reasoning_kernel *k,fact_data_type_expression* type, fact_facet_expression* facet );
558 fact_data_type_expression * fact_restricted_type(fact_reasoning_kernel *k, fact_data_type_expression *type, fact_facet_expression *facet);
559 
560 /* get data value with given _v_a_lU_e and _tY_p_e; */
561 /* _f_iX_m_e!! now change the type to the basic type of the given one */
562 /* _that is, value of a type positive_integer will be of a type _integer */
563 //C     FPP_EXPORT fact_data_value_expression* fact_data_value ( fact_reasoning_kernel *k,const char* value, fact_data_type_expression* type );
564 fact_data_value_expression * fact_data_value(fact_reasoning_kernel *k, immutable(char)* value, fact_data_type_expression *type);
565 /* get negation of a data expression e */
566 //C     FPP_EXPORT fact_data_expression* fact_data_not ( fact_reasoning_kernel *k,fact_data_expression* e );
567 fact_data_expression * fact_data_not(fact_reasoning_kernel *k, fact_data_expression *e);
568 /* get an n-ary data conjunction expression; take the arguments from the last argument list */
569 //C     FPP_EXPORT fact_data_expression* fact_data_and ( fact_reasoning_kernel *k );
570 fact_data_expression * fact_data_and(fact_reasoning_kernel *k);
571 /* get an n-ary data disjunction expression; take the arguments from the last argument list */
572 //C     FPP_EXPORT fact_data_expression* fact_data_or ( fact_reasoning_kernel *k );
573 fact_data_expression * fact_data_or(fact_reasoning_kernel *k);
574 /* get an n-ary data one-of expression; take the arguments from the last argument list */
575 //C     FPP_EXPORT fact_data_expression* fact_data_one_of ( fact_reasoning_kernel *k );
576 fact_data_expression * fact_data_one_of(fact_reasoning_kernel *k);
577 
578 /* get min_inclusive facet with a given _v */
579 //C     FPP_EXPORT fact_facet_expression* fact_facet_min_inclusive ( fact_reasoning_kernel *k,fact_data_value_expression* v );
580 fact_facet_expression * fact_facet_min_inclusive(fact_reasoning_kernel *k, fact_data_value_expression *v);
581 /* get min_exclusive facet with a given _v */
582 //C     FPP_EXPORT fact_facet_expression* fact_facet_min_exclusive ( fact_reasoning_kernel *k,fact_data_value_expression* v );
583 fact_facet_expression * fact_facet_min_exclusive(fact_reasoning_kernel *k, fact_data_value_expression *v);
584 /* get max_inclusive facet with a given _v */
585 //C     FPP_EXPORT fact_facet_expression* fact_facet_max_inclusive ( fact_reasoning_kernel *k,fact_data_value_expression* v );
586 fact_facet_expression * fact_facet_max_inclusive(fact_reasoning_kernel *k, fact_data_value_expression *v);
587 /* get max_exclusive facet with a given _v */
588 //C     FPP_EXPORT fact_facet_expression* fact_facet_max_exclusive ( fact_reasoning_kernel *k,fact_data_value_expression* v );
589 fact_facet_expression * fact_facet_max_exclusive(fact_reasoning_kernel *k, fact_data_value_expression *v);
590 
591 //C     #ifdef __cplusplus
592 //C     }
593 //C     #endif
594 
595 //C     #endif