01 package org.qedeq.kernel.bo.logic.model;
02
03 /**
04 * A model for our mathematical world. It should have entities, functions and predicates.
05 * There should also be predicate and function constants.
06 *
07 * @author Michael Meyling
08 */
09 public interface Model {
10
11 /**
12 * Get model description.
13 *
14 * @return Model description. */
15 public String getDescription();
16
17 /**
18 * Get number of all entities in this model.
19 *
20 * @return Number of entities.
21 */
22 public int getEntitiesSize();
23
24 /**
25 * Get entity <code>number</code>. Also transforms the value of
26 * an entity into the entity itself.
27 *
28 * @param number Get entity with this number and value.
29 * @return Entity.
30 */
31 public Entity getEntity(final int number);
32
33 /**
34 * Get number of predicates with <code>size</code> number of arguments.
35 *
36 * @param size Number of arguments.
37 * @return Number of predicates in this model.
38 */
39 public int getPredicateSize(final int size);
40
41 /**
42 * Get predicate of this model.
43 *
44 * @param size Number of arguments for predicate.
45 * @param number Number of predicate.
46 * @return Predicate for this model.
47 */
48 public Predicate getPredicate(final int size, final int number);
49
50 /**
51 * Get predicate constant of this model.
52 *
53 * @param con Predicate constant we are looking for.
54 * @return Predicate for this model.
55 */
56 public Predicate getPredicateConstant(final ModelPredicateConstant con);
57
58 /**
59 * Get number of functions for this model.
60 *
61 * @param size Number of arguments for function.
62 * @return Number of functions in this model.
63 */
64 public int getFunctionSize(final int size);
65
66 /**
67 * Get function.
68 *
69 * @param size Number of arguments for function.
70 * @param number Number of function.
71 * @return Function in this model.
72 */
73 public Function getFunction(final int size, final int number);
74
75 /**
76 * Get function constant.
77 *
78 * @param con Function constant we are looking for.
79 * @return Function in this model.
80 */
81 public Function getFunctionConstant(final ModelFunctionConstant con);
82
83 /**
84 * Create entity out of entity list. This is a transformation of a list
85 * of elements into a class containing these elements.
86 *
87 * @param array List of elements.
88 * @return Class that contains (exactly?) these elements.
89 */
90 public Entity comprehension(final Entity[] array);
91
92 }
|