The "function" package provides the interfaces to implement custom-made manipulation of data.
Functions are used from a query. So before using a function, it has to exist somewhere in the system: this is the purpose of the Function package.
You create a function by implementing a new class that directly inherits from {@link bzh.plealog.hge.api.function.AbstractFunction}. Then you add that function to the HGE core system using {@link bzh.plealog.hge.api.function.FunctionSystem#addFunction(Function)}.
You can use a function as soon as it exists in the {@link bzh.plealog.hge.api.function.FunctionSystem} of HGE. For instance, if you have define a function named "Cardinality", then you use that name in a query.